From 8ff1dd836408a49359dbac9321678ccf6d33a6f9 Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Wed, 22 Apr 2009 06:44:39 +0000 Subject: [PATCH] Split ChangeLog From-SVN: r146545 --- gcc/ada/ChangeLog | 53257 +++++------------------------------------------ gcc/ada/ChangeLog-2001 | 2239 ++ gcc/ada/ChangeLog-2002 | 986 + gcc/ada/ChangeLog-2003 | 3021 +++ gcc/ada/ChangeLog-2004 | 8347 ++++++++ gcc/ada/ChangeLog-2005 | 8014 +++++++ gcc/ada/ChangeLog-2006 | 4462 ++++ gcc/ada/ChangeLog-2007 | 9221 ++++++++ gcc/ada/ChangeLog-2008 | 7464 +++++++ 9 files changed, 48533 insertions(+), 48478 deletions(-) rewrite gcc/ada/ChangeLog (92%) create mode 100644 gcc/ada/ChangeLog-2001 create mode 100644 gcc/ada/ChangeLog-2002 create mode 100644 gcc/ada/ChangeLog-2003 create mode 100644 gcc/ada/ChangeLog-2004 create mode 100644 gcc/ada/ChangeLog-2005 create mode 100644 gcc/ada/ChangeLog-2006 create mode 100644 gcc/ada/ChangeLog-2007 create mode 100644 gcc/ada/ChangeLog-2008 diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog dissimilarity index 92% index 841af7f0b86..b64aedbe7d8 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,48478 +1,4779 @@ -2009-04-21 Joseph Myers - - * ChangeLog, ChangeLog.ptr, ChangeLog.tree-ssa: Add copyright and - license notices. - -2009-04-21 Eric Botcazou - - * gcc-interface/trans.c (gnat_to_gnu): Do not overwrite location info. - -2009-04-21 Eric Botcazou - - * gcc-interface/ada-tree.h (TYPE_RM_SIZE_NUM): Delete. - (TYPE_RM_SIZE): Access TYPE_LANG_SLOT_1 directly for integral types. - * gcc-interface/decl.c (gnat_to_gnu_entity) : - Remove useless support code for packed array types and assert its - uselessness. - : Reuse entity identifier in more places and - adjust for TYPE_RM_SIZE change. - Fix nits in comments. Use Original_Array_Type accessor instead - of Associated_Node_For_Itype accessor for packed array types. - (make_packable_type): Likewise. - (maybe_pad_type): Likewise. - (set_rm_size): Likewise. Rework conditional statement. Adjust for - TYPE_RM_SIZE change. - (make_type_from_size): Adjust for TYPE_RM_SIZE change. - (rm_size): Fix nits in comments. Rework conditional statements. - * gcc-interface/misc.c (gnat_print_type): Adjust for TYPE_RM_SIZE - change. - * gcc-interface/trans.c (Attribute_to_gnu): Fix nits in comments. - * gcc-interface/utils.c (gnat_init_decl_processing): Use more - appropriate function to initialize the size_type_node. Adjust for - TYPE_RM_SIZE change. - -2009-04-21 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity): Do not set force_global - for imported subprograms. - -2009-04-21 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not make - constant objects covered by 13.3(19) volatile. - -2009-04-21 Eric Botcazou - - * gcc-interface/utils.c (create_type_decl): Do not pass declarations - of dummy fat pointer types to the debug back-end. - -2009-04-20 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity): Rewrite Esize calculation. - : Set the RM size on the integer type - before wrapping it up in the record type. Do not overwrite the - Ada size of the record type with the Esize. - -2009-04-20 Eric Botcazou - - * gcc-interface/trans.c (unchecked_conversion_lhs_nop): New predicate. - (gnat_to_gnu) : Return the expression - if the conversion is on the LHS of an assignment and a no-op. - Do not convert the result to the result type if the Parent - node is such a conversion. - -2009-04-20 Eric Botcazou - - * gcc-interface/ada-tree.h (DECL_HAS_REP_P): Delete. - * gcc-interface/decl.c (gnat_to_gnu_entity): Add support for extension - of types with unknown discriminants. - (substitute_in_type): Rewrite and restrict to formal substitutions. - * gcc-interface/utils.c (create_field_decl): Do not set DECL_HAS_REP_P. - (update_pointer_to): Update comment. - -2009-04-20 Ed Schonberg - - * sem_ch8.adb (Use_One_Package): In an instance, if two - potentially_use_visible and non-overloadable homonyms are available - from the actuals of distinct formal packages, retain the current one, - which was visible in the generic, to prevent spurious visibility - errors. - (End_Use_Package): Restore use_visibility when needed. - -2009-04-20 Sergey Rybin - - * gnat_ugn.texi, vms_data.ads: Update doc. - -2009-04-20 Arnaud Charlet - - * gcc-interface/Make-lang.in: Update dependencies - - * gcc-interface/Makefile.in: Link run-time against winsock2 lib under - Windows. - -2009-04-20 Robert Dewar - - * checks.ads: Fix documentation of range check handling - -2009-04-20 Ed Schonberg - - * sem_ch8.adb (Use_One_Type): Use proper entity on warning message for - a redundant use_type clause. - -2009-04-20 Robert Dewar - - * sem_attr.adb (Eval_Attribute, case Length): Catch more cases where - this attribute can be evaluated at compile time. - (Eval_Attribute, case Range_Length): Same improvement - - * sem_eval.ads, sem_eval.adb (Compile_Time_Compare): New procedure - -2009-04-20 Ed Schonberg - - * sem_ch6.adb (Analye_Subprogram_Declaration): Code reorganization, - for better handling of null procedures. - (Check_Overriding_Indicator): Do not emit a warning on a missing - overriding indicator on an operator when the type of which the operator - is a primitive is private. - -2009-04-20 Bob Duff - - * sem.adb, gnat1drv.adb, debug.adb: Use the -gnatd.W switch to control - debugging output. - -2009-04-20 Robert Dewar - - * sem_attr.adb: Minor reformatting - - * gnatcmd.adb: Minor reformatting - -2009-04-20 Ed Schonberg - - * sem_ch4.adb (Analyze_User_Defined_Binary_Op): If left operand is - overloaded and one interpretation matches the context, label the - operand with the type of first formal. - -2009-04-20 Bob Duff - - * debug.ads: Minor comment fix. - - * debug.adb: Minor comment fixes. - -2009-04-20 Javier Miranda - - * rtsfind.ads (RE_Null_Id): New entity of package Ada.Exceptions - - * exp_ch6.adb (Expand_Inlined_Call): Undo previous patch. - - * exp_ch11.adb (Expand_N_Raise_Statement): When the raise stmt - is expanded into a call to Raise_Exception, avoid passing the - exception-name'identity in runtimes in which this argument - is not used. - -2009-04-20 Jerome Lambourg - - * impunit.adb: Add i-cil and i-cilobj packages, now needed by the - generated bindings for cil. - -2009-04-20 Ed Schonberg - - * sem_aggr.adb (Resolve_Record_Aggregate): If the type has unknown - discriminants, collect components from the Underlying_Record_View, - which will be used in the expansion of the aggregate into assignments. - - * sem_ch3.adb: Do not label derived type with unknown discriminants as - having a private declaration. - -2009-04-20 Ed Schonberg - - * exp_util.adb (Expand_Subtype_From_Expr): use the - underlying_record_view when available, to create the proper constrained - subtype for an object of a derived type with unknown discriminants. - -2009-04-20 Javier Miranda - - * exp_ch6.adb (Expand_Inlined_Call): Avoid generation of temporaries for - formals that have pragma unreferenced. - -2009-04-20 Pascal Obry - - * a-direct.adb (To_Lower_If_Case_Insensitive): Removed. - Remove all calls to To_Lower_If_Case_Insensitive to preserve - the pathname original casing. - -2009-04-20 Robert Dewar - - * g-trasym.adb: Minor reformatting - - * s-os_lib.adb: Minor reformatting - - * sem.adb: Minor reformatting - Minor code reorganization - - * sem_ch3.adb: Minor reformatting - - * sem_ch4.adb: Minor reformatting - - * sem_ch8.adb: Minor reformatting - - * sem_type.adb: Minor reformatting - -2009-04-20 Javier Miranda - - * sem_disp.adb (Find_Dispatching_Type): For subprograms internally - generated by derivations of tagged types use the aliased subprogram a - reference to locate their controlling type. - -2009-04-20 Tristan Gingold - - * g-trasym.adb: Set size of result buffer before calling - convert_address. - -2009-04-20 Ed Schonberg - - * sem_ch4.adb (Valid_Candidate): When checking whether a prefixed call - to a function returning an array can be interpreted as a call with - defaulted parameters whose result is indexed, take into account the - types of all the indices of the array result type. - -2009-04-20 Pascal Obry - - * a-direct.adb, s-os_lib.adb: Minor reformatting. - -2009-04-20 Ed Schonberg - - * sem_ch8.adb (Analyze_Object_Renaming): Proper checks on incorrect - null exclusion qualifiers for object renaming declarations. - -2009-04-20 Nicolas Roche - - * sysdep.c (__gnat_localtime_tzoff): on Windows, manipulated times are - unsigned long long. So compare local_time and utc_time before computing - the difference. - -2009-04-20 Eric Botcazou - - * sem_ch3.adb (Build_Derived_Private_Type): Insert the declaration - of the Underlying_Record_View before that of the derived type. - - * exp_ch3.adb (Expand_Record_Extension): Do not special-case types - with unknown discriminants with regard to the parent subtype. - -2009-04-20 Bob Duff - - * sem.adb (Semantics, Walk_Library_Items): Include dependents of bodies - that are not included. This is necessary if the main unit is a generic - instantiation. - - * gnat1drv.adb (Gnat1drv): Comment out the call to Check_Library_Items, - because it doesn't work if -gnatn is used. - -2009-04-20 Ed Schonberg - - * rtsfind.adb (RTE, RTE_Record_Component): In - Configurable_Run_Time_Mode, do not enable front-end inlining. - -2009-04-20 Thomas Quinot - - * g-socthi-vms.adb: Remove now unnecessary WITH clause on - System.Address_To_Access_Conversions. - -2009-04-20 Ed Schonberg - - * sem.adb: Guard against ill-formed subunits. - -2009-04-20 Bob Duff - - * output.adb (Flush_Buffer): Do not indent blank lines. - (Ignore_Output): New procedure for output suppression. - -2009-04-20 Hristian Kirtchev - - * a-calfor.adb (Image): Subtract 0.5 from the sub second component only - when it is positive. This avoids a potential constraint error raised - by the conversion to Natural. - -2009-04-20 Gary Dismukes - - * exp_ch5.adb (Expand_Assign_Array): For the case where the assignment - involves a target that has a specified address, don't set Forward_OK - and Backward_OK to False if the rhs is an aggregate, since overlap - can't occur. - -2009-04-20 Ed Schonberg - - * sem_ch8.adb (Analyze_Object_Renaming): Reject ambiguous expressions - in an object renaming declaration when the expected type is an - anonymous access type. - - * sem_type.adb (Disambiguate): Use anonymousness to resolve a potential - ambiguity when one interpretation is an anonymous access type and the - other is a named access type, and the context itself is anonymous - -2009-04-20 Thomas Quinot - - * einfo.ads: Minor comment rewording - - * sem_aggr.adb: Minor comment rewording - - * sem_ch3.adb, sem_ch6.adb: Minor reformatting - -2009-04-20 Pascal Obry - - * adaint.c (__gnat_is_readable_file): Check for file existence - when not using ACL (always the case on remote drives). - -2009-04-20 Robert Dewar - - * sinfo.ads: Minor comment fixes - - * exp_disp.adb: Minor reformatting - - * gnat1drv.adb: Minor reformatting - - * output.adb: Minor reformatting - - * s-vxwext-kernel.ads: Minor reformatting - - * sem.ads: Minor reformatting - - * sem.adb: Minor reformatting - - * sem_elim.adb: Minor reformatting - - * uname.ads: Minor reformatting - -2009-04-20 Eric Botcazou - - * init.c (__gnat_adjust_context_for_raise): On x86{-64}/Linux, add - a small dope of 4 words to the adjustment to the stack pointer. - -2009-04-20 Thomas Quinot - - * xoscons.adb: generate C header s-oscons.h in - addition to s-oscons.ads. - - * socket.c: On VMS, use s-oscons.h. - - * sem_ch3.adb: Minor reformatting - - * exp_ch9.adb: Minor reformatting - -2009-04-20 Eric Botcazou - - * gcc-interface/trans.c (check_for_eliminated_entity): Remove. - (Attribute_to_gnu): Do not call check_for_eliminated_entity. - (call_to_gnu): Likewise. - -2009-04-20 Eric Botcazou - - * gcc-interface/trans.c (gigi): Declare the name of the compilation - unit as the first global name at the very beginning. - -2009-04-20 Thomas Quinot - - * socket.c, g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.ads, - s-oscons-tmplt.c, gsocket.h, g-socthi-mingw.ads, g-socthi.ads, - g-sothco.ads (__gnat_inet_pton): Needs to be enabled for HP-UX as well, - since HP-UX supports neither inet_aton nor inet_pton (altough the - latter is part of the Single UNIX Specification!). - So reorganize code, and share C implementation based on inet_addr(3) - with VMS (instead of having a VMS specific Ada implementation in - g-socthi-vms.adb). - -2009-04-20 Gary Dismukes - - * osint-c.ads, osint-c.adb (Get_Object_Output_File_Name): New function - to return the object file name saved by Set_Object_Output_File_Name. - -2009-04-20 Emmanuel Briot - - * g-comlin.adb (Initialize_Option_Scan): Fix initialization of parsers - for the standard command line, when argc has been modified since the - start of the application. - -2009-04-20 Thomas Quinot - - * socket.c (__gnat_inet_pton, Windows case): Adjust return value. - WSAStringToAddress returns 0 for success and SOCKET_ERROR for failure. - -2009-04-20 Bob Duff - - * gnat1drv.adb (Gnat1drv): Put call to Check_Library_Items inside - pragma Debug. - -2009-04-20 Ed Schonberg - - * exp_ch9.adb (Build_Protected_Sub_Specification): Mark generated - subprogram as Eliminated when source operation is. - (Expand_N_Protected_Type_Declaration): Generate protected and - unprotected specs for the internal operations, even if the source - operation is eliminated. - -2009-04-20 Hristian Kirtchev - - * exp_ch3.adb (Make_Predefined_Primitive_Specs, - Predefined_Primitive_Bodies): Do not create the declarations and bodies - of the primitive subprograms associated with dispatching select - statements when the runtime is in configurable mode. - -2009-04-20 Ed Falis - - * s-vxwext-kernel.ads (tickGet): Use tick64Get. - -2009-04-20 Thomas Quinot - - * s-oscons-tmplt.c: Add support for generating a dummy version of - s-oscons.ads providing all possible constants. - - * g-socthi-mingw.ads: Fix calling convention for __gnat_inet_pton. - - * socket.c (__gnat_inet_pton): On Windows make sure we always use the - ANSI version (not the UNICODE version) of WSAStringToAddress. - -2009-04-20 Pascal Obry - - * adaint.c (__gnat_set_OWNER_ACL): properly free memory - allocated for the security descriptor and make sure all - handles are closed before leaving this procedure. - -2009-04-20 Javier Miranda - - * einfo.ads, einfo.adb (Is_Underlying_Record_View): New subprogram - (Set_Is_Underlying_Record_View): New subprogram - - * sem_aggr.adb (Discr_Present, Resolve_Record_Aggregate): In case of - private types with unknown discriminants use the underlying record view - if available. - - * sem_ch3.adb (Build_Derived_Private_Type): Enable construction of the - underlying record view in the full view of private types whose parent - has unknown discriminants. - (Build_Derived_Record_Type): Avoid generating the class-wide entity - associated with an underlying record view. - (Derived_Type_Declaration): Avoid deriving parent primitives in - underlying record views. - - * sem_ch6.adb (Check_Return_Subtype_Indication): Add support for - records with unknown discriminants. - - * sem_type.adb (Covers): Handle underlying record views. - (Is_Ancestor): Add support for underlying record views. - - * exp_attr.adb (Expand_Attribute): Expand attribute 'size into a - dispatching call if the type of the target object is tagged and has - unknown discriminants. - - * exp_aggr.adb (Resolve_Record_Aggregate): Add support for records with - unknown discriminants. - - * exp_disp.adb (Build_Dispatch_Tables): Avoid generating dispatch - tables for internally built underlying record views. - - * sprint.adb (sprint_node_actual): Improve output of aggregates with an - empty list of component associations. - -2009-04-20 Thomas Quinot - - * sem_ch10.adb: Minor reformatting - - * socket.c, g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.ads, - g-socthi-mingw.ads, g-socthi.ads, g-socket.adb - (GNAT.Sockets.Inet_Addr): Do not use non-portable inet_aton, instead use - standard inet_pton API (and emulate it on platforms that do not - support it). - (GNAT.Sockets.Thin.Inet_Pton, VMS case): Implement in terms of - DECC$INET_ADDR, imported in Ada. - (GNAT.Sockets.Thin.Inet_Pton, VxWorks and Windows cases): Use C - implementation provided by GNAT runtime. - (__gnat_inet_pton): C implementation of inet_pton(3) for VxWorks and - Windows. - -2009-04-20 Eric Botcazou - - * gnat_ugn.texi: Add documentation for -fno-ivopts. - -2009-04-20 Ed Schonberg - - * sem_ch10.adb (Analyze_Context): Do not analyze a unit in a - with_clause if it is the main unit. - -2009-04-20 Thomas Quinot - - * sem_type.adb, ali.adb, erroutc.adb: Minor code reorganization - (no behaviour change): Use Append instead of Increment_Last followed - by assignment. - -2009-04-20 Hristian Kirtchev - - * exp_ch3.adb (Make_Predefined_Primitive_Specs): Do not generate the - declarations of all primitives associated with dispatching asynchronous, - conditional and timed selects when dispaching calls are forbidden and - select statements are not allowed (such as in Ravenscar). - (Predefined_Primitive_Bodies): Ditto for bodies. - - * exp_disp.ad (Make_DT): Do not create and populate the - Select_Specific_Data of the dispatch table when dispatching calls are - forbidden and select statements are not allowed (such as in Ravenscar). - -2009-04-20 Robert Dewar - - * a-tifiio.adb: Minor reformatting - -2009-04-20 Thomas Quinot - - * g-socthi-vms.adb, g-socket.adb, g-socket.ads: inet_aton(3), unlike - other C library functions, report *failure* with a zero status, and - success with a non-zero status. - -2009-04-20 Bob Duff - - * sem.ads, sem.adb (Walk_Library_Items): New generic procedure. - (Semantics): After analyzing each unit, Append it to the - Comp_Unit_List, if appropriate. - - * gnat1drv.adb (Check_Library_Items): New procedure for debugging - purposes. - (Gnat1drv): Correct comment regarding Back_End_Mode. - -2009-04-20 Eric Botcazou - - * gnat_ugn.texi: Add documentation for -fno-inline-small-functions. - -2009-04-20 Thomas Quinot - - * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-vms.adb, - output.adb, output.ads, s-taprop-hpux-dce.adb, - s-taprop-linux.adb, s-taprop-solaris.adb, s-taprop-posix.adb: Minor - reformatting. - -2009-04-20 Thomas Quinot - - * g-socket.adb, g-socket.ads, g-socthi-mingw.ads, g-socthi-vms.adb, - g-socthi-vms.ads, g-socthi-vxworks.ads, g-socthi.ads - (GNAT.Sockets.Thin.C_Inet_Addr): Remove. - (GNAT.Sockets.Thin.Inet_Aton): New function, imported from C library - except for VMS where it is reimplemented in Ada using DECC$INET_ADDR. - (GNAT.Sockets.Inet_Addr): Use inet_aton(3) instead of inet_addr(3). - - * debug.adb: Fix typo - - * gnat_rm.texi: Minor doc fix. - - * sem_ch7.adb, freeze.adb: Minor reformatting - -2009-04-20 Thomas Quinot - - * g-socket.ads: Add new constants: - Loopback_Inet_Addr - Unspecified_Group_Inet_Addr - All_Hosts_Group_Inet_Addr - All_Routers_Group_Inet_Addr - - * s-oscons-tmplt.c, g-sttsne-vxworks.adb (System.OS_Constants): Add - ERANGE (Result too large). - (GNAT.Sockets.Thin.Task_Safe_NetDB, VxWorks version): Add missing - propagation of errno to caller. - -2009-04-20 Hristian Kirtchev - - * a-calend.adb, a-calend-vms.adb: Increase the number of leap seconds - to 24. Increment Leap_Seconds_Count and add an entry to aggregate - Leap_Second_Times. - -2009-04-20 Gary Dismukes - - * sem_elim.ads (Check_For_Eliminated_Subprogram): New procedure for - checking for references to eliminated subprograms that should be - flagged. - (Eliminate_Error_Message): Update comment to say "references" rather - than "calls" (since attribute cases are handled here as well). - - * sem_elim.adb (Check_For_Eliminated_Subprogram): New procedure for - checking for references to eliminated subprograms that should be - flagged. Add with and use of Sem and Sem_Util. - - * sem_res.adb (Resolve_Call): Reject calls to eliminated subprograms. - Add with and use of Sem_Elim. - - * sem_attr.adb (Analyze_Access_Attribute): Reject access attributes - applied to eliminated subprograms. - (Analyze_Attribute): Reject 'Address and 'Code_Address applied to - eliminated subprograms. - Add with and use of Sem_Elim. - - * sem_disp.adb (Check_Dispatching_Call): Remove error check for calls - to eliminated subprograms, now handled during Resolve_Call. - Remove with and use of Sem_Elim. - - * exp_disp.adb (Make_DT): Get Ultimate_Alias of primitive before - testing Is_Eliminated, for proper handling of primitive derived from - eliminated subprograms. - -2009-04-20 Vincent Celier - - * mlib-prj.adb (Build_Library): Use the shared library linker, if one - has been declared (Library_GCC or Linker'Driver), for the driver name. - - * prj-nmsc.adb (Process_Linker): If Library_GCC is not declared and - Linker'Driver is, use Linker'Driver as the shared library linker. - (Process_Project_Level_Simple_Attributes): Issue a warning if attribute - Library_GCC is declared. - (Check_Library_Attributes): Set up the shared linker driver: either - Library_GCC or Linker'Driver. Issue a warning if Library_GCC is - declared. - -2009-04-20 Thomas Quinot - - * g-socket.ads (Send_Socket): Fix misleading comment. - -2009-04-20 Arnaud Charlet - - * switch-c.adb (Scan_Front_End_Switches): Disable inspector mode in - ASIS mode. - -2009-04-20 Geert Bosch - - * a-tifiio.adb (Put): Avoid generating too many digits for certain - fixed types with smalls that are neither integer or the reciprocal - of an integer. - -2009-04-20 Bob Duff - - * uname.ads: Minor comment fix. - - * types.ads: Minor comment fix. - -2009-04-20 Pascal Obry - - * adaint.c (__gnat_get_libraries_from_registry): Fix code to - avoid warning. At the same time fix a memory leak. - - * osint.adb (Get_Libraries_From_Registry): Properly free memory - returned by the above routine. - -2009-04-20 Robert Dewar - - * s-conca5.adb, s-conca5.ads, s-conca7.adb, s-conca7.ads, s-conca9.adb, - s-conca9.ads, rtsfind.ads, s-conca2.adb, s-conca2.ads, s-conca4.adb, - s-conca4.ads, s-conca6.adb, s-conca6.ads, s-conca8.adb, s-conca8.ads, - s-conca3.adb, s-conca3.ads (Str_Concat_Bounds_x): New functions. - - * exp_ch4.adb (Expand_Concatenate): Minor code reorganization - -2009-04-20 Pascal Obry - - * initialize.c (__gnat_initialize): Add braces to kill warning. - - * adaint.c: Minor reformatting, remove trailing spaces. - -2009-04-17 Arnaud Charlet - - * gcc-interface/Make-lang.in: Update dependencies. - -2009-04-20 Eric Botcazou - - * adaint.h (__gnat_lwp_self): Declare on Linux. - - * adaint.c (__gnat_os_filename): Add ATTRIBUTE_UNUSED on 'filename'. - -2009-04-20 Robert Dewar - - * exp_ch5.adb, usage.adb, back_end.adb, opt.ads: Implement - front-end part of -fpreserve-control-flow switch. - -2009-04-20 Bob Duff - - * rtsfind.adb: Minor comment fix - -2009-04-20 Robert Dewar - - * exp_aggr.adb: Minor reformatting - Minor code reorganization (use Nkind_In) - - * g-socket.adb: Minor reformatting - - * g-socket.ads: Minor comment fix - - * s-auxdec.ads: Minor comment and organization update. - - * s-auxdec-vms_64.ads: Minor comment and organization update. - - * sem_ch10.adb: Minor addition of ??? comment - - * sem_disp.adb: Minor reformatting - -2009-04-20 Ed Schonberg - - * inline.adb (Add_Inlined_Subprogram): Do not place on the back-end - list a caller of an inlined subprogram, if the caller itself is not - called. - -2009-04-20 Pascal Obry - - * adaint.c: Disable use of ACL on network drives. - -2009-04-20 Arnaud Charlet - - * gnat_ugn.texi: Add examples. - -2009-04-20 Thomas Quinot - - * g-socket.ads (Abort_Selector): Clarify documentation. - -2009-04-20 Arnaud Charlet - - * opt.ads (Inspector_Mode): Update documentation of this flag. - -2009-04-20 Thomas Quinot - - * g-socket.ads: Minor reformatting - - * socket.c, gsocket.h (__gnat_get_h_errno, VxWorks case): No need to - consider S_resolvLib error codes since we only use the hostLib wrappers. - -2009-04-20 Eric Botcazou - - * sem_ch3.adb (Build_Derived_Private_Type): Insert the declaration - of the Underlying_Record_View after that of the derived type. - -2009-04-20 Arnaud Charlet - - * switch-c.adb (Scan_Front_End_Switches): Disable front-end inlining - in inspector mode. - -2009-04-20 Javier Miranda - - * sem_ch6.adb (New_Overloaded_Entity): Minor reformating. - - * sem_ch6.ads (Subtype_Conformant, Type_Conformant): Add missing - documentation. - - * exp_aggr.adb (Build_Record_Aggr_Code): Code cleanup. - - * sem_disp.adb - (Check_Dispatching_Operation): Set attribute Is_Dispatching_Operation - in internally built overriding subprograms. - -2009-04-20 Doug Rupp - - * s-auxdec-vms_64.ads (Integer_{8,16,32,64}_Array): New array types. - - * s-auxdec.ads: Likewise - -2009-04-20 Ed Schonberg - - * sem_ch3.adb (Find_Type_Name): Reject the completion of a private - type by an interface. - - * exp_ch6.adb (Expand_Call): Inline To_Address unconditionally, to - minimze difference in expanded tree when compiled as spec of the main - unit, or as a spec in the context of another unit. - -2009-04-20 Hristian Kirtchev - - * a-calend.adb: Remove types char_Pointer, int, tm and tm_Pointer. - (localtime_tzoff): This routine no longer accepts an actual of type - tm_Pointer. - (UTC_Time_Offset): Remove local variable Secs_TM. - - * sysdep.c (__gnat_localtime_tzoff): This routine no longer accepts an - actual of type struct tm*. Add local variable of type struct tm for all - targets that provide localtime_r and need to invoke it. - -2009-04-20 Thomas Quinot - - * s-oscons-tmplt.c, g-socket.adb, g-socket.ads - (GNAT.Sockets.Resolve_Error): Add case of EPIPE - Add case of EAGAIN for platforms where it is not equal to EWOULDBLOCK - -2009-04-20 Robert Dewar - - * sem_ch3.adb: Minor reformatting - - * lib-load.adb: Minor reformatting - - * sem_ch4.adb: Minor reformatting - -2009-04-20 Robert Dewar - - * namet-sp.ads, namet-sp.adb (Is_Bad_Spelling_Of): Implement new spec - (equal values => False). - -2009-04-20 Ed Schonberg - - * exp_ch6.adb (Is_Null_Procedure): predicate is global, so that calls - to null procedures can be inlined unconditionally. - -2009-04-20 Eric Botcazou - - * gcc-interface/trans.c (call_to_gnu): When creating the copy for a - non-addressable parameter passed by reference, do not convert the - actual if its type is already the nominal type, unless it is of - self-referential size. - -2009-04-20 Arnaud Charlet - - * gnat_ugn.texi: Fix typos. - -2009-04-20 Robert Dewar - - * debug.adb, gnat1drv.adb, sem_ch13.adb: Add circuitry to - Validate_Unchecked_Warnings to suppress warnings about size or - alignment or extra bits if either type involved has pragma Warnings - (Off) set for the type entity. - -2009-04-19 Eric Botcazou - - * gcc-interface/trans.c (gigi): Make the special IA-64 descriptor type - a builtin type and give it a name. - -2009-04-17 Diego Novillo - - * gcc-interface/misc.c (gnat_expand_expr): Remove. - (LANG_HOOKS_EXPAND_EXPR): Remove. - -2009-04-17 Robert Dewar - - * sem_ch3.adb: Minor reformatting - -2009-04-17 Pascal Obry - - * adaint.c: Add __gnat_use_acl global variable to control use of ACL. - -2009-04-17 Ed Schonberg - - * sem_ch3.adb (Build_Derived_Enumeration_Type): Diagnose properly - illegal constraints on type derived from formal discrete types. - -2009-04-17 Thomas Quinot - - PR ada/35953 - - * g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb, - g-socthi-vxworks.ads, g-socthi-mingw.adb, g-socthi-mingw.ads, - g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads, g-socket.adb, - g-socket.ads (GNAT.Sockets.Thin.C_Send, - GNAT.Sockets.Thin.Syscall_Send): Remove unused subprograms. - Replace calls to send(2) with equivalent sendto(2) calls. - (GNAT.Sockets.Send_Socket): Factor common code in inlined subprogram. - (GNAT.Sockets.Write): Account for the case of hyper-empty arrays, do not - report an error in that case. Factor code common to the two versions - (datagram and stream) in common routine Stream_Write. - -2009-04-17 Robert Dewar - - * exp_disp.adb: Minor reformatting - Minor code reorganization (use Nkind_In) - - * prepcomp.adb: Minor reformatting - - * sem_ch3.adb: Minor reformatting - - * sem_res.adb: Minor comment addition - - * exp_ch5.adb (Expand_Assign_Array): Use Has_Address_Clause to test - for address clause - - * lib-xref.adb (Generate_Reference): Exclude recursive calls from - setting Is_Referenced - - * types.ads: Minor reformatting - -2009-04-17 Arnaud Charlet - - * gnat_ugn.texi: Initial documentation on binding generator. - -2009-04-17 Ed Schonberg - - * einfo.ads, einfo.adb: New attribute Underlying_Record_View, to handle - type extensions whose parent is a type with unknown discriminants. - - * exp_aggr.adb (Expand_Record_Aggregate): If the type of an extension - aggregate has unknown discriminants, use the Underlying_Record_View to - obtain the discriminants of the ancestor part. - - * exp_disp.adb (Build_Dispatch_Tables): Types that are - Underlying_Record_Views share the dispatching information of the - original record extension. - - * exp_ch3.adb (Expand_Record_Extension): If the type inherits unknown - discriminants, propagate dispach table information to the - Underlying_Record_View. - - * sem_ch3.adb (Build_Derived_Private_Type): If parent type has unknown - discriminants and declaration is not a completion, generate - Underlying_Record_View to provide proper discriminant information to - the front-end and to gigi. - -2009-04-17 Robert Dewar - - * s-conca5.adb, g-sercom.adb, s-conca5.ads, s-conca7.adb, exp_imgv.adb, - s-conca7.ads, s-crc32.adb, s-crc32.ads, s-conca9.adb, s-conca9.ads, - s-addope.adb, i-cstrin.ads, s-addope.ads, s-carun8.adb, s-carun8.ads, - g-htable.ads, g-hesora.adb, g-hesora.ads, s-htable.adb, s-htable.ads, - s-conca2.adb, s-conca2.ads, a-except.adb, s-conca4.adb, a-except.ads, - s-conca4.ads, s-except.adb, s-except.ads, s-conca6.adb, s-conca6.ads, - g-spchge.adb, g-spchge.ads, g-u3spch.adb, g-u3spch.ads, s-conca8.adb, - s-conca8.ads, g-byorma.adb, g-byorma.ads, s-memory.adb, s-memory.ads, - g-speche.adb, g-speche.ads, g-stsifd-sockets.adb, exp_dist.adb, - s-imgenu.adb, s-imgenu.ads, s-mastop.adb, s-mastop.ads, s-exctab.adb, - s-exctab.ads, s-imenne.adb, s-imenne.ads, s-casuti.adb, osint.adb, - s-assert.adb, s-casuti.ads, s-assert.ads, s-os_lib.adb, s-conca3.adb, - s-conca3.ads: Remove unneeded pragma Warnings - -2009-04-17 Robert Dewar - - * g-moreex.adb: Add comments. - - * s-auxdec.ads: Add ??? comment for uncommented pragma Warnings (Off) - - * s-auxdec-vms_64.ads: Add ??? comment for uncommented pragma - Warnings (Off) - - * prepcomp.adb: Add ??? comment - - * a-tasatt.adb: Minor reformatting - - * g-trasym-vms-alpha.adb: Add ??? comment - - * g-trasym-vms-ia64.adb: Add ??? comment - - * xoscons.adb: Minor reformatting - - * s-tassta.adb: Minor reformatting - - * s-scaval.adb: Add ??? comment - - * stand.ads: Minor code clean up (remove junk with of Namet) - - * s-strcom.adb, s-strcom.ads, s-string.adb, s-string.ads, s-sopco3.adb, - s-sopco3.ads, s-strops.adb, s-strops.ads, s-sopco5.adb, s-sopco5.ads, - s-wchcnv.adb, s-wchcnv.ads, s-ststop.adb, s-ststop.ads, s-soflin.adb, - s-soflin.ads, s-traceb.adb, s-traceb.ads, s-traent.adb, s-traent.ads, - s-secsta.adb, s-secsta.ads, s-utf_32.adb, s-utf_32.ads, s-wchcon.adb, - s-wchjis.adb, s-wchcon.ads, s-wchjis.ads, s-sopco4.adb, s-sopco4.ads, - s-stache.adb, s-stache.ads, s-stoele.adb, s-stoele.ads, s-stalib.adb, - s-stalib.ads, s-os_lib.ads, s-purexc.ads: Remove no longer needed - Warnings off pragmas. - -2009-04-17 Pascal Obry - - * initialize.c: Fix test for reallocating the arguments array. - -2009-04-17 Geert Bosch - - * exp_fixd.adb (Expand_Convert_Float_To_Fixed): Have float to fixed - conversion truncate only for decimal fixed point types. - -2009-04-17 Jerome Lambourg - - * g-comlin.adb (Initialize_Scan_Option): Make sure the sections are - reinitialized. - -2009-04-17 Robert Dewar - - * exp_ch5.adb (Expand_Assign_Array): Do not set Forwards_OK and - Backwards_OK if either operand has an address clause. - -2009-04-17 Pascal Obry - - * initialize.c: Code clean up, use realloc. - -2009-04-17 Pascal Obry - - * initialize.c: Do not get Unicode command line if Unicode support not - activated. - Add support for wildcard expansion for Unicode parameters on Win32. - - * mingw32.h: Add missing macros when Unicode support not activated. - -2009-04-17 Javier Miranda - - * sem_ch6.adb (Check_Anonymous_Return): Add missing checks to - avoid generating code that references the Current_Master - when compiling without tasks. - -2009-04-17 Vincent Celier - - * prj-attr.adb: New project level attribute Target - - * prj-nmsc.adb (Process_Project_Level_Simple_Attributes): Process - attribute Target - - * prj.ads (Project_Configuration): New component Target - -2009-04-17 Thomas Quinot - - * exp_ch7.adb (Expand_Ctrl_Function_Call): Remove incorrect special - case for the case of an aggregate component, the attach call for the - result is actually needed. - - * exp_aggr.adb (Backend_Processing_Possible): Backend processing for - an array aggregate must be disabled if the component type requires - controlled actions. - - * exp_ch3.adb: Minor reformatting - -2009-04-17 Bob Duff - - * output.ads (Indent,Outdent): New procedures for indenting the output. - (Write_Char): Correct comment -- LF _is_ allowed. - - * output.adb (Indent,Outdent): New procedures for indenting the output. - Keep track of the indentation level, and make sure it doesn't get too - high. - (Flush_Buffer): Insert spaces at the beginning of each line, if - indentation level is nonzero. - (Save_Output_Buffer,Restore_Output_Buffer): Save and restore the current - indentation level. - (Set_Standard_Error,Set_Standard_Output): Remove superfluous - "Next_Col := 1;". Flush_Buffer does that. - - * sem_ch6.adb, sem_ch7.adb (Debug_Flag_C): Reorganize the output - controlled by the -gnatdc switch. It now occurs on entry/exit to the - relevant analysis routines, and calls Indent/Outdent to make the - indentation reflect the nesting level. Add "helper" routines, since - otherwise lots of "return;" statements would skip the debugging output. - -2009-04-17 Arnaud Charlet - - * s-taprop-tru64.adb, s-taprop-vms.adb, s-taprop-linux.adb, - s-taprop-solaris.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, - s-taprop-posix.adb (Suspend_Until_True): Protect against early wakeup. - -2009-04-17 Thomas Quinot - - * exp_aggr.adb: Minor code reorganization, no behaviour change. - -2009-04-17 Ed Schonberg - - * sem_ch8.adb (Use_One_Type): Handle properly a redundant use type - clause in a unit that is a package body or a subunit, when the previous - clause appears in a spec or a parent. - -2009-04-17 Thomas Quinot - - * sinfo.ads, exp_aggr.adb, exp_aggr.ads: Minor reformatting - - * exp_ch7.adb: Minor reformatting - -2009-04-17 Bob Duff - - * exp_ch4.adb (Expand_Allocator_Expression): In an initialized - allocator, check that the expression of the qualified expression obeys - the constraints of the subtype of the qualified expression. - -2009-04-17 Thomas Quinot - - * sprint.adb (Write_Itype): Add handling of enumeration subtypes. - -2009-04-17 Ed Schonberg - - * exp_ch4.adb (Expand_Allocator_Expression): Apply constraint check to - aggregate, using context imposed by subtype mark in allocator. - -2009-04-17 Pascal Obry - - * gnat_rm.texi: Document GNAT_CODE_PAGE environment variable - -2009-04-17 Nicolas Roche - - * initialize.c (__gnat_initialize): remove MAX_PATH limitation on each - argument length. - -2009-04-17 Gary Dismukes - - * sem_elim.adb (Eliminate_Error_Msg): Minor change to error message to - cover both calls and attribute references ("call" => "reference"). - -2009-04-17 Ed Schonberg - - * sem_ch3.adb (Analyze_Subtype_Declaration): A subtype of an access - type for which Storage_Size is set to 0 is legal in a pure unit. - -2009-04-17 Thomas Quinot - - * exp_ch7.adb: Minor reformatting - -2009-04-17 Robert Dewar - - * restrict.adb (Check_Restriction_No_Dependence): Don't check - restriction if outside main extended source unit. - - * sem_ch10.adb (Analyze_With_Clause): Check No_Dependence restriction - for parents of child units as well as the child unit itself. - -2009-04-17 Bob Duff - - * checks.ads: Minor comment fix - - * exp_aggr.ads: Minor comment fix - -2009-04-17 Nicolas Roche - - * adaint.c: Improve cross compiler detection and handling. - -2009-04-17 Eric Botcazou - - * exp_ch4.adb (Expand_Concatenation): Do not use calls at -Os. - -2009-04-17 Pascal Obry - - * mingw32.h: Add S2WSC and WS2SC macros to convert to/from - CurrentCodePage. - - * adaint.h: Encoding_Unspecified is now defined. Corresponds to the - value when no encoding form paramter is set on Text_IO services. - - * adaint.c: CurrentCodePage new variable on Windows. - Use new macros S2WSC and WS2SC instead of the UTF-8 oriented - ones. - - * mkdir.c: Use new macros S2WSC and WS2SC instead of the UTF-8 oriented - ones. - - * initialize.c: Initialize CurrentCodePage depending on GNAT_CODE_PAGE - environment variable value. Default is UTF-8. - - * s-crtl.ads: Filename_Encoding add Unspecified in the enumeration type. - fopen and freopen encoding parameter is now set to Unspecified. - The default value is in this case UTF-8 (as it was before) but - use the new macros that convert to/from the code page set - at runtime (CurrentCodePage). - - * s-fileio.adb: When no encoding specified use Unspecified value. - -2009-04-17 Ed Schonberg - - * atree.adb, atree.ads: Remove dead code. - -2009-04-17 Arnaud Charlet - - * gcc-interface/Make-lang.in: Update dependencies. - -2009-04-17 Ed Schonberg - - * sem_ch3.adb (Access_Subprogram_Definition): Additional checks on - illegal uses of incomplete types in formal parts and return types. - - * sem_ch6.adb (Process_Formals): Taft-amendment types are legal in - access to subprograms. - - * sem_ch7.adb (Uninstall_Declarations): diagnose attempts to use - Taft-amendment types as the return type of an access_to_function type. - - * freeze.adb (Freeze_Entity): Remove tests on formals of an incomplete - type for access_to_subprograms. The check is performed on package exit. - -2009-04-17 Ed Schonberg - - * atree.ads, atree.adb: Move New_Copy_Tree.to sem_util. - - * nlists.ads, nlists.adb: Move New_Copy_List to sem_util. - - * lib-load.adb: Use Copy_Separate_Tree rather than New_Copy_Tree - - * sem_util.ads, sem_util.adb: New_Copy_Tree and New_Copy_List belong in - semantic units, because the handling of itypes in the copied tree - requires semantic information that does not belong in atree. - -2009-04-17 Robert Dewar - - * par-ch6.adb: Minor reformatting - - * prj.adb: Minor reformatting - -2009-04-17 Gary Dismukes - - * par-ch6.adb (P_Subprogram): Overriding indicators should be allowed - on protected subprogram bodies, so exclude the case where Pf_Flags is - Pf_Decl_Pbod from the error check. - - * par-ch9.adb (P_Protected_Operation_Items): Permit overriding - indicators on subprograms in protected bodies, and proceed with parsing - the subprogram. - - * sem_ch6.adb (Verify_Overriding_Indicator): Exclude protected - subprograms from the check for primitiveness on subprograms with - overriding indicators. - (Check_Overriding_Indicator): Include protected subprograms in the - style check for missing overriding indicators. - -2009-04-17 Tristan Gingold - - * init.c: Fix stack checking for x86 Darwin. - -2009-04-17 Vincent Celier - - * prj-attr.adb: New project level attribute Object_File_Suffix - (). - - * prj-nmsc.adb (Add_Source): Use the object file suffix to get the - object file name - (Process_Compiler): Process attribute Object_File_Suffix - - * prj.adb (Object_Name): Use suffix Object_File_Suffix instead of - platform suffix, when specified. - - * prj.ads (Language_Config): New component Object_File_Suffix, - defaulted to No_Name. - (Object_Name): New parameter Object_File_Suffix, defaulted to No_Name - - * snames.ads-tmpl: New standard name Object_File_Suffix - -2009-04-17 Robert Dewar - - * gnat_rm.texi: Add documentation about No_Streams restriction - - * sem_attr.adb (Check_Stream_Attribute): Exclude implicit stream - attributes when checking No_Streams restriction. - -2009-04-17 Thomas Quinot - - * rtsfind.ads (RE_Request_Destroy): New PolyORB s-parint entity. - - * exp_dist.adb (PolyORB_Support.Build_General_Calling_Stubs): Add - missing calls to RE_Request_Destroy to deallocate request objects after - use. - -2009-04-17 Nicolas Setton - - * link.c: Fix support for passing a response file under Darwin. - -2009-04-17 Emmanuel Briot - - * prj.adb (Free): new subprogram. - -2009-04-17 Ed Schonberg - - * sem_ch3.adb: additional initialization on incomplete subtypes. - - * sem_ch6.adb (Process_Formals): if the subprogram is in the private - part and one of the formals is an incomplete tagged type, attach to - list of private dependends of the type for later validation. - - * sem_ch7.adb (Uninstall_Declarations): diagnose attempts to declare - primitive operations of a Taft-amendmment type. - - * freeze.adb (Freeze_Entity): Remove tests on formals of an incomplete - type. The check is performed on package exit, possibly after the - subprogram is frozen. - -2009-04-17 Vincent Celier - - * prj-nmsc.adb (Get_Directories): Get the object and exec directory - before looking for source directories, but make sure that there are nil - if they are not explicitely declared and there is explicitely no - sources in the project. - -2009-04-17 Pascal Obry - - * initialize.c: Set gnat_argv with UTF-8 encoded strings on Windows. - - * init.c: Fix minor typo and style fix. - -2009-04-17 Robert Dewar - - * a-except.adb, a-except-2005.adb: Add PE_Address_Of_Intrinsic - - * sem_attr.adb (Analyze_Attribute, case Address): Use - PE_Address_Of_Intrinsic. - - * types.ads: Add PE_Address_Of_Intrinsic - - * types.h: Add PE_Address_Of_Intrinsic - -2009-04-17 Nicolas Setton - - * gcc-interface/Makefile.in: Under darwin, build shared libraries - with install_name starting with "@rpath/". - -2009-04-17 Nicolas Setton - - * link.c: Add darwin section - -2009-04-16 Robert Dewar - - * g-pehage.adb: Minor reformatting - - * sem_ch12.adb: Minor reformatting - - * exp_dist.adb: Minor reformatting - - * bindgen.adb: Minor style fixes. - -2009-04-16 Ed Schonberg - - * sem_eval.adb (Eval_Indexed_Component): Extend constant-folding of - indexed components to the case where the prefix is a static string - literal. - -2009-04-16 Javier Miranda - - * exp_ch3.adb (Expand_N_Object_Declaration): In case of build-in-place - objects avoid any further expansion of the expression initializing the - object. - -2009-04-16 Ed Schonberg - - * sem_ch12.adb (Preanalyze_Actuals): If the instance is a child unit - that hides an outer homograph, make that homograph invisible when - analyzing the actuals, to to prevent illegal direct visibility on it. - -2009-04-16 Eric Botcazou - - * g-pehage.adb (Initialize): Fix off-by-one error. - -2009-04-16 Tristan Gingold - - * init.c: Detect real stack overflow on Darwin. - - * system-darwin-x86.ads: Use stack probing on darwin x86. - -2009-04-16 Ed Schonberg - - * sem_attr.adb (Analyze_Attribute, case 'Address): It is illegal to - take the address of an intrinsic subprogram. - -2009-04-16 Arnaud Charlet - - * gcc-interface/Makefile.in: Change g-trasym to g-trasym-unimplemented - for the targets where GNAT.Traceback.Symbolic is not supported. - -2009-04-16 Vincent Celier - - * g-trasym-unimplemented.ads, g-trasym-unimplemented.adb: New file. - - * g-trasym.ads: Update comments. - -2009-04-16 Vasiliy Fofanov - - * tracebak.c (STOP_FRAME): Verify validity of the current address - before dereferencing. - -2009-04-16 Ed Schonberg - - * sprint.adb (Write_Itype): If the itype is an array subtype, preserve - the original location of the index expressions and the index subtypes, - to prevent spurious out-of-scope references in gigi. - -2009-04-16 Tristan Gingold - - * init.c, s-osinte-darwin.ads, system-darwin-x86_64.ads: - Add support for stack checking on darwin. - -2009-04-16 Vincent Celier - - * prj-attr.adb: New attribute Runtime_Source_Dir - - * prj-nmsc.adb (Process_Project_Level_Array_Attributes): Process - attribute Runtime_Source_Dir. - (Check_Naming_Schemes): Give default values to out parameters to avoid - invalid data. - - * prj.ads (Language_Config): New component Runtime_Source_Dir - - * snames.ads-tmpl: New standard name Runtime_Source_Dir - -2009-04-16 Pascal Obry - - * adaint.h, adaint.c (__gnat_rmdir): New routine. - Simple wrapper routines used to convert to proper encoding on - Windows. - - * s-crtl.ads: Use __gnat_rmdir instead of direct call to the C library. - - * g-dirope.adb (Remove_Dir): Fix a bug, the root directory was removed - twice. - -2009-04-16 Pascal Obry - - * s-crtl.ads, s-os_lib.adb: Minor code clean-up. - -2009-04-16 Thomas Quinot - - * snames.ads-tmpl (Name_Defined): New predefined name for use by the - integrated preprocessor. - - * prep.ads, prep.adb (Setup_Hooks): New subprogram. - (Initialize): Split into two subprograms, Initialize (to be called - prior to compiler command line processing) and Setup_Hooks (to be called - later on when the first source file is loaded). - - * gprep.adb: Change call to Prep.Initialize to call to Prep.Setup_Hooks. - Add call to Prep.Initialize. - - * sinput-l.adb, prepcomp.adb: Change call to Prep.Initialize to call - to Prep.Setup_Hooks. - -2009-04-16 Pascal Obry - - * adaint.h, adaint.c (__gnat_chdir): New routine. - Simple wrapper routines used to convert to proper encoding on - Windows. - - * s-crtl.ads: Use __gnat_chdir instead of direct call to the C library. - - * a-direct.adb, g-dirope.adb: Use chdir from System.CRTL. - -2009-04-16 Quentin Ochem - - * sinput-p.adb (Clear_Source_File_Table): Use Sinput.Initialize instead - of Source.Init. - -2009-04-16 Eric Botcazou - - * a-convec.ads (Is_Empty): Mark inline. - -2009-04-16 Nicolas Roche - - * init.c (__gnat_init_float): Initialize FPU on x86_64 windows - -2009-04-16 Thomas Quinot - - * prepcomp.adb: Minor reformatting - -2009-04-16 Jerome Lambourg - - * sem_prag.adb (Process_Import_Or_Interface): With .NET, - Access_Subprogram types can also be imported. - (Check_Form_Of_Interface_Name): Accept '/' character in entity CIL - names. - -2009-04-16 Ed Schonberg - - * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): - preserve homonym chain when the declaration is rewritten into a - renaming declaration, in order to preserve visibility structure. - -2009-04-16 Jerome Lambourg - - * sem_prag.adb (Analyze_Pragma): Make sure that pragma pack is not - taken into account for VM targets. - -2009-04-16 Hristian Kirtchev - - * g-calend.ads, g-calend.adb (Week_In_Year): Now calls - Year_Week_In_Year. - (Year_Week_In_Year): New routine which contains the original code from - Week_In_Year. Add the missing special case for January 1st falling on - a Monday. - -2009-04-16 Thomas Quinot - - * exp_dist.adb (Build_From_Any_Call): For a subtype that is a generic - actual type, use the base type to build the To_Any function. - (Build_From_Any_Function): Remove junk, useless subtype conversion. - -2009-04-16 Thomas Quinot - - * exp_ch9.adb, exp_code.adb, tbuild.adb, sem_case.adb, - restrict.adb: Minor code reorganization (use - Add_{Char,Str}_To_Name_Buffer instead of inlining it by hand). - -2009-04-16 Bob Duff - - * exp_ch6.ads, exp_ch6.adb (Is_Build_In_Place_Function_Return): Remove, - unused. - -2009-04-16 Thomas Quinot - - * sem_ch4.adb: Minor reformatting - - * adaint.c: Remove junk duplicated code. - - * sem_ch3.adb: Minor reformatting - - * exp_dist.adb: Minor comment rewording - -2009-04-16 Robert Dewar - - * gnat_rm.texi: Document effect of Assume_No_Invalid_Values and -gnatVa - used together. - -2009-04-16 Ed Schonberg - - * sem_ch4.adb (Find_Equality_Types): Filter out types that are not - usable before calling Add_One_Interp, to resolve spurious ambiguities. - -2009-04-16 Robert Dewar - - * Make-lang.in: Add entries for s-conca?.o - - * Makefile.rtl: Add entries for s-conca? - - * debug.adb: Add debug flags -gnatd.c and -gnatd.C to control behavior - of concatenation expansion - - * exp_ch4.adb (Expand_Concatenation): Generate calls for certain - string cases instead of expanding assignments inline. - - * opt.ads (Optimize_Size): New flag - - * s-conca2.ads, s-conca2.adb, s-conca3.adb, s-conca3.ads, - s-conca4.adb, s-conca4.ads, s-conca5.adb, s-conca5.ads, s-conca6.adb, - s-conca6.ads, s-conca7.ads, s-conca7.adb, s-conca8.adb, s-conca8.ads, - s-conca9.adb, s-conca9.ads: New file. - -2009-04-16 Robert Dewar - - * exp_ch6.adb: Add comments - - * rtsfind.ads: Add entries for s-conca? routines - -2009-04-16 Arnaud Charlet - - * gcc-interface/Make-lang.in: Update dependencies. - - * gcc-interface/Makefile.in: Update translation for vms. - -2009-04-16 Ed Schonberg - - * sem_ch12.adb (Map_Formal_Package_Entities): renamed from Map_Entities - and made global, to be used when installing parents of a child - instance, to provide mappings for entities declared in formal packages - of ancestor units. Now called from Install_Formal_Packages. - -2009-04-16 Doug Rupp - - * s-taskin.adb (Initialize_ATCB): Initialize Debug_Events with others - notation for clarity. - - * s-taprop-vxworks.adb, s-taprop-tru64.adb, s-taprop-vms.adb, - s-taprop-mingw.adb, s-taprop-linux.adb, s-taprop-solaris.adb, - s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-posix.adb - (Initialize): Initialize Known_Tasks with Environment task. - - * s-taskin.ads (Task_States): Move new states to end for the sake of - GDB compatibility. - - * s-tassta.adb (Task_Wrapper): Fix comment about Enter_Task. - -2009-04-16 Ed Schonberg - - * exp_ch9.adb (Expand_N_Protected_Type_Declaration): If a protected - operation has an inline pragma, propagate the flag to the internal - unprotected subprogram. - -2009-04-16 Doug Rupp - - * s-taprop-vxworks.adb, s-taprop-tru64.adb, s-taprop-mingw.adb, - s-taprop-linux.adb, s-taprop-solaris.adb, s-taprop-irix.adb, - s-taprop-hpux-dce.adb, s-taprop-posix.adb - (Enter_Task): Move Known_Tasks initialization to s-tassta.adb - - * s-taprop-vms.adb (Enter_Task): Likewise. - (Initialize): Import DBEXT, Debug_Register. Register DBGEXT callback. - - * s-tassta.adb (Activate_Tasks): After task creation set state to - Activating, vice Runnable. Initialize Known_Tasks, moved here from - s-taprop.adb (Enter_Task). Set Debug_Event_Activating for debugger. - Set state to Runnable after above. - (Task_Wrapper): Set Debug_Event_Run. In exception block set - Debug_Event_Terminated. - - * s-taskin.ads (Task_States): Add new states Activiting and - Activator_Delay_Sleep. - (Bit_Array, Debug_Event_Array): New types. - (Global_Task_Debug_Event_Set: New flag. - (Common_ATCB): New field Debug_Events. - - * s-taskin.adb (Initialize_ATCB): Initialize Debug_Events. - - * s-tasren.adb (Timed_Selective_Wait): Set Activator_Delay_Sleep vice - Activator_Sleep. - - * s-tasini.adb (Locked_Abort_To_Level): Add case alternatives for when - Activating and when Acceptor_Delay_Sleep. - - * s-tasdeb.ads: Add constants for Debug_Events. - (Debug_Event_Kind_Type): New subtype. - (Signal_Debug_Event): New subprogram. - - * s-tasdeb.adb (Signal_Debug_Event): New null subprogram. - -2009-04-16 Thomas Quinot - - * sem_elim.adb: Minor reformatting - - * freeze.adb: Minor reformatting - - * exp_ch4.adb: Minor reformatting - -2009-04-16 Emmanuel Briot - - * prj-nmsc.adb (Path_Name_Of): fix memory leak - -2009-04-16 Robert Dewar - - * sinfo.ads (Backwards_OK, Forwards_OK): Clarify documentation - -2009-04-16 Vincent Celier - - * fmap.adb (Initialize): Show the current line when the mapping file - is detected as "incorrectly formatted". - -2009-04-16 Robert Dewar - - * sem_ch12.adb: Minor reformatting - - * sem_ch5.adb: Minor comment addition - - * sem_util.adb: Minor reformatting - - * sinput-p.adb: Minor reformatting - Add missing pragma Warnings (On) - -2009-04-16 Ed Falis - - * s-vxwext-kernel.adb: (ERROR): deleted unused constant - -2009-04-16 Vincent Celier - - * ali-util.adb: Minor comment spelling error fix - -2009-04-16 Eric Botcazou - - * exp_ch5.adb (Expand_Assign_Array): For the GCC back-end, do not - generate an assignment loop in case of overlap. - -2009-04-16 Olivier Hainque - - * gnat_ugn.texi (gnatmem description): Make it explicit that - gnatmem is designed to work in association with static runtime - library only. - -2009-04-16 Thomas Quinot - - * sem_type.adb: Minor reformatting - -2009-04-16 Hristian Kirtchev - - * s-osprim-darwin.adb, s-osprim-posix.adb (Clock): Add comment - concerning return codes of gettimeofday and return value check. - -2009-04-16 Ed Falis - - * s-vxwext-kernel.ads (Int_Lock, Int_Unlock): set to convention C so - body can be renaming of imported routines. - -2009-04-16 Vasiliy Fofanov - - * s-asthan-vms-alpha.adb: Disable warnings on alignment in a more - targeted fashion. - -2009-04-15 Hristian Kirtchev - - * exp_ch9.adb: Comment improvements. - (Build_Entry_Family_Name): Add parentheses around the index of a entry - family member. - -2009-04-15 Bob Duff - - * sem_warn.adb (Check_Infinite_Loop_Warning): Catch cases like - "while X /= null loop" where X is unchanged inside the loop. We were - not warning in this case, because of the pointers -- we feared that the - loop variable could be updated via a pointer, if there are any pointers - around the place. But that is impossible in this case. - - * sem_util.adb (May_Be_Lvalue): This routine was overly pessimistic in - the case of dereferences. In X.all, X cannot be an l-value. We now - catch that case (and implicit dereferences, too). - -2009-04-15 Vincent Celier - - * sinput-p.ads, sinput-p.adb (Clear_Source_File_Table): New procedure - -2009-04-15 Ed Schonberg - - * sem_ch12.adb (Is_Actual_Of_Previous_Formal): Make fully recursive. - From code reading. - (Analyze_Package_Instantiation): If generic unit in child instance is - the same as generic unit in parent instance, look for an outer homonym - to locate the desired generic. - -2009-04-15 Bob Duff - - * sem_ch5.adb (Analyze_Loop_Statement): Don't check for infinite loop - warnings unless the loop comes from source, because checking generated - loops is a waste of time, and makes it harder to debug - Check_Infinite_Loop_Warning. - - * sem_warn.adb (Check_Infinite_Loop_Warning): If the local variable - tested in the while loop is a renaming, do not warn. Otherwise, we get - false alarms, because it's usually renaming something that we can't - deal with (an indexed component, a global variable, ...). - - * gnat_rm.texi: Fix typo - -2009-04-15 Thomas Quinot - - * sem_ch6.adb: Minor reformatting - -2009-04-15 Hristian Kirtchev - - * exp_ch7.adb (Expand_Ctrl_Function_Call): Check for the case where the - immediate parent of the controlled function call is a component - association. - -2009-04-15 Ed Schonberg - - * sem_ch8.adb (Use_One_Type): If the type is tagged, indicate that the - corresponding class-wide type is also in use. - -2009-04-15 Thomas Quinot - - * frontend.adb: Minor comment fix - -2009-04-15 Robert Dewar - - * gnatchop.adb (BOM_Length): New global variable - (Write_Unit): Add new parameter Write_BOM - (Write_Chopped_Files): Check for BOM and set Write_BOM for call - to Write_Unit - - * gnat_ugn.texi: Add note on propagation of BOM by gnatchop - -2009-04-15 Geert Bosch - - * system-mingw-x86_64.ads, system-darwin-x86_64.ads - (Backend_Overflow_Checks): Set to True. - -2009-04-15 Gary Dismukes - - * par-ch3.adb (P_Type_Declaration): Issue an error if the synchronized - keyword is given in a record extension. - -2009-04-15 Hristian Kirtchev - - * exp_ch7.adb (Expand_Ctrl_Function_Call): Procede with the expansion - of a controlled function call in the context of a record aggregate. - This does not apply to array aggregates since the call will be expanded - into assignments. - -2009-04-15 Ed Falis - - * s-osinte-vxworks-kernel.adb, s-osinte-vxworks.adb, - s-osinte-vxworks.ads s-vxwext.ads, s-vxwext-kernel.adb, - s-vxwext-kernel.ads, s-vxwext-rtp.ads, s-vxwext-rtp.adb: Reorganize - s-osinte-vxworks* and s-vxwext*. - -2009-04-15 Arnaud Charlet - - * gcc-interface/Make-lang.in: Update dependencies. - - * gcc-interface/Makefile.in: Reorganization of s-osinte-vxworks* - and s-vxwext*. - -2009-04-15 Robert Dewar - - * sem_ch13.adb (Unchecked_Conversions): Store source location instead - of node for location for warning messages. - - * gnatchop.adb: Minor reformatting - -2009-04-15 Ed Schonberg - - * exp_ch6.adb: additional guard for renaming declarations for in - parameters of an array type. - -2009-04-15 Robert Dewar - - * sem_eval.adb (Get_Static_Length): Go to origin node for array bounds - in case they were rewritten by expander (Force_Evaluation). - - * targparm.adb (Get_Target_Parameters): Correct check for - Suppress_Exception_Locations. - -2009-04-15 Ed Schonberg - - * exp_ch6.adb (Expand_Inlined_Call): If an in-parameter in a call to be - inlined is of an array type that is not bit-packed, use a renaming - declaration to capture its value, rather than a constant declaration. - -2009-04-15 Robert Dewar - - * rtsfind.adb: Minor reformatting. - -2009-04-15 Emmanuel Briot - - * prj-part.adb, prj-tree.adb, prj-tree.ads (Restore_And_Free): renames - Restore, and free the saved context. - -2009-04-15 Gary Dismukes - - * sem_ch3.adb (Analyze_Private_Extension_Declaration): Move error check - for illegal private extension from a synchronized interface parent in - front of check for illegal limited extension so that limited extension - from a synchronized interface will be rejected. - (Check_Ifaces): Check that a private extension that has a synchronized - interface as a progenitor must be explicitly declared synchronized. - Also check that a record extension cannot derive from a synchronized - interface. - -2009-04-15 Pascal Obry - - * adaint.h (__gnat_unlink): Add spec. - (__gnat_rename): Likewise. - -2009-04-15 Vincent Celier - - * prj-nmsc.adb: Minor spelling error corrections in error messages - -2009-04-15 Robert Dewar - - * sinfo.ads: Minor comment update - - * opt.ads: Minor comment updates - - * checks.adb (Enable_Overflow_Check): Do not set Do_Overflow_Check for - modular type. - -2009-04-15 Ed Schonberg - - * exp_disp.ads, exp_disp.adb (Register_Primitive): Is now a function - that generates the code needed to update a dispatch table when a - primitive operation is declared with a subprogram body without previous - spec. Insertion of the generated code is responsibility of the caller. - (Make_DT): When building static tables, append the code created by - Register_Primitive to update a secondary table after it has been - constructed. - - * exp_ch3.adb, exp_ch6.adb: use new version of Register_Primitive. - - * sem_disp.adb (Check_Dispatching_Operation): Call Register_Primitive - on an overriding operation that implements an interface operation only - if not building static dispatch tables. - -2009-04-15 Hristian Kirtchev - - * a-caldel-vms.adb (To_Duration): Declare a "safe" end of time which - does not cause overflow when converted to Duration. Use the safe value - as the maximum allowable time delay.. - -2009-04-15 Jerome Lambourg - - * g-comlin.adb (Set_Command_Line): When adding a switch with attached - parameter, specify that the delimiter is NUL, otherwise "-j2" will be - translated to "-j 2". - -2009-04-15 Bob Duff - - * rtsfind.adb (Maybe_Add_With): Split out procedure to add implicit - with_clauses, to avoid code duplication. Change this processing so we - always add a with_clause on the main unit if needed. - -2009-04-15 Pascal Obry - - Add support for Win32 native encoding for delete/rename routines. - - * adaint.c (__gnat_unlink): New routine. - (__gnat_rename): New routine. - Simple wrapper routines used to convert to proper encoding on - Windows. - - * s-os_lib.adb: Use __gnat_unlink and __gnat_rename instead of direct - call to the C library. - - * g-sercom-mingw.adb, s-win32.ads: Update Win32 binding. - -2009-04-15 Robert Dewar - - * s-tassta.adb: Minor reformatting - -2009-04-15 Robert Dewar - - * frontend.adb (Frontend): Set proper default for - Warn_On_Non_Local_Exception. - - * opt.ads (Exception_Handler_Encountered): New flag - (No_Warn_On_Non_Local_Exception): New flag - - * par-ch11.adb (P_Exception_Handler): Set Exception_Handler_Encountered - - * sem_warn.adb (Set_Warning_Switch): Set No_Warn_On_Non_Local_Exception - (Set_Dot_Warning_Switch): Set No_Warn_On_Non_Local_Exception - -2009-04-15 Cyrille Comar - - * s-tassta.adb, a-exextr.adb, a-elchha.adb - (Ada.Exception.Last_Chance_Handler): Do not print unhandled exception - message when exception traces are active since it would generate - redundant information. - (Exception_Traces.Notify_Exception): put message output by a critical - section to avoid unsynchronized output. - (Trace_Unhandled_Exception_In_Task): put message output by a critical - section to avoid unsynchronized output. - -2009-04-15 Emmanuel Briot - - * g-comlin.adb, prj-tree.adb, prj-tree.ads, prj.adb, prj.ads - (Free): New subprogram. - -2009-04-15 Hristian Kirtchev - - * a-calend.adb: Add new constant Nanos_In_Four_Years. - (Formatting_Operations.Time_Of): Change the way four year chunks of - nanoseconds are added to the intermediate result. - -2009-04-15 Nicolas Setton - - * sysdep.c: Add __APPLE__ in the list of systems where get_immediate - does not need to wait for a carriage return. - -2009-04-15 Tristan Gingold - - * bindgen.adb: Do not generate adafinal if No_Finalization restriction - is set. - -2009-04-15 Ed Schonberg - - * freeze.adb (Freeze_Entity): improve error message for improper use of - incomplete types. - Diagnose additional illegal uses of incomplete types in formal parts. - appearing in formal parts. - - * sem_ch6.adb (Process_Formals, Analyze_Return_Type): ditto. - -2009-04-15 Robert Dewar - - * exp_ch4.adb (Expand_N_Allocator): Install test for object too large. - -2009-04-15 Nicolas Roche - - * adaint.c: Add function __gnat_lwp_self that retrieves the LWP of the - current thread. - - * s-osinte-linux.ads: Import the __gnat_lwp_self function as lwp_self - - * s-taprop-linux.adb (Enter_Task): Store the LWP in the TCB - -2009-04-15 Ed Schonberg - - * sem_ch4.adb: improve error message on exponentiation. - -2009-04-15 Hristian Kirtchev - - * a-calend.adb: Move constant Epoch_Offset from package - Conversion_Operations to top level. - (Delay_Operations.To_Duration): Define a constant which represents - "end of time" and use it as a guard against very distant delay dates. - Protect the code against overflow when performing the origin shift to - Unix time. - -2009-04-15 Robert Dewar - - * sem_prag.adb: Minor reformatting. - - * sem_type.adb: Minor reformatting - -2009-04-15 Javier Miranda - - * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Add missing - support to check eliminated subprograms. - - * sem_elim.ads (Eliminate_Error_Msg): Update documentation. - - * sem_elim.adb (Set_Eliminated): Add support for elimination of - dispatching subprograms. - - * exp_disp.adb (Make_DT): Minor code cleanup when freezing primitive - operations. Initialize with "null" the slots of eliminated dispaching - primitives. - (Write_DT): Add output for eliminated primitives. - - * sem_disp.adb (Check_Dispatching_Call): Check eliminated primitives. - -2009-04-15 Ed Schonberg - - * sem_ch8.adb (Use_One_Type): If both clauses appear on the same unit, - the second is redundant, regardless of scopes. - -2009-04-15 Vincent Celier - - * prj-nmsc.adb (Get_Directories): Check for sources before checking - the object directory as when there are no sources, they may not be any - object directory. - - * make.adb (Gnatmake): Do not attempt to get the path name of the exec - directory, when there are no exec directory. - -2009-04-15 Ed Schonberg - - * sem_type.adb (Remove_Conversions): In order to resolve spurious - ambiguities, refine removal of universal interpretations from complex - expressions with literal arguments, when some numeric operators have - been declared abstract. - -2009-04-15 Ed Falis - - * init.c: Map SIGSEGV to Storage_Error for all targets for uniformity - and backward compatibility for targets using probing for stack overflow - -2009-04-15 Ed Schonberg - - * sem_prag.adb (Analyze_Pragma, case 'Obsolescent): Pragma is legal - after any declaration, including renaming declarations. - -2009-04-15 Arnaud Charlet - - * gcc-interface/Make-lang.in: Update dependencies. - - * gcc-interface/Makefile.in: Fix VxWorks target pairs. - Update xenomai target pairs. - -2009-04-15 Javier Miranda - - * exp_ch4.adb (Expand_N_Allocator): Code cleanup. - - * sem_ch6.adb (Check_Anonymous_Return): Add missing support for - functions returning anonymous access to class-wide limited types. Mark - also the containing scope as a task master. - - * sem_ch8.adb (Restore_Scope_Stack): Add missing management for - limited-withed packages. Required to restore their visibility after - processing packages associated with implicit with-clauses. - - * exp_ch3.adb (Build_Class_Wide_Master): Avoid marking masters - associated with return statements because this work is now done by - Check_Anonymous_Return. - (Build_Master): Code cleanup. - -2009-04-15 Thomas Quinot - - * sem_warn.ads: Minor reformatting - -2009-04-15 Ed Schonberg - - * sem_ch3.adb: better error message for illegal interfaces - - * sem_ch6.adb (Possible_Freeze): Delay freezing a subprogram if a - formal is an incomplete type from a limited_with clause. - -2009-04-15 Vincent Celier - - * prj-nmsc.adb (Locate_Directory): New Boolean parameter - Externally_Built indicating if the project is externally built. If it - is, and --subdirs is specified, but the subdir does not exist, look - for the specified directory, without the subdir. - -2009-04-15 Gary Dismukes - - * a-tasatt.adb: Fix typo, plus minor reformatting - - * sem_ch3.ads: Add missing hyphen ("class wide" => "class-wide"). - - * sem_ch10.adb: Add missing hyphen ("use visible" => "use-visible"). - -2009-04-15 Ed Schonberg - - * sem_ch3.adb (Analyze_Private_Extension_Declaration): Verify that a - private extension whose parent is a synchronized interface carries an - explicit synchronized keyword. - -2009-04-15 Thomas Quinot - - * exp_smem.adb (Make_Shared_Var_Procs): For a protected type, - instantiate generic shared object package with the corresponding - record type. - -2009-04-15 Arnaud Charlet - - * system-linux-sparc.ads: Remove obsolete entries. - -2009-04-15 Thomas Quinot - - * s-tasuti.ads: Add ??? comment - -2009-04-15 Ed Schonberg - - * sem_ch3.adb (Analyze_Type_Declaration): Create freeze node for access - type even if the designated type comes from a limited_with clause, to - ensure that the symbol for the finalization list of the access type is - created. - -2009-04-10 Robert Dewar - - * sem_warn.ads, sem_warn.adb (Check_Low_Bound_Tested): Catch more cases - for warning suppression. - -2009-04-10 Ed Schonberg - - * sem_ch8.adb (Use_One_Type): If the two use_type clauses are - identical, there is no redudancy to check. - -2009-04-10 Gary Dismukes - - * exp_ch5.adb (Expand_N_Extended_Return_Statement): Delete redundant - calls initializing SS_Allocator (which is initialized in following - code). - (Expand_Simple_Function_Return): Add comment about False value for - Comes_From_Source on secondary-stack allocator. - - * exp_ch9.adb (Build_Entry_Family_Name): Add comment. - (Build_Entry_Name): Add comment. - -2009-04-10 Robert Dewar - - * einfo.ads, einfo.adb (Low_Bound_Tested): New name for Low_Bound_Known - - * sem_prag.adb (Analyze_Pragma, case Check): Remove check for lower - bound tested, since this is now done more generally in Sem_Res. - - * sem_res.adb (Resolve_Comparison_Op): Add call to - Check_Lower_Bound_Tested. - (Resolve_Equality_Op): Add call to Check_Lower_Bound_Tested - - * sem_warn.ads, sem_warn.adb (Check_Low_Bound_Tested): New procedure - (Low_Bound_Tested): New name for Low_Bound_Known flag - - * exp_ch5.adb: Minor reformatting - - * exp_ch4.adb: - Add comments on copying the Comes_From_Source flag for allocators - - * sinfo.ads: - Add comments on copying the Comes_From_Source flag for allocators - - * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Copy - Comes_From_Source flag from old allocator to new one. - -2009-04-10 Ed Schonberg - - * sem_ch6.ads: Address missing documentation query - -2009-04-10 Vincent Celier - - * prj-attr.adb: - Add new Linker attributes Max_Command_Line_Length, Response_File_Format - and Response_File_Switches. - - * prj-nmsc.adb (Process_Linker): Process new attributes - Max_Command_Line_Length, Response_File_Format and - Response_File_Switches. - - * prj.ads (Response_File_Format): New enumeration type - (Project_Configuration): New componants Max_Command_Line_Length, - Resp_File_Format and Resp_File_Options. - - * snames.ads-tmpl: Add new standard names for linking response files - for gprbuild: GNU, None, Object_List, Option_List, - Max_Command_Line_Length, Response_File_Format and - Response_File_Switches. - -2009-04-10 Geert Bosch - - * system-aix.ads, system-darwin-ppc.ads, system-darwin-x86.ads, - system-freebsd-x86.ads, system-hpux.ads, system-hpux-ia64.ads, - system-irix-n32.ads, system-irix-o32.ads, system-linux-alpha.ads, - system-linux-hppa.ads, system-linux-ia64.ads, system-linux-ppc.ads, - system-linux-s390.ads, system-linux-s390x.ads, system-linux-sh4.ads, - system-linux-sparc.ads, system-linux-x86_64.ads, system-linux-x86.ads, - system-mingw.ads, system-solaris-sparc.ads, system-solaris-sparcv9.ads, - system-solaris-x86.ads, system-tru64.ads, system-vms_64.ads, - system-vms.ads, system-vms-ia64.ads, system-vms-zcx.ads, - system-vxworks-arm.ads, system-vxworks-m68k.ads, - system-vxworks-mips.ads, system-vxworks-ppc.ads, - system-vxworks-sparcv9.ads, system-vxworks-x86.ads - (Backend_Overflow_Checks): Set to True. - -2009-04-10 Thomas Quinot - - * exp_attr.adb: Minor reformatting - -2009-04-10 Ed Schonberg - - * sem_prag.adb (Check_Precondition_Postcondition): Within a generic, - analyze the expression for a postcondition, even if the compiler mode - is Generate_Code. - -2009-04-10 Robert Dewar - - * sem_aux.adb: Minor reformatting - -2009-04-10 Ed Falis - - * init.c: Change VxWorks 6 stack overflow checking for kernel apps. - - * system-vxworks-ppc.ads, system-vxworks-x86.ads: Update header. - -2009-04-10 Thomas Quinot - - * sem_ch6.ads (Check_Subtype_Conformant): Add ??? comment for - undocumented formal. - Minor reformatting - - * a-direio.ads: Fix typo in comment - - * sem_ch3.adb, g-dirope.adb, sem_type.adb, sem_ch12.adb, sem_case.adb, - errout.adb, sem_ch4.adb, sem_ch11.adb, exp_dist.adb, sem_ch13.adb: - Use uniform phrasing for comment at start of subprogram body. - - * xsnamest.adb: Add note to explain why we use specific names for the - newly generated files instead of generating snames.{ads,adb,h} directly - -2009-04-10 Sergey Rybin - - * vms_data.ads: - Add qualifier for new gnatstub option '--no-exception' - - * gnat_ugn.texi: - Add the description of the new gnatstub option '--no-exception' - -2009-04-10 Robert Dewar - - * rtsfind.adb: Minor reformatting - -2009-04-10 Thomas Quinot - - * sem_disp.adb: Minor reformatting. - Add comment pointing to RM clause for the case of warning against a - (failed) attempt at declaring a primitive operation elsewhere than in a - package spec. - -2009-04-10 Ed Schonberg - - * sem_ch12.adb (Denotes_Formal_Package): Check whether the package is - an actual for a previous formal package of the current instance. - -2009-04-10 Bob Duff - - * rtsfind.adb (RTE): Put implicit with_clauses on whatever unit needs - them first, rather than on the extended main unit. - -2009-04-10 Ed Schonberg - - * sem_ch6.adb (Check_Discriminant_Conformance): If discriminant - specification of full view carries a null exclusion indicator, create - an itype for it, to check for conformance with partial view. - -2009-04-10 Bob Duff - - * rtsfind.ads: Minor code change: make RE_Unit_Table constant. - - * rtsfind.adb: Minor comment changes, and remove useless code. - - * sinfo.ads: Add ??? comment. - -2009-04-10 Vincent Celier - - * vms_data.ads: Add missing GNAT SYNC VMS qualifiers -main= and -U - -2009-04-10 Ed Schonberg - - * exp_attr.adb (Expand_N_Attribute_Reference, case 'Tag): If the tagged - type is a synchronized type, retrieve tag information from the - corresponding record, which has the dispatch table link. - -2009-04-10 Jerome Lambourg - - * g-comlin.adb (Group_Analysis): Take care of switches that might be - decomposed afterwards, but are present as-is in the command line - configuration, and thus should be kept as-is. - -2009-04-10 Robert Dewar - - * gnat_rm.texi: Document that postconditions are tested on implicit - returns. - - * sem_aux.adb: Minor reformatting - -2009-04-10 Gary Dismukes - - * itypes.adb (Create_Null_Excluding_Itype): Apply Base_Type when - setting Etype. - - * par-ch3.adb (P_Access_Type_Definition): Set new attribute - Null_Exclusion_In_Return_Present when an access-to-function type has a - result type with an explicit not null. - - * sem_ch3.adb (Access_Subprogram_Definition): If a null exclusion is - given on the result type, then create a null-excluding itype for the - function. - - * sem_ch6.adb (Analyze_Return_Type): Create a null-excluding itype in - the case where a null exclusion is imposed on a named access type. - (Analyze_Subprogram_Specification): Push and pop the scope of the - function around the call to Analyze_Return_Type in the case of no - formals, for consistency with handling when formals are present - (Process_Formals does this). Ensures that any itype created for the - return type will be associated with the proper scope. - - * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): If a null - exclusion is given on a generic function's result type, then create a - null-excluding itype for the generic function. - (Instantiate_Object): Set Null_Exclusion_Present of a constant created - for an actual for a formal in object according to the setting on the - formal. Ensures null exclusion checks are done when the association is - elaborated. - - * sinfo.ads: Add new flag Null_Exclusion_In_Return_Present on - N_Access_Function_Definition. - - * sinfo.adb: Add Get_ and Set_ operations for - Null_Exclusion_In_Return_Present. - -2009-04-10 Bob Duff - - * exp_ch5.adb, exp_ch6.adb, sem_ch6.adb: Move the code that creates a - call to the _Postconditions procedure in the case of implicit returns - from analysis to expansion. This eliminates some duplicated code. Use - the Postcondition_Proc to find the identity of this procedure during - expansion. - -2009-04-10 Robert Dewar - - * sem_ch6.adb: Minor code clean up. - - * einfo.ads, sem_attr.adb: Minor comment fixes. - -2009-04-10 Robert Dewar - - * sem_ch8.adb: Minor reformatting - -2009-04-10 Robert Dewar - - * einfo.ads, einfo.adb (Postcondition_Proc): New attribute for - procedures. - - * sem_ch6.adb: Minor code clean up. - -2009-04-10 Robert Dewar - - * mlib-tgt-specific-xi.adb: Minor reformatting - -2009-04-10 Bob Duff - - * einfo.ads: Minor comment fixes - -2009-04-10 Vincent Celier - - * snames.ads-tmpl: Remove names that are no longer used in the - Project Manager. - Mark specifically those that are used only in gprbuild - -2009-04-10 Eric Botcazou - - * init.c: Adjust EH support code on Alpha/Tru64. - -2009-04-10 Bob Duff - - * sem_ch6.adb (Process_PPCs): Add a call to the _Postconditions - procedure on every path that could return implicitly (not via a return - statement) from a procedure. - -2009-04-10 Ed Schonberg - - * exp_ch9.adb (Build_Master_Entity): An extended return statement is a - valid scope for a task declarations and therefore for a master id. - -2009-04-10 Robert Dewar - - * sem_aux.adb: Minor reformatting - -2009-04-10 Vincent Celier - - * scn.adb (Obsolescent_Check_Flag): New Boolean flag, initialized to - True. - (Obsolescent_Check): Do nothing if Obsolescent_Check_Flag is False - (Set_Obsolescent_Check): New procedure to change the value of - Obsolescent_Check_Flag. - - * scn.ads (Set_Obsolescent_Check): New procedure to control - Obsolescent_Check. - - * sinput-l.adb (Load_File): Do not check for pragma Restrictions on - obsolescent features while preprocessing. - -2009-04-10 Thomas Quinot - - * xsnamest.adb: Use XUtil to have uniform line endings (UNIX style) in - generated files on all platforms. - -2009-04-10 Robert Dewar - - * sem_aux.adb: Minor reformatting - -2009-04-10 Ed Schonberg - - * sem_ch3.adb (Access_Definition): Handle properly the case of a - protected function with formals that returns an anonymous access type. - -2009-04-10 Thomas Quinot - - * sem_disp.adb: Minor reformatting - -2009-04-10 Vasiliy Fofanov - - * seh_init.c: Do not use the 32-bit specific implementation of - __gnat_install_SEH_handler on 64-bit Windows target (64-bit specific - version TBD). - -2009-04-10 Jose Ruiz - - * mlib-tgt-specific-xi.adb (Get_Target_Prefix): Target_Name may contain - a '/' at the end so we better use the complete target name to determine - whether it is a PowerPC 55xx target. - -2009-04-10 Thomas Quinot - - * sem_eval.adb: Minor reformatting - -2009-04-10 Thomas Quinot - - * snames.h, snames.ads, snames.adb: Remove files, now generated from - templates. - - * snames.h-tmpl, snames.ads-tmpl, snames.adb-tmpl: Templates for the - above. - - * xsnamest.adb: New file. - - * gcc-interface/Make-lang.in: New target for automated generation of - snames.ads, snames.adb and snames.h - -2009-04-10 Tristan Gingold - - * gcc-interface/Makefile.in, gcc-interface/utils.c: Include "rtl.h" to - avoid compile time warnings. - Do not add gcc/config in include search list while compiling the RTS. - Pragma Thread_Local_Storage is available on any target. - -2009-04-10 Bob Duff - - * sem.ads, par.adb, sem_ch6.adb, sem_ch8.adb: Minor comment fixes. - -2009-04-10 Tristan Gingold - - * init.c: Install signal handler on Darwin. - -2009-04-10 Robert Dewar - - * sem_prag.adb: Minor reformatting - - * exp_util.adb (Make_Non_Empty_Check): New function - (Silly_Boolean_Array_Not_Test): Add call to Make_Non_Empty_Check - (Silly_Boolean_Array_Xor_Test): Use Make_Non_Empty_Check - -2009-04-10 Arnaud Charlet - - * make.adb, gnatlink.adb: Rename JGNAT toolchain. - -2009-04-10 Jose Ruiz - - * mlib-tgt-specific-xi.adb (Get_Target_Prefix): Insert the appropriate - tool prefix for AVR and PowerPC 55xx targets. - -2009-04-10 Robert Dewar - - * sem_warn.adb (Within_Postcondition): New function - (Check_Unset_Reference): Use Within_Postcondition to stop bad warning - -2009-04-10 Robert Dewar - - * sem_warn.adb: Minor reformatting - - * make.adb: Minor reformatting. - -2009-04-10 Gary Dismukes - - * exp_ch7.adb (Find_Final_List): When creating a finalization-chain - entity and the scope is a subprogram, retrieve the Sloc of the - subprogram's body rather than using the sloc of the spec, for better - line-stepping behavior in gdb. - (Wrap_Transient_Declaration): For the Sloc of nodes created with a list - controller, use the Sloc of the first declaration of the containing list - rather than that of the node that triggered creation of the list - controller. - -2009-04-10 Vincent Celier - - * prj-nmsc.adb (Check_Naming_Schemes): Initialize local variable Casing - to avoid gcc warning. - -2009-04-10 Robert Dewar - - * g-comlin.adb: Add ??? comment - -2009-04-10 Ed Schonberg - - * sem_warn.adb (Check_Unused_Withs): Do not emit message about - unreferenced entities for a package with no visible declarations. - -2009-04-10 Robert Dewar - - * exp_ch9.adb: Minor reformatting - -2009-04-10 Thomas Quinot - - * sem_prag.adb: Minor reformatting - -2009-04-10 Vincent Celier - - * prj-nmsc.adb: - (Check_Library_Attributes): For a project qualified as a library project - that is not a library project, indicate in the error message which - attributes are missing (Library_Dir and/or Library_Name). - -2009-04-10 Bob Duff - - * exp_ch5.adb, exp_ch9.adb: Avoid use of No_Position in Sloc of - generated nodes, because it might confuse various circuits in the FE. - -2009-04-10 Ed Schonberg - - * sem_prag.adb (Analyze_Pragma, case Task_Name): Do not expand argument - of pragma. It will be recopied and analyzed when used in call to - Create_Task. - - * sem_res.adb (Resolve_Call): Clarify use of secondary stack within - initialization operations and recognize use of it in procedure calls - within init_procs. - - * exp_ch9.adb (Make_Task_Create_Call): Copy full tree of Task_Name - argument, because it may have side-effects. - - * exp_ch2.adb: Remove obsolete comments on default functions - -2009-04-10 Jose Ruiz - - * adaint.c (RTX section): Do for RTX the same thing as we do for - Windows (include ctype.h and define a fallback ISALPHA if IN_RTS). - -2009-04-10 Robert Dewar - - * sem_aux.ads, sem_aux.adb (Nearest_Current_Scope): New function. - - * sem_res.adb (Resolve_Call): Fix test for - Suppress_Value_Tracking_On_Call (was wrong for the case of a call from - a non-dynamic scope). - -2009-04-10 Robert Dewar - - * make.adb: Add comment. - Minor reformatting - -2009-04-10 Nicolas Setton - - * s-osprim-darwin.adb: New file. - - * s-osinte-darwin.adb, s-osinte-darwin.ads: Fix binding to timespec. - -2009-04-10 Thomas Quinot - - * g-socket.ads: Add comment clarifying alignment requirement for Fd_Set - -2009-04-09 Nick Clifton - - * adadecode.h: Change copyright header to refer to version - 3 of the GNU General Public License with version 3.1 of the - GCC Runtime Library Exception and to point readers at the - COPYING3 and COPYING3.RUNTIME files and the FSF's license web - page. - * 9drpc.adb: Likewise. - * a-assert.adb: Likewise. - * a-astaco.adb: Likewise. - * a-calari.adb: Likewise. - * a-calcon.adb: Likewise. - * a-calcon.ads: Likewise. - * a-caldel.ads: Likewise. - * a-calend-vms.adb: Likewise. - * a-calend-vms.ads: Likewise. - * a-calend.adb: Likewise. - * a-calend.ads: Likewise. - * a-calfor.adb: Likewise. - * a-catizo.adb: Likewise. - * a-cdlili.adb: Likewise. - * a-cdlili.ads: Likewise. - * a-cgaaso.adb: Likewise. - * a-cgaaso.ads: Likewise. - * a-cgarso.adb: Likewise. - * a-cgcaso.adb: Likewise. - * a-chacon.adb: Likewise. - * a-chacon.ads: Likewise. - * a-chahan.adb: Likewise. - * a-chahan.ads: Likewise. - * a-chlat9.ads: Likewise. - * a-chtgke.adb: Likewise. - * a-chtgke.ads: Likewise. - * a-chtgop.adb: Likewise. - * a-chtgop.ads: Likewise. - * a-chzla1.ads: Likewise. - * a-chzla9.ads: Likewise. - * a-cidlli.adb: Likewise. - * a-cidlli.ads: Likewise. - * a-cihama.adb: Likewise. - * a-cihama.ads: Likewise. - * a-cihase.adb: Likewise. - * a-cihase.ads: Likewise. - * a-ciorma.adb: Likewise. - * a-ciorma.ads: Likewise. - * a-ciormu.adb: Likewise. - * a-ciormu.ads: Likewise. - * a-ciorse.adb: Likewise. - * a-ciorse.ads: Likewise. - * a-clrefi.adb: Likewise. - * a-clrefi.ads: Likewise. - * a-cohama.adb: Likewise. - * a-cohama.ads: Likewise. - * a-cohase.adb: Likewise. - * a-cohase.ads: Likewise. - * a-cohata.ads: Likewise. - * a-coinve.adb: Likewise. - * a-coinve.ads: Likewise. - * a-colien.adb: Likewise. - * a-colien.ads: Likewise. - * a-colire.adb: Likewise. - * a-colire.ads: Likewise. - * a-comlin.adb: Likewise. - * a-comlin.ads: Likewise. - * a-convec.adb: Likewise. - * a-convec.ads: Likewise. - * a-coorma.adb: Likewise. - * a-coorma.ads: Likewise. - * a-coormu.adb: Likewise. - * a-coormu.ads: Likewise. - * a-coorse.adb: Likewise. - * a-coorse.ads: Likewise. - * a-coprnu.adb: Likewise. - * a-coprnu.ads: Likewise. - * a-crbltr.ads: Likewise. - * a-crbtgk.adb: Likewise. - * a-crbtgk.ads: Likewise. - * a-crbtgo.adb: Likewise. - * a-crbtgo.ads: Likewise. - * a-crdlli.adb: Likewise. - * a-crdlli.ads: Likewise. - * a-cwila1.ads: Likewise. - * a-cwila9.ads: Likewise. - * a-decima.adb: Likewise. - * a-decima.ads: Likewise. - * a-diocst.adb: Likewise. - * a-diocst.ads: Likewise. - * a-direct.adb: Likewise. - * a-direct.ads: Likewise. - * a-direio.adb: Likewise. - * a-direio.ads: Likewise. - * a-dirval-mingw.adb: Likewise. - * a-dirval-vms.adb: Likewise. - * a-dirval.adb: Likewise. - * a-dirval.ads: Likewise. - * a-dynpri.adb: Likewise. - * a-einuoc.adb: Likewise. - * a-einuoc.ads: Likewise. - * a-elchha.adb: Likewise. - * a-elchha.ads: Likewise. - * a-envvar.adb: Likewise. - * a-excach.adb: Likewise. - * a-except-2005.adb: Likewise. - * a-except-2005.ads: Likewise. - * a-except.adb: Likewise. - * a-except.ads: Likewise. - * a-excpol-abort.adb: Likewise. - * a-excpol.adb: Likewise. - * a-exctra.adb: Likewise. - * a-exctra.ads: Likewise. - * a-exetim-mingw.adb: Likewise. - * a-exetim-mingw.ads: Likewise. - * a-exexda.adb: Likewise. - * a-exexpr-gcc.adb: Likewise. - * a-exexpr.adb: Likewise. - * a-exextr.adb: Likewise. - * a-exstat.adb: Likewise. - * a-filico.adb: Likewise. - * a-filico.ads: Likewise. - * a-finali.adb: Likewise. - * a-finali.ads: Likewise. - * a-interr.ads: Likewise. - * a-intnam-aix.ads: Likewise. - * a-intnam-darwin.ads: Likewise. - * a-intnam-dummy.ads: Likewise. - * a-intnam-freebsd.ads: Likewise. - * a-intnam-hpux.ads: Likewise. - * a-intnam-irix.ads: Likewise. - * a-intnam-linux.ads: Likewise. - * a-intnam-lynxos.ads: Likewise. - * a-intnam-mingw.ads: Likewise. - * a-intnam-rtems.ads: Likewise. - * a-intnam-solaris.ads: Likewise. - * a-intnam-tru64.ads: Likewise. - * a-intnam-vms.ads: Likewise. - * a-intnam-vxworks.ads: Likewise. - * a-intsig.adb: Likewise. - * a-intsig.ads: Likewise. - * a-ngcefu.adb: Likewise. - * a-ngcoar.adb: Likewise. - * a-ngcoty.adb: Likewise. - * a-ngcoty.ads: Likewise. - * a-ngelfu.adb: Likewise. - * a-ngrear.adb: Likewise. - * a-ngrear.ads: Likewise. - * a-nudira.adb: Likewise. - * a-nudira.ads: Likewise. - * a-nuflra.adb: Likewise. - * a-nuflra.ads: Likewise. - * a-numaux-darwin.adb: Likewise. - * a-numaux-darwin.ads: Likewise. - * a-numaux-libc-x86.ads: Likewise. - * a-numaux-vxworks.ads: Likewise. - * a-numaux-x86.adb: Likewise. - * a-numaux-x86.ads: Likewise. - * a-numaux.ads: Likewise. - * a-rbtgso.adb: Likewise. - * a-rbtgso.ads: Likewise. - * a-reatim.ads: Likewise. - * a-retide.adb: Likewise. - * a-retide.ads: Likewise. - * a-rttiev.adb: Likewise. - * a-rttiev.ads: Likewise. - * a-secain.adb: Likewise. - * a-secain.ads: Likewise. - * a-sequio.adb: Likewise. - * a-sequio.ads: Likewise. - * a-shcain.adb: Likewise. - * a-shcain.ads: Likewise. - * a-siocst.adb: Likewise. - * a-siocst.ads: Likewise. - * a-slcain.adb: Likewise. - * a-slcain.ads: Likewise. - * a-ssicst.adb: Likewise. - * a-ssicst.ads: Likewise. - * a-stboha.adb: Likewise. - * a-stmaco.ads: Likewise. - * a-storio.adb: Likewise. - * a-strbou.adb: Likewise. - * a-strbou.ads: Likewise. - * a-stream.ads: Likewise. - * a-strfix.adb: Likewise. - * a-strhas.adb: Likewise. - * a-strmap.adb: Likewise. - * a-strmap.ads: Likewise. - * a-strsea.adb: Likewise. - * a-strsea.ads: Likewise. - * a-strsup.adb: Likewise. - * a-strsup.ads: Likewise. - * a-strunb.adb: Likewise. - * a-strunb.ads: Likewise. - * a-ststio.adb: Likewise. - * a-ststio.ads: Likewise. - * a-stunau.adb: Likewise. - * a-stunau.ads: Likewise. - * a-stunha.adb: Likewise. - * a-stwibo.adb: Likewise. - * a-stwibo.ads: Likewise. - * a-stwifi.adb: Likewise. - * a-stwiha.adb: Likewise. - * a-stwima.adb: Likewise. - * a-stwima.ads: Likewise. - * a-stwise.adb: Likewise. - * a-stwise.ads: Likewise. - * a-stwisu.adb: Likewise. - * a-stwisu.ads: Likewise. - * a-stwiun.adb: Likewise. - * a-stwiun.ads: Likewise. - * a-stzbou.adb: Likewise. - * a-stzbou.ads: Likewise. - * a-stzfix.adb: Likewise. - * a-stzhas.adb: Likewise. - * a-stzmap.adb: Likewise. - * a-stzmap.ads: Likewise. - * a-stzsea.adb: Likewise. - * a-stzsea.ads: Likewise. - * a-stzsup.adb: Likewise. - * a-stzsup.ads: Likewise. - * a-stzunb.adb: Likewise. - * a-stzunb.ads: Likewise. - * a-suteio.adb: Likewise. - * a-suteio.ads: Likewise. - * a-swbwha.adb: Likewise. - * a-swmwco.ads: Likewise. - * a-swunau.adb: Likewise. - * a-swunau.ads: Likewise. - * a-swuwha.adb: Likewise. - * a-swuwti.adb: Likewise. - * a-swuwti.ads: Likewise. - * a-sytaco.adb: Likewise. - * a-sytaco.ads: Likewise. - * a-szbzha.adb: Likewise. - * a-szmzco.ads: Likewise. - * a-szunau.adb: Likewise. - * a-szunau.ads: Likewise. - * a-szuzha.adb: Likewise. - * a-szuzti.adb: Likewise. - * a-szuzti.ads: Likewise. - * a-tags.adb: Likewise. - * a-tags.ads: Likewise. - * a-tasatt.ads: Likewise. - * a-taside.adb: Likewise. - * a-taside.ads: Likewise. - * a-taster.adb: Likewise. - * a-teioed.adb: Likewise. - * a-teioed.ads: Likewise. - * a-textio.adb: Likewise. - * a-textio.ads: Likewise. - * a-tiboio.adb: Likewise. - * a-ticoau.adb: Likewise. - * a-ticoau.ads: Likewise. - * a-ticoio.adb: Likewise. - * a-ticoio.ads: Likewise. - * a-tideau.adb: Likewise. - * a-tideau.ads: Likewise. - * a-tideio.adb: Likewise. - * a-tideio.ads: Likewise. - * a-tienau.adb: Likewise. - * a-tienau.ads: Likewise. - * a-tienio.adb: Likewise. - * a-tienio.ads: Likewise. - * a-tifiio.adb: Likewise. - * a-tifiio.ads: Likewise. - * a-tiflau.adb: Likewise. - * a-tiflau.ads: Likewise. - * a-tiflio.adb: Likewise. - * a-tiflio.ads: Likewise. - * a-tigeau.adb: Likewise. - * a-tigeau.ads: Likewise. - * a-tiinau.adb: Likewise. - * a-tiinau.ads: Likewise. - * a-tiinio.adb: Likewise. - * a-tiinio.ads: Likewise. - * a-timoau.adb: Likewise. - * a-timoau.ads: Likewise. - * a-timoio.adb: Likewise. - * a-timoio.ads: Likewise. - * a-tiocst.adb: Likewise. - * a-tiocst.ads: Likewise. - * a-titest.adb: Likewise. - * a-wichun.adb: Likewise. - * a-wichun.ads: Likewise. - * a-witeio.adb: Likewise. - * a-witeio.ads: Likewise. - * a-wtcoau.adb: Likewise. - * a-wtcoau.ads: Likewise. - * a-wtcoio.adb: Likewise. - * a-wtcstr.adb: Likewise. - * a-wtcstr.ads: Likewise. - * a-wtdeau.adb: Likewise. - * a-wtdeau.ads: Likewise. - * a-wtdeio.adb: Likewise. - * a-wtdeio.ads: Likewise. - * a-wtedit.adb: Likewise. - * a-wtedit.ads: Likewise. - * a-wtenau.adb: Likewise. - * a-wtenau.ads: Likewise. - * a-wtenio.adb: Likewise. - * a-wtenio.ads: Likewise. - * a-wtfiio.adb: Likewise. - * a-wtfiio.ads: Likewise. - * a-wtflau.adb: Likewise. - * a-wtflau.ads: Likewise. - * a-wtflio.adb: Likewise. - * a-wtflio.ads: Likewise. - * a-wtgeau.adb: Likewise. - * a-wtgeau.ads: Likewise. - * a-wtinau.adb: Likewise. - * a-wtinau.ads: Likewise. - * a-wtinio.adb: Likewise. - * a-wtmoau.adb: Likewise. - * a-wtmoau.ads: Likewise. - * a-wtmoio.adb: Likewise. - * a-wtmoio.ads: Likewise. - * a-wttest.adb: Likewise. - * a-wwboio.adb: Likewise. - * a-zchuni.adb: Likewise. - * a-zchuni.ads: Likewise. - * a-ztcoau.adb: Likewise. - * a-ztcoau.ads: Likewise. - * a-ztcoio.adb: Likewise. - * a-ztcstr.adb: Likewise. - * a-ztcstr.ads: Likewise. - * a-ztdeau.adb: Likewise. - * a-ztdeau.ads: Likewise. - * a-ztdeio.adb: Likewise. - * a-ztdeio.ads: Likewise. - * a-ztedit.adb: Likewise. - * a-ztedit.ads: Likewise. - * a-ztenau.adb: Likewise. - * a-ztenau.ads: Likewise. - * a-ztenio.adb: Likewise. - * a-ztenio.ads: Likewise. - * a-ztexio.adb: Likewise. - * a-ztexio.ads: Likewise. - * a-ztfiio.adb: Likewise. - * a-ztfiio.ads: Likewise. - * a-ztflau.adb: Likewise. - * a-ztflau.ads: Likewise. - * a-ztflio.adb: Likewise. - * a-ztflio.ads: Likewise. - * a-ztgeau.adb: Likewise. - * a-ztgeau.ads: Likewise. - * a-ztinau.adb: Likewise. - * a-ztinau.ads: Likewise. - * a-ztinio.adb: Likewise. - * a-ztmoau.adb: Likewise. - * a-ztmoau.ads: Likewise. - * a-ztmoio.adb: Likewise. - * a-ztmoio.ads: Likewise. - * a-zttest.adb: Likewise. - * a-zzboio.adb: Likewise. - * adadecode.c: Likewise. - * adaint.c: Likewise. - * adaint.h: Likewise. - * alloc.ads: Likewise. - * argv.c: Likewise. - * arit64.c: Likewise. - * atree.adb: Likewise. - * atree.ads: Likewise. - * aux-io.c: Likewise. - * cal.c: Likewise. - * casing.adb: Likewise. - * casing.ads: Likewise. - * cio.c: Likewise. - * csets.adb: Likewise. - * csets.ads: Likewise. - * cstreams.c: Likewise. - * ctrl_c.c: Likewise. - * debug.adb: Likewise. - * debug.ads: Likewise. - * dec.ads: Likewise. - * einfo.adb: Likewise. - * einfo.ads: Likewise. - * elists.adb: Likewise. - * elists.ads: Likewise. - * env.c: Likewise. - * env.h: Likewise. - * errno.c: Likewise. - * exit.c: Likewise. - * fe.h: Likewise. - * final.c: Likewise. - * fname.adb: Likewise. - * fname.ads: Likewise. - * g-allein.ads: Likewise. - * g-alleve.adb: Likewise. - * g-alleve.ads: Likewise. - * g-altcon.adb: Likewise. - * g-altcon.ads: Likewise. - * g-altive.ads: Likewise. - * g-alveop.adb: Likewise. - * g-alveop.ads: Likewise. - * g-alvety.ads: Likewise. - * g-alvevi.ads: Likewise. - * g-arrspl.adb: Likewise. - * g-arrspl.ads: Likewise. - * g-calend.ads: Likewise. - * g-comlin.adb: Likewise. - * g-debpoo.adb: Likewise. - * g-debpoo.ads: Likewise. - * g-eacodu-vms.adb: Likewise. - * g-eacodu.adb: Likewise. - * g-excact.adb: Likewise. - * g-excact.ads: Likewise. - * g-locfil.adb: Likewise. - * g-os_lib.ads: Likewise. - * g-rannum.adb: Likewise. - * g-rannum.ads: Likewise. - * g-regist.adb: Likewise. - * g-regist.ads: Likewise. - * g-signal.adb: Likewise. - * g-signal.ads: Likewise. - * g-soccon.ads: Likewise. - * g-string.adb: Likewise. - * g-string.ads: Likewise. - * g-strspl.ads: Likewise. - * g-timsta.adb: Likewise. - * g-timsta.ads: Likewise. - * g-trasym-vms-alpha.adb: Likewise. - * g-trasym-vms-ia64.adb: Likewise. - * g-utf_32.adb: Likewise. - * g-utf_32.ads: Likewise. - * g-wistsp.ads: Likewise. - * g-zstspl.ads: Likewise. - * gmem.c: Likewise. - * gnatvsn.adb: Likewise. - * gnatvsn.ads: Likewise. - * gsocket.h: Likewise. - * hostparm.ads: Likewise. - * i-c.adb: Likewise. - * i-cexten.ads: Likewise. - * i-cobol.adb: Likewise. - * i-cobol.ads: Likewise. - * i-cpoint.adb: Likewise. - * i-cpoint.ads: Likewise. - * i-cpp.adb: Likewise. - * i-cpp.ads: Likewise. - * i-cstrea-vms.adb: Likewise. - * i-cstrea.adb: Likewise. - * i-cstrea.ads: Likewise. - * i-cstrin.adb: Likewise. - * i-cstrin.ads: Likewise. - * i-forbla-darwin.adb: Likewise. - * i-forbla-unimplemented.ads: Likewise. - * i-forbla.adb: Likewise. - * i-forbla.ads: Likewise. - * i-forlap.ads: Likewise. - * i-fortra.adb: Likewise. - * i-pacdec.adb: Likewise. - * i-pacdec.ads: Likewise. - * i-vxwoio.adb: Likewise. - * i-vxwoio.ads: Likewise. - * indepsw-aix.adb: Likewise. - * indepsw-gnu.adb: Likewise. - * indepsw-mingw.adb: Likewise. - * indepsw.adb: Likewise. - * indepsw.ads: Likewise. - * init.c: Likewise. - * initialize.c: Likewise. - * interfac.ads: Likewise. - * krunch.adb: Likewise. - * krunch.ads: Likewise. - * lib-list.adb: Likewise. - * lib-sort.adb: Likewise. - * lib.adb: Likewise. - * lib.ads: Likewise. - * link.c: Likewise. - * math_lib.adb: Likewise. - * memtrack.adb: Likewise. - * mingw32.h: Likewise. - * mkdir.c: Likewise. - * namet-sp.adb: Likewise. - * namet-sp.ads: Likewise. - * namet.adb: Likewise. - * namet.ads: Likewise. - * nlists.adb: Likewise. - * nlists.ads: Likewise. - * opt.adb: Likewise. - * opt.ads: Likewise. - * output.adb: Likewise. - * output.ads: Likewise. - * raise-gcc.c: Likewise. - * raise.c: Likewise. - * raise.h: Likewise. - * repinfo.adb: Likewise. - * repinfo.ads: Likewise. - * repinfo.h: Likewise. - * rident.ads: Likewise. - * s-addima.adb: Likewise. - * s-addima.ads: Likewise. - * s-addope.adb: Likewise. - * s-addope.ads: Likewise. - * s-arit64.adb: Likewise. - * s-arit64.ads: Likewise. - * s-assert.adb: Likewise. - * s-assert.ads: Likewise. - * s-asthan-vms-alpha.adb: Likewise. - * s-asthan.adb: Likewise. - * s-asthan.ads: Likewise. - * s-atacco.adb: Likewise. - * s-atacco.ads: Likewise. - * s-auxdec-empty.adb: Likewise. - * s-auxdec-empty.ads: Likewise. - * s-auxdec-vms_64.ads: Likewise. - * s-auxdec.adb: Likewise. - * s-auxdec.ads: Likewise. - * s-bitops.adb: Likewise. - * s-bitops.ads: Likewise. - * s-boarop.ads: Likewise. - * s-carsi8.adb: Likewise. - * s-carsi8.ads: Likewise. - * s-carun8.adb: Likewise. - * s-carun8.ads: Likewise. - * s-casi16.adb: Likewise. - * s-casi16.ads: Likewise. - * s-casi32.adb: Likewise. - * s-casi32.ads: Likewise. - * s-casi64.adb: Likewise. - * s-casi64.ads: Likewise. - * s-casuti.ads: Likewise. - * s-caun16.adb: Likewise. - * s-caun16.ads: Likewise. - * s-caun32.adb: Likewise. - * s-caun32.ads: Likewise. - * s-caun64.adb: Likewise. - * s-caun64.ads: Likewise. - * s-chepoo.ads: Likewise. - * s-crc32.adb: Likewise. - * s-crc32.ads: Likewise. - * s-crtl.ads: Likewise. - * s-direio.adb: Likewise. - * s-direio.ads: Likewise. - * s-dsaser.ads: Likewise. - * s-except.adb: Likewise. - * s-except.ads: Likewise. - * s-exctab.adb: Likewise. - * s-exctab.ads: Likewise. - * s-exnint.adb: Likewise. - * s-exnint.ads: Likewise. - * s-exnllf.adb: Likewise. - * s-exnllf.ads: Likewise. - * s-exnlli.adb: Likewise. - * s-exnlli.ads: Likewise. - * s-expint.adb: Likewise. - * s-expint.ads: Likewise. - * s-explli.adb: Likewise. - * s-explli.ads: Likewise. - * s-expllu.adb: Likewise. - * s-expllu.ads: Likewise. - * s-expmod.adb: Likewise. - * s-expmod.ads: Likewise. - * s-expuns.adb: Likewise. - * s-expuns.ads: Likewise. - * s-fatflt.ads: Likewise. - * s-fatgen.adb: Likewise. - * s-fatgen.ads: Likewise. - * s-fatlfl.ads: Likewise. - * s-fatllf.ads: Likewise. - * s-fatsfl.ads: Likewise. - * s-ficobl.ads: Likewise. - * s-fileio.adb: Likewise. - * s-fileio.ads: Likewise. - * s-filofl.ads: Likewise. - * s-finimp.adb: Likewise. - * s-finimp.ads: Likewise. - * s-finroo.adb: Likewise. - * s-finroo.ads: Likewise. - * s-fishfl.ads: Likewise. - * s-fore.adb: Likewise. - * s-fore.ads: Likewise. - * s-fvadfl.ads: Likewise. - * s-fvaffl.ads: Likewise. - * s-fvagfl.ads: Likewise. - * s-gearop.adb: Likewise. - * s-gearop.ads: Likewise. - * s-gecobl.adb: Likewise. - * s-gecobl.ads: Likewise. - * s-gecola.adb: Likewise. - * s-gecola.ads: Likewise. - * s-gerebl.adb: Likewise. - * s-gerebl.ads: Likewise. - * s-gerela.adb: Likewise. - * s-gerela.ads: Likewise. - * s-geveop.adb: Likewise. - * s-geveop.ads: Likewise. - * s-gloloc.adb: Likewise. - * s-gloloc.ads: Likewise. - * s-hibaen.ads: Likewise. - * s-imenne.adb: Likewise. - * s-imenne.ads: Likewise. - * s-imgbiu.adb: Likewise. - * s-imgbiu.ads: Likewise. - * s-imgboo.adb: Likewise. - * s-imgboo.ads: Likewise. - * s-imgcha.adb: Likewise. - * s-imgcha.ads: Likewise. - * s-imgdec.adb: Likewise. - * s-imgdec.ads: Likewise. - * s-imgenu.adb: Likewise. - * s-imgenu.ads: Likewise. - * s-imgint.adb: Likewise. - * s-imgint.ads: Likewise. - * s-imgllb.adb: Likewise. - * s-imgllb.ads: Likewise. - * s-imglld.adb: Likewise. - * s-imglld.ads: Likewise. - * s-imglli.adb: Likewise. - * s-imglli.ads: Likewise. - * s-imgllu.adb: Likewise. - * s-imgllu.ads: Likewise. - * s-imgllw.adb: Likewise. - * s-imgllw.ads: Likewise. - * s-imgrea.adb: Likewise. - * s-imgrea.ads: Likewise. - * s-imguns.adb: Likewise. - * s-imguns.ads: Likewise. - * s-imgwch.adb: Likewise. - * s-imgwch.ads: Likewise. - * s-imgwiu.adb: Likewise. - * s-imgwiu.ads: Likewise. - * s-inmaop-dummy.adb: Likewise. - * s-inmaop-vms.adb: Likewise. - * s-inmaop.ads: Likewise. - * s-interr-hwint.adb: Likewise. - * s-interr-sigaction.adb: Likewise. - * s-interr-vms.adb: Likewise. - * s-interr.adb: Likewise. - * s-interr.ads: Likewise. - * s-intman-dummy.adb: Likewise. - * s-intman-mingw.adb: Likewise. - * s-intman-posix.adb: Likewise. - * s-intman-solaris.adb: Likewise. - * s-intman-vms.adb: Likewise. - * s-intman-vms.ads: Likewise. - * s-intman-vxworks.adb: Likewise. - * s-intman-vxworks.ads: Likewise. - * s-intman.ads: Likewise. - * s-io.adb: Likewise. - * s-io.ads: Likewise. - * s-linux-alpha.ads: Likewise. - * s-linux-hppa.ads: Likewise. - * s-linux.ads: Likewise. - * s-maccod.ads: Likewise. - * s-mantis.adb: Likewise. - * s-mantis.ads: Likewise. - * s-mastop-irix.adb: Likewise. - * s-mastop.adb: Likewise. - * s-mastop.ads: Likewise. - * s-memcop.ads: Likewise. - * s-memory-mingw.adb: Likewise. - * s-memory.adb: Likewise. - * s-memory.ads: Likewise. - * s-os_lib.ads: Likewise. - * s-oscons-tmplt.c: Likewise. - * s-osinte-aix.adb: Likewise. - * s-osinte-darwin.adb: Likewise. - * s-osinte-freebsd.adb: Likewise. - * s-osinte-irix.adb: Likewise. - * s-osinte-lynxos-3.adb: Likewise. - * s-osinte-rtems.ads: Likewise. - * s-osinte-tru64.adb: Likewise. - * s-osinte-vxworks-kernel.adb: Likewise. - * s-osinte-vxworks.adb: Likewise. - * s-osprim-mingw.adb: Likewise. - * s-osprim-posix.adb: Likewise. - * s-osprim-solaris.adb: Likewise. - * s-osprim-unix.adb: Likewise. - * s-osprim-vms.adb: Likewise. - * s-osprim-vms.ads: Likewise. - * s-osprim-vxworks.adb: Likewise. - * s-osprim.ads: Likewise. - * s-pack03.adb: Likewise. - * s-pack03.ads: Likewise. - * s-pack05.adb: Likewise. - * s-pack05.ads: Likewise. - * s-pack06.adb: Likewise. - * s-pack06.ads: Likewise. - * s-pack07.adb: Likewise. - * s-pack07.ads: Likewise. - * s-pack09.adb: Likewise. - * s-pack09.ads: Likewise. - * s-pack10.adb: Likewise. - * s-pack10.ads: Likewise. - * s-pack11.adb: Likewise. - * s-pack11.ads: Likewise. - * s-pack12.adb: Likewise. - * s-pack12.ads: Likewise. - * s-pack13.adb: Likewise. - * s-pack13.ads: Likewise. - * s-pack14.adb: Likewise. - * s-pack14.ads: Likewise. - * s-pack15.adb: Likewise. - * s-pack15.ads: Likewise. - * s-pack17.adb: Likewise. - * s-pack17.ads: Likewise. - * s-pack18.adb: Likewise. - * s-pack18.ads: Likewise. - * s-pack19.adb: Likewise. - * s-pack19.ads: Likewise. - * s-pack20.adb: Likewise. - * s-pack20.ads: Likewise. - * s-pack21.adb: Likewise. - * s-pack21.ads: Likewise. - * s-pack22.adb: Likewise. - * s-pack22.ads: Likewise. - * s-pack23.adb: Likewise. - * s-pack23.ads: Likewise. - * s-pack24.adb: Likewise. - * s-pack24.ads: Likewise. - * s-pack25.adb: Likewise. - * s-pack25.ads: Likewise. - * s-pack26.adb: Likewise. - * s-pack26.ads: Likewise. - * s-pack27.adb: Likewise. - * s-pack27.ads: Likewise. - * s-pack28.adb: Likewise. - * s-pack28.ads: Likewise. - * s-pack29.adb: Likewise. - * s-pack29.ads: Likewise. - * s-pack30.adb: Likewise. - * s-pack30.ads: Likewise. - * s-pack31.adb: Likewise. - * s-pack31.ads: Likewise. - * s-pack33.adb: Likewise. - * s-pack33.ads: Likewise. - * s-pack34.adb: Likewise. - * s-pack34.ads: Likewise. - * s-pack35.adb: Likewise. - * s-pack35.ads: Likewise. - * s-pack36.adb: Likewise. - * s-pack36.ads: Likewise. - * s-pack37.adb: Likewise. - * s-pack37.ads: Likewise. - * s-pack38.adb: Likewise. - * s-pack38.ads: Likewise. - * s-pack39.adb: Likewise. - * s-pack39.ads: Likewise. - * s-pack40.adb: Likewise. - * s-pack40.ads: Likewise. - * s-pack41.adb: Likewise. - * s-pack41.ads: Likewise. - * s-pack42.adb: Likewise. - * s-pack42.ads: Likewise. - * s-pack43.adb: Likewise. - * s-pack43.ads: Likewise. - * s-pack44.adb: Likewise. - * s-pack44.ads: Likewise. - * s-pack45.adb: Likewise. - * s-pack45.ads: Likewise. - * s-pack46.adb: Likewise. - * s-pack46.ads: Likewise. - * s-pack47.adb: Likewise. - * s-pack47.ads: Likewise. - * s-pack48.adb: Likewise. - * s-pack48.ads: Likewise. - * s-pack49.adb: Likewise. - * s-pack49.ads: Likewise. - * s-pack50.adb: Likewise. - * s-pack50.ads: Likewise. - * s-pack51.adb: Likewise. - * s-pack51.ads: Likewise. - * s-pack52.adb: Likewise. - * s-pack52.ads: Likewise. - * s-pack53.adb: Likewise. - * s-pack53.ads: Likewise. - * s-pack54.adb: Likewise. - * s-pack54.ads: Likewise. - * s-pack55.adb: Likewise. - * s-pack55.ads: Likewise. - * s-pack56.adb: Likewise. - * s-pack56.ads: Likewise. - * s-pack57.adb: Likewise. - * s-pack57.ads: Likewise. - * s-pack58.adb: Likewise. - * s-pack58.ads: Likewise. - * s-pack59.adb: Likewise. - * s-pack59.ads: Likewise. - * s-pack60.adb: Likewise. - * s-pack60.ads: Likewise. - * s-pack61.adb: Likewise. - * s-pack61.ads: Likewise. - * s-pack62.adb: Likewise. - * s-pack62.ads: Likewise. - * s-pack63.adb: Likewise. - * s-pack63.ads: Likewise. - * s-parame-ae653.ads: Likewise. - * s-parame-hpux.ads: Likewise. - * s-parame-rtems.adb: Likewise. - * s-parame-vms-alpha.ads: Likewise. - * s-parame-vms-ia64.ads: Likewise. - * s-parame-vms-restrict.ads: Likewise. - * s-parame-vxworks.adb: Likewise. - * s-parame-vxworks.ads: Likewise. - * s-parame.adb: Likewise. - * s-parame.ads: Likewise. - * s-parint.adb: Likewise. - * s-parint.ads: Likewise. - * s-pooglo.adb: Likewise. - * s-pooglo.ads: Likewise. - * s-pooloc.adb: Likewise. - * s-pooloc.ads: Likewise. - * s-poosiz.adb: Likewise. - * s-poosiz.ads: Likewise. - * s-powtab.ads: Likewise. - * s-proinf-irix-athread.adb: Likewise. - * s-proinf-irix-athread.ads: Likewise. - * s-proinf.adb: Likewise. - * s-proinf.ads: Likewise. - * s-purexc.ads: Likewise. - * s-rannum.adb: Likewise. - * s-rannum.ads: Likewise. - * s-restri.adb: Likewise. - * s-restri.ads: Likewise. - * s-rident.ads: Likewise. - * s-rpc.adb: Likewise. - * s-rpc.ads: Likewise. - * s-scaval.adb: Likewise. - * s-scaval.ads: Likewise. - * s-secsta.adb: Likewise. - * s-secsta.ads: Likewise. - * s-sequio.adb: Likewise. - * s-sequio.ads: Likewise. - * s-shasto.adb: Likewise. - * s-shasto.ads: Likewise. - * s-soflin.adb: Likewise. - * s-soflin.ads: Likewise. - * s-solita.adb: Likewise. - * s-solita.ads: Likewise. - * s-sopco3.adb: Likewise. - * s-sopco3.ads: Likewise. - * s-sopco4.adb: Likewise. - * s-sopco4.ads: Likewise. - * s-sopco5.adb: Likewise. - * s-sopco5.ads: Likewise. - * s-stache.adb: Likewise. - * s-stache.ads: Likewise. - * s-stalib.adb: Likewise. - * s-stalib.ads: Likewise. - * s-stausa.adb: Likewise. - * s-stausa.ads: Likewise. - * s-stchop-limit.ads: Likewise. - * s-stchop-rtems.adb: Likewise. - * s-stchop-vxworks.adb: Likewise. - * s-stchop.adb: Likewise. - * s-stchop.ads: Likewise. - * s-stoele.adb: Likewise. - * s-stoele.ads: Likewise. - * s-stopoo.adb: Likewise. - * s-stopoo.ads: Likewise. - * s-stratt.adb: Likewise. - * s-stratt.ads: Likewise. - * s-strcom.adb: Likewise. - * s-strcom.ads: Likewise. - * s-string.adb: Likewise. - * s-string.ads: Likewise. - * s-strops.adb: Likewise. - * s-strops.ads: Likewise. - * s-strxdr.adb: Likewise. - * s-ststop.adb: Likewise. - * s-ststop.ads: Likewise. - * s-taasde.adb: Likewise. - * s-taasde.ads: Likewise. - * s-tadeca.adb: Likewise. - * s-tadeca.ads: Likewise. - * s-tadert.adb: Likewise. - * s-tadert.ads: Likewise. - * s-taenca.adb: Likewise. - * s-taenca.ads: Likewise. - * s-taprob.ads: Likewise. - * s-taprop-dummy.adb: Likewise. - * s-taprop-hpux-dce.adb: Likewise. - * s-taprop-irix.adb: Likewise. - * s-taprop-linux.adb: Likewise. - * s-taprop-lynxos.adb: Likewise. - * s-taprop-mingw.adb: Likewise. - * s-taprop-posix.adb: Likewise. - * s-taprop-solaris.adb: Likewise. - * s-taprop-tru64.adb: Likewise. - * s-taprop-vms.adb: Likewise. - * s-taprop-vxworks.adb: Likewise. - * s-taprop.ads: Likewise. - * s-tarest.adb: Likewise. - * s-tarest.ads: Likewise. - * s-tasdeb.adb: Likewise. - * s-tasdeb.ads: Likewise. - * s-tasinf-irix.ads: Likewise. - * s-tasinf-linux.adb: Likewise. - * s-tasinf-linux.ads: Likewise. - * s-tasinf-mingw.adb: Likewise. - * s-tasinf-mingw.ads: Likewise. - * s-tasinf-solaris.adb: Likewise. - * s-tasinf-solaris.ads: Likewise. - * s-tasinf-tru64.ads: Likewise. - * s-tasinf.adb: Likewise. - * s-tasinf.ads: Likewise. - * s-tasini.adb: Likewise. - * s-tasini.ads: Likewise. - * s-taskin.adb: Likewise. - * s-taskin.ads: Likewise. - * s-taspri-dummy.ads: Likewise. - * s-taspri-hpux-dce.ads: Likewise. - * s-taspri-mingw.ads: Likewise. - * s-taspri-solaris.ads: Likewise. - * s-taspri-tru64.ads: Likewise. - * s-taspri-vms.ads: Likewise. - * s-taspri-vxworks.ads: Likewise. - * s-tasque.adb: Likewise. - * s-tasque.ads: Likewise. - * s-tasren.adb: Likewise. - * s-tasren.ads: Likewise. - * s-tasres.ads: Likewise. - * s-tassta.adb: Likewise. - * s-tassta.ads: Likewise. - * s-tasuti.adb: Likewise. - * s-tasuti.ads: Likewise. - * s-tfsetr-default.adb: Likewise. - * s-tfsetr-vxworks.adb: Likewise. - * s-tpinop.adb: Likewise. - * s-tpinop.ads: Likewise. - * s-tpoben.adb: Likewise. - * s-tpoben.ads: Likewise. - * s-tpobop.adb: Likewise. - * s-tpobop.ads: Likewise. - * s-tpopde-vms.adb: Likewise. - * s-tpopde-vms.ads: Likewise. - * s-tpopsp-lynxos.adb: Likewise. - * s-tpopsp-posix-foreign.adb: Likewise. - * s-tpopsp-posix.adb: Likewise. - * s-tpopsp-solaris.adb: Likewise. - * s-tpopsp-vxworks.adb: Likewise. - * s-tporft.adb: Likewise. - * s-tposen.adb: Likewise. - * s-tposen.ads: Likewise. - * s-traceb.adb: Likewise. - * s-traceb.ads: Likewise. - * s-traces-default.adb: Likewise. - * s-traces.adb: Likewise. - * s-traces.ads: Likewise. - * s-traent-vms.adb: Likewise. - * s-traent-vms.ads: Likewise. - * s-traent.adb: Likewise. - * s-traent.ads: Likewise. - * s-trafor-default.adb: Likewise. - * s-trafor-default.ads: Likewise. - * s-tratas-default.adb: Likewise. - * s-tratas.adb: Likewise. - * s-tratas.ads: Likewise. - * s-unstyp.ads: Likewise. - * s-utf_32.adb: Likewise. - * s-utf_32.ads: Likewise. - * s-vaflop-vms-alpha.adb: Likewise. - * s-vaflop.adb: Likewise. - * s-vaflop.ads: Likewise. - * s-valboo.adb: Likewise. - * s-valboo.ads: Likewise. - * s-valcha.adb: Likewise. - * s-valcha.ads: Likewise. - * s-valdec.adb: Likewise. - * s-valdec.ads: Likewise. - * s-valenu.adb: Likewise. - * s-valenu.ads: Likewise. - * s-valint.adb: Likewise. - * s-valint.ads: Likewise. - * s-vallld.adb: Likewise. - * s-vallld.ads: Likewise. - * s-vallli.adb: Likewise. - * s-vallli.ads: Likewise. - * s-valllu.adb: Likewise. - * s-valllu.ads: Likewise. - * s-valrea.adb: Likewise. - * s-valrea.ads: Likewise. - * s-valuns.adb: Likewise. - * s-valuns.ads: Likewise. - * s-valuti.adb: Likewise. - * s-valuti.ads: Likewise. - * s-valwch.adb: Likewise. - * s-valwch.ads: Likewise. - * s-veboop.adb: Likewise. - * s-veboop.ads: Likewise. - * s-vector.ads: Likewise. - * s-vercon.adb: Likewise. - * s-vercon.ads: Likewise. - * s-vmexta.adb: Likewise. - * s-vmexta.ads: Likewise. - * s-vxwext-kernel.ads: Likewise. - * s-vxwext-rtp.adb: Likewise. - * s-vxwext-rtp.ads: Likewise. - * s-vxwext.ads: Likewise. - * s-vxwork-arm.ads: Likewise. - * s-vxwork-m68k.ads: Likewise. - * s-vxwork-mips.ads: Likewise. - * s-vxwork-ppc.ads: Likewise. - * s-vxwork-sparcv9.ads: Likewise. - * s-vxwork-x86.ads: Likewise. - * s-wchcnv.adb: Likewise. - * s-wchcnv.ads: Likewise. - * s-wchcon.adb: Likewise. - * s-wchcon.ads: Likewise. - * s-wchjis.adb: Likewise. - * s-wchjis.ads: Likewise. - * s-wchstw.adb: Likewise. - * s-wchstw.ads: Likewise. - * s-wchwts.adb: Likewise. - * s-wchwts.ads: Likewise. - * s-widboo.adb: Likewise. - * s-widboo.ads: Likewise. - * s-widcha.adb: Likewise. - * s-widcha.ads: Likewise. - * s-widenu.adb: Likewise. - * s-widenu.ads: Likewise. - * s-widlli.adb: Likewise. - * s-widlli.ads: Likewise. - * s-widllu.adb: Likewise. - * s-widllu.ads: Likewise. - * s-widwch.adb: Likewise. - * s-widwch.ads: Likewise. - * s-win32.ads: Likewise. - * s-winext.ads: Likewise. - * s-wwdcha.adb: Likewise. - * s-wwdcha.ads: Likewise. - * s-wwdenu.adb: Likewise. - * s-wwdenu.ads: Likewise. - * s-wwdwch.adb: Likewise. - * s-wwdwch.ads: Likewise. - * scans.adb: Likewise. - * scans.ads: Likewise. - * seh_init.c: Likewise. - * sfn_scan.adb: Likewise. - * sinfo.adb: Likewise. - * sinfo.ads: Likewise. - * sinput.adb: Likewise. - * sinput.ads: Likewise. - * snames.adb: Likewise. - * snames.ads: Likewise. - * socket.c: Likewise. - * stand.adb: Likewise. - * stand.ads: Likewise. - * stringt.adb: Likewise. - * stringt.ads: Likewise. - * sysdep.c: Likewise. - * system-aix.ads: Likewise. - * system-darwin-ppc.ads: Likewise. - * system-darwin-x86.ads: Likewise. - * system-darwin-x86_64.ads: Likewise. - * system-freebsd-x86.ads: Likewise. - * system-hpux-ia64.ads: Likewise. - * system-hpux.ads: Likewise. - * system-irix-n32.ads: Likewise. - * system-irix-n64.ads: Likewise. - * system-irix-o32.ads: Likewise. - * system-linux-alpha.ads: Likewise. - * system-linux-hppa.ads: Likewise. - * system-linux-ia64.ads: Likewise. - * system-linux-mips.ads: Likewise. - * system-linux-mipsel.ads: Likewise. - * system-linux-ppc.ads: Likewise. - * system-linux-ppc64.ads: Likewise. - * system-linux-s390.ads: Likewise. - * system-linux-s390x.ads: Likewise. - * system-linux-sh4.ads: Likewise. - * system-linux-sparc.ads: Likewise. - * system-linux-sparcv9.ads: Likewise. - * system-linux-x86.ads: Likewise. - * system-linux-x86_64.ads: Likewise. - * system-lynxos-ppc.ads: Likewise. - * system-lynxos-x86.ads: Likewise. - * system-mingw-x86_64.ads: Likewise. - * system-mingw.ads: Likewise. - * system-rtems.ads: Likewise. - * system-solaris-sparc.ads: Likewise. - * system-solaris-sparcv9.ads: Likewise. - * system-solaris-x86.ads: Likewise. - * system-solaris-x86_64.ads: Likewise. - * system-tru64.ads: Likewise. - * system-vms-ia64.ads: Likewise. - * system-vms-zcx.ads: Likewise. - * system-vms.ads: Likewise. - * system-vms_64.ads: Likewise. - * system-vxworks-arm.ads: Likewise. - * system-vxworks-m68k.ads: Likewise. - * system-vxworks-mips.ads: Likewise. - * system-vxworks-ppc.ads: Likewise. - * system-vxworks-sparcv9.ads: Likewise. - * system-vxworks-x86.ads: Likewise. - * system.ads: Likewise. - * table.adb: Likewise. - * table.ads: Likewise. - * targext.c: Likewise. - * targparm.ads: Likewise. - * tree_in.adb: Likewise. - * tree_in.ads: Likewise. - * tree_io.adb: Likewise. - * tree_io.ads: Likewise. - * types.adb: Likewise. - * types.ads: Likewise. - * uintp.adb: Likewise. - * uintp.ads: Likewise. - * uname.adb: Likewise. - * uname.ads: Likewise. - * urealp.adb: Likewise. - * urealp.ads: Likewise. - * vx_stack_info.c: Likewise. - * widechar.adb: Likewise. - * widechar.ads: Likewise. - * exp_attr.adb: Change copyright header to refer to version - 3 of the GNU General Public License and to point readers at the - COPYING3 file and the FSF's license web page. - * sem.adb: Likewise. - * sem_attr.ads: Likewise. - * freeze.adb: Likewise. - * freeze.ads: Likewise. - * errout.ads: Likewise. - * erroutc.adb: Likewise. - * exp_ch11.ads: Likewise. - -2009-04-09 Jakub Jelinek - - * config-lang.in: Change copyright header to refer to version - 3 of the GNU General Public License and to point readers at the - COPYING3 file and the FSF's license web page. - * gcc-interface/trans.c: Likewise. - * gnathtml.pl: Likewise. - * gcc-interface/ada.h: Likewise. Remove runtime exception. - * gcc-interface/gigi.h: Likewise. - * gcc-interface/misc.c: Likewise. - * gcc-interface/targtyps.c: Likewise. - -2009-04-09 Nicolas Setton - - * s-osinte-darwin.ads: Fix wrong binding to struc timeval. - - * s-osinte-darwin.adb (To_Timeval): Adapt to fixed implementation of - struct_timeval. - -2009-04-09 Bob Duff - - * exp_ch5.adb, exp_ch9.adb: Correct miscellaneous Slocs in - internally-generated nodes related to select statements to avoid - confusing the debugger. - -2009-04-09 Pascal Obry - - * make.adb: Ensure that all linker arguments are duplicated. - -2009-04-09 Robert Dewar - - * sem_ch5.adb: Minor reformatting - -2009-04-09 Vincent Celier - - * vms_data.ads: - Change GNAT CHECK qualifier /DIAGNOSIS_LIMIT to /DIAGNOSTIC_LIMIT - New qualifier /LEXPAND_SOURCE=nnn for -gnatGnnn - New qualifier /LXDEBUG=nnn for -gnatDnnn - For H820-010 - - * gnat_ugn.texi: - Update documentation for VMS qualifiers equivalent to -gnatGnn and - -gnatDnn - -2009-04-09 Nicolas Setton - - * s-osinte-darwin.ads: (Pad_Type): Make this an array of unsigned_long, - to match layout of siginfo_t in sys/signal.h. - - * gcc-interface/Makefile.in: Add section for x86_64 darwin. - -2009-04-09 Thomas Quinot - - * g-socket.ads: (Fd_Set): Use Interfaces.C.long alignment. - -2009-04-09 Nicolas Setton - - * s-oscons-tmplt.c: Allow long lines in the generated spec. - Add generation of Darwin-specific constants needed when binding to the - pthread library. - -2009-04-09 Robert Dewar - - * checks.adb: - (Insert_Valid_Check): Avoid unnecessary generation of junk declaration - when no invalid values exist, Avoid duplicate read of atomic variable. - - * cstand.adb (Build_Signed_Integer_Type): Set Is_Known_Valid - (Standard_Unsigned): Set Is_Known_Valid - - * sem_ch3.adb (Analyze_Subtype_Declaration): Copy Is_Known_Valid on - subtype declaration if no constraint. - (Set_Modular_Size): Set Is_Known_Valid if appropriate - (Build_Derived_Numeric_Type): Copy Is_Known_Valid if no constraint - -2009-04-09 Robert Dewar - - * switch-c.adb, gnat_ugn.texi, vms_data.ads, switch.adb, - switch.ads: for numeric switches, an optional equal sign is always - allowed. - -2009-04-09 Vincent Celier - - * prj-nmsc.adb (Get_Unit): Do not consider Casing on platform where - the case of file names is not significant. - -2009-04-09 Vincent Celier - - * errout.adb: Remove dependency on package Style - - * style.ads, styleg.adb, styleg.ads (RM_Column_Check): Remove function, - moved to Stylesw. - - * stylesw.ads, stylesw.adb (RM_Column_Check): New function, moved from - Styleg. - - * errutil.adb, par.adb: Import Stylesw - -2009-04-09 Arnaud Charlet - - * opt.ads: Fix typos. - -2009-04-09 Robert Dewar - - * einfo.adb: Minor reformatting - -2009-04-09 Robert Dewar - - * gcc-interface/Make-lang.in, style.ads, style.adb: Reorganize style - units. - - * styleg-c.ads, styleg-c.adb: Removed, no longer used. - -2009-04-09 Robert Dewar - - * g-comver.adb: Minor reformatting. - -2009-04-09 Thomas Quinot - - * lib-load.ads (Load_Unit): Update documentation. - -2009-04-09 Ed Schonberg - - * lib-load.adb (Load_Unit): When loading the parent of a child unit - named in a with_clause, retain the with_clause to preserve a - limited_with indication. - -2009-04-09 Robert Dewar - - * sem_ch7.adb, sem_ch10.adb, sem_prag.adb, sem_ch12.adb, sem_util.adb, - exp_ch13.adb, sem_ch6.adb, exp_disp.adb, sem_ch8.adb, sem_warn.adb, - sem_cat.adb: Code clean up: use Is_Package_Or_Generic_Package where - possible to replace an OR of two separate tests. - -2009-04-09 Robert Dewar - - * binderr.adb, errout.adb, errutil.adb: New circuitry for handling - Maximum_Messages. - - * erroutc.adb, erroutc.ads (Warnings_Suppressed): Now tests global - warning status as well. - - * opt.ads (Maximum_Messages): New name for Maximum_Errors. - - * switch-b.adb, switch-c.adb: Change name Maximum_Errors to - Maximum_Messages. - - * bindusg.adb, usage.adb: Update line for -gnatm switch - - * gnat_ugn.texi: Update documentation for -gnatmnn compiler switch and - -mnn binder switch. - -2009-04-09 Robert Dewar - - * sem_ch10.adb: Minor reformatting. - -2009-04-09 Bob Duff - - * exp_ch11.adb (Expand_Exception_Handlers, Prepend_Call_To_Handler): - Set Sloc of generated nodes for calls to Undefer_Aborts and - Save_Occurrence to No_Location, so the debugger ignores them and - therefore does not jump back and forth when single stepping. - -2009-04-09 Robert Dewar - - * switch-b.adb: Minor reformatting. - -2009-04-09 Robert Dewar - - * sem_aggr.adb, exp_ch5.adb, sem_ch3.adb, exp_atag.adb, layout.adb, - sem_dist.adb, exp_ch7.adb, sem_ch5.adb, sem_type.adb, exp_imgv.adb, - exp_util.adb, sem_aux.adb, sem_aux.ads, exp_attr.adb, exp_ch9.adb, - sem_ch7.adb, inline.adb, fe.h, sem_ch9.adb, exp_code.adb, einfo.adb, - einfo.ads, exp_pakd.adb, checks.adb, sem_ch12.adb, exp_smem.adb, - tbuild.adb, freeze.adb, sem_util.adb, sem_res.adb, sem_attr.adb, - exp_dbug.adb, sem_case.adb, exp_tss.adb, exp_ch4.adb, exp_ch6.adb, - sem_smem.adb, sem_ch4.adb, sem_mech.adb, sem_ch6.adb, exp_disp.adb, - sem_ch8.adb, exp_aggr.adb, sem_eval.adb, sem_cat.adb, exp_dist.adb, - sem_ch13.adb, exp_strm.adb, lib-xref.adb, sem_disp.adb, exp_ch3.adb: - Reorganize einfo/sem_aux, moving routines from einfo to sem_aux - -2009-04-09 Robert Dewar - - * exp_util.adb (Silly_Boolean_Array_Xor_Test): Simplify existing code. - - * atree.h: Add Elist26 - - * gnat_ugn.texi: Complete documentation deprecating -gnatN for non-gcc - backends. - -2009-04-09 Javier Miranda - - * exp_disp.adb (Export_DT): Addition of a new argument (Index); used to - retrieve from the Dispatch_Table_Wrappers list the external name. - Addition of documentation. - (Make_Secondary_DT): Addition of a new argument (Suffix_Index) that is - used to export secondary dispatch tables (in the previous version of - the frontend only primary dispatch tables were exported). Addition of - documentation. - (Import_DT): New subprogram (internal of Make_Tags). Used to import a - dispatch table of a given tagged type. - (Make_Tags): Modified to import secondary dispatch tables. - - * sem_ch3.adb (Analyze_Object_Declaration): Code cleanup. - (Constant_Redeclaration): Code cleanup. - - * einfo.ads (Dispatch_Table_Wrapper): Renamed to - Dispatch_Table_Wrappers. Update documentation. - - * einfo.adb (Dispatch_Table_Wrapper, Set_Dispatch_Table_Wrapper): - Renamed to Dispatch_Table_Wrappers. - - * sem_util.adb (Collect_Interface_Components): Improve handling of - private types. - - * atree.ads (Elist26, Set_Elist26): New subprograms - - * atree.adb (Elist26, Set_Elist26): New subprograms - -2009-04-09 Javier Miranda - - * sem_ch3.adb (Build_Derived_Record_Type): Fix typo. - (Derive_Progenitor_Subprograms): Handle interfaces in subtypes of - tagged types. - -2009-04-09 Robert Dewar - - * s-direio.adb: Minor reformatting - - * exp_ch4.adb (Expand_Concatenate): Avoid overflow checks for String - -2009-04-09 Robert Dewar - - * exp_ch4.adb (Expand_Concatenate): Improve handling of overflow cases - -2009-04-09 Pascal Obry - - * a-cihama.adb, a-cihama.ads, a-coinve.adb, a-coinve.ads, - s-tpoben.adb, s-tpoben.ads, s-finimp.adb, s-finimp.ads, - a-convec.adb, a-convec.ads, a-finali.adb, a-finali.ads, - a-filico.ads: Add some missing overriding keywords. - -2009-04-09 Pascal Obry - - * a-cihama.adb, a-cihama.ads, a-coinve.adb, a-coorma.ads, a-cihase.adb, - a-cihase.ads, a-cohama.adb, a-cohama.ads, a-coorse.adb, a-coorse.ads, - a-coormu.adb, a-coormu.ads, a-cohase.adb, a-cohase.ads: Minor - reformatting. - -2009-04-09 Ed Schonberg - - * sem_ch6.adb (Check_Overriding_Indicator): Do not generate warning on - missing overriding indicator if the new declaration is not seen as - primitive. - -2009-04-09 Thomas Quinot - - * exp_ch4.adb (Expand_Concatenate): Add circuitry to properly handle - overflows in computation of bounds. - -2009-04-09 Pascal Obry - - * a-cihama.adb, a-cgcaso.adb, a-cihase.adb, a-cohase.adb: Fix some - typos in comment. - -2009-04-09 Robert Dewar - - * sem_attr.adb (Check_Stream_Attribute): Check violation of - restriction No_Streams - - * gnat_rm.texi: Clarify No_Streams restriction - - * g-socket.adb: Minor reformatting. - -2009-04-09 Thomas Quinot - - * g-socket.ads: Mark Initialize and Finalize as obsolesent interfaces. - -2009-04-09 Geert Bosch - - * exp_fixd.adb (Build_Conversion): Accept new optional Trunc argument. - (Set_Result): Likewise. - (Expand_Convert_Float_To_Fixed): Have Set_Result truncate the - conversion, as required by RM 4.6(31). - -2009-04-08 Robert Dewar - - * checks.adb (Enable_Overflow_Check): Do not enable if overflow checks - suppressed. - - * exp_ch4.adb (Expand_Concatenate): Make sure checks are off for all - resolution steps. - -2009-04-08 Robert Dewar - - * sem_ch12.adb (Analyze_Package_Instantiation): Remove test for - No_Local_Allocators restriction preventing local instantiation. - -2009-04-08 Thomas Quinot - - * sem_eval.adb: Minor comment fix - -2009-04-08 Thomas Quinot - - * g-socket.adb, g-socket.ads (GNAT.Sockets.Sockets_Library_Controller): - New limited controlled type used to automate the initialization and - finalization of the sockets implementation. - (GNAT.Sockets.Initialize, Finalize): Make these no-ops - -2009-04-08 Vincent Celier - - * prj-attr.adb: New read-only project-level attribute Project_Dir - - * prj-proc.adb (Add_Attributes): New parameter Project_Dir, value of - read-only attribute of the same name. - (Process_Declarative_Items): Call Add_Attributes with Project_Dir - (Recursive_Process): Ditto - - * snames.adb: Add new standard name Project_Dir - - * snames.ads: Add new standard name Project_Dir - -2009-04-08 Thomas Quinot - - * checks.adb: Minor reformatting - -2009-04-08 Vincent Celier - - * vms_data.ads: Add documentation for new style keyword - OVERRIDING_INDICATORS - -2009-04-08 Robert Dewar - - * sem_ch3.adb (Check_Completion.Post_Error): Post error on spec if the - spec is in the current unit. - -2009-04-08 Ed Schonberg - - * sem_util.adb (Is_Protected_Self_Reference): Add guard to check for - presence of entity. - - * usage.adb, gnat_ugn.texi: add info on -gnatyO: overriding indicators - -2009-04-08 Vincent Celier - - * vms_data.ads: Add VMS equivalent for -gnatyO (OVERRIDING_INDICATORS) - -2009-04-08 Thomas Quinot - - * checks.ads: Minor reformatting - -2009-04-08 Robert Dewar - - * gnat_rm.texi: Update documentation of pragma Obsolescent - - * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow identifiers to - be omitted, and allow Entity parameter to be omitted. - -2009-04-08 Thomas Quinot - - * exp_util.adb: Minor comment fix - -2009-04-08 Robert Dewar - - * g-socket.ads: Fix bad syntax in pragma Obsolescent - - * par-ch2.adb (Scan_Pragma_Argument_Association): Check for error of - argument with no identifier following one that has an identifier. Was - missed in some cases. - - * sem_prag.adb (Analyze_Pragma, case Check_Policy): Allow Policy - identifier. - (Analyze_Pragma, case Obsolescent): Allow Message, Version identifiers - - * snames.adb: Add Name_Policy - - * snames.ads: Add Name_Policy - -2009-04-08 Robert Dewar - - * gnat_rm.texi: Minor reformatting - - * par-ch2.adb: Minor reformatting - -2009-04-08 Robert Dewar - - * exp_attr.adb, sem_attr.adb, sem_util.adb: Code clean up. - -2009-04-08 Robert Dewar - - * sem_cat.adb (Check_Categorization_Dependencies): Handle Preelaborate - properly in the presence of Remote_Types or Remote_Call_Interface. - - * sem_util.adb: Add comment. - -2009-04-08 Robert Dewar - - * ug_words: Add /ASSUME_VALID for -gnatB - - * vms_data.ads: Add /ASSUME_VALID for -gnatB - - * sem_cat.adb: Add clarifying commment - - * a-direio.ads (Bytes): Make sure value is non-zero - -2009-04-08 Ed Schonberg - - * sem_util.adb (Is_Variable): If the prefix is an explicit dereference - that does not come from source, check for a rewritten function call in - prefixed notation before other forms of rewriting. - -2009-04-08 Robert Dewar - - * Makefile.rtl: Remove s-strops and s-sopco? from the run time, since - these are now obsolescent units used only for bootrapping with an - older compiler. - -2009-04-08 Robert Dewar - - * gnat_rm.texi: Add documentation for pragma Thread_Local_Storage - - * sem_ch3.adb: Minor comment updates - -2009-04-08 Ed Schonberg - - * inline.adb (Back_End_Cannot_Inline): restrict warning to subprograms - that come from source. - -2009-04-08 Tristan Gingold - - * gcc-interface/gigi.h (enum attr_type): Add ATTR_THREAD_LOCAL_STORAGE. - * gcc-interface/decl.c (prepend_attributes): New case - Pragma_Thread_Local_Storage. - * gcc-interface/utils.c (process_attributes): New case - ATTR_THREAD_LOCAL_STORAGE. - -2009-04-08 Ed Schonberg - - * inline.adb (Back_End_Cannot_Inline): Do not mark a body as inlineable - by the back-end if it contains a call to a subprogram without a - previous spec that is declared in the same unit. - - * errout.ads: Update comments on uses of dirs - -2009-04-08 Robert Dewar - - * exp_ch4.adb (Expand_Concatenate): Make sure nodes are properly typed - -2009-04-08 Tristan Gingold - - * sem_prag.adb: Restrict pragma Thread_Local_Storage to library level - variables. - Set Has_Gigi_Rep_Item flag to TLS variables (to ease gigi work). - -2009-04-08 Vincent Celier - - * prj-nmsc.adb: - (Add_Source): Add the mapping of the unit name to source file name in - the Unit_Sources_HT hash table, if the unit name is not null. - - * prj.adb (Reset): Reset hash table Tree.Unit_Sources_HT - - * prj.ads (Unit_Sources_Htable): New hash table instantiation - (Project_Tree_Data): New component Unit_Sources_HT - -2009-04-08 Thomas Quinot - - * sem_ch8.adb: Minor reformatting. - Minor code reorganization. - -2009-04-08 Robert Dewar - - * snames.h, einfo.adb, einfo.ads, sem_prag.adb, snames.adb, - snames.ads, freeze.adb, par-prag.adb: Add implementation of - pragma Thread_Local_Storage, setting new flag - Has_Pragma_Thread_Local_Storage in corresponding entities. - -2009-04-08 Emmanuel Briot - - * prj.ads: Update comment on switches file - - * prj-nmsc.adb: Code clean up. Use renaming clauses. - -2009-04-08 Robert Dewar - - * exp_ch4.adb (Expand_Concatenate): Further fixes to bounds handling - -2009-04-08 Thomas Quinot - - * ali-util.adb: Minor comment fix - -2009-04-08 Ed Schonberg - - * sem_ch8.adb (Analyze_Use_Type): Improve error message when clause - appears in a context clause, and the enclosing package is mentioned in - a limited_with_clause. - (Use_One_Type): Reject clause if type is still incomplete. - -2009-04-08 Emmanuel Briot - - * prj-nmsc.adb (Check_File, Process_Sources_In_Multi_Language_Mode): - avoid copies of Source_Data variables when possible, since these - involve calls to memcpy() which are done too many times. - -2009-04-08 Robert Dewar - - * exp_ch4.adb (Expand_Concatenate): Clean up code - -2009-04-07 Thomas Quinot - - * exp_ch4.adb (Expand_Concatenate): Add missing conversion to index - type for the case of concatenating a constrained array indexed by an - enumeration type. - -2009-04-07 Ed Schonberg - - * sem_ch6.adb (Check_Conformance): when checking conformance of an - operation that overrides an abstract operation inherited from an - interface, return False if only one of the controlling formals is an - access parameter. - -2009-04-07 Ed Schonberg - - * sem_ch8.adb (Analyze_Object_Renaming): additional error messages - mandated by AI05-105. - -2009-04-07 Vincent Celier - - * prj-nmsc.adb (Get_Mains): Warn if a main is an empty string - -2009-04-07 Thomas Quinot - - * usage.adb: Minor fix in usage message. - - * sem_ch10.adb (Remove_Homonyms): Fix subtype of formal in body to - match declaration; the correct subtype is Node_Id, not Entity_Id, - because the expected node kind is an identifier, not a defining - identifier. - - * switch-c.adb: Minor reformatting. - - * uintp.adb: Minor reformatting. - -2009-04-07 Robert Dewar - - * exp_ch13.adb: Minor reformatting - -2009-04-07 Robert Dewar - - * sem_warn.adb (Check_Infinite_Loop_Warning.Test_Ref): Add defence - against missing parent. - -2009-04-07 Thomas Quinot - - * xoscons.adb: Minor reformatting - -2009-04-07 Robert Dewar - - * rtsfind.ads: Remove obsolete string concatenation entries - -2009-04-07 Robert Dewar - - * exp_ch4.adb (Expand_Concatenate): Redo handling of bounds - -2009-04-07 Ed Schonberg - - * sem_ch10.adb (Check_Body_Required): Handle properly imported - subprograms. - -2009-04-07 Gary Dismukes - - * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case - Attribute_Address): When Init_Or_Norm_Scalars is True and the object - is of a scalar or string type then suppress the setting of the - expression to Empty. - - * freeze.adb (Warn_Overlay): Also emit the warnings about default - initialization for the cases of scalar and string objects when - Init_Or_Norm_Scalars is True. - -2009-04-07 Bob Duff - - * s-secsta.ads, g-pehage.ads, s-fileio.ads: Minor comment fixes - -2009-04-07 Bob Duff - - * gnat_rm.texi, s-fileio.adb (System.File_IO.Open): New feature: A - Form parameter of Text_Translation=No allows binary mode for Text_IO - files. - - * gnat_rm.texi: Document Form parameter Text_Translation=xxx. - -2009-04-07 Javier Miranda - - * exp_ch5.adb (Expand_Assign_Array): Add implicit conversion when - processing the bounds for bit packed arrays or VM target machines. - -2009-04-07 Thomas Quinot - - * g-sothco.ads (Int_Access): Remove extraneous access type (use - anonymous access instead). - (Get_Socket_From_Set): Fix incorrectly reverted formals - Last and Socket to match the underlying C routine. - - * g-socket.adb, g-socket.ads - (Get): Use named parameter associations instead of positional ones in - call go Get_Socket_From_Set, since this routine has two formals of the - same type. - (Image): New procedure. - - * g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb, - g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi.adb, g-socthi.ads: - (C_Ioctl, Syscall_Ioctl): use "access C.int" instead of "Int_Access" - for type of Arg formal. - - * sem_warn.adb: Minor reformatting - -2009-04-07 Ed Schonberg - - * sem_util.adb (Has_Tagged_Component): Fix typo in loop that iterates - over record components. - -2009-04-07 Nicolas Roche - - * gsocket.h: - Don't include resolvLib.h on VxWorks 6 (kernel and rtp). This library - has disappeared between VxWorks 6.4 and VxWorks 6.5 - In RTP mode use time.h instead of times.h - -2009-04-07 Robert Dewar - - * exp_ch4.adb (Expand_N_Op_Concat): Improve lower bound handling - -2009-04-07 Kevin Pouget - - * exp_dist.adb: Modify Build_From_Any_Fonction procedure to correct - expanded code for constrained types. - -2009-04-07 Ed Schonberg - - * sem_ch4.adb (Analyze_Overloaded_Selected_Component): implement - AI05-105: in an object renaming declaration, anonymousness is a name - resolution rule. - - * sem_ch8.adb (Analyze_Object_Renaming): Ditto. - -2009-04-07 Arnaud Charlet - - * g-comlin.adb (Expansion): Fix old regression: also return directory - names when matching. - -2009-04-07 Robert Dewar - - * exp_ch4.adb: - (Expand_N_Op_Concat): Call Expand_Concatenate for all cases - (Expand_Concatenate): New name for Expand_Concatenate_String which has - been rewritten to handle all types. - (Expand_Concatenate_Other): Remove - -2009-04-07 Ed Schonberg - - * lib-xref.adb (Generate_Reference): A default subprogram in an - instance appears within the tree for the instance, but generates an - implicit reference in the ALI. - -2009-04-07 Javier Miranda - - * sem_ch3.adb (Build_Derived_Record_Type): When processing a tagged - derived type that has discriminants, propagate the list of interfaces - to the corresponding new base type. In addition, propagate also - attribute Limited_Present (found working in this patch). - -2009-04-07 Robert Dewar - - * exp_ch4.adb: Rewrite concatenation expansion. - -2009-04-07 Ed Schonberg - - * sem_ch8.adb (Restore_Scope_Stack): First_Private_Entity is only - relevant to packages. - -2009-04-07 Robert Dewar - - * sem_attr.adb: Minor reformatting - - * sem_ch6.adb: Minor reformatting - -2009-04-07 Tristan Gingold - - * socket.c: Add more protections against S_resolvLib_ macros. - -2009-04-07 Thomas Quinot - - * sem_attr.adb: Minor reformatting - -2009-04-07 Ed Schonberg - - * sem_ch6.adb (New_Overloaded_Entity): New predicate - Is_Overriding_Alias to handle properly types that inherit two homonym - operations that have distinct dispatch table entries. - -2009-04-07 Emmanuel Briot - - * s-regexp.adb (Create_Mapping): Ignore excaped open parenthesis when - looking for the end of a parenthesis group - -2009-04-07 Tristan Gingold - - * gsocket.h Don't #include resolvLib.h if __RTP__ is defined. - - * socket.c Don't use resolvLib_ macros if not defined. - -2009-04-07 Robert Dewar - - * g-socket.adb: Minor reformatting. - - * g-socthi-mingw.adb: Minor reformatting - - * g-sothco.ads: Minor reformatting - - * exp_ch4.adb: - (Expand_Concatenate_String): Complete rewrite to generate efficient code - inline instead of relying on external library routines. - - * s-strops.ads, s-sopco5.ads, s-sopco5.adb, s-sopco4.ads, s-sopco4.adb, - s-sopco3.ads, s-sopco3.adb, s-strops.adb: Note that this unit is now - obsolescent - -2009-04-07 Ed Schonberg - - * sem_attr.adb: - (Eval_Attribute): for attributes of array objects that are not strings, - attributes are not static if nominal subtype of object is unconstrained. - -2009-04-07 Ed Schonberg - - * sem_ch6.adb (New_Overloaded_Entity): If two implicit homonym - operations for a type T in an instance do not override each other, - when T is derived from a formal private type, the corresponding - operations inherited by a type derived from T outside - of the instance do not override each other either. - -2009-04-07 Robert Dewar - - (Osint.Fail): Change calling sequence to have one string arg - (Make.Make_Failed): Same change - All callers are adjusted to use concatenation - -2009-04-07 Robert Dewar - - * exp_ch4.adb: Fix documentation typo - -2009-04-07 Robert Dewar - - * tbuild.ads: Minor reformatting - -2009-04-07 Javier Miranda - - * exp_disp.adb (Make_DT): Avoid the generation of the OSD_Table - when compiling under ZFP runtime. - -2009-04-07 Robert Dewar - - * g-comlin.adb: Minor reformatting - -2009-04-07 Thomas Quinot - - * socket.c, g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb, - g-socthi-vxworks.ads, g-socthi-mingw.adb, g-socthi-mingw.ads, - g-socthi.adb, g-socthi.ads, g-socket.adb, g-socket.ads, g-sothco.ads: - Remove dynamic allocation of Fd_Set in Socket_Set_Type objects. - -2009-04-07 Robert Dewar - - * gnat_ugn.texi: Document -gnatDnn/-gnatGnn - - * opt.ads (Sprint_Line_Limit): New parameter - - * sprint.adb: Usa Sprint_Line_Limit instead of Line_Limit throughout - - * switch-c.adb: Recognize -gnatDnnn and -gnatGnnn switches - - * usage.adb: Output information for -gnatGnn -gnatDnn - -2009-04-07 Robert Dewar - - * make.adb: Minor reformatting - -2009-04-07 Robert Dewar - - * mlib-tgt-specific-vms-alpha.adb: Minor reformatting - -2009-04-07 Robert Dewar - - * mlib-tgt-specific-vms-ia64.adb: Minor reformatting - -2009-04-07 Robert Dewar - - * checks.adb: - Remove Assume_Valid parameter from In_Subrange_Of calls - - * sem_eval.adb: - (Is_Subrange_Of): Remove Assume_Valid parameter, not needed - (Is_In_Range): Remove incorrect use of Assume_Valid - (Is_Out_Of_Range): Remove incorrect use of Assume_Valid - - * sem_eval.ads: - (Is_Subrange_Of): Remove Assume_Valid parameter, not needed - (Is_In_Range): Documentation cleanup - (Is_Out_Of_Range): Documentation cleanup - - * gnat_rm.texi: - Add documentation for Assume_No_Invalid_Values pragma - - * sem_ch12.adb: Minor reformatting - - * sem_ch6.adb: (Check_Conformance): Avoid cascaded errors - - * sem_prag.adb: Improve error message. - - * gnatchop.adb, osint.ads, sinput.adb, sinput.ads, styleg.adb: - LF/CR no longer recognized as line terminator - - * switch.ads: Minor documentation improvement - - * vms_data.ads: Minor reformatting - -2009-04-07 Robert Dewar - - * checks.adb (Determine_Range): Add Assume_Valid parameter - - * checks.ads (Determine_Range): Add Assume_Valid parameter - - * errout.adb (Error_Msg_NEL): Use Suppress_Loop_Warnings rather than - Is_Null_Loop to suppress warnings in a loop body. - - * exp_ch4.adb: - (Rewrite_Comparison): Major rewrite to accomodate invalid values - - * exp_ch5.adb: - (Expand_N_Loop_Statement): Delete loop known not to execute - - * opt.ads: - (Assume_No_Invalid_Values): Now set to False, and as documented, this - fully enables the proper handling of invalid values. - - * sem_attr.adb: - New calling sequence for Is_In_Range - - * sem_ch5.adb: - (Analyze_Iteration_Scheme): Accomodate possible invalid values - in determining if a loop range is null. - - * sem_eval.adb: - (Is_In_Range): Add Assume_Valid parameter - (Is_Out_Of_Range): Add Assume_Valid_Parameter - (Compile_Time_Compare): Major rewrite to accomodate invalid values and - also to do more accurate and complete range analysis, catching more - cases. - - * sem_eval.ads: - (Is_In_Range): Add Assume_Valid parameter - (Is_Out_Of_Range): Add Assume_Valid_Parameter - - * sem_util.adb: - New calling sequence for Is_In_Range - - * sinfo.adb: - (Suppress_Loop_Warnings): New flag - - * sinfo.ads: - (Is_Null_Loop): Update documentation - (Suppress_Loop_Warnings): New flag - - * gnat_ugn.texi: Document -gnatB switch - -2009-04-07 Arnaud Charlet - - * gnatvsn.ads: Bump version number. - -2009-04-07 Thomas Quinot - - * exp_ch3.adb: Minor rewording (comments) - -2009-04-07 Robert Dewar - - * exp_disp.adb: Minor reformatting - -2009-04-07 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Test the - underlying type. - * gcc-interface/trans.c (lvalue_required_p): Likewise. - -2009-04-07 Eric Botcazou - - * gcc-interface/trans.c (Attribute_to_gnu) : - Do not convert the result. Remove obsolete comment. - -2009-04-07 Eric Botcazou - - * gcc-interface/trans.c (establish_gnat_vms_condition_handler): Clear - DECL_CONTEXT. - (Subprogram_Body_to_gnu): Fix pasto. - -2009-04-07 Eric Botcazou - - * gcc-interface/gigi.h (standard_datatypes): Remove ADT_void_type_decl. - (void_type_decl_node): Remove. - (init_gigi_decls): Likewise. - (gnat_install_builtins): Declare. - (record_builtin_type): Likewise. - (create_type_stub_decl): Likewise. - * gcc-interface/decl.c (gnat_to_gnu_entity) : Use void_type. - (gnat_to_gnu_entity) : Make fat and thin pointer types - artificial. - : Use the index types, not only their name, in the - record giving the names of the bounds, if any. - For a packed array type, make it artificial only if the base type - was artificial as well. Remove redundant statement. - (gnat_to_gnu_entity) : Do not create TYPE_DECL for - dummy types. - Use create_type_stub_decl to build the TYPE_STUB_DECL of types. - (rest_of_type_decl_compilation_no_defer): Likewise. - * gcc-interface/misc.c (gnat_printable_name): Add missing guard. - * gcc-interface/utils.c (make_dummy_type): Always create TYPE_STUB_DECL - and use create_type_stub_decl to build it. - (gnat_pushdecl): Rewrite condition. - (gnat_install_builtins): Remove bogus declaration. - (record_builtin_type): New function. - (finish_record_type): Use create_type_stub_decl to build TYPE_STUB_DECL - of types. - (create_type_stub_decl): New function. - (create_type_decl): Assert that the type is not dummy. If the type - hasn't been named yet, equate the TYPE_STUB_DECL to the created node. - (build_vms_descriptor32): Do not create TYPE_DECL for the descriptor. - (build_vms_descriptor): Likewise. - (init_gigi_decls): Delete and move bulk of code to... - * gcc-interface/trans.c (gigi): ...here. Use record_builtin_type. - (emit_range_check): Add gnat_node parameter. - (emit_index_check): Likewise. - (emit_check): Likewise. - (build_unary_op_trapv): Likewise. - (build_binary_op_trapv): Likewise. - (convert_with_check): Likewise. - (Attribute_to_gnu): Adjust calls for above changes. - (call_to_gnu): Likewise. - (gnat_to_gnu): Likewise. - (assoc_to_constructor): Likewise. - (pos_to_constructor): Likewise. - (Sloc_to_locus): Set BUILTINS_LOCATION for Standard_Location nodes. - (process_type): Do not create TYPE_DECL for dummy types. - -2009-04-07 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity): Reorder local variables. - * gcc-interface/trans.c: Fix formatting throughout. Fix comments. - * gcc-interface/utils.c: Fix comments. - -2009-04-07 Eric Botcazou - - * gcc-interface/decl.c (compile_time_known_address_p): Rewrite and - move around. - (gnat_to_gnu_type): Move around. - (get_unpadded_type): Likewise. - * gcc-interface/utils.c (update_pointer_to): Use synthetic macro. - Tidy comments. - -2009-04-07 Eric Botcazou - - * gcc-interface/trans.c (check_for_eliminated_entity): New function. - (Attribute_to_gnu): Invoke it for Access- and Address-like attributes. - (call_to_gnu): Invoke it instead of manually checking. - -2009-04-04 Eric Botcazou - - * gcc-interface/utils.c (finish_record_type): Force structural equality - checks if the record type is discriminated. - -2009-03-31 Eric Botcazou - - * system-linux-alpha.ads (Functions_Return_By_DSP): Remove. - * system-linux-mips.ads (Functions_Return_By_DSP): Likewise. - * system-linux-mipsel.ads (Functions_Return_By_DSP): Likewise. - * system-linux-s390.ads (Functions_Return_By_DSP): Likewise. - * system-linux-s390x.ads (Functions_Return_By_DSP): Likewise. - * system-linux-sparc.ads (Functions_Return_By_DSP): Likewise. - * system-linux-sparcv9.ads (Functions_Return_By_DSP): Likewise. - -2009-03-30 Paolo Bonzini - - * gcc-interface/decl.c (maybe_pad_type): Use TREE_OVERFLOW instead - of TREE_CONSTANT_OVERFLOW. - -2009-03-30 Joseph Myers - - PR rtl-optimization/323 - * gcc-interface/misc.c (gnat_post_options): Set - flag_excess_precision_cmdline. Give an error for - -fexcess-precision=standard for processors where the option is - significant. - -2009-03-27 H.J. Lu - - PR c/39323 - * gcc-interface/utils.c (create_field_decl): Use "unsigned int" - on bit_align. - -2009-03-11 Olivier Hainque - - * gcc-interface/trans.c (gnat_to_gnu) : In range - checks processing, remove unintended TREE_TYPE walk on index type. - -2009-03-01 Eric Botcazou - - PR ada/39264 - * gcc-interface/decl.c (gnat_to_gnu_entity) : Do no - call make_packable_type on fat pointer types. - : Likewise. - : Call make_packable_type on all record types - except for fat pointer types. - (make_packable_type): Likewise. - (gnat_to_gnu_field): Likewise. - -2009-02-28 Eric Botcazou - - * gcc-interface/Makefile.in (cygwin/mingw): Revert accidental - EH_MECHANISM change made on 2007-12-06. - -2009-02-26 Andreas Schwab - - PR ada/39172 - * Makefile.in (srcdir): Set to @top_srcdir@ instead of @srcdir@. - * gcc-interface/Makefile.in: Change all uses of $(srcdir), - $(fsrcdir) and $(fsrcpfx) to add ada subdir. - (AWK): Substitute. - (target_cpu_default): Substitute. - -2009-02-25 Laurent GUERBY - - PR ada/39221 - * a-teioed.adb (Expand): Fix Result overflow. - -2009-02-25 Laurent GUERBY - - * gcc-interface/Makefile.in: Fix multilib handling for - sparc64-linux. - -2009-02-23 Rainer Orth - - * s-oscons-tmplt.c [__osf__ && !_SS_MAXSIZE]: Undef AF_UNIX6. - -2009-02-18 H.J. Lu - - * gcc-interface/misc.c (gnat_post_options): Turn off warn_psabi. - -2009-02-16 Eric Botcazou - - * gcc-interface/deftarg.c: Remove. - -2009-02-10 Olivier Hainque - Eric Botcazou - - * gcc-interface/decl.c (enum alias_set_op): New enumeration. - (copy_alias_set): Rename into... - (relate_alias_sets): ...this. Add third parameter OP. Retrieve the - underlying array of unconstrained arrays for the new type as well. - If the old and new alias sets don't conflict, make one a subset of - the other as per the OP parameter. - (gnat_to_gnu_entity): Adjust calls to copy_alias_set. - : Do not copy the alias set for derived types. - For all types, make the alias set of derived types a superset of - that of their parent type. - (make_aligning_type): Adjust calls to copy_alias_set. - (make_packable_type): Likewise. - * gcc-interface/trans.c (gnat_to_gnu): - Check for alias set conflict instead of strict equality to issue the - warning. - -2009-02-09 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : - Set TYPE_NONALIASED_COMPONENT on the array type only if appropriate. - (copy_alias_set): Assert that arrays have the same aliasing settings. - (substitute_in_type) : Copy TYPE_NONALIASED_COMPONENT. - -2009-02-08 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : - Set TYPE_NONALIASED_COMPONENT on the array type. - -2009-01-31 Laurent GUERBY - - * gcc-interface/Makefile.in: Fix mipsel linux handling. - -2009-01-16 Jakub Jelinek - - * gcc-interface/Makefile.in: Fix multilib handling for - powerpc64-linux. - -2009-01-12 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Really strip - only useless conversions around renamed objects. - -2009-01-11 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Put - the _Tag field before any discriminants in the field list. - (components_to_record): Remove obsolete comment. - -2008-12-09 Jakub Jelinek - - PR ada/38450 - * gcc-interface/utils.c (finish_record_type): Use SET_TYPE_MODE. - * gcc-interface/decl.c (gnat_to_gnu_entity, make_aligning_type): - Likewise. - -2008-12-05 Sebastian Pop - - PR bootstrap/38262 - * gcc-interface/Make-lang.in (gnat1): Add BACKENDLIBS, remove GMPLIBS. - -2008-11-29 Eric Botcazou - - PR ada/30827 - * g-comver.adb (Ver_Len_Max): Fix inconsistency. - -2008-11-27 Eric Botcazou - - * gcc-interface/decl.c: Fix various nits. - -2008-11-20 Eric Botcazou - - * gcc-interface/utils.c (init_gigi_decls): Fix type mismatch. - -2008-11-16 Eric Botcazou - - PR ada/38127 - * gcc-interface/decl.c (make_type_from_size) : Do not - special-case boolean types. Propagate the name. - * gcc-interface/targtyps.c: Tweak comment. - -2008-11-15 Geert Bosch - - * gcc-interface/trans.c (emit_check): Put back a final save_expr - to prevent exponential expansion during gimplification. - -2008-11-15 Eric Botcazou - - * gcc-interface/lang-specs.h: Expand -coverage and reorder switches. - -2008-11-15 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Force constants - initialized to a static constant to be statically allocated even if - they are of a padding type, provided the original type also has - constant size. - -2008-11-15 Laurent Guerby - - PR ada/37993 - * gcc-interface/Makefile.in: Add multilib handling for x86_64 - on darwin. - * system-darwin-x86_64.ads: New file. - -2008-11-13 Olivier Hainque - - * gcc-interface/decl.c (gnat_to_gnu_entity) : - Turn Ada Pure on subprograms back into GCC CONST when eh constructs - are explicit to the middle-end. Tidy. - -2008-11-09 Eric Botcazou - - * gcc-interface/ada-tree.def (PLUS_NOMOD_EXPR): New tree code. - (MINUS_NOMOD_EXPR): Likewise. - * gcc-interface/utils2.c (build_binary_op) : Make - unreachable. - : New case. - : Likewise. - * gcc-interface/trans.c (Loop_Statement_to_gnu): Build increment-and- - assignment statement instead of using an increment operator. - -2008-11-07 Rainer Orth - - * system-irix-n64.ads: New file. - * gcc-interface/Makefile.in (mips-sgi-irix6*): Support O32 and N64 - multilibs. - -2008-11-07 Rainer Orth - - PR ada/37681 - * system-solaris-x86_64.ads: New file. - * gcc-interface/Makefile.in (*86-solaris2*): Support x86_64 multilib. - -2008-11-07 Bechir Zalila - Eric Botcazou - - PR ada/34289 - * lib.ads: (Enable_Switch_Storing): Declare. - * lib.adb: (Enable_Switch_Storing): New procedure. - * switch-c.adb (Scan_Front_End_Switches): Add support for -gnatea. - * make.adb: (Compile_Sources.Compile): Add -gnatea as first option. - (Display): Never display -gnatea - * gcc-interface/lang-specs.h: If -gnatea is present, pass -gnatez. - -2008-11-07 Thomas Quinot - - * gcc-interface/trans.c (Attribute_to_gnu, case Attr_Length): Check - for empty range in original base type, not converted result type. - -2008-11-07 Geert Bosch - - * gcc-interface/trans.c (build_binary_op_trapv): Convert arguments - and result for call to __gnat_mulv64. - -2008-11-07 Eric Botcazou - - * gcc-interface/trans.c: Fix formatting nits. - -2008-11-07 Geert Bosch - - * gcc-interface/trans.c (build_binary_op_trapv): Avoid emitting - overflow check for constant result. - -2008-11-07 Geert Bosch - - * gcc-interface/trans.c (build_binary_op_trapv): Use more efficient - overflow check for addition/subtraction if neither operand is constant. - -2008-11-06 Eric Botcazou - - * gcc-interface/Makefile.in (SPARC/Solaris): Use a common set of - files for the target-dependent part of the runtime. - (SPARC/Linux): Likewise. - -2008-11-06 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : If not - optimizing, create a PARM_DECL pointing to the VAR_DECL for debugging - purposes. - -2008-11-06 Eric Botcazou - - * gcc-interface/misc.c (gnat_printable_name): Always return a copy - in GC memory. - -2008-11-06 Eric Botcazou - - PR ada/19419 - * gcc-interface/trans.c (gnat_to_gnu) : - Generate a call to memmove for an assignment between overlapping - array slices. - -2008-11-02 Andreas Krebbel - - PR target/37977 - * gcc-interface/Makefile.in: Add multilib handling for - s390-linux and s390x-linux. - -2008-10-24 Jakub Jelinek - - * gcc-interface/Make-lang.in (check-ada-subtargets): Depend on - check-acats-subtargets and check-gnat-subtargets. - (check_acats_targets): New variable. - (check-acats-subtargets, check-acats%): New targets. - (check-acats): If -j is used and CHAPTERS is empty, run the testing - in multiple make goals, possibly parallel, and afterwards run - dg-extract-results.sh to merge the sum and log files. - -2008-10-17 Geert Bosch - - * gcc-interface/trans.c (gnat_to_gnu) : Simplify expansion - to use only a single check instead of three, and avoid unnecessary - COMPOUND_EXPR. - (emit_check): Avoid useless COMPOUND_EXPRs and SAVE_EXPRs, sometimes - creating more opportunities for optimizations. - -2008-10-13 Jakub Jelinek - - PR middle-end/37601 - * gcc-interface/utils.c (gnat_types_compatible_p): Handle - NULL TYPE_DOMAIN. - -2008-10-07 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Move code - dealing with volatileness to after code dealing with renaming. - -2008-10-06 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Minor tweaks. - * gcc-interface/trans.c (Pragma_to_gnu): Likewise. - -2008-10-06 Eric Botcazou - - * gcc-interface/utils.c (can_fold_for_view_convert_p): New predicate. - (unchecked_convert): Use it to disable problematic folding with - VIEW_CONVERT_EXPR in the general case. Always disable it for the - special VIEW_CONVERT_EXPR built for integral types and cope with - its addressability issues by preserving the first conversion. - -2008-10-01 Andreas Schwab - - * system-linux-ppc64.ads: New file. - * gcc-interface/Makefile.in: Add multilib handling for - powerpc-linux. - -2008-09-26 Eric Botcazou - - * decl.c (gnat_to_gnu_entity) : Cap the alignment promotion - to that of ptr_mode instead of word_mode. - -2008-09-26 Eric Botcazou - - PR ada/5911 - * gcc-interface/Makefile.in (SPARC/Solaris): Add multilib support. - -2008-09-25 Samuel Tardieu - - PR ada/37641 - * adaint.c (__gnat_set_non_writable): Use FILE_WRITE_EA - instead of deprecated FILE_WRITE_PROPERTIES. - -2008-09-22 Olivier Hainque - - * gcc-interface/decl.c (gnat_to_gnu_entity): Even when they - are never assigned, volatile entities are not constant for code - generation purposes. - -2008-09-21 Laurent Guerby - - PR ada/5911 - * gcc-interface/Makefile.in: Add multilib handling for x86_64 - and sparc. - * system-linux-sparcv9.ads: New file. - -2008-09-20 Eric Botcazou - - * exp_dbug.ads: Document new convention for the XVZ variable. - * gcc-interface/decl.c (gnat_to_gnu_entity) : Generate - debug info if necessary for the type padding the component type. - : Likewise. - (maybe_pad_type): Emit the XVZ variable in units. - * gcc-interface/trans.c (Loop_Statement_to_gnu): Fix formatting nits. - (Subprogram_Body_to_gnu): Set the source line of the subprogram's node - on statements generated to initialize the parameter attributes cache. - Set the source line of the end label of the body on the special return - statement built for a procedure with copy-in copy-out parameters. - -2008-09-20 Eric Botcazou - - PR ada/37585 - * gcc-interface/utils.c (create_subprog_decl): Disable inlining for - inlined external functions if they contain a nested function not - declared inline. - -2008-09-18 Jan Hubicka - - * gcc-interface/utils.c (create_subprog_decl): Use DECL_DECLARED_INLINE_P. - (end_subprog_body): Do not set DECL_INLINE. - -2008-09-17 Pascal Rigaux - - PR ada/21327 - * gnat_ugn.texi: Use proper format in direntry. - -2008-09-15 Eric Botcazou - - * gcc-interface/trans.c (gigi): Declare the name of the compilation - unit as the first global name. - -2008-09-14 Jan Hubicka - - * gcc-interface/Make-lang.in (gnat1): Add CFLAGS. - -2008-09-14 Ralf Wildenhues - - * a-crbtgk.adb, a-direct.ads, a-tasatt.adb, ali.ads, - bindgen.adb, checks.adb, einfo.ads, exp_aggr.adb, exp_ch11.adb, - exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb, - exp_dbug.ads, exp_disp.adb, exp_dist.adb, exp_pakd.adb, - exp_util.adb, g-alveop.ads, g-comlin.adb, g-comlin.ads, - g-diopit.adb, g-socket.ads, gcc-interface/decl.c, - gcc-interface/gigi.h, gcc-interface/trans.c, - lib-load.adb, lib-xref.ads, make.adb, mlib-prj.adb, nlists.ads, - opt.ads, par-ch10.adb, par-ch5.adb, par.adb, s-os_lib.ads, - s-oscons-tmplt.c, s-parint.ads, s-regpat.ads, s-shasto.ads, - s-stausa.ads, s-taprop-vms.adb, sem.adb, sem_ch10.adb, - sem_ch11.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, - sem_ch3.ads, sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, - sem_elim.adb, sem_prag.adb, sem_util.adb, sem_util.ads, - sem_warn.adb, sinfo.ads, styleg.adb, vms_data.ads: Fix typos in - comments. - * gnathtml.pl: Fix typos. - -2008-09-10 Joel Sherrill - - * gcc-interface/Makefile.in: Switch RTEMS to s-interr-hwint.adb. - * s-osinte-rtems.ads: Add shared hardware interrupt adapter - layer. RTEMS binds to OS provided adapter routines so there are - no modifications to s-osinte-rtems.adb. - -2008-09-09 Arnaud Charlet - Joel Sherrill - - * gcc-interface/Makefile.in: Switch VxWorks to s-interr-hwint.adb. - - * s-interr-vxworks.adb: Renamed to s-interr-hwint.adb - - * s-interr-hwint.adb: New file. - - * s-osinte-vxworks.ads, s-osinte-vxworks.adb: Add new functions - needed by s-interr-hwint.adb. - - * s-osinte-vxworks-kernel.adb: New file. - -2008-09-05 Joel Sherrill - - * s-stchop-rtems.adb: Add file missed in early commit. Already - referenced in gcc-interface/Makefile.in. - -2008-08-30 Thomas Quinot - - * gcc-interface/Make-lang.in: Allow s-oscons.{o,ali} to - be built even without a separate libada directory. - -2008-08-22 Arnaud Charlet - - * lib-xref.ads: Fix typo in subprogram reference definition. - -2008-08-22 Robert Dewar - - * s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-strops.adb: Minor code fix - to avoid warning. - - * g-trasym.adb: Ditto - - * s-utf_32.adb (Get_Category): Fix obvious typo - - * s-wwdcha.adb: Minor code reorganization - Remove dead code - -2008-08-22 Robert Dewar - - * checks.adb (Determine_Range): Deal with values that might be invalid - - * opt.adb, opt.ads (Assume_No_Invalid_Values[_Config]): New - configuration switches. - - * par-prag.adb: Dummy entry for pragma Assume_No_Invalid_Values - - * sem_prag.adb: Implement pragma Assume_No_Default_Values - - * snames.adb, snames.ads, snames.h: - Add entries for pragma Assume_No_Invalid_Values - - * switch-c.adb: Add processing for -gnatB switch - - * usage.adb: Add entry for flag -gnatB (no bad invalid values) - -2008-08-22 Javier Miranda - - * exp_ch3.adb (Build_Init_Statements): Transfer to the body of the - init procedure all the expanded code associated with the spec of - task types and protected types. - -2008-08-22 Gary Dismukes - - * exp_aggr.adb (Static_Array_Aggregate): Call Analyze_And_Resolve on the - component expression copies rather than directly setting Etype and - Is_Static_Expression. - -2008-08-22 Gary Dismukes - - * sem_util.adb (Has_Preelaborable_Initialization): Revise checking of - private types to allow for types derived from a private type with - preelaborable initialization, but return False for a private extension - (unless it has the pragma). - -2008-08-22 Robert Dewar - - * opt.ads: Minor code reorganization (put entries in alpha order) - -2008-08-22 Pascal Obry - - * initialize.c, adaint.c: Use Lock_Task and Unlock_Task for non-blocking - spawn. - -2008-08-22 Geert Bosch - - * gcc-interface/trans.c: Define FP_ARITH_MAY_WIDEN - (convert_with_check): Only use longest_float_type if FP_ARITH_MAY_WIDEN is 0 - -2008-08-22 Doug Rupp - - * bindgen.adb [VMS] (Gen_Adainit_Ada, Gen_Adainit_C): Import and call - __gnat_set_features. - - * init.c - (__gnat_set_features): New function. - (__gnat_features_set): New tracking variable. - (__gl_no_malloc_64): New feature global variable - -2008-08-22 Ed Schonberg - - * sem_ch8.adb (Use_One_Type): Do not emit warning message about redundant - use_type_clause in an instance. - -2008-08-22 Bob Duff - - * exp_ch6.ads: Remove pragma Precondition, since it breaks some builds. - -2008-08-22 Robert Dewar - - * exp_ch6.adb: Minor reformatting - - * exp_ch7.adb: Minor reformatting - - * exp_ch7.ads: Put routines in proper alpha order - - * exp_dist.adb: Minor reformatting - -2008-08-22 Vincent Celier - - * prj.ads: Minor comment update - -2008-08-22 Robert Dewar - - * sem_ch5.adb (One_Bound): Fix latent bug involving secondary stack - -2008-08-22 Ed Schonberg - - * exp_tss.adb: - (Base_Init_Proc): For a protected subtype, use the base type of the - corresponding record to locate the propoer initialization procedure. - -2008-08-22 Robert Dewar - - * checks.adb: - (In_Subrange_Of): New calling sequence - (Determine_Range): Prepare for new processing using base type - - * exp_ch4.adb: - (Compile_Time_Compare): Use new calling sequence - - * exp_ch5.adb: - (Compile_Time_Compare): Use new calling sequence - - * sem_eval.adb: - (Compile_Time_Compare): New calling sequence allows dealing with - invalid values. - (In_Subrange_Of): Ditto - - * sem_eval.ads: - (Compile_Time_Compare): New calling sequence allows dealing with - invalid values. - (In_Subrange_Of): Ditto - -2008-08-22 Pascal Obry - - * adaint.c: Fix possible race condition on win32_wait(). - -2008-08-22 Bob Duff - - * exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb, freeze.adb, - exp_ch4.adb, exp_ch6.ads, exp_ch6.adb, sem_ch6.adb, exp_aggr.adb, - exp_intr.adb, exp_ch3.adb: Rename: - Exp_Ch7.Controlled_Type => Needs_Finalization - Exp_Ch7.CW_Or_Controlled_Type => CW_Or_Has_Controlled_Part - Exp_Ch5.Expand_N_Extended_Return_Statement.Controlled_Type => - Has_Controlled_Parts - (Has_Some_Controlled_Component): Fix bug in array case. - -2008-08-22 Robert Dewar - - * sem_ch8.adb: Minor reformatting - -2008-08-22 Kevin Pouget - - * s-shasto.ads, s-shasto.adb: Move Shared_Var_ROpen, Shared_Var_WOpen and - Shared_Var_Close procedure specifications from package spec to package body. - - * rtsfind.ads: Remove RE_Shared_Var_Close, RE_Shared_Var_ROpen, - RE_Shared_Var_WOpen entries. - - * exp_dist.adb: Update RE_Any_Content_Ptr to RE_Any_Container_Ptr in - Build_To_Any_Call, Build_TypeCode_Call and Build_From_Any_Call procedures. - -2008-08-22 Eric Botcazou - - * init.c: adjust EH support code on Alpha/Tru64 as well. - - * raise-gcc.c: Add back a couple of comments. - -2008-08-22 Ed Schonberg - - * exp_ch5.adb (Expand_Simple_Function_Return): If secondary stack is - involved and the return type is class-wide, use the type of the expression - for the generated access type. Suppress useless discriminant checks on the - allocator. - -2008-08-22 Bob Duff - - * exp_ch7.adb: Minor comment fix - - * exp_ch6.ads: Minor comment fix - -2008-08-22 Thomas Quinot - - * sem_ch8.adb: Minor reformatting - Minor code reorganization (introduce subprogram to factor duplicated - code). - -2008-08-22 Sergey Rybin - - * gnat_ugn.texi: Change the description of gnatcheck default rule - settings. - -2008-08-22 Eric Botcazou - - * init.c (__gnat_adjust_context_for_raise): Delete for AIX, HP-UX, - Solaris, FreeBSD, VxWorks and PowerPC/Linux. For x86{-64}/Linux, - do not adjust the PC anymore. - (__gnat_error_handler): Do not call __gnat_adjust_context_for_raise - on AIX, HP-UX, Solaris, FreeBSD and VxWorks. - - * raise-gcc.c (get_call_site_action_for): Use _Unwind_GetIPInfo - instead of _Unwind_GetIP. - -2008-08-22 Gary Dismukes - - * exp_aggr.adb (Static_Array_Aggregate): When a static array aggregate - with a range is transformed into a positional aggregate, any copied - component literals should be marked Is_Static_Expression. - - * sem_eval.adb (Compile_Time_Known_Value): Don't treat null literals as - not being known at at compile time when Configurable_Run_Time_Mode is - true. - -2008-08-22 Robert Dewar - - * exp_attr.adb: - (Expand_N_Attribute_Reference): No validity checking on OUT parameter of - Read or Input attribute. - -2008-08-22 Ed Schonberg - - * sem_ch8.adb (Use_One_Type): when checking which of two use_type - clauses in related units is redundant, if one of the units is a package - instantiation, use its instance_spec to determine which unit is the - ancestor of the other. - -2008-08-22 Javier Miranda - - * exp_attr.adb (Expand_N_Attribute_Reference): In case of access - attributes add missing support to handle designated types that come - from the limited view. - - * exp_disp.adb (Expand_Interface_Conversion): Remove wrong assertion. - -2008-08-22 Sergey Rybin - - * vms_data.ads: Add entry for new gnatcheck -mNNN option - - * gnat_ugn.texi: Add description for gnatcheck option '-m' - -2008-08-22 Sergey Rybin - - * gnat_ugn.texi: Update the gnatcheck subsection for metric rules - acoording to the latest changes in the metric rule interface - -2008-08-22 Vincent Celier - - * make.adb (Check.File_Not_A_Source_Of): New Boolean function - (Check): Check if the file names registered in the ALI file for the - spec, the body and each of the subunits are the ones expected. - -2008-08-22 Robert Dewar - - * g-catiio.adb: Code cleanup. - -2008-08-20 Vincent Celier - - * make.adb (Gnatmake): Remove extra space in version line - - * ali.adb: - (Scan_ALI): Use Name_Find, not Name_Enter to get the name of a subunit, - as the name may already have been entered in the table by the Project - Manager. - -2008-08-20 Jose Ruiz - - * errno.c (__get_errno, __set_errno for MaRTE): Transform then into - weak symbols so we use the version provided by MaRTE when available. - -2008-08-20 Emmanuel Briot - - * g-catiio.ads, g-catiio.adb: - (Value): Avoid an unnecessary system call to Clock in most cases. - This call is only needed when only the time is provided in the string, - and ignored in all other cases. This is more efficient. - -2008-08-20 Eric Botcazou - - * raise-gcc.c: Fix formatting nits. - -2008-08-20 Robert Dewar - - * sem_ch13.adb: - (Adjust_Record_For_Reverse_Bit_Order): Do not access First_Bit for - non-existing component clause. - - * exp_ch5.adb: Minor reformatting - - * g-comlin.adb: Minor reformatting - - * make.adb: Minor reformatting - - * prj-proc.adb: Minor reformatting - - * stylesw.ads: Minor reformatting - -2008-08-20 Vincent Celier - - * make.adb (Gnatmake_Switch_Found): New Boolean global variable - (Switch_May_Be_Passed_To_The_Compiler): New Boolean global variable - (Add_Switches): New Boolean parameter Unknown_Switches_To_The_Compiler - defaulted to True. Fail when Unknown_Switches_To_The_Compiler is False - and a switch is not recognized by gnatmake. - (Gnatmake): Implement new scheme for gnatmake switches and global - compilation switches. - (Switches_Of): Try successively Switches (), - Switches ("Ada"), Switches (others) and Default_Switches ("Ada"). - -2008-08-20 Ed Schonberg - - * styleg-c.ads, styleg-c.adb (Missing_Overriding): new procedure to - implement style check that overriding operations are explicitly marked - at such. - - * style.ads (Missing_Overriding): new procedure that provides interface - to previous one. - - * stylesw.ads, stylesw.adb: New style switch -gnatyO, to enable check - that the declaration or body of overriding operations carries an - explicit overriding indicator. - - * sem_ch8.adb - (Analyze_Subprogram_Renaming): if operation is overriding, check whether - explicit indicator should be present. - - * sem_ch6.adb (Verify_Overriding_Indicator, - Check_Overriding_Indicator): If operation is overriding, check whether - declaration and/or body of subprogram should be present - -2008-08-20 Vincent Celier - - * prj-nmsc.adb (Check_Naming_Schemes): Accept source file names for - gprbuild when casing is MixedCase, whatever the casing of the letters - in the file name. - -2008-08-20 Gary Dismukes - - * exp_ch3.adb (Build_Array_Init_Proc): Clarify comment related to - creating dummy init proc. - (Requires_Init_Proc): Return False in the case No_Default_Initialization - is in force and the type does not have associated default - initialization. Move test of Is_Public (with tests of restrictions - No_Initialize_Scalars and No_Default_Initialization) to end, past tests - for default initialization. - -2008-08-20 Jerome Lambourg - - * g-comlin.adb (For_Each_Simple_Switch): Take care of switches not part - of any alias or prefix but having attached parameters (as \"-O2\"). - -2008-08-20 Robert Dewar - - * s-fileio.adb: Minor reformatting - -2008-08-20 Thomas Quinot - - * exp_strm.adb (Build_Elementary_Input_Call, - Build_Elementary_Write_Call): Fix incorrect condition in circuitry that - selects the stream attribute routines for long float types. - -2008-08-20 Vincent Celier - - * prj-proc.adb (Process_Declarative_Items): Add Location for Array_Data - - * prj.ads (Array_Data): Add a component Location - -2008-08-20 Ed Schonberg - - * sem_prag.adb: - (Analyze_Pragma, case Obsolescent): Add entity information on the pragma - argument for ASIS and navigation use. - -2008-08-20 Ed Schonberg - - * einfo.ads: Add comment. - -2008-08-20 Bob Duff - - * sem_eval.ads: Minor comment fix. - -2008-08-20 Bob Duff - - * exp_ch4.adb (Expand_N_And_Then, Expand_N_Or_Else): Improve constant - folding. We were folding things like "False and then ...", but not - "X and then ..." where X is a constant whose value is known at compile - time. - -2008-08-20 Hristian Kirtchev - - * exp_ch5.adb (Controlled_Type): New routine. - (Expand_N_Extended_Return_Statement): When generating a move of the - final list in extended return statements, check the type of the - function and in the case of double expanded return statements, the type - of the returned object. - (Expand_Simple_Function_Return): Perform an interface conversion when - the type of the returned object is an interface and the context is an - extended return statement. - -2008-08-20 Ed Schonberg - - * sem_util.adb (Set_Debug_Info_Needed): If the entity is a private type - and the full view is visible, set flag on full view as well. - -2008-08-20 Thomas Quinot - - * g-comlin.adb: Minor reformatting - Minor code reorganization. - - * freeze.adb: Minor reformatting - -2008-08-20 Vincent Celier - - * prj-nmsc.adb (Check_File): An excluded Ada source file may be a - source of another project. - -2008-08-20 Pascal Obry - - * s-os_lib.ads: Minor reformatting. - -2008-08-20 Arnaud Charlet - - * gnatvsn.ads: Minor reformatting. - -2008-08-20 Arnaud Charlet - - * a-crbtgk.adb, repinfo.adb, g-traceb.ads, repinfo.ads, - system-linux-s390x.ads, s-fatflt.ads, s-parame-ae653.ads, g-spipat.adb, - g-spipat.ads, g-tasloc.adb, g-debpoo.adb, g-except.ads, g-debpoo.ads, - mdll-utl.adb, g-string.adb, g-soliop-solaris.ads, par-sync.adb, - exp_ch6.ads, a-cihama.ads, g-curexc.ads, system-linux-sh4.ads, - g-utf_32.adb, g-hesorg.adb, s-proinf-irix-athread.ads, s-parint.adb, - s-parint.ads, exp_ch7.ads, system-linux-alpha.ads, g-dirope.adb, - sinfo-cn.adb, par-labl.adb, a-ciorse.adb, g-calend.adb, - s-parame-vms-alpha.ads, nlists.h, exp_imgv.adb, exp_fixd.ads, - g-calend.ads, gnatcmd.ads, g-table.adb, s-memory-mingw.adb, - g-alveop.ads, g-memdum.ads, g-altive.ads, initialize.c, g-regpat.adb, - g-busorg.ads, g-regpat.ads, g-encstr.ads, g-regexp.adb, g-regexp.ads, - live.ads, g-dyntab.adb, prj-nmsc.ads, par-ch12.adb, 9drpc.adb, - g-alvevi.ads, s-memory.adb, math_lib.adb, s-parame.ads, s-memory.ads, - s-regexp.adb, a-exexda.adb, i-cstrea-vms.adb, a-exexpr.adb, - g-soliop-mingw.ads, s-imgrea.adb, namet.adb, system-vms.ads, - s-inmaop-dummy.adb, s-finroo.ads, a-ngcefu.adb, s-hibaen.ads, - g-soliop.ads, s-auxdec.adb, g-locfil.ads, gnatxref.adb, memroot.adb, - osint-b.ads, memroot.ads, s-parame-hpux.ads, errutil.adb, - system-linux-s390.ads, par-util.adb, osint-c.ads, exp_pakd.ads, - i-pacdec.ads, par-endh.adb, mlib-tgt.ads, prj-strt.ads, - s-osprim-vms.adb, s-proinf.ads, output.ads, g-moreex.ads, - a-finali.ads, s-fatlfl.ads, namet.h, mdll.ads, g-dynhta.ads, - s-imgenu.ads, par-tchk.adb, g-excact.ads, memtrack.adb, s-fatgen.adb, - a-exexpr-gcc.adb, g-arrspl.adb, par-ch4.adb, g-cgideb.adb, freeze.ads, - g-altcon.adb, s-fatllf.ads, gnatfind.adb, s-osinte-lynxos-3.adb, - a-exextr.adb, g-htable.ads, a-calfor.adb, s-imgcha.adb, argv.c, - a-chahan.ads, g-hesora.adb, system-vms_64.ads, par-ch5.adb, g-md5.adb, - lib-xref.ads, g-md5.ads, g-casuti.ads, s-fatsfl.ads, exp_dbug.ads, - s-htable.ads, a-ngcoar.adb, s-arit64.ads, a-ngelfu.adb, a-filico.ads, - par-ch6.adb, s-inmaop.ads, s-parame-vxworks.ads, s-casuti.ads, - a-numaux-darwin.adb, a-cohama.ads, system-linux-sparc.ads, g-os_lib.adb, - system-vms-ia64.ads, s-parame-vms-restrict.ads, a-clrefi.ads, - s-parame-vms-ia64.ads, a-strfix.adb, a-coorse.adb, a-comlin.ads, - a-chtgke.adb, s-imgint.adb, g-expect.ads, exp_ch4.ads, s-finimp.adb, - mingw32.h, g-heasor.adb, g-alleve.adb, a-ngrear.adb, s-mastop-irix.adb, - s-poosiz.adb, link.c: Fix copyright notice. - -2008-08-20 Arnaud Charlet - - * g-comlin.ads: Update comments. - -2008-08-20 Ed Schonberg - - * sem_ch8.adb (Analyze_Subprogram_Renaming): Inherit Is_Imported flag. - -2008-08-20 Gary Dismukes - - * exp_ch11.adb: - (Expand_Exception_Handlers): Call Make_Exception_Handler instead of - Make_Implicit_Exception_Handler when rewriting an exception handler with - a choice parameter, and pass the handler's Sloc instead of that of the - handled sequence of statements. Make_Implicit_Exception_Handler sets the - Sloc to No_Location (unless debugging generated code), which we don't - want for the case of a user handler. - -2008-08-20 Robert Dewar - - * freeze.adb (Freeze_Record_Type): Improve msg for non-contiguous field - - * sem_ch13.adb: - (Adjust_Record_For_Reverse_Bit_Order): Messages about layout are - now labeled as info msgs, not warnings. - - * tbuild.ads: Clarify documentation of Make_Implicit_Exception_Handler - - * usage.adb: Minor change to avoid overlong line for -gnatwz/Z - - * a-textio.adb: Remove redundant test. - - * a-witeio.adb: Minor code reorganization - Remove redundant test found working on another issue - - * a-ztexio.adb: Minor code reorganization - Remove redundant test found working on another issue - -2008-08-20 Thomas Quinot - - * s-fileio.adb (Open) Use C helper function to determine whether a - given errno value corresponds to a "file not found" error. - - * sysdep.c (__gnat_is_file_not_found_error): New C helper function. - -2008-08-20 Jose Ruiz - - * errno.c (__get_errno for MaRTE): Use the MaRTE function pthread_errno - to get access to the per-task errno variable. - (__set_errno for MaRTE): Do not redefine this function here since it is - already defined in MaRTE. - -2008-08-20 Tristan Gingold - - * gnat_ugn.texi: Gcov is not supported on static library on AIX. - -2008-08-20 Robert Dewar - - * freeze.adb: Minor reformatting - - * g-comlin.adb: Minor reformatting - - * g-socket.adb: Minor reformatting - - * g-socthi-mingw.adb: Minor reformatting - - * g-stheme.adb: Minor reformatting - -2008-08-20 Ed Schonberg - - * sem_aggr.adb, sem_type.adb, exp_ch9.ads, einfo.ads, - exp_ch6.adb, exp_aggr.adb (Valid_Ancestor): Resolve - confusion between partial and full views of an ancestor of the context - type when the parent is a private extension declared in a parent unit, - and full views are available for the context type. - -2008-08-18 Samuel Tardieu - Robert Dewar - - PR ada/30827 - * bindgen.adb (Gen_Output_File_Ada): Zero-terminate the - version string. - Move comment in the right place. - * g-comver.adb (Version): Look for a zero-termination in - addition to a closing parenthesis. - -2008-08-18 Samuel Tardieu - - * exp_ch13.adb, exp_disp.adb, sem_cat.adb, sem_ch10.adb, - * sem_ch12.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, - * sem_prag.adb, sem_util.adb, sem_warn.adb: Use - Is_Package_Or_Generic_Package instead of hand-crafted tests. - -2008-08-18 Samuel Tardieu - - PR ada/15808 - * sem_ch6.adb (Check_Private_Overriding): Check for generic packages - as well. - -2008-08-17 Aaron W. LaFramboise - - * adaint.c (_gnat_set_close_on_exec) [_WIN32]: Implement. - -2008-08-16 Eric Botcazou - - * gcc-interface/trans.c (call_to_gnu): Use the Sloc of the call - for back-copy statements in lieu of that of the actual. - -2008-08-16 Eric Botcazou - - PR ada/20548 - * gcc-interface/decl.c (gnat_to_gnu_entity): Use DECL_SIZE_UNIT in the - setjmp test consistently. Adjust for new behavior of flag_stack_check. - * gcc-interface/utils2.c (build_call_alloc_dealloc): Remove redundant - test of flag_stack_check. Adjust for new behavior of flag_stack_check. - -2008-08-13 Samuel Tardieu - - PR ada/36777 - * sem_util.ads, sem_util.adb (Is_Protected_Self_Reference): New. - * sem_attr.adb (Check_Type): The current instance of a protected - object is not a type name. - (Analyze_Access_Attribute): Accept instances of protected objects. - (Analyze_Attribute, Attribute_Address clause): Ditto. - * exp_attr.adb (Expand_N_Attribute_Reference): Rewrite - the prefix as being the current instance if needed. - -2008-08-12 Danny Smith - - * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS) [WINDOWS]: - Remove duplicate s-win32.o. Add s-winext.o. - -2008-08-12 Danny Smith - - * g-stsifd-sockets.adb (Create): Replace Constants.SOCK_STREAM - with SOSC.SOCK__STREAM. - * g-socthi-mingw.adb (C_Select) Replace Constants.MSG_OOB with - SOSC.MSG_OOB. - -2008-08-11 Joel Sherrill - - * s-oscons-tmplt.c: RTEMS defines AF_INET6 but does support it. - * gsocket.h, socket.c: Update to support RTEMS. - * gcc-interface/Make-lang.in: Include CFLAGS_FOR_TARGET when cross. - -2008-08-10 Samuel Tardieu - Robert Dewar - - * exp_ch4.adb (Expand_N_Op_Expon): Force evaluation of - left argument even when right argument is 0. - (Expand_N_Op_Mod): Ditto when right argument is 1. - (Expand_N_Op_Multiply): Ditto when any argument is 0. - (Expand_N_Op_Rem): Ditto when right argument is 1. - -2008-08-09 Manuel Lopez-Ibanez - - * gcc-interface/misc.c (gnat_handle_option): Replace set_Wunused - by warn_unused. - -2008-08-08 Ed Schonberg - - * freeze.adb (Generate_Prim_Op_References): New procedure, abstracted - from Freeze_Entity. Used to generate cross-reference information for - types declared in generic packages. - -2008-08-08 Thomas Quinot - - * gcc-interface/Makefile.in: Reintroduce g-soccon.ads as a - compatibility shim. - -2008-08-08 Thomas Quinot - - * gsocket.h: - On Windows, include and redefine only selected errno values - from their definitions. - - * s-osinte-freebsd.ads: Minor reformatting - - * s-osinte-hpux.ads, s-osinte-irix.ads: Minor reformatting - - * g-soccon.ads: New file. - - * g-stheme.adb, g-socthi-vms.adb, g-socthi-vxworks.adb, - g-socthi-mingw.adb, g-sttsne-vxworks.adb, g-socthi.adb, - g-stsifd-sockets.adb, g-socket.adb, g-socket.ads, - g-sothco.adb, g-sothco.ads: Add back GNAT.Sockets.Constants as a child - unit, to allow building software that depends on this internal unit - with both older and newer compilers. - -2008-08-08 Robert Dewar - - * s-strxdr.adb: Minor reformatting - -2008-08-08 Bob Duff - - * gnat_ugn.texi: The "Run-Time Checks" section said "arithmetic overflow - checking for integer operations (including division by zero)", which - is wrong -- divide by zero is not part of overflow checking. - Also added misc clarification about what check-suppression means. - - * gnat_rm.texi: Clarify the meaning of pragma Suppress. - -2008-08-08 Jerome Lambourg - - * g-comlin.adb (Add_Switch): Handle addition of switches at the - begining of the command line. - (Append, Add): Renaming of Append to Add as this now allows addition - at the begining of the list. - - * g-comlin.ads (Add_Switch): Handle addition of switches at the - begining of the command line. - -2008-08-08 Thomas Quinot - - * g-sercom.ads: - (Name): Document application scope (only legacy PC serial ports on - Linux and Windows). - -2008-08-08 Thomas Quinot - - * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Revert - previous change, not needed after all. - -2008-08-08 Ed Schonberg - - * exp_ch4.adb (Expand_Allocator_Expression): add check if null - exclusion indicator is present - -2008-08-08 Robert Dewar - - * g-comlin.adb: Minor code reorganization - Minor reformatting - - * g-comlin.ads: Minor reformatting - - * s-fileio.adb: Minor reformatting - - * sem_attr.adb: Minor code reorganization (use Nkind_In) - Minor reformatting - -2008-08-06 Samuel Tardieu - - * gcc-interface/Make-lang.in: Use GCC_FOR_TARGET when dealing - with s-oscons-tmplt.i. - -2008-08-06 Samuel Tardieu - - * gcc-interface/Make-lang.in (OSCONS_CPPFLAGS): Remove. - -2008-08-06 Ed Schonberg - - * sem_ch3.adb (Analyze_Component_Declaration): Protect against misuse - of incomplete type. - - * sem_ch8.adb (Analyze_Object_Renaming): Diagnose properly a renaming - of a formal parameter of an incomplete type. Improve error message for - other improper uses of incomplete types. - -2008-08-06 Robert Dewar - - * gnat_ugn.texi: Clarify -gnato documentation - -2008-08-06 Thomas Quinot - - * gcc-interface/Makefile.in, - g-socthi-vxworks.adb, g-socthi-mingw.adb, g-sttsne-vxworks.adb, - g-socthi.adb, g-socket.adb, g-socket.ads, g-sothco.ads, - g-soccon-linux-x86.ads, g-soccon-vxworks.ads, g-soccon-mingw.ads, - g-soccon-hpux-ia64.ads, g-soccon-irix.ads, g-soccon-linux-64.ads, - g-soccon-aix.ads, g-soccon-solaris.ads, g-soccon-lynxos.ads, - g-soccon-vms.ads, g-soccon.ads, g-soccon-freebsd.ads, - g-soccon-linux-ppc.ads, g-soccon-tru64.ads, g-soccon-hpux.ads, - g-soccon-solaris-64.ads, gen-oscons.c, g-soccon-darwin.ads, - g-soccon-mingw-64.ads, g-soccon-linux-mips.ads, g-soccon-rtems.ads: - Remove GNAT.Sockets.Constants. This internal package is replaced by - System.OS_Constants. - -2008-08-06 Thomas Quinot - - * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: - Remove obsolete targets referencing gen-soccon - When generating s-oscons.ads, use a file name that includes the - THREAD_KIND, to ensure that the (potentially different) version from a - previous build with a different threads flavour does not get reused. - -2008-08-06 Thomas Quinot - - * sem_res.adb: Minor reformatting - - * s-fileio.adb (Open): When file open operation fails, raise Name_Error - only when the operating system reports a non-existing file or directory - (ENOENT), otherwise raise Name_Error. - - * exp_ch11.adb: Minor reformatting - -2008-08-06 Ed Schonberg - - * sem_ch3.adb (Access_Subprogram_Declaration): If the return type is - incomplete, add the access_to_subprogram type to the list of private - dependents only if the incomplete type will be completed in the current - scope. - (Build_Discriminant_Constraints): If the type of the discriminant is - access_to_variable, reject a constraint that is access_to_constant. - -2008-08-06 Thomas Quinot - - * g-socket-dummy.adb, g-socket-dummy.ads, g-sothco-dummy.adb, - g-sothco-dummy.ads, g-socthi-dummy.adb, g-socthi-dummy.ads, - g-sttsne-dummy.ads: New files. - - * gcc-interface/Makefile.in, Makefile.rtl: Use placeholder sources - with pragma Unimplemented_Unit for sockets packages on Nucleus. - -2008-08-06 Pascal Obry - - * adaint.c: Another fix for ACL support on Windows. - -2008-08-06 Javier Miranda - - * exp_disp (Expand_Interface_Actuals): Adds missing support for - expansion of calls to subprograms using selected components. - -2008-08-06 Ed Schonberg - - * sem_res.adb (Resolve_Call): Use base type to determine whether a - dereference is needed because a subtype of an access_to_subprogram is - simply an access-subtype - -2008-08-06 Jerome Lambourg - - * g-comlin.adb (Set_Command_Line): Now that aliases can contain - parameters, always specify the expected separator. - -2008-08-06 Thomas Quinot - - * xnmake.adb: Use new XUtil package for platform independent text - output. - -2008-08-06 Vincent Celier - - * gnat_ugn.texi: Document compiler switch -gnateG - -2008-08-06 Quentin Ochem - - * s-stausa.adb (Fill_Stack): Fixed pragma assert and top pattern mark - in the case of an empty pattern size. - (Compute_Result): Do not do any computation in the case of an empty - pattern size. - (Report_Result): Fixed computation of the overflow guard. - -2008-08-06 Ed Schonberg - - * g-awk.adb (Finalize): Do not use directly objects of the type in the - finalization routine to prevent elaboration order anomalies in new - finalization scheme. - -2008-08-06 Ed Schonberg - - * sem_ch3.adb (Find_Type_Name): protect against duplicate incomplete - declaration for the same type. - -2008-08-06 Thomas Quinot - - * sem.adb: Minor rewording (comment) - -2008-08-06 Jerome Lambourg - - * g-comlin.adb (Define_Switch, Get_Switches): New. - (Can_Have_Parameter, Require_Parameter, Actual_Switch): New, used when - ungrouping switches. - (For_Each_Simple_Switch): Allow more control over parameters handling. - This generic method now allows ungrouping of switches with parameters - and switches with more than one letter after the prefix. - (Set_Command_Line): Take care of switches that are prefixed with a - switch handling parameters without delimiter (-gnatya and -gnaty3 for - example). - (Add_Switch, Remove_Switch): Handle parameters possibly present inside - a group, as in gnaty3aM80 (3 and 80 are parameters). Report status of - the operation. - (Start, Alias_Switches, Group_Switches): Take care of parameters - possibly present inside a group. - - * g-comlin.ads (Define_Switch): New method used to define a list of - expected switches, that are necessary for correctly ungrouping switches - with more that one character after the prefix. - (Get_Switches): Method that builds a getopt string from the list of - switches as set previously by Define_Switch. - (Add_Switch, Remove_Switch): New versions of the methods, reporting the - status of the operation. Also allow the removal of switches with - parameters only. - (Command_Line_Configuration_Record): Maintain a list of expected - switches. - -2008-08-06 Doug Rupp - - * gcc-interface/decl.c (gnat_to_gnu_param): Force 32bit descriptor if - TARGET_MALLOC64 clear. - - * gcc-interface/utils2.c (build_call_alloc_dealloc): Force 32bit malloc - if TARGET_MALLOC64 clear. - - * gcc-interface/gigi.h (TARGET_ABI_OPEN_VMS): Move here from utils2.c - (TARGET_MALLC64): New macro. Default to clear. - -2008-08-06 Doug Rupp - - * gcc-interface/utils2.c (snames.h) Include - (TARGET_ABI_OPEN_VMS): Initialize. - (build_call_alloc_dealloc); [TARGET_ABI_OPEN_VMS] Allocate on 32bit heap - for Convention C. - -2008-08-06 Ed Schonberg - - * sem_ch3.adb (Process_Discriminants): diagnose redundant or improper - null exclusion in a discriminant declaration - - * sem_ch8.adb (Analyze_Object_Renaming): diagnose null exclusion - indicators when type is not an access type. - - * sem_ch12.adb (Formal_Object_Declaration): diagnose null exclusion - indicators when type is not an access type. - -2008-08-06 Javier Miranda - - * exp_disp (Expand_Interface_Conversion): Freeze the entity associated - with the target interface before expanding the code of the interface - conversion. - -2008-08-05 Ed Schonberg - - * freeze.adb: - (Freeze_Entity): A deferred constant does not violate the restriction - No_Default_Initialization, - - * sem_ch3.adb (Process_Subtype): An allocator is a valid construct that - can carry a null exclusion indicator, and on which an error may be - posted if the indicator is redundant. - - * sem_ch8.adb (Analyze_Object_Renaming): Verify that a null exclusion - does not apply to a subtype mark that already excludes null. - - * sem_ch12.adb (Formal_Object_Declaration): Verify that a null - exclusion does not apply to a subtype mark that already excludes null. - -2008-08-05 Thomas Quinot - - * Makefile.rtl: Compile s-oscons.ads as part of the runtime library. - -2008-08-05 Doug Rupp - - * vms_data.ads: Translation for /POINTER_SIZE qualifier. - -2008-08-05 Thomas Quinot - - * gsocket.h: Make this file includable in a Nucleus environment, which - does not support sockets. - - * socket.c: Remove Nucleus-specific hack. - -2008-08-05 Pascal Obry - - * adaint.c: Remove support for readable attribute on vxworks and nucleus - -2008-08-05 Ed Schonberg - - * sem_attr.adb: - (Analyze_Attribute, case 'Result): handle properly the case where some - operand of the expression in a post-condition generates a transient - block. - - * sem_ch5.adb (Analyze_Assignment_Statement): Apply conversion to - right-hand side when it is an anonymous access_to_subprogram, to force - static accessibility check when needed. - -2008-08-05 Sergey Rybin - - * gnat_ugn.texi: Changing the description of the gnatcheck metrics - rule according to the change in the rule option. - Add documentation for -gnatw.b/-gnatw.B - -2008-08-05 Robert Dewar - - * ug_words: Add entries for -gnatw.b/-gnatw.B - - * vms_data.ads: Add entries for -gnatw.b/-gnatw.B - -2008-08-05 Vincent Celier - - * a-wtdeio.adb (Put (Current_Output)): Use Fore in the call to Put - (File). - - * a-ztdeio.adb: Ditto. - -2008-08-05 Pascal Obry - - * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Add support for the - readable attribute. - -2008-08-05 Vincent Celier - - * s-wchwts.adb: - (Wide_String_To_String): Returns a String with the same 'First as its - parameter S. - (Wide_Wide_String_To_String): Ditto - - * s-wchwts.ads: - (Wide_String_To_String): Document that the lowest index of the returned - String is equal to S'First. - -2008-08-05 Thomas Quinot - - * xoscons.adb, xutil.ads, xutil.adb, s-oscons-tmplt.c: New files. - - * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Generate - s-oscons.ads - -2008-08-05 Robert Dewar - - * opt.ads (Warn_On_Biased_Representation): New flag - - * sem_ch13.adb: - (Analyze_Attribute_Definition_Clause): Issue warning when biased - representation is required. - (Minimum_Size): Don't allow biasing if enum rep clause case - - * sem_warn.adb: - (Set_Dot_Warning_Switch): Add handling of -gnatw.b/B switches - (Set_Warning_Switch): Include -gnatw.b in -gnatwa, -gnatw.B in gnatws - - * usage.adb: Add lines for -gnatw.b/B switches - -2008-08-05 Pascal Obry - - * a-coinve.adb: Reorder the code to avoid uninitialized warning. - - * adaint.c: In UNIX cases do not call __gnat_stat but stat directly. - -2008-08-05 Thomas Quinot - - * socket.c: Minor reformatting. - -2008-08-05 Robert Dewar - - * sem_ch3.adb: Minor reformatting - - * prj-nmsc.adb: Minor reformatting - -2008-08-05 Ed Schonberg - - * sem_ch12.adb (Validate_Array_Type_Instance): Only apply complex - visibility check on the component type if the simple test fails. - -2008-08-05 Jose Ruiz - - * init.c (__gnat_install_handler for linux): If we are building the - Xenomai run time then we need to do two additional things: avoid - memory swapping and transform the Linux environment task into a native - Xenomai task. - - * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for xenomai run - time): Use interface to Xenomai native skin and avoid linux-specific - way of setting CPU affinity. - (EH_MECHANISM for the xenomai run time): Use sjlj exception mechanism. - -2008-08-05 Bob Duff - - * checks.ads: Minor comment fix - -2008-08-05 Thomas Quinot - - * g-sercom.adb, g-sercom.ads, g-sercom-mingw.adb, - g-sercom-linux.adb (Data_Bits): Change literals B7 and B8 to CS7 and - CS8. - -2008-08-05 Robert Dewar - - * mlib.adb: Minor code reorganization - Minor reformatting - - * make.adb: Minor reformatting - - * prj-attr.ads: Minor reformatting - - * s-os_lib.adb: Minor reformatting - - * s-fileio.adb: Minor code reorganization - Minor reformatting - - * prj.ads: Minor reformatting - -2008-08-05 Bob Duff - - * sem_ch3.adb (Analyze_Object_Declaration): Avoid type Any_Access in - unresolved initial value of "null", because it causes implicitly - generated "=" operators to be ambiguous, and because this type should - not be passed to gigi. - -2008-08-05 Vincent Celier - - * mlib.adb: Update comments. - - * make.adb (Switches_Of): Check for Switches (others), before checking - for Default_Switches ("Ada"). - (Gnatmake): Use Builder'Switches (others) in preference to - Builder'Default_Switches ("Ada") if there are several mains. - - * prj-attr-pm.adb: - (Add_Attribute): Add component Others_Allowed in Attribute_Record - aggregate. - - * prj-attr.adb: - Add markers to indicates that attributes Switches allow others as index - (Others_Allowed_For): New Boolean function, returning True for - attributes with the mark. - (Initialize): Recognize optional letter 'O' as the marker for - associative array attributes where others is allowed as the index. - - * prj-attr.ads: - (Others_Allowed_For): New Boolean function - (Attribute_Record): New Boolean component Others_Allowed - - * prj-dect.adb: - (Parse_Attribute_Declaration): For associative array attribute where - others is allowed as the index, allow others as an index. - - * prj-nmsc.adb: - (Process_Binder): Skip associative array attributes with index others - (Process_Compiler): Ditto - - * prj-util.adb: - (Value_Of (Index, In_Array)): Make no attempt to put in lower case when - index is All_Other_Names. - - * prj.ads: - (All_Other_Names): New constant - - * prj-proc.adb: - (Process_Declarative_Items): Skip associative array attribute when index - is reserved word "others". - -2008-08-05 Vasiliy Fofanov - - * gen-oscons.c: Adapt for VMS where termios.h is not available. - -2008-08-05 Thomas Quinot - - * a-rttiev.adb: Minor reformatting (comments) - - * gen-soccon.c: Rename to gen-oscons.c - - * gen-oscons.c: New file. Now generate System.OS_Constants instead of - GNAT.Sockets.Constants. - Add new constants for GNAT.Serial_Communications and System.File_IO. - -2008-08-05 Javier Miranda - - * sem_util.adb (Collect_Interfaces_Info): Minor reformating. - * exp_ch3.adb (Build_Offset_To_Top_Functions): Code cleanup: the - implementation of this routine has been simplified. - -2008-08-05 Pascal Obry - - * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Fix the - Set_Read_Only Win32 implementation. - -2008-08-05 Thomas Quinot - - * exp_strm.adb: Minor reformatting (comments) - - * sem_ch12.adb: Minor reformatting. - -2008-08-05 Robert Dewar - - * sem_ch3.adb: Minor reformatting - - * checks.adb: Minor reformatting - -2008-08-05 Thomas Quinot - - * tbuild.ads (New_External_Name): Update spec to reflect relaxed - restriction on Prefix. - -2008-08-05 Jerome Lambourg - - * g-comlin.adb (Sort_Sections, Group_Switches): New/Modified internal - methods needed to handle switch sections when building a command line. - (Define_Section, Add_Switch, Remove_Switch, Is_New_Section, - Current_Section): New public methods or methods modified to handle - building command lines with sections. - (Set_Command_Line): Take into account sections when analysing a switch - string. - (Start): Sort the switches by sections before iterating the command line - elements. - - * g-comlin.ads (Define_Section, Add_Switch, Remove_Switch, - Is_New_Section, Current_Section): New methods or methods modified to - handle building command lines with sections. - -2008-08-05 Ed Schonberg - - * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For access - discriminants, indicate that the corresponding object declaration has - no initialization, to prevent spurious warnings when the access type is - null-excluding. - -2008-08-05 Ed Schonberg - - * sem_res.adb (Resolve_Call): If this is a call to the predefined - Abort_Task, warn if the call appears within a protected operation. - -2008-08-04 Robert Dewar - - * exp_ch4.adb (Expand_N_In): Suppress range warnings in instances - -2008-08-04 Ed Schonberg - - * sem_ch3.adb: - (Replace_Anonymous_Access_To_Protected_Subprogram): Handle properly an - anonymous access to protected subprogram that is the return type of the - specification of a subprogram body. - - * sem_ch6.adb: - (Analyze_Subprogram_Body): if the return type is an anonymous access to - subprogram, freeze it now to prevent access anomalies in the back-end. - - * exp_ch9.adb: Minor code cleanup. - Make sure that new declarations are inserted into the tree before - analysis (from code reading). - -2008-08-04 Robert Dewar - - * exp_ch5.adb: - (Expand_Simple_Function_Return): Check No_Secondary_Stack restriction - at point of return. - -2008-08-04 Thomas Quinot - - * sem_type.adb, sem_ch4.adb, sprint.adb, exp_ch3.adb: Minor reformatting - -2008-08-04 Vasiliy Fofanov - - * g-soccon-mingw.ads: Fix value for MSG_WAITALL - -2008-08-04 Javier Miranda - - * sem_prag.adb (Process_Convention): Add missing support for - N_Private_Extension_Declaration nodes. - -2008-08-04 Robert Dewar - - * exp_ch4.adb: Minor reformatting - -2008-08-04 Pascal Obry - - * adaint.h: Add missing prototype. - - * adaint.c: Refine support for Windows file attributes. - -2008-08-04 Robert Dewar - - * sem_res.adb: - (Valid_Conversion): Catch case of designated types having different - sizes, even though they statically match. - -2008-08-04 Javier Miranda - - * sem_eval.adb (Subtypes_Statically_Match): Remove superfluous patch - added in previous patch to handle access to subprograms. - -2008-08-04 Robert Dewar - - * freeze.adb: - (Freeze_Entity): Only check No_Default_Initialization restriction for - constructs that come from source - -2008-08-04 Thomas Quinot - - * exp_ch6.adb: Minor comment fix. - - * sem_ch4.adb: Minor reformatting. - -2008-08-04 Robert Dewar - - * sem_res.adb: (Large_Storage_Type): Improve previous change. - -2008-08-04 Pascal Obry - - * adaint.c, s-os_lib.adb, s-os_lib.ads: Use Windows ACL to deal with - file attributes. - -2008-08-04 Javier Miranda - - * sem_ch3.adb (Access_Subprogram_Declaration): Adding missing support - for N_Formal_Object_Declaration nodes. Adding kludge required by - First_Formal to provide its functionality with access to functions. - (Replace_Anonymous_Access_To_Protected_Subprogram): Add missing support - for anonymous access types returned by functions. - - * sem_ch5.adb (Analyze_Assignment): Code cleanup to avoid duplicate - conversion of null-excluding access types (required only once to force - the generation of the required runtime check). - - * sem_type.adb (Covers): minor reformating - - * checks.adb (Null_Exclusion_Static_Checks): Avoid reporting errors - with internally generated nodes. Avoid generating the error inside init - procs. - - * sem_res.adb (Resolve_Membership_Test): Minor reformating. - (Resolve_Null): Generate the null-excluding check in case of assignment - to a null-excluding object. - (Valid_Conversion): Add missing support for anonymous access to - subprograms. - - * sem_ch6.adb (Check_Return_Subtype_Indication): Add missing support for - anonymous access types whose designated type is an itype. This case - occurs with anonymous access to protected subprograms types. - (Analyze_Return_Type): Add missing support for anonymous access to - protected subprogram. - - * sem_eval.adb (Subtypes_Statically_Match): In case of access to - subprograms addition of missing check on matching convention. Required - to properly handle access to protected subprogram types. - - * exp_ch3 (Build_Assignment): Code cleanup removing duplicated check on - null excluding access types. - -2008-08-04 Ed Schonberg - - * sem_ch12.adb: Add comments - - * sem_ch4.adb (Analyze_Allocator): If the designated type is a non-null - access type and the allocator is not initialized, warn rather than - reporting an error. - -2008-08-04 Robert Dewar - - * exp_ch4.adb: Minor reformatting - - * exp_dist.adb: Minor reformatting - - * g-comlin.adb: Minor reformatting - -2008-08-04 Gary Dismukes - - * exp_aggr.adb (Build_Record_Aggr_Code): Perform a conversion of the - target to the type of the aggregate in the case where the target object - is class-wide. - - * exp_ch5.adb (Expand_Simple_Function_Return): When the function's - result type is class-wide and inherently limited, and the expression - has a specific type, create a return object of the specific type, for - more efficient handling of returns of build-in-place aggregates (avoids - conversions of the class-wide return object to the specific type on - component assignments). - - * sem_ch6.adb (Check_Return_Subtype_Indication): Suppress the error - about a type mismatch for a class-wide function with a return object - having a specific type when the object declaration doesn't come from - source. Such an object can result from the expansion of a simple return. - -2008-08-04 Vasiliy Fofanov - - * g-soccon-mingw-64.ads, system-mingw-x86_64.ads: New files. - - * gcc-interface/Makefile.in: Use 64bit-specific system files when - compiling for 64bit windows. - -2008-08-04 Jerome Lambourg - - * g-comlin.adb (Group_Switches): Preserve the switch order when - grouping and allow switch grouping of switches with more than one - character extension (e.g. gnatw.x). - (Args_From_Expanded): Remove this now obsolete method. - -2008-08-04 Ed Schonberg - - * exp_ch4.adb (Get_Allocator_Final_List): Freeze anonymous type for - chain at once, to ensure that type is properly decorated for back-end, - when allocator appears within a loop. - -2008-08-04 Kevin Pouget - - * snames.h, snames.adb, snames.ads: - Add Attr_To_Any, Attr_From_Any and Attr_TypeCode defines. - - * exp_dist.ads, exp_dist.adb: Add Build_From_Any_Call, - Build_To_Any_Call and Build_TypeCode_Call procedures. - - * exp_attr.adb, sem_attr.adb: Add corresponding cases. - - * rtsfind.ads: Add corresponding names. - - * tbuild.adb: Update prefix restrictions to allow '_' character. - -2008-08-04 Doug Rupp - - * gigi.h (fill_vms_descriptor): Add third parameter gnat_actual - * trans.c (call_to_gnu): Call fill_vms_descriptor with new parameter. - * utils2.c (fill_vms_descriptor): Add third parameter for error sloc and - use it. Calculate pointer range overflow using 64bit types. - -2008-08-04 Ed Schonberg - - * sem_ch3.adb (Access_Definition): A formal object declaration is a - legal context for an anonymous access to subprogram. - - * sem_ch4.adb (Analyze_One_Call): If the call can be interpreted as an - indirect call, report success to the caller to include possible - interpretation. - - * sem_ch6.adb (Check_Return_Type_Indication): Apply proper conformance - check when the type - of the extended return is an anonymous access_to_subprogram type. - - * sem_res.adb: - (Resolve_Call): Insert a dereference if the type of the subprogram is an - access_to_subprogram and the context requires its return type, and a - dereference has not been introduced previously. - -2008-08-04 Arnaud Charlet - - * usage.adb (Usage): Minor rewording of -gnatwz switch, to improve - gnatcheck support in GPS. - -2008-08-04 Vincent Celier - - * mlib.adb (Create_Sym_Links): Create relative symbolic links when - requested - -2008-08-04 Vincent Celier - - * gprep.adb (Process_One_File): Call Prep.Preprocess with a Boolean - variable, but don't check the resulting value as it has no impact on - the processing. - - * opt.ads: - (Generate_Processed_File): New Boolean flag, set to True in the compiler - when switch -gnateG is used. - - * prep.adb: - (Preprocess): new Boolean out parameter Source_Modified. Set it to True - when the source is modified by the preprocessor and there is no - preprocessing errors. - - * prep.ads (Preprocess): new Boolean out parameter Source_Modified - - * sinput-l.adb: - (Load_File): Output the result of preprocessing if the source text was - modified. - - * switch-c.adb (Scan_Front_End_Switches): Recognize switch -gnateG - - * switch-m.adb (Normalize_Compiler_Switches): Normalize switch -gnateG - - * ug_words: Add VMS equivalent for -gnateG - - * vms_data.ads: - Add VMS option /GENERATE_PROCESSED_SOURCE, equivalent to switch -gnateG - -2008-08-04 Doug Rupp - - * gcc-interface/utils2.c: - (fill_vms_descriptor): Raise CE if attempt made to pass 64bit pointer - in 32bit descriptor. - -2008-08-04 Robert Dewar - - * par-ch10.adb: Minor reformatting - - * i-cobol.adb: Minor reformatting. - -2008-08-04 Ed Schonberg - - * sem_ch3.adb (Access_Definition): Create an itype reference for an - anonymous access return type of a regular function that is not a - compilation unit. - -2008-08-04 Vincent Celier - - * prj-attr.adb: New Builder attribute Global_Compilation_Switches - - * snames.adb: New standard name Global_Compilation_Switches - - * snames.ads: New standard name Global_Compilation_Switches - - * make.adb: Correct spelling error in comment - -2008-08-04 Arnaud Charlet - - * sem_prag.adb (Check_Form_Of_Interface_Name): Fix handling for CLI - target. - -2008-08-04 Thomas Quinot - - * sem_ch10.adb: Minor comment fix. - -2008-08-04 Robert Dewar - - * restrict.adb: Improved messages for restriction warnings - - * restrict.ads: Improved messages for restriction messages - - * s-rident.ads (Profile_Name): Add No_Profile - -2008-08-04 Robert Dewar - - * system-darwin-x86.ads: Correct bad definition of Max_Nonbinary_Modulus - -2008-08-04 Robert Dewar - - * freeze.adb (Freeze_Entity): Check for size clause for boolean warning - -2008-08-04 Vincent Celier - - * prj-proc.adb: - (Copy_Package_Declarations): When inheriting package Naming from a - project being extended, do not inherit source exception names. - -2008-08-04 Ed Schonberg - - * sem_prag.adb (Check_Precondition_Postcondition): When scanning the - list of declaration to find previous subprogram, do not go to the - original node of a generic unit. - -2008-08-02 Eric Botcazou - - * gcc-interface/utils2.c (build_binary_op) : - New case. Convert BOOLEAN_TYPE operation to the default integer type. - -2008-08-01 Eric Botcazou - - * gcc-interface/ada-tree.h (DECL_PARM_ALT): Now DECL_PARM_ALT_TYPE. - * gcc-interface/decl.c (gnat_to_gnu_param): Fix formatting, simplify - and adjust for above renaming. - * gcc-interface/utils.c (convert_vms_descriptor): Likewise. Add new - gnu_expr_alt_type parameter. Convert the expression to it instead - of changing its type in place. - (build_function_stub): Adjust call to above function. - -2008-08-01 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Remove dead - code. Do not get full definition of deferred constants with address - clause for a use. Do not ignore deferred constant definitions with - address clause. Ignore constant definitions already marked with the - error node. - : Remove obsolete comment. For a deferred constant with - address clause, get the initializer from the full view. - * gcc-interface/trans.c (gnat_to_gnu) : - Rework and remove obsolete comment. - : For a deferred constant with address clause, - mark the full view with the error node. - * gcc-interface/utils.c (convert_to_fat_pointer): Rework and fix - formatting nits. - -2008-08-01 Hristian Kirtchev - - * rtsfind.ads: Add block IO versions of stream routines for Strings. - - * bindgen.adb, gnat_rm.texi, gnat_ugn.texi, opt.ads, - sem_prag.adb, snames.adb, snames.ads, snames.h, - par-prag.adb: Undo previous stream related changes. - - * s-rident.ads: Add new restriction No_Stream_Optimizations. - - * s-ststop.ads, s-ststop.adb: Comment reformatting. - Define enumeration type to designate different IO mechanisms. - Enchance generic package Stream_Ops_Internal to include an - implementation of Input and Output. - - * exp_attr.adb (Find_Stream_Subprogram): If restriction - No_Stream_Optimization is active, choose the default byte IO - implementations of stream attributes for Strings. - Otherwise use the corresponding block IO version. - -2008-08-01 Olivier Hainque - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not - turn Ada Pure into GCC const, now implicitely implying nothrow as well. - -2008-08-01 Robert Dewar - - * par-ch3.adb (P_Defining_Identifier): Avoid repeated attempt to - convert plain identifier into defining identifier. - -2008-08-01 Robert Dewar - - * sem_prag.adb (Check_Form_Of_Interface_Name): Refine and improve - warnings - - * lib-xref.adb: Add error defense. - -2008-08-01 Bob Duff - - * ioexcept.ads, sequenio.ads, directio.ads: Correct comment. - -2008-08-01 Gary Dismukes - - * exp_ch6.adb (Expand_Call): Adjustment to previous fix for passing - correct accessibility levels. In the "when others" case, retrieve the - access level of the Etype of Prev rather than Prev_Orig, because the - original exression has not always been analyzed. - -2008-08-01 Robert Dewar - - * prj-nmsc.adb: Minor reformatting - - * sem_ch4.adb: Minor reformatting - Minor code reorganization - - * prj.ads: Minor reformatting - - * s-os_lib.adb: Minor reformatting - - * par-prag.adb (Prag, case Wide_Character_Encoding): Deal with upper - half encodings - - * scans.ads: Minor reformatting. - - * sem_prag.adb (Analyze_Pragma): Put entries in alpha order - (Analyze_Pragma): Make sure all GNAT pragmas call GNAT_Pragma - - * sem_res.adb: - (Resolve_Call): Check violation of No_Specific_Termination_Handlers - - * sem_ch12.adb: Minor comment reformatting - - * par-ch3.adb (P_Type_Declaration): Properly handle missing type - keyword - -2008-08-01 Robert Dewar - - * sem_ch6.adb (Process_PPCs): Don't copy spec PPC to body if not - generating code - -2008-08-01 Ed Schonberg - - * checks.adb (Apply_Float_Conversion_Check): If the expression to be - converted is a real literal and the target type has static bounds, - perform the conversion exactly to prevent floating-point anomalies on - some targets. - -2008-08-01 Vincent Celier - - * prj-attr.adb: New attribute Compiler'Name_Syntax () - - * prj-nmsc.adb (Process_Compiler): Recognize attribute Name_Syntax - - * prj.adb (Object_Exist_For): Use Object_Generated, not - Objects_Generated that is removed and was never modified anyway. - - * prj.ads: - (Path_Syntax_Kind): New enumeration type - (Language_Config): New component Path_Syntax, defaulted to Host. - Components PIC_Option and Objects_Generated removed, as they are not - used. - - * snames.adb: New standard name Path_Syntax - - * snames.ads: New standard name Path_Syntax - -2008-08-01 Vincent Celier - - * mlib-utl.adb: - (Adalib_Path): New variable to store the path of the adalib directory - when procedure Specify_Adalib_Dir is called. - (Lib_Directory): If Adalib_Path is not null, return its value - (Specify_Adalib_Dir): New procedure - - * mlib-utl.ads (Specify_Adalib_Dir): New procedure - -2008-08-01 Ed Schonberg - - * sem_prag.adb: - (Check_Precondition_Postcondition): If not generating code, analyze the - expression in a postcondition that appears in a subprogram body, so that - it is properly decorated for ASIS use. - -2008-08-01 Gary Dismukes - - * exp_ch6.adb (Expand_Call): Remove ugly special-case code that resets - Orig_Prev to Prev in the case where the actual is N_Function_Call or - N_Identifier. This was interfering with other cases that are rewritten - as N_Identifier, such as allocators, resulting in passing of the wrong - accessibility level, and based on testing this code is apparently no - longer needed at all. - -2008-08-01 Ed Schonberg - - * sem_ch4.adb (Analyze_One_Call): Handle complex overloading of a - procedure call whose prefix - is a parameterless function call that returns an access_to_procedure. - -2008-08-01 Jose Ruiz - - * adaint.c (__gnat_tmp_name): Refine the generation of temporary names - for RTX. Adding a suffix that is incremented at each iteration. - -2008-08-01 Robert Dewar - - * sem_ch6.adb (Analyze_Subprogram_Body): Remove special casing of - Raise_Exception - -2008-08-01 Jerome Lambourg - - * s-os_lib.adb (Normalize_Pathname): Take care of double-quotes in - paths, which are authorized by Windows but can lead to errors when used - elsewhere. - -2008-08-01 Ed Schonberg - - * sem_ch12.ads (Need_Subprogram_Instance_Body): new function, to create - a pending instantiation for the body of a subprogram that is to be - inlined. - - * sem_ch12.adb: - (Analyze_Subprogram_Instantiation): use Need_Subprogram_Instance_Body. - - * sem_prag.adb (Make_Inline): If the pragma applies to an instance, - create a pending instance for its body, so that calls to the subprogram - can be inlined by the back-end. - -2008-08-01 Jose Ruiz - - * gnat_ugn.texi: Document the RTX run times (rts-rtx-rtss and - rts-rtx-w32). - -2008-08-01 Robert Dewar - - * scng.adb (Error_Illegal_Wide_Character): Bump scan pointer - -2008-08-01 Doug Rupp - - * gnat_rm.texi: Document new mechanism Short_Descriptor. - - * types.ads (Mechanism_Type): Modify range for new Short_Descriptor - mechanism values. - - * sem_prag.adb (Set_Mechanism_Value): Enhance for Short_Descriptor - mechanism and Short_Descriptor mechanism values. - - * snames.adb (preset_names): Add short_descriptor entry. - - * snames.ads: Add Name_Short_Descriptor. - - * types.h: Add new By_Short_Descriptor mechanism values. - - * sem_mech.adb (Set_Mechanism_Value): Enhance for Short_Descriptor - mechanism and Short_Descriptor mechanism values. - - * sem_mech.ads (Mechanism_Type): Add new By_Short_Descriptor mechanism - values. - (Descriptor_Codes): Modify range for new mechanism values. - - * treepr.adb (Print_Entity_Enfo): Handle new By_Short_Descriptor - mechanism values. - - * gcc-interface/decl.c (gnat_to_gnu_entity): Handle By_Short_Descriptor. - (gnat_to_gnu_param): Handle By_Short_Descriptor. - - * gcc-interface/gigi.h (build_vms_descriptor64): Remove prototype. - (build_vms_descriptor32): New prototype. - (fill_vms_descriptor): Remove unneeded gnat_actual parameter. - - * gcc-interface/trans.c (call_to_gnu): Removed unneeded gnat_actual - argument in call fill_vms_descriptor. - - * gcc-interface/utils.c (build_vms_descriptor32): Renamed from - build_vms_descriptor and enhanced to hande Short_Descriptor mechanism. - (build_vms_descriptor): Renamed from build_vms_descriptor64. - (convert_vms_descriptor32): New function. - (convert_vms_descriptor64): New function. - (convert_vms_descriptor): Rewrite to handle both 32bit and 64bit - descriptors. - - * gcc-interface/utils2.c (fill_vms_descriptor): Revert previous changes, - no longer needed. - -2008-08-01 Jose Ruiz - - * adaint.c (__gnat_tmp_name): RTSS applications do not support tempnam - nor tmpnam, so we always use c:\WINDOWS\Temp\gnat-XXXXXX as temporary - name. - -2008-08-01 Jose Ruiz - - * cstreams.c (__gnat_full_name): RTSS applications cannot ask for the - current directory so only fully qualified names are allowed. - -2008-08-01 Robert Dewar - - * gnat_ugn.texi: - Minor editing, remove uncomfortable use of semicolon - - * s-ststop.adb: Add some ??? comments - - * sem_ch10.adb: Minor reformatting - - * snames.ads: - Minor comment fixes, some pragmas were not properly - categorized in the comments, documentation change only - - * xref_lib.adb: Minor reformatting - - * sinput.adb: Minor reformatting - - * gnatchop.adb: Minor reformatting - - * sem_util.ads: Minor reformatting. - - * opt.ads: Minor documentation fix - - * scng.adb: Minor reformatting - - * prj-part.adb: Update comments - -2008-08-01 Ed Schonberg - - * exp_disp.adb (Expand_Interface_Conversion): If the target type is a - tagged synchronized type, use corresponding record type. - -2008-08-01 Doug Rupp - - * mlib-tgt-specific-vms-alpha.adb (Build_Dynamic_Library): Output a - dummy transfer address for debugging. - - * mlib-tgt-specific-vms-ia64.adb (Build_Dynamic_Library): Likewise. - - * vms_data.ads: vms_data.ads: New qualfier /MACHINE_CODE_LISTING - -2008-07-31 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity): Fix formatting. - * gcc-interface/utils.c (create_field_decl): Avoid superfluous work. - -2008-07-31 Pascal Obry - - * prj-nmsc.adb: Keep Object and Exec directory casing. - -2008-07-31 Jose Ruiz - - * system-rtx-rtss.ads - Change the default stack size. It is important to set the commit part. - - * s-taprop-rtx.adb - (Initialize): Get the clock resolution. - (RT_Resolution): Return the clock resolution that is indicated by the - system. - - * s-parame-vxworks.adb - Document that this body is used for RTX in RTSS (kernel) mode. - - * gcc-interface/Makefile.in - (LIBGNAT_TARGET_PAIRS for the rtx_rtss run time): Use the - s-parame-vxworks.adb body in order to have reasonable stack sizes in - RTX RTSS kernel mode. Virtual memory is not used in that case, so we - cannot ask for too big values. - -2008-07-31 Robert Dewar - - * exp_aggr.adb: Minor reformatting - - * makeutl.adb: Minor reformatting - - * prj-env.adb: Minor reformatting - -2008-07-31 Hristian Kirtchev - - * exp_disp.adb (Prim_Op_Kind): Retrieve the full view when a private - tagged type is completed by a concurrent type. - -2008-07-31 Gary Dismukes - - * sem_aggr.adb: - (Resolve_Record_Aggregate): Bypass error that a type without - components must have a "null record" aggregate when compiling for Ada - 2005, since it's legal to give an aggregate of form (others => <>) - for such a type. - -2008-07-31 Javier Miranda - - * sem_ch4.adb (Valid_First_Argument_Of): Complete its functionality to - handle synchronized types. Required to handle well the object.operation - notation applied to synchronized types. - -2008-07-31 Quentin Ochem - - * s-stausa.adb (Fill_Stack): Stack_Used_When_Filling is now stored - anymore - just used internally. - Added handling of very small tasks - when the theoretical size is - already full at the point of the call. - (Report_Result): Fixed result computation, Stack_Used_When_Filling does - not need to be added to the result. - -2008-07-31 Hristian Kirtchev - - * sem_ch6.adb (Disambiguate_Spec): Continue the disambiguation if the - corresponding spec is a primitive wrapper. Update comment. - -2008-07-31 Hristian Kirtchev - - * bindgen.adb Comment reformatting. Update the list of run-time globals. - (Gen_Adainit_Ada): Add the declaration, import and value set for - configuration flag Canonical_Streams. - (Gen_Adainit_C): Add the declaration and initial value of external - symbol __gl_canonical_streams. - - * init.c: Update the list of global values computed by the binder. - - * opt.ads: Add flag Canonical_Streams. - - * par-prag.adb (Prag): Include Pragma_Canonical_Streams to the list of - semantically handled pragmas. - - * sem_prag.adb: Add an entry into enumeration type Sig_Flags. - (Analyze_Pragma): Add case for pragma Canonical_Streams. - - * snames.adb: Add character value for name Canonical_Streams. - - * snames.ads: - Add Name_Canonical_Streams to the list of configuration pragmas. - Add Pragma_Canonical_Streams to enumeration type Pragma_Id. - - * snames.h: Add a definition for Pragma_Canonical_Streams. - - * s-ststop.adb: - Add a flag and import to seize the value of external symbol - __gl_canonical_streams. Update comment and initial value of constant - Use_Block_IO. - - * gnat_rm.texi: Add section of pragma Canonical_Streams. - - * gnat_ugn.texi: - Add pragma Canonical_Streams to the list of configuration pragmas. - -2008-07-31 Ed Schonberg - - * sem_ch10.adb (Build_Unit_Name): If the unit name in a with_clause - has the form A.B.C and B is a unit renaming, analyze its compilation - unit and add a with_clause on A.b to the context. - -2008-07-31 Vincent Celier - - * makeutl.adb (Executable_Prefix_Path): If Locate_Exec_On_Path fails, - return the empty string, instead of raising Constraint_Error. - -2008-07-31 Gary Dismukes - - * checks.ads (Apply_Accessibility_Check): Add parameter Insert_Node. - - * checks.adb (Apply_Accessibility_Check): Insert the check on - Insert_Node. - - * exp_attr.adb: - (Expand_N_Attribute_Refernce, Attribute_Access): Pass attribute node - to new parameter Insert_Node on call to Apply_Accessibility_Check. - Necessary to distinguish the insertion node because the dereferenced - formal may come from a rename, but the check must be inserted in - front of the attribute. - - * exp_ch4.adb: - (Expand_N_Allocator): Pass actual for new Insert_Node parameter on - call to Apply_Accessibility_Check. - (Expand_N_Type_Conversion): Pass actual for new Insert_Node parameter - on call to Apply_Accessibility_Check. - Minor reformatting - -2008-07-31 Javier Miranda - - * sem_type.adb (Has_Compatible_Type): Complete support for synchronized - types when the candidate type is a synchronized type. - - * sem_res.adb (Resolve_Actuals): Reorganize code handling synchronized - types, and complete management of synchronized types adding missing - code to handle formal that is a synchronized type. - - * sem_ch4.adb (Try_Primitive_Operation): Avoid testing attributes that - are not available and cause the compiler to blowup. Found compiling - test with switch -gnatc - - * sem_ch6.adb (Check_Synchronized_Overriding): Remove local subprogram - Has_Correct_Formal_Mode plus code cleanup. - -2008-07-31 Bob Duff - - * sinput.adb (Skip_Line_Terminators): Fix handling of LF/CR -- it was - recognized as two end-of-lines, but it should be just one. - -2008-07-31 Thomas Quinot - - * exp_ch9.adb: Minor reformatting - - * tbuild.ads: Fix several occurrences of incorrectly referring to - Name_Find as Find_Name. - -2008-07-31 Ed Schonberg - - * exp_aggr.adb (Aggr_Size_OK): If the aggregate has a single component - and the context is an object declaration with non-static bounds, treat - the aggregate as non-static. - -2008-07-31 Vincent Celier - - * prj-part.adb, prj-part.ads, prj.adb, prj.ads, prj-env.adb: - Move back spec of Parse_Single_Project to body, as it is not called - outside of package Prj.Part. - (Project_Data): Remove components Linker_Name, Linker_Path and - Minimum_Linker_Options as they are no longer set. - Remove function There_Are_Ada_Sources from package Prj and move code - in the only place it was used, in Prj.Env.Set_Ada_Paths. - -2008-07-31 Arnaud Charlet - - * mlib-utl.ads: Fix typo. - -2008-07-31 Robert Dewar - - * sem_ch12.adb: Minor reformatting - -2008-07-31 Sergey Rybin - - * gnat_ugn.texi: Change the description of the - Overly_Nested_Control_Structures: now the rule always requires a - positive parameter for '+R' option - -2008-07-31 Thomas Quinot - - * g-pehage.adb: Minor reformatting - -2008-07-31 Pascal Obry - - * s-finimp.ads: Minor reformatting. - -2008-07-31 Vincent Celier - - * s-regexp.ads: Minor comment fix - -2008-07-31 Arnaud Charlet - - * s-direio.adb (Reset): Replace pragma Unmodified by Warnings (Off), - so that we can compile this file successfully with -gnatc. - -2008-07-31 Hristian Kirtchev - - * exp_attr.adb (Find_Stream_Subprogram): Check the base type instead - of the type when looking for stream subprograms for type String, - Wide_String and Wide_Wide_String. - - * s-ststop.adb: Change the initialization expression of constant - Use_Block_IO. - -2008-07-31 Geert Bosch - - * arit64.c: - New file implementing __gnat_mulv64 signed integer multiplication with - overflow checking - - * fe.h (Backend_Overflow_Checks_On_Target): Define for use by Gigi - - * gcc-interface/gigi.h: - (standard_types): Add ADT_mulv64_decl - (mulv64_decl): Define subprogram declaration for __gnat_mulv64 - - * gcc-interface/utils.c: - (init_gigi_decls): Add initialization of mulv64_decl - - * gcc-interface/trans.c: - (build_unary_op_trapv): New function - (build_binary_op_trapv): New function - (gnat_to_gnu): Use the above functions instead of - build_{unary,binary}_op - - * gcc-interface/Makefile.in - (LIBGNAT_SRCS): Add arit64.c - (LIBGNAT_OBJS): Add arit64.o - -2008-07-31 Vincent Celier - - * prj-nmsc.adb (Check_Library_Attributes): Check if Linker'Switches or - Linker'Default_Switches are declared. Warn if they are declared. - -2008-07-31 Ed Schonberg - - * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use - Insert_Actions to place the pointer declaration in the code, rather - than Insert_Before_And_Analyze, so that insertions of temporaries are - kept in the proper order when transient scopes are present. - - -2008-07-31 Robert Dewar - - * einfo.adb (Spec_PPC): Now defined for generic subprograms - - * einfo.ads (Spec_PPC): Now defined for generic subprograms - - * sem_prag.adb (Check_Precondition_Postcondition): Handle generic - subprogram case - -2008-07-31 Vincent Celier - - * s-os_lib.adb: Minor comment fix - -2008-07-31 Ed Schonberg - - * sem_ch6.adb (Analyze_Generic_Subprogram_Body): After analysis, - transfer pre/postconditions from generic copy to original tree, so that - they will appear in each instance. - (Process_PPCs): Do not transform postconditions into a procedure in a - generic context, to prevent double expansion of check pragmas. - - * sem_attr.adb: In an instance, the prefix of the 'result attribute - can be the renaming of the - current instance, so check validity of the name accordingly. - -2008-07-31 Robert Dewar - - * mlib-utl.ads: Minor reformatting - -2008-07-31 Ed Schonberg - - sem_attr.adb: 'Result can have an ambiguous prefix, and is resolved - from context. This attribute must be usable in Ada95 mode. - The attribute can appear in the body of a function marked - Inline_Always, but in this case the postocondition is not enforced. - - sem_prag.adb (Check_Precondition_Postcondition): within the expansion - of an inlined call pre- and postconditions are legal - -2008-07-31 Vincent Celier - - * prj.adb, prj.ads, clean.adb, prj-nmsc.adb: Remove declarations that - were for gprmake only - -2008-07-31 Robert Dewar - - * gnat_ugn.texi: Update -gnatN documentation. - - * gnat_rm.texi: Add note about pre/postcondition - pragmas not checked in conjunction with front-end inlining. - -2008-07-31 Robert Dewar - - * g-pehage.adb, g-pehage.ads: Minor reformatting - -2008-07-31 Arnaud Charlet - - * mlib-utl.ads, prj-makr.ads: Add comments. - -2008-07-30 Aaron W. LaFramboise - - * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS) - [WINDOWS]: Add s-winext.o. - -2008-07-30 Eric Botcazou - - PR ada/36554 - * back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi. - * gcc-interface/gigi.h (gigi): Take new standard_boolean parameter. - * gcc-interface/decl.c (gnat_to_gnu_entity) : - Set precision to 1 for subtype of BOOLEAN_TYPE. - (set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE. - (make_type_from_size): Deal with BOOLEAN_TYPE. - * gcc-interface/misc.c (gnat_print_type): Likewise. - * gcc-interface/trans.c (gigi): Take new standard_boolean parameter. - Set boolean_type_node as its translation in the table, as well - as boolean_false_node for False and boolean_true_node for True. - * gcc-interface/utils.c (gnat_init_decl_processing): Create custom - 8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM. - (create_param_decl): Deal with BOOLEAN_TYPE. - (build_vms_descriptor): Likewise. - (build_vms_descriptor64): Likewise. - (convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE. - -2008-07-30 Robert Dewar - - * exp_ch9.adb: Minor reformatting - - * exp_util.ads (Find_Prim_Op): Document that Program_Error is raised - if no primitive operation is found. - - * exp_util.adb: (Find_Prim_Op): Add comments for previous change - - * sem_ch8.adb: Minor reformatting - -2008-07-30 Laurent Pautet - - * g-pehage.adb: - Remove a limitation on the length of the words handled by the minimal - perfect hash function generator. - - * g-pehage.ads: - Detail the use of subprograms Insert, Initialize, Compute and Finalize. - Fix some typos. - -2008-07-30 Robert Dewar - - * gnatlink.adb: Minor reformatting - -2008-07-30 Thomas Quinot - - * rtsfind.adb (Check_RPC): Check version consistency even when not - generating RCI stubs. Provide more detailed error message in case of - mismatch. - -2008-07-30 Ed Schonberg - - * sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute - as a actual in an instance, check for a missing attribute to prevent - program_error on an illegal program. - - * exp_util.adb (Find_Prim_Op): Rather than Assert (False), raise program - error if primitive is not found, so that exception can be handled - elsewhere on illegal programs. - -2008-07-30 Robert Dewar - - * uintp.adb (UI_GCD): Fix potential overflow - -2008-07-30 Hristian Kirtchev - - * einfo.adb: Flag245 is now used. - (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Relax the assertion - check to include functions. - (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms. - (Wrapped_Entity, Set_Wrapped_Entity): Relax the assertion check to - include functions. - (Write_Entity_Flags): Move flag Is_Primitive, add Is_Private_Primitive - to the list of displayed flags. - - * einfo.ads: Update comment on the usage of Is_Primitive_Wrapper and - Wrapped_Entity. These two flags are now present in functions. - New flag Is_Private_Primitive. - (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms. - - * exp_ch9.adb: - (Build_Wrapper_Bodies): New subprogram. - (Build_Wrapper_Body): The spec and body have been moved to in - Build_Wrapper_ Bodies. Code cleanup. - (Build_Wrapper_Spec): Moved to the spec of Exp_Ch9. Code cleanup. - Wrappers are now generated for primitives declared between the private - and full view of a concurrent type that implements an interface. - (Build_Wrapper_Specs): New subprogram. - (Expand_N_Protected_Body): Code reformatting. Replace the wrapper body - creation mechanism with a call to Build_Wrapper_Bodies. - (Expand_N_Protected_Type_Declaration): Code reformatting. Replace the - wrapper spec creation mechanism with a call to Build_Wrapper_Specs. - (Expand_N_Task_Body): Replace the wrapper body creation - mechanism with a call to Build_Wrapper_Bodies. - (Expand_N_Task_Type_Declaration): Replace the wrapper spec - creation mechanism with a call to Build_Wrapper_Specs. - (Is_Private_Primitive_Subprogram): New subprogram. - (Overriding_Possible): Code cleanup. - (Replicate_Entry_Formals): Renamed to Replicate_Formals, code cleanup. - - * exp_ch9.ads (Build_Wrapper_Spec): Moved from the body of Exp_Ch9. - - * sem_ch3.adb: Add with and use clause for Exp_Ch9. - (Process_Full_View): Build wrapper specs for all primitives - that belong to a private view completed by a concurrent type - implementing an interface. - - * sem_ch6.adb (Analyze_Subprogram_Body): When the current subprogram - is a primitive of a - concurrent type with a private view that implements an interface, try to - find the proper spec. - (Analyze_Subprogram_Declaration): Mark a subprogram as a private - primitive if the type of its first parameter is a non-generic tagged - private type. - (Analyze_Subprogram_Specification): Code reformatting. - (Disambiguate_Spec): New routine. - (Find_Corresponding_Spec): Add a flag to controll the output of errors. - (Is_Private_Concurrent_Primitive): New routine. - - * sem_ch6.ads: - (Find_Corresponding_Spec): Add a formal to control the output of errors. - -2008-07-30 Doug Rupp - - * gigi.h (build_vms_descriptor64): New function prototype. - (fill_vms_descriptor): Modified function prototype. - - * utils.c (build_vms_descriptor64): New function. - - * utils2.c (fill_vms_descriptor): Fix handling on 32bit systems. - - * trans.c (call_to_gnu): Call fill_vms_descriptor with new third - argument. - - * decl.c (gnat_to_gnu_tree): For By_Descriptor mech, build both a - 64bit and 32bit descriptor and save the 64bit version as an alternate - TREE_TYPE in the parameter. - (make_type_from_size) : Use the appropriate mode for the - thin pointer. - - * ada-tree.h (DECL_PARM_ALT, SET_DECL_PARM_ALT): New macros. - -2008-07-30 Robert Dewar - - * make.adb: Minor reformatting - - * mlib-utl.adb: Minor reformatting - - * osint.ads: Minor reformatting - -2008-07-30 Jose Ruiz - - * adaint.c - (__gnat_file_exists): Do not use __gnat_stat for RTX. - (__main for RTX in RTSS mode): Create this dummy procedure symbol to - avoid the use of this symbol from libgcc.a in RTX kernel mode. - - * cio.c - (put_int, put_int_stderr, put_char, put_char_stderr): For RTX we call - the function RtPrintf for console output. - - * argv.c Do not use the environ variable for RTX. - - * gnatlink.adb (gnatlink): The part that handles the --RTS option has - been moved before the call to Osint.Add_Default_Search_Dirs in order - to take into account the flags in system.ads (RTX_RTSS_Kernel_Module) - from the appropriate run time. - - * targparm.ads - (RTX_RTSS_Kernel_Module_On_Target): Add this flag that is set to True if - target is a RTSS module for RTX. - - * targparm.adb (Targparm_Tags, RTX_Str, Targparm_Str): Add tag RTX for - RTX_RTSS_Kernel_Module - (Get_Target_Parameters): Add processing of RTX_RTSS_Kernel_Module flag. - - * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for RTX): Use gcc - exception handling mechanism for Windows and RTX in Win32 mode, but - not for RTX in kernel mode (RTSS). - (LIBGNAT_SRCS): Remove ada.h - -2008-07-30 Paolo Bonzini - - * gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove X_ADAFLAGS and - T_ADAFLAGS, replace ALL_ADA_CFLAGS with ADA_CFLAGS. - (ALL_ADA_CFLAGS): Remove, replace throughout with ADA_CFLAGS. - * gcc-interface/Makefile.in (XCFLAGS, X_CFLAGS, X_CPPFLAGS, T_CPPFLAGS, - X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS, ADA_CFLAGS, - ALL_ADA_CFLAGS): Remove. - (ALL_ADAFLAGS, MOST_ADAFLAGS): Remove X_ADAFLAGS and T_ADAFLAGS, - replace ALL_ADA_CFLAGS with ADA_CFLAGS. - (GCC_CFLAGS): Remove X_CFLAGS. - (LOOSE_CFLAGS): Remove X_CFLAGS and XCFLAGS. - (ALL_CPPFLAGS): Remove X_CPPFLAGS and T_CPPFLAGS. - (ADA_CFLAGS): Substitute. - -2008-07-30 Laurent Guerby - - PR ada/5911 - * gcc-interface/Makefile.in (MULTISUBDIR, RTSDIR): New variables. - Pass MULTISUBDIR to recursive make. Use $(RTSDIR) instead of rts. - Replace stamp-gnatlib* by stamp-gnatlib*-rts. - * gcc-interface/Make-lang.in: Replace stamp-gnatlib2 - by stamp-gnatlib2-rts. - -2008-07-30 Ralf Wildenhues - - PR documentation/15479 - * gnat-style.texi: Remove AdaCore copyright statement and GPL - statement for GNAT. Add @copying stanza, use it. Update to - GFDL 1.2. Do not list GFDL as Invariant Section, do not list - title as Front-Cover Text. - * gnat_rm.texi: Likewise. - * gnat_ugn.texi: Likewise. - -2008-07-29 Jan Hubicka - - * trans.c (process_inlined_subprograms): Remove tree_really_inline - check. - -2008-07-29 Arnaud Charlet - - * gcc-interface: New directory. - - * ada-tree.def, cuintp.c, gigi.h, Makefile.in, targtyps.c, ada.h, - utils.c, ada-tree.h, decl.c, lang.opt, Make-lang.in, trans.c, - config-lang.in, deftarg.c, lang-specs.h, misc.c, utils2.c: Moved - to gcc-interface subdirectory. - -2008-07-29 Aaron W. LaFramboise - - * Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Remove extra s-win32.o. - -2008-07-28 Jan Hubicka - - * misc.c (gnat_post_options): Do not set flag_no_inline. - -2008-07-28 Richard Guenther - - Merge from gimple-tuples-branch. - - 2008-07-22 Olivier Hainque - - * gigi.h (end_subprog_body): New ELAB_P argument, saying if - this is called for an elab proc to be discarded if empty. - * utils.c (end_subprog_body): Honor ELAB_P. - (build_function_stub): Adjust call to end_subprog_body. - * trans.c (Subprogram_Body_to_gnu): Likewise. - (gigi): Reorganize processing of elab procs to prevent - gimplifying twice, using the new end_subprog_body argument. - - 2008-07-19 Richard Guenther - - * Make-lang.in (trans.o): Add tree-iterator.h dependency. - (utils.o): Likewise. - * trans.c: Include tree-iterator.h. - (gnat_gimplify_expr): Adjust prototype. Fix typo. - (gnat_gimplify_stmt): Use SET_EXPR_LOCATION. - (set_expr_location_from_node): Likewise. - (gigi): Tuplify. - * ada-tree.h (union lang_tree_node): Use TREE_CHAIN instead - of GENERIC_NEXT. - * utils.c: Include tree-iterator.h. - * gigi.h (gnat_gimplify_expr): Adjust prototype. - - 2008-07-18 Aldy Hernandez - - * trans.c: Include gimple.h instead of tree-gimple.h. - * utils.c: Same. - - 2008-07-14 Aldy Hernandez - - * trans.c (gnat_gimplify_expr): Use gimplify_assign. - -2008-07-25 Jan Hubicka - - * utils.c (end_subprog_body): Remove inline trees check. - * misc.c (gnat_post_options): Do not set flag_inline_trees. - -2008-07-25 Rainer Orth - - * raise-gcc.c: Move tsystem.h before tm.h. - -2008-07-20 Arnaud Charlet - - * gnathtml.pl: New file. - -2008-07-19 Olivier Hainque - - * targtyps.c (get_target_default_allocator_alignment): Use - MALLOC_ABI_ALIGNMENT. - -2008-07-17 Olivier Hainque - - * adaint.c (__MINGW32__ section): Include ctype.h and define - a fallback ISALPHA if IN_RTS. - (__gnat_is_absolute_path): Use ISALPHA instead of isalpha. - -2008-07-17 Olivier Hainque - - * utils.c (create_var_decl_1): Relax expectations on the PUBLIC_FLAG - argument, to apply to references in addition to definitions. Prevent - setting TREE_STATIC on externals. - (gnat_pushdecl): Always clear DECL_CONTEXT on public externals. - -2008-07-14 Ralf Wildenhues - - PR documentation/15479 - * gnat_ugn.texi (@ovar): New macro, from autoconf.texi. - Replace backets around optional parameters with @ovar - where possible, use @r{[}, @r{]} otherwise. - Replace some @r, @i, and @emph with @var where appropriate. - -2008-07-02 Eric Botcazou - - * decl.c (make_type_from_size) : Fix typo and tidy up. - -2008-06-27 Kaveh R. Ghazi - - * ada-tree.h (SET_TYPE_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Fix - -Wc++-compat warnings. - * adaint.c (__gnat_locate_regular_file, __gnat_locate_exec, - __gnat_locate_exec_on_path): Likewise. - * decl.c (annotate_value): Likewise. - * misc.c (gnat_handle_option): Likewise. - * trans.c (gnat_to_gnu, extract_encoding, decode_name, - post_error_ne_tree): Likewise. - -2008-06-27 Eric Botcazou - - * utils.c (convert) : When converting it to a packable - version of its type, attempt to first convert its elements. - -2008-06-26 Chris Proctor - - * Makefile.in: Fix *86 kfreebsd target specific pairs. - -2008-06-25 Samuel Tardieu - - * Makefile.in: Use mlib-tgt-specific-linux.adb for sh4 as well. - -2008-06-24 Eric Botcazou - - * utils2.c (known_alignment): Derive the alignment from pointed-to - types only if it is otherwise unknown. - : Tidy. - : Likewise. - : If the alignment of the offset is unknown, use - that of the base. - -2008-06-20 John David Anglin - - PR ada/36573 - * s-osinte-hpux-dce.ads (SA_ONSTACK): Define. - -2008-06-15 Ralf Wildenhues - - * gnat_rm.texi (Implementation Defined Characteristics) - (Standard Library Routines): Use @smallexample for indented - text. Drop Indentation outside examples. - * gnat_ugn.texi: Likewise. - -2008-06-13 Olivier Hainque - - * decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0 - if undefined. - (gnat_to_gnu_entity) : Request stack - realignment with force_align_arg_pointer attribute on foreign - convention subprograms if FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN. - -2008-06-13 Olivier Hainque - - * utils.c (rest_of_record_type_compilation): When computing - encodings for the components of a variable size type, early - strip conversions on the current position expression to make - sure it's shape is visible. Use remove_conversions for this - purpose. - -2008-06-12 Eric Botcazou - - * decl.c (gnat_to_gnu_entity) : In the case of a - constrained subtype of a discriminated type, discard the fields that - are beyond its limits according to its size. - -2008-06-10 Olivier Hainque - - * utils.c (create_subprog_decl): If this is for the 'main' entry - point according to the asm name, redirect main_identifier_node. - -2008-06-09 Eric Botcazou - - * decl.c (components_to_record): Adjust the packedness for the - qualified union as well. - -2008-06-09 Arnaud Charlet - - * Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle - checks non fatal. - -2008-06-07 Samuel Tardieu - - * sem_res.adb (Large_Storage_Type): A type is large if it - requires as many bits as Positive to store its values and its - bounds are known at compile time. - * sem_ch13.adb (Minimum_Size): Note that this function returns - 0 if the size is not known at compile time. - -2008-06-06 Nicolas Setton - Olivier Hainque - - * ada-tree.h (DECL_PARALLEL_TYPE): New language specific - attribute, parallel descriptive type attached to another - type for debug info generation purposes. - * utils.c (add_parallel_type): New function, register - parallel type to be attached to a type. - (get_parallel_type): New function, fetch a registered - parallel type, if any. - (rest_of_record_type_compilation): Register the parallel - type we make for variable size records. - * gigi.h (add_parallel_type, get_parallel_type): Declare. - * decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the - parallel debug types we make. - * trans.c (extract_encoding, decode_name): New functions. - (gigi): If the DWARF attribute extensions are available, setup - to use them. - * lang.opt: Register language specific processing request - for -gdwarf+. - * misc.c (gnat_dwarf_extensions): New global variable. How much - do we want of our DWARF extensions. 0 by default. - (gnat_handle_option) : Increment gnat_dwarf_extensions. - (gnat_post_options): Map gnat_dwarf_extensions to the - commonuse_gnu_debug_info_extensions for later processing. - -2008-06-04 Samuel Tardieu - - * einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP. - -2008-06-03 Ralf Wildenhues - - * Makefile.in (common_tools): Fix typos in $(exeext) extension. - * gnat_ugn.texi (Style Checking) - (Adding the Results of Compiler Checks to gnatcheck Output) - (Example of Binder Output File): Fix typos. - * ali.ads, einfo.ads, exp_ch4.adb, exp_ch6.adb, - exp_dbug.ads, exp_dist.adb, exp_smem.adb, g-socket.ads, - s-osinte-rtems.ads, s-shasto.ads, s-stausa.adb, - s-stausa.ads, sem_cat.adb, sem_ch12.adb, sem_ch3.adb, - sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_util.ads, - sinfo.ads, utils.c: Fix typos in comments. - * sem_ch6.adb, vms_data.ads: Fix typos in strings. - -2008-05-29 Thomas Quinot - - * sem_eval.adb: Minor reformatting - -2008-05-29 Ed Schonberg - - * sem_ch6.adb (Analyze_Subprogram_Specification): if the return type - is abstract, do not apply abstractness check on subprogram if this is - a renaming declaration. - -2008-05-29 Arnaud Charlet - - PR ada/864 - * osint.ads, osint.adb (Program_Name): New parameter "Prog" to - allow recognition of program suffix in addition to prefix. - - * gnatchop.adb (Locate_Executable): Add support for prefix. - - * make.adb, gnatcmd.adb, gnatlink.adb, prj-makr.adb, - mlib-utl.adb: Adjust calls to Program_Name. - -2008-05-29 Robert Dewar - - * sem_ch3.adb: Minor reformatting - * sem_prag.adb: Minor reformatting - * sem_res.adb: Minor reformatting - * sinput-p.ads: Minor reformatting - -2008-05-29 Javier Miranda - - * sem_util.adb: - (Abstract_Interface_List): Add missing support for full type-declaration - associated with synchronized types. - -2008-05-29 Robert Dewar - - * sem_eval.adb (Is_Same_Value): Take care of several more cases - -2008-05-28 Ed Schonberg - - * sem_ch5.adb (Analyze_Assignment): If the name is of a local anonymous - access type, wrap the expression in a conversion to force an - accessibility check. - - * sem_aggr.adb (Aggegate_Constraint_Checks): Apply conversion to force - accessibility checks even when expansion is disabled in order to - generate messages in the presence of previous errors or in - semantics-only mode. - -2008-05-28 Eric Botcazou - - * system-lynxos-ppc.ads (Always_Compatible_Rep): Set to False. - * system-lynxos-x86.ads (Always_Compatible_Rep): Set to False. - -2008-05-28 Vincent Celier - - PR ada/34446 - * gnat_ugn.texi: Document restriction introduced on 2007-04-20 in - preprocessing expressions - -2008-05-28 Vincent Celier - - * sinput-p.adb (Source_File_Is_Subunit): Allow special character used - for preprocessing - - * sinput-p.ads: Minor comment update and reformatting - -2008-05-28 Ed Schonberg - - * sem_res.adb (Valid_Conversion): An anonymous access_to_subprogram - type has a deeper level than any master only when it is the type of an - access parameter. - -2008-05-28 Javier Miranda - - * sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation. - -2008-05-28 Javier Miranda - - * sem_util.ads (Find_Overridden_Synchronized_Primitive): Removed. - * sem_util.adb (Find_Overridden_Synchronized_Primitive): Removed. - * sem_ch6.adb (Check_Synchronized_Overriding): Remove one formal. - Add code that was previously located in - Find_Overridden_Synchronized_Primitive because it is only used here. - -2008-05-28 Sergey Rybin - - * sem_prag.adb (Process_Extended_Import_Export_Subprogram_Pragma): Set - Entity field for formal_parameter_NAME in MECHANISM_ASSOCIATION. - -2008-05-28 Robert Dewar - - * restrict.ads: - Add missing restrictions, and properly label all GNAT defined ones - - * rtsfind.ads: - Add entry for Ada_Real_Time.Timing_Events.Timing_Event - Add entry for Ada.Task_Termination.Set_Specific_Handler - Add entry for Ada.Task_Termination.Specific_Handler - - * s-rident.ads: - Add missing restrictions and properly mark all gnat defined ones - - * sem_ch3.adb: - (Analyze_Object_Declaration): Check No_Local_Timing_Events restriction - - * sem_res.adb: - (Resolve_Call): Check violation of No_Specific_Termination_Handlers - - * gnat_rm.texi: Add missing restrictions, and properly label all - GNAT defined ones - -2008-05-28 Robert Dewar - - * restrict.adb: - (Check_Restriction): violation of restriction No_Finalization is - treated as a serious error to stop expansion - -2008-05-28 Robert Dewar - - * exp_util.adb: Minor reformatting - * exp_util.ads: Minor reformatting. - -2008-05-28 Arnaud Charlet - - * Make-lang.in: Remove gprmake. - - * gprmake.adb, makegpr.ads, makegpr.adb: Removed. - -2008-05-28 Ed Schonberg - - * sem_ch3.adb (Diagnose_Interface): Cleanup error messages involving - improper progenitor names, and avoid cascaded errors. - -2008-05-28 Robert Dewar - - * gnat_rm.texi: Add note on Old giving warning when applied to constant - - * sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is - a constant - -2008-05-28 Robert Dewar - - * exp_fixd.adb (Build_Multiply): Correct one-off error in computing - size - -2008-05-28 Robert Dewar - - * exp_ch5.adb: - (Expand_Simple_Function_Return): Copy unaligned result into temporary - -2008-05-28 Javier Miranda - - * sem_ch3.adb (Derive_Progenitor_Primitives): Add missing support - for user-defined predefined primitives. - - * sem_util.adb (Matches_Prefixed_View_Profile): Ditto. - (Find_Overridden_Synchronized_Primitive): Ditto. - - * sem_ch6.adb (Check_Synchronized_Overriding): Ditto. - -2008-05-27 Arnaud Charlet - - * a-ststio.adb, s-direio.adb: - Further code clean up of previous change. - Update comments. - -2008-05-27 Vincent Celier - - * prj-nmsc.adb: Minor reformatting - -2008-05-27 Bob Duff - - * sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an - untagged private type with a tagged full type, where the full type has - a self reference, create the corresponding class-wide type early, in - case the self reference is "access T'Class". - -2008-05-27 Ed Schonberg - - * exp_aggr.adb (Build_Array_Aggr_Code): If component type includes - tasks and context is an object declaration. create master entity before - expansion. - -2008-05-27 Robert Dewar - - * mlib-prj.adb: Minor reformatting - - * prj-part.adb: Minor reformatting - - * prj.ads: Minor reformatting - - * exp_ch3.adb: Minor reformatting. - - * sem_ch3.ads: Minor reformatting - - * sem_eval.adb: Minor reformatting - -2008-05-27 Vincent Celier - - * gnatcmd.adb: - -gnat stack spawns gnatstack, not -gnatstack - -2008-05-27 Ed Schonberg - - * exp_aggr.adb (Expand_Array_Aggregate): If the aggregate contains - tasks, create an activation chain now, before the expansion into - assignments and build-in-place calls that require the presence of an - activation chain. - (Backend_Processing_Possible): If the component type is inherently - limited, the aggregate must be expanded into individual built-in-place - assignments. - - * sem_ch6.adb (Build_Extra_Formals): Use underlying type of result to - determine whether an allocation extra parameter must be built, to - handle case of a private type whose full type is a discriminated type - with defaults. - -2008-05-27 Bob Duff - - * gnat_rm.texi: - Document the new behavior regarding trampolines. - -2008-05-27 Arnaud Charlet - - * a-direio.adb, a-sequio.adb: Replace address clause by - unrestricted_access, simpler and compatible with .NET. - -2008-05-27 Vincent Celier - - * prj-part.adb: - (Project_Path_Name_Of.Try_Path): Do not use Locate_Regular_File to find - a project file, so that symbolic links are not resolved. - -2008-05-27 Arnaud Charlet - - * a-ztexio.adb, a-textio.adb, a-witeio.adb, s-direio.adb: - Replace heavy address clause by 'Unrestricted_Access, cleaner and more - portable across GNAT targets, since this kind of address clause is not - supported by VM back-ends (.NET/JGNAT). - -2008-05-27 Arnaud Charlet - - * bindgen.adb: Update comments. - - * s-tasinf-mingw.adb: Add "with" of System.OS_Interface - -2008-05-27 Vincent Celier - - * gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb, - prj.ads, makegpr.adb, makeutl.adb, clean.adb, prj-nmsc.adb, - mlib-tgt.adb, prj-env.adb, prj-env.ads: - (Path_Information): New record type - Use component of type Path_Information when there are two paths, one in - canonical format and one in display format. - Update the project manager to these new components. - -2008-05-27 Robert Dewar - - * makeutl.adb: Minor reformatting - * prj-nmsc.adb: Minor reformatting - * s-stausa.adb: Minor reformatting - * s-stausa.ads: Minor reformatting - * sem_ch6.adb: Minor reformatting - -2008-05-27 Thomas Quinot - - * sem_res.adb: Minor comment fixes - -2008-05-27 Thomas Quinot - - * makeutl.adb: Minor code reorganization - - * exp_aggr.adb: Add ??? comment - Fix typo - - * exp_ch6.adb: Minor reformatting - -2008-05-27 Quentin Ochem - - * s-stausa.adb (Initialize): Updated result initialization, and - initialization of environment stack. - (Fill_Stack): Improved computation of the pattern zone, taking into - account already filled at the calling point. - (Get_Usage_Range): Now uses Min_Measure and Max_Measure instead of - Measure and Overflow_Guard. - (Report_Result): Fixed computation of the result using new fields of - Stack_Analyzer. - - * s-stausa.ads (Initialize_Analyzer): Replaced Size / Overflow_Guard - params by more explicit Stack_Size / Max_Pattern_Size params. - (Stack_Analyzer): Added distinct Stack_Size & Pattern_Size fields. - Added Stack_Used_When_Filling field. - (Task_Result): Replaced Measure / Overflow_Guard by more explicit - Min_Measure and Max_Measure fields. - - * s-tassta.adb (Task_Wrapper): Updated call to Initialize_Analyzer. - -2008-05-27 Vincent Celier - - * prj-nmsc.adb: - (Check_File): Make sure that a unit that replaces the same unit in a - project being extended is properly processed. - -2008-05-27 Ed Schonberg - - * sem_ch3.adb: - (Get_Discr_Value): Remove obsolete code that failed to find the value - of a discriminant for an inherited task component appearing in a type - extension. - -2008-05-27 Thomas Quinot - - (System.File_IO.{Close, Delete, Reset}): - Change File parameter from "in out AFCB_Ptr" to "access AFCB_Ptr". - - (Ada.*_IO.{Close, Delete, Reset, Set_Mode}): - Pass File parameter by reference. - -2008-05-27 Vincent Celier - - * prj-nmsc.adb: - (Process_Sources_In_Multi_Language_Mode): Check that there are not two - sources of the same project that have the same object file name. - (Find_Explicit_Sources): Always remove a source exception that was not - found. - -2008-05-27 Thomas Quinot - - * sem_ch3.adb: Minor reformatting - -2008-05-27 Ed Schonberg - - * sem_ch6.adb: - (Is_Interface_Conformant): Handle properly a primitive operation that - overrides an interface function with a controlling access result. - (Type_Conformance): If Skip_Controlling_Formals is true, when matching - inherited and overriding operations, omit as well the conformance check - on result types, to prevent spurious errors. - -2008-05-27 Vincent Celier - - * makeutl.ads, makeutl.adb: - (Set_Location): New procedure - (Get_Location): New function - (Update_Main): New procedure - -2008-05-27 Vincent Celier - - * prj-nmsc.adb: - (Check_Library): Allow standard project to be extended as a static - library project. - (Get_Mains): Do not inherit attribute Main in an extending library - project. - -2008-05-27 Eric Botcazou - - * system-darwin-ppc.ads (Always_Compatible_Rep): Set to False. - * system-darwin-x86.ads (Always_Compatible_Rep): Likewise. - * system-freebsd-x86.ads (Always_Compatible_Rep): Likewise. - * system-linux-ppc.ads (Always_Compatible_Rep): Likewise. - * system-linux-x86_64.ads (Always_Compatible_Rep): Likewise. - * system-linux-x86.ads (Always_Compatible_Rep): Likewise. - * system-mingw.ads (Always_Compatible_Rep): Likewise. - * system-solaris-sparc.ads (Always_Compatible_Rep): Likewise. - * system-solaris-sparcv9.ads (Always_Compatible_Rep): Likewise. - * system-solaris-x86.ads (Always_Compatible_Rep): Likewise. - -2008-05-27 Ed Schonberg - - * sem_attr.adb: add guard to previous patch. - -2008-05-27 Ed Schonberg - - * exp_disp.adb (Build_Dispatch_Tables): For a private type completed by - a synchronized tagged type, do not attempt to build dispatch table for - full view. The table is built for the corresponding record type, which - has its own declaration. - -2008-05-27 Gary Dismukes - - * sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype - to the known type entity E, rather than setting it to Any_Type. Fixes - possible blowup in function Base_Init_Proc, as called from Freeze_Entity - for objects whose type had an illegal constraint. - -2008-05-27 Vincent Celier - - * gnat_ugn.texi: - Add succinct documentation for attribute Excluded_Source_List_File - -2008-05-27 Vincent Celier - - * prj-attr.adb: Add new project level attribute Map_File_Option - - * prj-nmsc.adb (Process_Linker): Process new attribute Map_File_Option - - * prj.ads: Minor reformatting and comment update - (Project_Configuration): New component Map_File_Option - - * snames.adb: New standard name Map_File_Option - - * snames.ads: New standard name Map_File_Option - -2008-05-27 Vincent Celier - - * xsnames.adb: Remove unused variable Oname - -2008-05-27 Doug Rupp - - * exp_ch6.adb: - (Expand_N_Function_Call): Fix comments. Minor reformatting. - - * exp_vfpt.ads: - (Expand_Vax_Foreign_Return): Fix comments. - -2008-05-27 Thomas Quinot - - * exp_dist.adb: Minor reformating - -2008-05-26 Gary Dismukes - - * exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for - No_Default_Initialization, which is now delayed until the freeze point - of the object. Add a comment about deferral of the check. - - * freeze.adb (Freeze_Entity): The check for No_Default_Initialization - on objects is moved here. - -2008-05-26 Eric Botcazou - - * s-casi16.adb (Uhalf): Rewrite it as integer with small alignment. - (Compare_Array_S16): Adjust for above change. - * s-casi32.adb (Uword): Likewise. - (Compare_Array_S32): Likewise. - * s-casi64.adb (Uword): Likewise. - (Compare_Array_S64): Likewise. - * s-caun16.adb (Uhalf): Likewise. - (Compare_Array_U16): Likewise. - * s-caun32.adb (Uword): Likewise. - (Compare_Array_U32): Likewise. - * s-caun64.adb (Uword): Likewise. - (Compare_Array_U64): Likewise. - -2008-05-26 Robert Dewar - - * exp_ch6.adb: Add ??? comment for previous change - - * exp_vfpt.adb: Minor reformatting - - * exp_vfpt.ads: Add ??? comment for last change - - * sem_attr.adb: Add some ??? comments for previous change - - * s-vaflop.ads: Add comments for previous change - -2008-05-26 Doug Rupp - - * s-vaflop-vms-alpha.adb: - Remove System.IO use clause, to prevent spurious ambiguities when - package is access through rtsfind. - -2008-05-26 Sergey Rybin - - * tree_io.ads (ASIS_Version_Number): Update because of the changes - made in front-end - -2008-05-26 Ed Schonberg - - * sem_attr.adb: - (Resolve_Attribute, case 'address): S (A .. B)' address can be safely - converted to S (A)'address only if A .. B is known to be a non-null - range. - -2008-05-26 Doug Rupp - - * s-vaflop.adb: - (Return_D, Return_F, Return_G): New functions. - - * s-vaflop.ads: - (Return_D, Return_F, Return_G): New functions. - - * exp_vfpt.adb: - (Expand_Vax_Foreign_Return): New procedure - - * exp_vfpt.ads: - (Expand_Vax_Foreign_Return): New procedure - - * rtsfind.ads: - (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids - (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements - - * exp_ch6.adb: - Import Exp_Vfpt - (Expand_N_Function_Call): Call Expand_Vax_Foreign_Return. - - * s-vaflop-vms-alpha.adb: - (Return_D, Return_F, Return_G): New functions. - -2008-05-26 Gary Dismukes - - * exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy - init proc entity when there is actual default initialization associated - with the component type, to avoid spurious errors on objects of scalar - array types that are marked Is_Public when No_Default_Initialization - applies. - -2008-05-26 Thomas Quinot - - * rtsfind.ads, rtsfind.adb: - (RE_Get_RACW): New runtime library entity provided by PolyORB s-parint. - (Check_RPC): Support per-PCS-kind API versioning. - - exp_dist.ads, exp_dist.adb: - (Build_Stub_Tag, Get_Stub_Elements): New utility subprograms. - (PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime - library function Get_RACW. - (PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime - library function Get_Reference. - (PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going - through an intermediate Any. - (PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of - going through an intermediate Any. - - * sem_dist.adb: Minor reformatting. - -2008-05-26 Javier Miranda - - * einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias. - (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias. - (Is_Internal): Adding documentation on internal entities that have - attribute Interface_Alias (old attribute Abstract_Interface_Alias) - - * einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias. - (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias. - Added assertion to force entities with this attribute to have - attribute Is_Internal set to True. - (Next_Tag_Component): Simplify assertion using attribute Is_Tag. - - * sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been - renamed as Derive_Progenitor_Subprograms. In addition, its code is - a new implementation. - (Add_Interface_Tag_Components): Remove special management of - synchronized interfaces. - (Analyze_Interface_Declaration): Minor reformating - (Build_Derived_Record_Type): Minor reformating - (Check_Abstract_Overriding): Avoid reporting error in case of abstract - predefined primitive inherited from interface type because the body of - internally generated predefined primitives of tagged types are generated - later by Freeze_Type - (Derive_Subprogram): Avoid generating an internal name if the parent - subprogram overrides an interface primitive. - (Derive_Subprograms): New implementation that keeps separate the - management of tagged types not implementing interfaces, from tagged - types that implement interfaces. - (Is_Progenitor): New implementation. - (Process_Full_View): Add documentation - (Record_Type_Declaration): Replace call to Derive_Interface_Subprograms - by call to Derive_Progenitor_Subprograms. - - * sem_ch6.ads (Is_Interface_Conformant): New subprogram. - (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument - Skip_Controlling_Formals. - - * sem_ch6.adb (Is_Interface_Conformant): New subprogram. - (Check_Conventions): New implementation. Remove local subprogram - Skip_Check. Remove formal Search_From of routine Check_Convention. - (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument - Skip_Controlling_Formals. - (New_Overloaded_Entity): Enable addition of predefined dispatching - operations. - - * sem_disp.ads - (Find_Primitive_Covering_Interface): New subprogram. - - * sem_disp.adb (Check_Dispatching_Operation): Disable registering - the task body procedure as a primitive of the corresponding tagged - type. - (Check_Operation_From_Private_Type): Avoid adding twice an entity - to the list of primitives. - (Find_Primitive_Covering_Interface): New subprogram. - (Override_Dispatching_Operation): Add documentation. - - * sem_type.adb (Covers): Minor reformatings - - * sem_util.ads (Collect_Abstract_Interfaces): Renamed as - Collect_Interfaces. - Rename formal. - (Has_Abstract_Interfaces): Renamed as Has_Interfaces. - (Implements_Interface): New subprogram. - (Is_Parent): Removed. - (Primitive_Names_Match): New subprogram. - (Remove_Homonym): Moved here from Derive_Interface_Subprograms. - (Ultimate_Alias): New subprogram. - - * sem_util.adb (Collect_Abstract_Interfaces): Renamed as - Collect_Interfaces. - Remove special management for synchronized types. Rename formal. Remove - internal subprograms Interface_Present_In_Parent and Add_Interface. - (Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion - on non-record types by code to return false in such case. - (Implements_Interface): New subprogram. - (Is_Parent): Removed. No special management is now required for - synchronized types covering interfaces. - (Primitive_Names_Match): New subprogram. - (Remove_Homonym): Moved here from Derive_Interface_Subprograms. - (Ultimate_Alias): New subprogram. - - * exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram. - Add internal entities associated with secondary dispatch tables to - the list of tagged type primitives that are not interfaces. - (Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities - (Make_Predefined_Primitive_Specs): Code reorganization to improve - the management of predefined equality operator. In addition, if - the type has an equality function corresponding with a primitive - defined in an interface type, the inherited equality is abstract - as well, and no body can be created for it. - - * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved from - exp_util to exp_disp. - (Is_Predefined_Interface_Primitive): New subprogram. Returns True if - an entity corresponds with one of the predefined primitives required - to implement interfaces. - Update copyright notice. - - * exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the - final check on abstract subprograms all the primitives associated with - interface primitives because they must be visible in the public and - private part. - (Write_DT): Use Find_Dispatching_Type to locate the name of the - interface type. This allows the use of this routine, for debugging - purposes, when the tagged type is not fully decorated. - (Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp. - Factorize code calling new subprogram Is_Predefined_Interface_Primitive. - (Is_Predefined_Interface_Primitive): New subprogram. Returns True if an - entity corresponds with one of the predefined primitives required to - implement interfaces. - - * exp_util.adb (Find_Interface_ADT): New implementation - (Find_Interface): Removed. - - * sprint.adb (Sprint_Node_Actual): Generate missing output for the - list of interfaces associated with nodes - N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration. - -2008-05-26 Thomas Quinot - - * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on - condition for assignment to temporary. - -2008-05-26 Ed Schonberg - - * exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint - checks on the upper bound if the index type is a modular type, to - prevent wrap-around computations when size is close to upper bound of - type. - -2008-05-26 Robert Dewar - - * sem_ch3.adb: Minor reformatting - -2008-05-26 Ed Schonberg - - * sem_ch12.adb (Remove_Parent): Use specification of instance - to retrieve generic parent, - to handle properly the case where the instance is a child unit. - Add guard to handle properly wrapper packages. - Minor reformatting - -2008-05-26 Thomas Quinot - - * sinfo.ads: Minor reformatting - -2008-05-26 Hristian Kirtchev - - * exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting. - Generate a tag check when the result subtype of a function, defined by - an access definition, designates a specific tagged type. - (Make_Tag_Check): New routine. - -2008-05-26 Arnaud Charlet - - * ceinfo.adb, csinfo.adb: Remove warnings. Update headers. - -2008-05-26 Eric Botcazou - - * gigi.h (gigi): Remove bogus ATTRIBUTE_UNUSED marker. - (builtin_decl_for): Likewise. - * trans.c (gigi): Likewise. - * utils.c (def_builtin_1): Fix formatting. - -2008-05-26 Hristian Kirtchev - - * exp_ch3.adb (Build_Init_Statements): Alphabetize local variables. - Create the statements which map a string name to protected or task - entry indix. - - * exp_ch9.adb: Add with and use clause for Stringt. - Minor code reformatting. - (Build_Entry_Names): New routine. - (Make_Initialize_Protection, Make_Task_Create_Call): Generate a value - for flag Build_Entry_Names which controls the allocation of the data - structure for the string names of entries. - - * exp_ch9.ads (Build_Entry_Names): New subprogram. - - * exp_util.adb (Entry_Names_OK): New function. - - * exp_util.ads (Entry_Names_OK): New function. - - * rtsfind.ads: Add RO_PE_Set_Entry_Name and RO_TS_Set_Entry_Name to - enumerations RE_Id and RE_Unit_Table. - - * s-taskin.adb Add with and use clause for Ada.Unchecked_Deallocation. - (Free_Entry_Names_Array): New routine. - - * s-taskin.ads: Comment reformatting. - Add types String_Access, Entry_Names_Array, Entry_Names_Array_Access. - Add component Entry_Names to record Ada_Task_Control_Block. - (Free_Entry_Names_Array): New routine. - - * s-tassta.adb (Create_Task): If flag Build_Entry_Names is set, - dynamically allocate an array - of string pointers. This structure holds string entry names. - (Free_Entry_Names): New routine. - (Free_Task, Vulnerable_Free_Task): Deallocate the entry names array. - (Set_Entry_Names): New routine. - - * s-tassta.ads: - (Create_Task): Add formal Build_Entry_Names. The flag is used to - control the allocation of the data structure which stores entry names. - (Set_Entry_Name): New routine. - - * s-tpoben.adb: - Add with and use clause for Ada.Unchecked_Conversion. - (Finalize): Deallocate the entry names array. - (Free_Entry_Names): New routine. - (Initialize_Protection_Entries): When flag Build_Entry_Names is set, - create an array of string pointers to hold the entry names. - (Set_Entry_Name): New routine. - - * s-tpoben.ads: - Add field Entry_Names to record Protection_Entries. - (Initialize_Protection_Entries): Add formal Build_Entry_Names. - (Set_Entry_Name): New routine. - -2008-05-26 Vincent Celier - - * prj-nmsc.adb: - (Process_Project_Level_Simple_Attributes): process attribute Library_GCC - - * prj.ads: - (Project_Configuration): New component Shared_Lib_Driver - -2008-05-26 Ed Schonberg - - * inline.adb: - (Cleanup_Scopes): For a protected operation, transfer finalization list - to protected body subprogram, to force cleanup actions when needed. - -2008-05-26 Robert Dewar - - * sem_cat.adb: Minor reformatting - - * gnatname.adb: Minor reformatting - - * osint.ads: Minor reformatting - - * s-carun8.ads: Minor reformatting - - * g-heasor.ads: Minor comment fix (unit is now pure) - -2008-05-26 Robert Dewar - - * exp_ch2.adb: - (Expand_Current_Value): Properly type generated integer literal - -2008-05-26 Sergey Rybin - - * gnat_ugn.texi: Add description for the new gnatcheck rule - - Separate_Numeric_Error_Handlers. - -2008-05-26 Pascal Obry - - * sem_aggr.adb: Minor reformatting. - -2008-05-26 Jose Ruiz - - * s-osinte-aix.adb: - (To_Target_Priority): Setting the time slice value to 0 or greater sets - the scheduling policy to FIFO within priorities or round-robin - respectively. - Hence, the priority must be set in this case to the one selected by the - user. - -2008-05-26 Ed Schonberg - - * sem_ch12.adb: - (Remove_Parent): If the enclosing scope is an instance whose generic - parent is declared within some parent scope of the just completed - instance, make full views of the entities in that parent visible, when - applicable. - -2008-05-26 Kai Tietz - - * mingw32.h (STD_MINGW): Set to true for target w64. - -2008-05-25 Eric Botcazou - - * trans.c (Attribute_to_gnu) : Set TREE_NO_TRAMPOLINE - instead of TREE_STATIC on the ADDR_EXPR. - -2008-05-24 Eric Botcazou - - * trans.c (gnat_to_gnu): Do not set source location info on NOP_EXPRs. - (Sloc_to_locus): Do not overwrite known GCC locations when translating - GNAT standard locations. - -2008-05-23 Eric Botcazou - - * gigi.h (mark_visited): Declare. - * decl.c (gnat_to_gnu_entity): Use mark_visited instead of marking - only the topmost node of expressions. - (elaborate_expression_1): Look deeper for read-only variables. - * trans.c (add_decl_expr): Use mark_visited instead of marking by hand. - (mark_visited): Move logic to mark_visited_r. Invoke walk_tree. - (mark_visited_r): New function. - -2008-05-23 Vincent Celier - - * snames.adb: New standard name Excluded_Source_List_File. - - * snames.ads: New standard name Excluded_Source_List_File. - - * prj-attr.adb: New project level attribute Excluded_Source_List_File. - - * prj-nmsc.adb: (Find_Excluded_Sources): New parameter Project. - Get excluded sources from - file indicated by attribute Excluded_Source_List_File, when present and - neither Excluded_Source_Files nor Locally_Removed_Files are declared. - -2008-05-23 Robert Dewar - - * exp_dist.adb: Minor reformatting - -2008-05-23 Ed Schonberg - - * sem_attr.adb (Resolve_Attribute, case 'address): If the prefix is a - slice, convert it to an indexed component, which is equivalent, more - efficient, and usable even if the slice itself is not addressable. - -2008-05-23 Olivier Hainque - - * gnat_ugn.texi (Calling Conventions): Document that the Intrinsic - convention also allows access to named compiler built-in subprograms - such as the GCC __builtin family. - -2008-05-23 Vincent Celier - - * prj-nmsc.adb (Check_Naming_Schemes): Check a file for spec, body and - sep. If there are several possibilities, choose the one with the - longer prefix. - -2008-05-23 Vincent Celier - - * gnatlink.adb (Process_Args): Do not disable scanning of ALI file for - back end switches when executable specified with --GCC= is same as - default, even if there are additional options. - - * gnat_ugn.texi: - Document when the back end switches from the ALI file are taken into - account when gnatlink is invoked with --GCC= - -2008-05-23 Thomas Quinot - - * s-os_lib.adb: - (copy_File): Do not open destination file if source file is unreadable. - -2008-05-23 Eric Botcazou - - * utils.c (handle_type_generic_attribute): Adjust to accept - fixed arguments before an elipsis. - -2008-05-21 Thomas Quinot - - * g-sothco.ads, g-sothco.adb: New files. - -2008-05-20 Thomas Quinot - - * Makefile.rtl (GNAT.Sockets.Thin_Common): New unit. - - * g-sttsne-vxworks.adb: Add missing dependency on Sockets.Constants. - Add missing "with" of Ada.Unchecked_Conversion - - * g-soccon-linux-ppc.ads, g-soccon-linux-64.ads, g-soccon-lynxos.ads, - g-soccon-linux-x86.ads, g-soccon-hpux-ia64.ads, - g-soccon-solaris-64.ads, g-soccon-tru64.ads, g-soccon-aix.ads, - g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads, - g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads, - g-socthi-vxworks.adb, g-soccon-freebsd.ads, g-soccon.ads: - Move common code out of GNAT.Sockets.Thin implementations and into - Thin_Common. - New constant SIZEOF_fd_set - New flag Has_Sockaddr_Len - New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6 - - * g-stsifd-sockets.adb - (Create): Remove call to Set_Length; use Set_Family to set the family - and (on appropriate platforms) length fields in struct sockaddr. - - * g-socthi.adb, g-socthi.ads, g-socthi-vms.ads, g-socthi-vms.adb, - g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.adb, - g-soccon-darwin.ads, g-soccon-darwin.ads: New constant SIZEOF_fd_set - Move common code out of GNAT.Sockets.Thin implementations and into - Thin_Common. - - * g-socket.ads, g-socket.adb: - Move common code out of GNAT.Sockets.Thin implementations and into - Thin_Common. - (Connect_Socket, Accept_Socket): Provide new versions of these two - routines that operate with a user specified timeout. - (Bind_Socket, Connect_Socket, Send_Socket): Remove calls to Set_Length, - this is now handled automatically by Set_Family on platforms that - require it. - - * gen-soccon.c: - Move common code out of GNAT.Sockets.Thin implementations and into - Thin_Common. - (SIZEOF_sockaddr_in6): On platforms where IPv6 is not supported, define - this constant to 0 (not -1) because we use it to initialize an - unsigned_char value. - Align values for numeric constants only. - Handle the case of systems that do not support AF_INET6. - New constant SIZEOF_fd_set - New flag Has_Sockaddr_Len - New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6 - - * gsocket.h: New flag Has_Sockaddr_Len - New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6 - -2008-05-20 Santiago Uruena - - * i-cobol.ads: Interfaces.COBOL should be preelaborate. - -2008-05-20 Arnaud Charlet - - * s-linux-hppa.ads (atomic_lock_t): Put back proper alignment now that - the underlying issue with malloc/free has been fixed. Remove associated - comments. - Minor reformatting. - Related to PR ada/24533 - -2008-05-20 Robert Dewar - - * ali.adb: Correct casing of ASCII.NUL - - * styleg-c.adb (Check_Identifier): Handle case of names in ASCII - properly. - -2008-05-20 Robert Dewar - Gary Dismukes - - * checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate - overflow if result converted to wider integer type. - (Apply_Type_Conversion_Checks): Don't emit checks on conversions to - discriminated types when discriminant checks are suppressed. - -2008-05-20 Vincent Celier - - * cstand.adb (Print_Standard): Issue the correct Size clause for type - Wide_Wide_Character. - -2008-05-20 Tristan Gingold - - * decl.c: Do not emit a variable for a object that has an address - representation clause whose value is known at compile time. - When a variable has an address clause whose value is known at compile - time, refer to this variable by using directly the address instead of - dereferencing a pointer. - -2008-05-20 Robert Dewar - - PR ada/30740 - * einfo.ads, einfo.adb (Non_Binary_Modulus): Applies to all types and - subtypes, always False for non-modular types. - Shared_Var_Assign_Proc (node22) and Shared_Var_Read_Proc (node 15) - entry nodes have been replaced by Shared_Var_Procs_Instance (node22) - for Shared_Storage package. - (Is_RACW_Stub_Type): New entity flag. - - * exp_ch4.adb - (Expand_N_Op_Expon): Avoid incorrect optimization of a*(2**b) in the - case where we have a modular type with a non-binary modules. - Comments reformattings. - - * sem_intr.adb: Simplify code not that Non_Binary_Modulus applies to - all types. - -2008-05-20 Javier Miranda - - * exp_aggr.adb - (Build_Record_Aggr_Code): Fix wrong tests checking progenitors. Previous - tests did not covered the case in which the type of the aggregate has - no progenitors but some its parents has progenitors. - -2008-05-20 Gary Dismukes - Hristian Kirtchev - - * exp_ch3.adb - (Expand_N_Object_Declaration): Correct the condition which triggers the - generation of a call to Displace when initializing a class-wide object. - (Build_Dcheck_Functions): Build discriminant-checking for null variants - when Frontend_Layout_On_Target is true to ensure that they're available - for calling when a record variant size function is built in Layout. - -2008-05-20 Ed Schonberg - - * exp_ch5.adb (Expand_Assign_Record): Within an initialization - procedure for a derived type retrieve the discriminant values from the - parent using the corresponding discriminant. - (Expand_N_Assignment_Statement): Skip generation of implicit - if-statement associated with controlled types if we are - compiling with restriction No_Finalization. - -2008-05-20 Vincent Celier - - * prj.adb (Hash (Project_Id)): New function - (Project_Empty): Add new component Interfaces_Defined - - * prj.ads (Source_Data): New component Object_Linked - (Language_Config): New components Object_Generated and Objects_Linked - (Hash (Project_Id)): New function - (Source_Data): New Boolean components In_Interfaces and - Declared_In_Interfaces. - (Project_Data): New Boolean component Interfaces_Defined - - * prj-attr.adb: - New project level attribute Object_Generated and Objects_Linked - Add new project level attribute Interfaces - - * prj-dect.adb: Use functions Present and No throughout - (Parse_Variable_Declaration): If a string type is specified as a simple - name and is not found in the current project, look for it also in the - ancestors of the project. - - * prj-makr.adb: - Replace procedure Make with procedures Initialize, Process and Finalize - to implement H414-023: process different directories with different - patterns. - Use functions Present and No throughout - - * prj-makr.ads: - Replace procedure Make with procedures Initialize, Process and Finalize - - * prj-nmsc.adb - (Add_Source): Set component Object_Exists and Object_Linked accordnig to - the language configuration. - (Process_Project_Level_Array_Attributes): Process new attributes - Object_Generated and Object_Linked. - (Report_No_Sources): New Boolean parameter Continuation, defaulted to - False, to indicate that the erreor/warning is a continuation. - (Check): Call Report_No_Sources with Contnuation = True after the first - call. - (Error_Msg): Process successively contnuation character and warning - character. - (Find_Explicit_Sources): Check that all declared sources have been found - (Check_File): Indicate in hash table Source_Names when a declared source - is found. - (Check_File): Set Other_Part when found - (Find_Explicit_Sources): In multi language mode, check if all exceptions - to the naming scheme have been found. For Ada, report an error if an - exception has not been found. Otherwise, disregard the exception. - (Check_Interfaces): New procedure - (Add_Source): When Other_Part is defined, set mutual pointers in spec - and body. - (Check): In multi-language mode, call Check_Interfaces - (Process_Sources_In_Multi_Language_Mode): Set In_Interfaces to False - for an excluded source. - (Remove_Source): A source replacing a source in the interfaces is also - in the interfaces. - - * prj-pars.adb: Use function Present - - * prj-part.adb: Use functions Present and No throughout - (Parse_Single_Project): Set the parent project for child projects - (Create_Virtual_Extending_Project): Register project with no qualifier - (Parse_Single_Project): Allow an abstract project to be extend several - times. Do not allow an abstract project to extend a non abstract - project. - - * prj-pp.adb: Use functions Present and No throughout - (Print): Take into account the full associative array attribute - declarations. - - * prj-proc.adb: Use functions Present and No throughout - (Expression): Call itself with the same From_Project_Node for the - default value of an external reference. - - * prj-strt.adb: Use functions Present and No throughout - (Parse_Variable_Reference): If a variable is specified as a simple name - and is not found in the current project, look for it also in the - ancestors of the project. - - * prj-tree.ads, prj-tree.adb (Present): New function - (No): New function - Use functions Present and No throughout - (Parent_Project_Of): New function - (Set_Parent_Project_Of): New procedure - - * snames.ads, snames.adb: - Add new standard names Object_Generated and Objects_Linked - -2008-05-20 Hristian Kirtchev - - * exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent - and the derived type are of the same kind. - (Expand_Call): Generate type conversions for actuals of - record or array types when the parent and the derived types differ in - size and/or packed status. - -2008-05-20 Javier Miranda - Ed Schonberg - - * exp_disp.adb (Make_DT, Make_Secondary_DT, Make_Tags): Avoid - generating dispatch tables of locally defined tagged types statically. - Remove implicit if-statement that is no longer required. - (Expand_Dispatching_Call): If this is a call to an instance of the - generic dispatching constructor, the type of the first argument may be - a subtype of Tag, so always use the base type to recognize this case. - -2008-05-20 Thomas Quinot - - * exp_dist.adb - (GARLIC_Support.Add_RACW_Read_Attribute): When a zero value is received, - and the RACW is null-excluding, raise CONSTRAINT_ERROR instead of - assigning NULL into the result, to avoid a spurious warning. - (Add_RACW_Features, case Same_Scope): Add assertion that designated type - is not frozen. - (Add_Stub_Type): Set entity flag Is_RACW_Stub_Type on generated stub - type. - (Build_From_Any_Function, Build_To_Any_Function, - Build_TypeCode_Function): For a type that has user-specified stream - attributes, use an opaque sequence of octets as the representation. - -2008-05-20 Kevin Pouget - - * exp_smem.ads, exp_smem.adb: Construction of access and assign - routines has been replaced by an instantiation of - System.Shared_Storage.Shared_Var_Procs generic package, while expanding - shared variable declaration. - Calls to access and assign routines have been replaced by calls to - Read/Write routines of System.Shared_Storage.Shared_Var_Procs - instantiated package. - - * rtsfind.ads: RE_Shared_Var_Procs entry has been added in RE_Unit_Table - It identifies the new generic package added in s-shasto. - - * s-shasto.adb, s-shasto.ads: A new generic package has been added, it - is instantiated for each shared passive variable. It provides - supporting procedures called upon each read or write access by the - expanded code. - - * sem_attr.adb: - For this runtime unit (always compiled in GNAT mode), we allow - stream attributes references for limited types for the case where - shared passive objects are implemented using stream attributes, - which is the default in GNAT's persistent storage implementation. - -2008-05-20 Ed Schonberg - - * freeze.adb - (Freeze_Enumeration_Type): For a subtype that inherits a foreign - convention from its base type, do not set the type to that of integer, - because it may inherit a size clause. - Warn on a size clause with a size different - from that of Integer, if the type has convention C. - -2008-05-20 Vincent Celier - - * gnatname.adb - (Scan_Args): Rewrite to take into account new switch --and to separate - arguments into sections. - (Gnatname): Call Prj.Makr.Initialize, then Prj.Makr.Process for each - section, then Finalize. - -2008-05-20 Tristan Gingold - - * init.c: Enable stack probing on ppc-linux. - - * tracebak.c: Add symbolic traceback for ppc-linux. - - * system-linux-ppc.ads: Enable stack probing on ppc-linux. - -2008-05-20 Arnaud Charlet - - * Makefile.in - (common-tools): New rule, to avoid parallel build failure on gnat tools. - Reenable parallel builds on this Makefile. - - * Make-lang.in: Update dependencies. - -2008-05-20 Robert Dewar - - * opt.ads (Treat_Restrictions_As_Warnings): New switch - - * sem_prag.adb, par-prag.adb, restrict.ads: Implement flag - Treat_Restrictions_As_Warnings. - - * switch-c.adb: Recognize new switch -gnatr - - * usage.adb: Add line for -gnatr - -2008-05-20 Hristian Kirtchev - - * par-ch3.adb - (P_Access_Definition): Change the error message when parsing "access - all" in Ada 95 mode. The message no longer forces the user to recompile - in 05 mode only to discover that anonymous access types are not allowed - to have "all". - -2008-05-20 Hristian Kirtchev - - * par-ch9.adb - (P_Protected): Update the error message on missing "-gnat05" switch when - using interfaces in conjunction with protected types. Remove the - incorrect error message associated with the presence of "private" after - a "with". - -2008-05-20 Ed Schonberg - - * sem_aggr.adb: Update comments. - Improve previous change for PR ada/17985 - -2008-05-20 Thomas Quinot - - * sem_cat.adb - (Set_Categorization_From_Scope): Do not set In_Remote_Types unless in - the visible part of the spec of a remote types unit. - (Validate_Remote_Access_Object_Type_Declaration): - New local subprogram Is_Valid_Remote_Object_Type, replaces - Is_Recursively_Limited_Private. - (Validate_RACW_Primitives): Enforce E.2.2(14) rules: the types of all - non-controlling formals (and the return type, even though this is not - explicit in the standard) must support external streaming. - (Validate_RCI_Subprogram_Declaration): Enforce E.2.3(14) rules: same - as above for of RAS types and RCI subprograms. (The return type is not - checked yet). - Update comments related to RACWs designating limited interfaces per - ARG ruling on AI05-060. - - * sem_util.ads, sem_util.adb - (Is_Remote_Access_To_Class_Wide_Type): Only rely on Is_Remote_Types and - Is_Remote_Call_Interface to identify RACW types in a stable and - consistent way. We used to rely in this predicate on the privateness of - the designated type and its ancestors, but depending on the currently - visible private parts, this caused false negatives. We now uniformly - rely on checks made at the point where the RACW type is declared. - (Inspect_Deferred_Constant_Completion): Moved from Sem_Ch7. - -2008-05-20 Javier Miranda - Ed Schonberg - Hristian Kirtchev - - * sem_ch3.adb - (Analyze_Object_Declaration): Fix over-conservative condition - restricting use of predefined assignment with tagged types that have - convention CPP. - (Analyze_Object_Declaration): Relax the check regarding deferred - constants declared in scopes other than packages since they can be - completed with pragma Import. - Add missing escaping of all-caps word 'CPP' in error messages. - (Build_Discriminated_Subtype): Do not inherit representation clauses - from parent type if subtype already carries them, because they are - inherited earlier during derivation and already include those that may - come from a partial view. - - * sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body): - Check the declarations of a subprogram body for proper deferred - constant completion. - - * sem_ch7.ads, sem_ch7.adb - (Inspect_Deferred_Constant_Completion): Moved to sem_util. - -2008-05-20 Ed Schonberg - Thomas Quinot - - * sem_ch4.adb - (Try_Indexed_Call): Handle properly a construct of the form F(S) where - F is a parameterless function that returns an array, and S is a subtype - mark. - (Analyze_Call): Insert dereference when the prefix is a parameterless - function that returns an access to subprogram and the call has - parameters. - Reject a non-overloaded call whose name resolves to denote - a primitive operation of the stub type generated to support a remote - access-to-class-wide type. - -2008-05-20 Ed Schonberg - - * sem_ch8.adb - (Note_Redundant_Use): Diagnose a redundant use within a subprogram body - when there is a use clause for the same entity in the context. - (Analyze_Subprogram_Renaming): A renaming_as_body is legal if it is - created for a stream attribute of an abstract type or interface type. - -2008-05-20 Thomas Quinot - - * sem_dist.ads, sem_dist.adb (Is_RACW_Stub_Type_Operation): New - subprogram. - - * sem_type.adb - (Add_One_Interp): Ignore any interpretation that is a primitive - operation of an RACW stub type (these primitives are only executed - through dispatching, never through static calls). - (Collect_Interps): When only one interpretation has been found, set N's - Entity and Etype to that interpretation, otherwise Entity and Etype may - still refer to an interpretation that was ignored by Add_One_Interp, - in which case would end up with being marked as not overloaded but with - an Entity attribute not pointing to its (unique) correct interpretation. - -2008-05-20 Ed Schonberg - - * sem_eval.adb - (Eval_Slice): Warn when a slice whose discrete range is a subtype name - denotes the whole array of its prefix. - -2008-05-20 Robert Dewar - - * sem_res.adb (Resolve_Op_Not): Warn on double negation - -2008-05-20 Ed Schonberg - - * sprint.adb - (Print_Itype): Do not modify the sloc of the component type of a - (packed) array itype, because it is an unrelated type whose source - location is independent of the point of creation of the itype itself. - -2008-05-20 Thomas Quinot - - * uintp.adb, urealp.adb: Replace calls to Increment_Last + Set with - Append. - -2008-05-20 Robert Dewar - Vincent Celier - - * vms_data.ads: Add entry for -gnatr - Put GNAT SYNC section in proper alpha order - Add VMS qualifier /DISPLAY_PROGRESS equivalent to gnatmake switch -d - - * gnat_ugn.texi: Add documentation for new gnatname switch --and - Update the style checks section - Add documentation of -gnatr - Add to the "Adding the Results of Compiler Checks to gnatcheck Output" - subsection the explanation how compiler checks should be disabled for - gnatcheck. - Update the list of Ada 95 reserved words used by in the project language - Add documentation for project qualifiers. - Document that abstract projects may be extended by different projects in - the same project tree. - Add documentation for gnatmake switch -d - - * ug_words: Add -gnatyy VMS equivalence string. - Add entry for -gnatr - -2008-05-20 Bob Duff - - * a-rttiev.adb - (Set_Handler): Remove code from both of these that implements - RM-D.15(15/2), because it causes a race condition and potential - deadlock. - (Process_Queued_Events): Add comment explaining "exception when others - => null". Add clarifying ".all", even though implicit .all is legal - here. - -2008-05-20 Arnaud Charlet - - * s-winext.ads: Replace representation clause by pragma Pack. Gives - equivalent representation, but has the advantage of allowing - compilation of this file under 64 bits platforms. - - * s-os_lib.adb (Normalize_Pathname): Mark Cur_Dir constant. - - * s-osinte-irix.ads: (Alternate_Stack_Size): Add dummy declaration. - - * adaint.c: - Don't define dummy implementation of convert_addresses on ppc-linux. - -2008-05-20 Ed Schonberg - - * exp_ch7.adb - (Expand_Ctrl_Function_Call): Do not attach result to finalization list - if expression is aggregate component. - -2008-05-20 Robert Dewar - - * g-byorma.adb, gnatlink.adb, prepcomp.adb, sinfo.ads, - sem_ch12.adb: Update comments. Minor reformatting. - - * exp_ch2.adb: Typo - - * s-unstyp.ads: Fixed some typos in comments. - -2008-05-20 Arnaud Charlet - - * s-taspri-vxworks.ads (Task_Address, Task_Address_Size): New - type/constant. - - * g-socthi-vxworks.ads: Update to latest socket changes. - - * a-caldel-vms.adb: Resync with a-caldel spec. - - * exp_ch9.ads, sem_ch8.ads, inline.adb: Minor reformatting. - Update comments. - -2008-05-17 Eric Botcazou - - * trans.c (gnat_to_gnu) : Account - for dummy types pointed to by the converted pointer types. - -2008-05-15 Eric Botcazou - - * trans.c (add_decl_expr): At toplevel, mark the TYPE_ADA_SIZE field - of records and unions. - (gnat_to_gnu) : Fix formatting. - -2008-05-14 Samuel Tardieu - Robert Dewar - - * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Add - restrictions to the prefix of 'Old. - * sem_util.ads, sem_util.adb (In_Parameter_Specification): New. - * gnat_rm.texi ('Old): Note that 'Old cannot be applied to local - variables. - -2008-05-13 Eric Botcazou - - PR ada/24880 - PR ada/26635 - * utils.c (convert) : When converting an additive - expression to an integral type with lower precision, use NOP_EXPR - directly in a couple of special cases. - -2008-05-12 Samuel Tardieu - Ed Schonberg - - * sem_ch3.adb (Build_Derived_Record_Type): Accept statically matching - constraint expressions. - -2008-05-12 Tomas Bily - - * utils2.c (known_alignment, contains_save_expr_p) - (gnat_mark_addressable): Use CASE_CONVERT. - * decl.c (annotate_value): Likewise. - * trans.c (maybe_stabilize_reference): Likewise. - * utils2.c (build_binary_op): Use CONVERT_EXPR_P. - * utils.c (rest_of_record_type_compilation): Likewise. - * trans.c (protect_multiple_eval, Attribute_to_gnu) - (protect_multiple_eval): Likewise. - -2008-05-08 Andreas Schwab - - * utils.c (handle_pure_attribute, init_gigi_decls): Rename - DECL_IS_PURE to DECL_PURE_P. - -2008-05-05 Eric Botcazou - - * decl.c (maybe_pad_type): Add ??? comment. - -2008-05-03 Eric Botcazou - - * decl.c (components_to_record): Zero the alignment of the qualified - union built for the variant part upon creating it. - -2008-05-03 Eric Botcazou - - * decl.c (maybe_pad_type): Try to get a form of the type with integral - mode even if the alignment is not a factor of the original size. But - make sure to create the inner field with the original size. Reorder. - * trans.c (addressable_p) : Treat the field of a padding - record as always addressable. - * utils.c (convert): Deal specially with conversions between original - and packable versions of a record type. - * utils2.c (build_binary_op) : Be more restrictive when - recognizing an assignment between padded objects. - -2008-05-01 Eric Botcazou - - * decl.c (make_packable_type): Resize the last component to its RM size - only if it is of an aggregate type. - * trans.c (call_to_gnu): Fix nit in comment. - (gnat_to_gnu): Likewise. - -2008-04-30 Samuel Tardieu - - * Makefile.in: Adapt sh4-linux target. - -2008-04-29 Ed Schonberg - - PR ada/35792 - * sem_ch3.adb (Find_Type_Name): Refuse completion of an incomplete - tagged type by an untagged protected or task type. - -2008-04-28 Eric Botcazou - Tristan Gingold - - PR ada/36007 - * decl.c (gnat_to_gnu_entity) : Do not promote alignment - of aliased objects with an unconstrained nominal subtype. - Cap the promotion to the effective alignment of the word mode. - -2008-04-28 Ralf Wildenhues - - * Make-lang.in (ada.tags, check-acats, ada/treeprs.ads) - (ada/einfo.h, ada/sinfo.h, ada/nmake.adb, ada/nmake.ads): - Use '&&' instead of ';'. - -2008-04-24 Olivier Hainque - - * trans.c (Attribute_to_gnu) : Length computation - doesn't require signed arithmetic anymore. - -2008-04-23 Paolo Bonzini - - * trans.c (Attribute_to_gnu): Don't set TREE_INVARIANT. - (call_to_gnu): Don't set TREE_INVARIANT. - * utils2.c (gnat_build_constructor): Don't set TREE_INVARIANT. - -2008-04-22 Joel Sherrill - - * s-osinte-rtems.adb: Add sigalstack function. - * s-osinte-rtems.ads: Add SO_ONSTACK and sigalstack - function. Add Alternate_Stack and Alternate_Stack_Size. - Add missing process_shared field to pthread_condattr_t - and change ss_low_priority to int from timespec. - -2008-04-22 Samuel Tardieu - - * i-forbla.adb: Link against -llapack and -lblas by default - instead of the private -lgnalasup. - -2008-04-21 Olivier Hainque - - Access to most C builtins from Ada - * utils.c: #include "langhooks.h" and define GCC_DIAG_STYLE. - (handle_pure_attribute, handle_novops_attribute, - handle_nonnull_attribute, handle_sentinel_attribute, - handle_noreturn_attribute, handle_malloc_attribute, - handle_type_generic_attribute): New attribute handlers, from C fe. - (gnat_internal_attribute_table): Map the new handlers. - (gnat_init_decl_processing): Move call to gnat_install_builtins to ... - (init_gigi_decls): ... here. - (handle_const_attribute, handle_nothrow_attribute, builtin_decl_for): - Move to a section dedicated to builtins processing. - (build_void_list_node, builtin_type_for_size): New functions. - (def_fn_type, get_nonnull_operand): Likewise. - (install_builtin_elementary_type, install_builtin_function_types, - install_builtin_attributes): Likewise. - (fake_attribute_handler): Fake handler for attributes we don't - support in Ada. - (def_builtin_1): New function, worker for DEF_BUILTIN. - (install_builtin_functions): New function. - (gnat_install_builtins): Move to the builtins processing section. - Now calling the newly introduced installers. - -2008-04-20 Eric Botcazou - - * decl.c (gnat_to_gnu_entity) : Also promote the alignment of - constant objects, but not exceptions. - * trans.c (add_decl_expr): Use gnat_types_compatible_p for type - compatibility test. - * utils.c (create_var_decl_1): Likewise. - * utils2.c (build_binary_op) : Also use the padded view of - the type when copying to padded object and the source is a constructor. - -2008-04-18 Eric Botcazou - - * decl.c (gnat_to_gnu_entity) : When trying to promote the - alignment, reset it to zero if it would end up not being greater - than that of the type. - -2008-04-18 Eric Botcazou - - * decl.c (maybe_pad_type): Only generate the XVS parallel type if - the padded type has a variable size. - -2008-04-18 Eric Botcazou - - * decl.c (gnat_to_gnu_entity) : Use the return by - target pointer mechanism as soon as the size is not constant. - -2008-04-18 Eric Botcazou - - * gigi.h (create_var_decl_1): Declare. - (create_var_decl): Turn into a macro invoking create_var_decl_1. - (create_true_var_decl): Likewise. - * utils.c (create_var_decl_1): Make global and reorder parameters. - (create_var_decl): Delete. - (create_true_var_decl): Likewise. - -2008-04-17 Eric Botcazou - - * decl.c (gnat_to_gnu_entity) : Promote the alignment of - objects by default. - * fe.h (Debug_Flag_Dot_A): Delete. - * debug.adb (-gnatd.a): Update documentation. - -2008-04-17 Samuel Tardieu - - * g-socket.ads, g-socket.adb (Get_Address): Make Stream a - "not null" parameter. - -2008-04-17 Samuel Tardieu - - * g-socket.adb: Add a message "IPv6 not supported" to the - Socket_Error exception. - -2008-04-16 Samuel Tardieu - - PR ada/29015 - * sem_ch12.adb (Instantiate_Type): Check whether the full view of - the type is known instead of the underlying type. - -2008-04-15 Ed Schonberg - - PR ada/22387 - * exp_ch5.adb (Expand_Assign_Record): Within an initialization - procedure for a derived type retrieve the discriminant values from - the parent using the corresponding discriminant. - -2008-04-15 Samuel Tardieu - Gary Dismukes - - PR ada/28733 - * sem_ch8.adb (Analyze_Use_Package): Do not allow "use" of something - which is not an entity (and hence not a package). - (End_Use_Package): Ditto. - -2008-04-15 Ed Schonberg - - PR ada/16086 - * sem_ch12.adb (Analyze_Formal_Subprogram): The default can be any - protected operation that matches the signature, not only an entry, a - regular subprogram or a literal. - -2008-04-15 Eric Botcazou - - * ada-tree.h (DECL_BY_COMPONENT_PTR_P): Use DECL_LANG_FLAG_3. - * decl.c (gnat_to_gnu_entity) : Call maybe_pad_type only - if a size or alignment is specified. Do not take into account - alignment promotions for the computation of the object's size. - : Call maybe_pad_type only if a size or alignment is specified. - (maybe_pad_type): Really reuse the RM_Size of the original type if - requested. - * trans.c (Attribute_to_gnu): Fix a couple of nits. - * utils2.c (build_binary_op) : Merge related conditional - statements. Use the padded view of the type when copying between - padded objects of the same underlying type. - -2008-04-14 Ralf Wildenhues - - * vms_data.ads: Fix typo in constant. - * gen-soccon.c: Fix typo in error string. - * gnat_rm.texi (Pragma Optimize_Alignment, Pragma Postcondition): - Fix typos. - * a-calcon.ads, a-calend-vms.adb, a-calend.adb, a-crdlli.ads, - bcheck.adb, checks.adb, einfo.ads, errout.adb, erroutc.adb, - erroutc.ads, exp_attr.adb, exp_ch11.adb, exp_ch2.adb, - exp_ch5.adb, exp_ch9.adb, exp_ch9.ads, exp_pakd.adb, - exp_util.adb, fmap.adb, g-soccon-linux-mips.ads, - g-soccon-rtems.ads, g-timsta.adb, g-timsta.ads, lib-writ.ads, - mlib-tgt-specific-linux.adb, mlib-tgt-specific-tru64.adb, - s-interr-vxworks.adb, s-interr.adb, s-osinte-lynxos.ads, - s-rident.ads, s-taprop-solaris.adb, s-tassta.adb, s-win32.ads, - sem_aggr.adb, sem_attr.ads, sem_ch10.adb, sem_ch13.ads, - sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, - sem_prag.ads, sem_res.adb, sem_util.adb, sem_util.ads, - sinfo.ads: Fix typos in comments. - -2008-04-14 Robert Dewar - - * sem_prag.adb (Analyze_Pragma, Linker_Section case): Extend error - to every non-object and change error message. - -2008-04-14 Robert Dewar - - * sem_util.ads, sem_util.adb (In_Subprogram): Remove. - * sem_attr.adb (Anayze_Attribute): Check for Current_Subprogram - directly. - -2008-04-14 Samuel Tardieu - - PR ada/18680 - * sem_prag.adb (Analyze_Pragma, Linker_Section case): Refuse to - apply pragma Linker_Section on type. - -2008-04-14 Samuel Tardieu - - PR ada/16098 - * sem_prag.adb (Error_Pragma_Ref): New. - (Process_Convention): Specialized message for non-local - subprogram renaming. Detect the problem in homonyms as well. - -2008-04-14 Samuel Tardieu - - PR ada/15915 - * sem_util.ads, sem_util.adb (Denotes_Variable): New function. - * sem_ch12.adb (Instantiate_Object): Use it. - * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ensure that - storage pool denotes a variable as per RM 13.11(15). - -2008-04-14 Samuel Tardieu - - * sem_util.ads, sem_util.adb (In_Subprogram): New function. - * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Use it. - -2008-04-14 Rolf Ebert - - PR ada/20822 - * xgnatugn.adb (Put_Line): New procedure, ensuring Unix - line endings even on non-Unix platforms. - -2008-04-14 Samuel Tardieu - - PR ada/35050 - * xref_lib.adb (Parse_Identifier_Info): Correctly parse and ignore the - renaming information. - -2008-04-13 Samuel Tardieu - - PR ada/17985 - * sem_aggr.adb (Valid_Ancestor_Type): A type is not an ancestor of - itself. - -2008-04-13 Ralf Wildenhues - - * sfn_scan.adb, sfn_scan.ads, sinfo.ads, - sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.ads, - snames.ads, sprint.adb, stand.ads, stringt.ads, - styleg.adb, styleg.ads, stylesw.adb, stylesw.ads, - switch.ads, sysdep.c, table.adb, table.ads, - targparm.ads, tb-gcc.c, tbuild.ads, tracebak.c, - trans.c, tree_io.adb, treepr.adb, types.adb, types.ads, - uintp.adb, uintp.ads, utils.c, utils2.c, validsw.ads, - vms_conv.adb, vms_conv.ads, vms_data.ads, widechar.adb, - widechar.ads, xeinfo.adb, xgnatugn.adb, xr_tabls.adb, - xr_tabls.ads, xref_lib.adb, xref_lib.ads, xsinfo.adb: - Fix comment typos. - - * sem_ch10.adb, sem_ch10.ads, - sem_ch12.adb, sem_ch12.ads, sem_ch13.adb, sem_ch13.ads, - sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, - sem_ch6.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, - sem_elab.adb, sem_elab.ads, sem_elim.ads, sem_eval.adb, - sem_eval.ads, sem_intr.adb, sem_mech.adb, sem_mech.ads, - sem_prag.adb, sem_prag.ads, sem_res.adb, sem_res.ads, - sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb, - sem_warn.ads: Fix comment typos. - - * s-secsta.adb, s-sequio.ads, s-shasto.ads, - s-soflin.ads, s-stalib.ads, s-stausa.adb, - s-stausa.ads, s-strxdr.adb, s-taenca.adb, s-taenca.ads, - s-taprob.adb, s-taprop-hpux-dce.adb, s-taprop-irix.adb, - s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-posix.adb, - s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb, - s-taprop-vxworks.adb, s-taprop.ads, s-tarest.adb, - s-tarest.ads, s-tasini.adb, s-tasini.ads, s-taskin.ads, - s-tasque.ads, s-tassta.adb, s-tassta.ads, s-tasuti.ads, - s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, - s-tpopsp-posix.adb, s-tpopsp-rtems.adb, s-tposen.adb, - s-tposen.ads, s-traceb-hpux.adb, s-traces.ads, - s-trafor-default.ads, s-unstyp.ads, s-utf_32.ads, - s-vaflop.adb, s-vaflop.ads, s-valrea.adb, s-valuti.adb, - s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, scans.ads, - scn.adb, scng.adb, seh_init.c, sem.ads, sem_aggr.adb, - sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads, - sem_cat.adb, sem_cat.ads: Fix comment typos. - -2008-04-12 Joel Sherrill - - PR ada/35825 - * g-soccon-rtems.ads: Add IP_PKTINFO as unsupported. - -2008-04-12 Arnaud Charlet - - * s-linux-hppa.ads: Fix syntax errors. - -2008-04-10 Ralf Wildenhues - - * gnat_ugn.texi: Fix typos. - * raise-gcc.c, repinfo.adb, repinfo.ads, restrict.adb, - restrict.ads, rtsfind.adb, rtsfind.ads, s-arit64.ads, - s-asthan-vms-alpha.adb, s-auxdec.ads, s-casuti.ads, - s-fatflt.ads, s-fatgen.adb, s-fatlfl.ads, - s-fatllf.ads, s-fatsfl.ads, s-filofl.ads, - s-finimp.adb, s-finroo.ads, s-fishfl.ads, - s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads, - s-hibaen.ads, s-htable.ads, s-imgcha.adb, - s-imgenu.ads, s-imgint.adb, s-imgrea.adb, - s-inmaop-dummy.adb, s-inmaop.ads, s-interr-vms.adb, - s-interr-vxworks.adb, s-interr.adb, s-interr.ads, - s-intman-vxworks.ads, s-intman.ads, s-mastop-irix.adb, - s-os_lib.adb, s-os_lib.ads, s-osinte-aix.ads, - s-osinte-darwin.ads, s-osinte-freebsd.ads, - s-osinte-hpux.ads, s-osinte-lynxos-3.adb, - s-osinte-lynxos-3.ads, s-osinte-lynxos.ads, - s-osinte-rtems.ads, s-osinte-solaris-posix.ads, - s-osprim-mingw.adb, s-osprim-vms.adb, s-parame-ae653.ads, - s-parame-hpux.ads, s-parame-vms-alpha.ads, - s-parame-vms-ia64.ads, s-parame-vms-restrict.ads, - s-parame-vxworks.ads, s-parame.ads, s-parint.adb, - s-parint.ads, s-poosiz.adb, s-proinf-irix-athread.ads, - s-proinf.ads, s-regexp.adb, s-regpat.adb, s-regpat.ads, - s-rident.ads: Fix comment typos. - -2008-04-09 Samuel Tardieu - - PR ada/28305 - * sem_ch6.adb (Build_Body_To_Inline): Do not save and restore - environment if generic instance is a top-level one. - -2008-04-09 Doug Rupp - - * decl.c (validate_size): Set minimum size for fat pointers same as - access types. Code clean ups. - - * gmem.c (xstrdup32): New macro for 32bit dup on VMS, noop otherwise - (__gnat_gmem_a2l_initialize): Dup exename into 32 bit memory on VMS - - * s-auxdec-vms_64.ads, s-auxdec.ads (Short_Address_Size): New constant - - * s-crtl.ads (malloc32) New function, alias for malloc - (realloc32) New function, alias for realloc - - * socket.c (__gnat_new_socket_set): Malloc fd_set in 32 bits on VMS - - * utils2.c (build_call_alloc_dealloc): Return call to short malloc if - allocator size is 32 and default pointer size is 64. - (find_common_type): Document assumption on t1/t2 vs lhs/rhs. Force use of - lhs type if smaller, whatever the modes. - - * gigi.h (malloc32_decl): New macro definition - - * utils.c (init_gigi_decls): New malloc32_decl - Various code clean ups. - - * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to - Task_Address vice System.Address. - - * s-taspri-vms.ads: Import System.Aux_DEC - (Task_Address): New subtype of System.Aux_DEC.Short_Address - (Task_Address_Size): New constant size of System.Aux_DEC.Short_Address - - * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to - Task_Address vice System.Address. - - * s-inmaop-vms.adb: Import System.Task_Primitives - (To_Address): Unchecked convert to Task_Address vice System.Address - - * s-taprop-vms.adb (Timed_Delay): Always set the timer even if delay - expires now. - (To_Task_ID) Unchecked convert from Task_Adddress vice System.Address - (To_Address) Unchecked convert to Task_Address vice System.Address - - * s-tpopde-vms.adb: Remove unnecessary warning pragmas - - * g-socthi-vms.ads: Add 32bit size clauses on socket access types. - -2008-04-08 Eric Botcazou - - * gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc. - (fdesc_type_node): Define. - (null_fdesc_node): Likewise. - * decl.c (gnat_to_gnu_entity) : If the target - uses descriptors for vtables and the type comes from a dispatch table, - return the descriptor type. - * trans.c (Attribute_to_gnu) : If the target - uses descriptors for vtables and the type comes from a dispatch table, - build a descriptor in the static case and copy the existing one in the - non-static case. - (gnat_to_gnu) : If the target uses descriptors for vtables and - the type is a pointer-to-subprogram coming from a dispatch table, - return the null descriptor. - : If the target uses descriptors for - vtables, the source type is the descriptor type and the target type - is a pointer type, first build the pointer. - * utils.c (init_gigi_decls): If the target uses descriptors for vtables - build the descriptor type and the null descriptor. - -2008-04-08 Eric Botcazou - - * decl.c (prepend_attributes): Fix typo. - * trans.c (Pragma_to_gnu): Likewise. - * utils.c (gnat_genericize): Likewise. - -2008-04-08 Eric Botcazou - Richard Kenner - - * ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed. - * decl.c (gnat_to_gnu_entity): Adjust for above change. - : Try to get a better form of the component for - packing, even if it has an integral mode. - : Likewise. - * trans.c (gnat_to_gnu): Do not require BLKmode for the special - exception suppressing the final conversion between record types. - -2008-04-08 Eric Botcazou - - * decl.c (gnat_to_gnu_entity) : If -gnatd.a and not optimizing - alignment for space, promote the alignment of non-scalar variables with - no size and alignment. - * gigi.h (gnat_types_compatible_p): Declare. - * misc.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Set to above predicate. - * trans.c (gnat_to_gnu): Revert revision 129339 change. Minor cleanup. - * utils.c (gnat_types_compatible_p) : New predicate. - (convert): Use it throughout to test for cases where a mere view - conversion is sufficient. - * utils2.c (build_binary_op): Minor tweaks. - (build_unary_op): Likewise. - -2008-04-08 Eric Botcazou - - * decl.c (adjust_packed): Expand comment. - -2008-04-08 Arnaud Charlet - - * s-tasuti.ads: Use Task_Address instead of System.Address. - - * makeutl.adb (Path_Or_File_Name): New function - - * nlists.ads, itypes.ads: Update comments. - - * s-crtl.ads (malloc32, realloc32): New functions. - - * s-auxdec.ads (Short_Address_Size): New constant. - - * a-taside.adb, s-tasdeb.adb: Use Task_Address. - - * s-ststop.ads, s-ststop.adb: New file. - - * exp_tss.ads, s-taprop-lynxos.adb: Update comments. - Minor reformatting. - -2008-04-08 Pascal Obry - - * g-sercom.ads, g-sercom.adb (Data_Rate): Add B115200. - (Stop_Bits_Number): New type. - (Parity_Check): Likewise. - (Set): Add parameter to set the number of stop bits and - the parity. Parameter timeout is now a duration instead - of a plain integer. - - * g-sercom-linux.adb: - Implement the stop bits and parity support for GNU/Linux. - Fix handling of timeout, it must be given in tenth of seconds. - - * g-sercom-mingw.adb: - Implement the stop bits and parity support for Windows. - Use new s-win32.ads unit instead of declaring Win32 services - directly into this body. - Update handling of timeout as now a duration. - - * s-win32.ads, s-winext.ads: New files. - -2008-04-08 Eric Botcazou - Arnaud Charlet - - * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads: Removed. - - s-taspri-posix-noaltstack.ads, s-linux.ads, s-linux-alpha.ads, - s-linux-hppa.ads: New files. Disable alternate stack on ia64-hpux. - - * s-osinte-lynxos-3.ads, - (Alternate_Stack): Remove when not needed. Simplify declaration - otherwise. - (Alternate_Stack_Size): New constant. - - s-osinte-mingw.ads, s-taprop-mingw.adb: Code clean up: avoid use of - 'Unrestricted_Access. - - * s-osinte-hpux.ads, s-osinte-solaris-posix.ads, s-osinte-aix.ads, - s-osinte-lynxos.ads, s-osinte-freebsd.ads s-osinte-darwin.ads, - s-osinte-tru64.ads, s-osinte-irix.ads, s-osinte-linux.ads, - s-osinte-solaris.ads, s-osinte-vms.ads - (SA_ONSTACK): New constant. - (stack_t): New record type. - (sigaltstack): New imported function. - (Alternate_Stack): New imported variable. - (Alternate_Stack_Size): New constant. - - * system-linux-x86_64.ads: (Stack_Check_Probes): Set to True. - - * s-taspri-lynxos.ads, s-taspri-solaris.ads, s-taspri-tru64.ads, - s-taspri-hpux-dce.ads, s-taspri-dummy.ads, s-taspri-posix.ads, - s-taspri-vms.ads (Task_Address): New subtype of System.Address - (Task_Address_Size): New constant size of System.Address - (Alternate_Stack_Size): New constant. - - * s-taprop-posix.adb, s-taprop-linux.adb (Get_Stack_Attributes): Delete. - (Enter_Task): Do not notify stack to System.Stack_Checking.Operations. - Establish the alternate stack if the platform makes use of n alternate - signal stack for stack overflows. - (Create_Task): Take into account the alternate stack in the stack size. - (Initialize): Save the address of the alternate stack into the ATCB for - the environment task. - (Create_Task): Fix assertions for NPTL library (vs old LinuxThreads). - - * s-parame.adb (Minimum_Stack_Size): Increase value to 16K - - * system-linux-x86.ads: (Stack_Check_Probes): Set to True. - - * s-intman-posix.adb: - (Initialize): Set SA_ONSTACK for SIGSEGV if the platform makes use of an - alternate signal stack for stack overflows. - - * init.c (__gnat_adjust_context_for_raise, Linux version): On i386 and - x86-64, adjust the saved value of the stack pointer if the signal was - raised by a stack checking probe. - (HP-UX section): Use global __gnat_alternate_stack as signal handler - stack and only for SIGSEGV. - (Linux section): Likewise on x86 and x86-64. - [VxWorks section] - (__gnat_map_signal): Now static. - (__gnat_error_handler): Not static any more. - (__gnat_adjust_context_for_raise): New function. Signal context - adjustment for PPC && !VTHREADS && !RTP, as required by the zcx - propagation circuitry. - (__gnat_error_handler): Second argument of a sigaction handler is a - pointer, not an int, and is unused. - Adjust signal context before mapping to exception. - Install signal handlers for LynxOS case. - - * s-taskin.ads (Common_ATCB): New field Task_Alternate_Stack. - (Task_Id): Set size to Task_Address_Size - (To_Task_id): Unchecked convert from Task_Address vice System.Address - (To_Address): Unchecked convert to Task_Address vice System.Address - - * s-tassta.adb (Task_Wrapper): Define the alternate stack and save its - address into the ATCB if the platform makes use of an alternate signal - stack for stack overflows. - (Free_Task): Add call to Finalize_Attributes_Link. - Add argument Relative_Deadline to pass the value specified for - the task. This is not yet used for any target. - - * s-tassta.ads (Create_Task): Add argument Relative_Deadline to pass - the value specified for the task. - -2008-04-08 Arnaud Charlet - - (s-osinte-vxworks6.ads): Removed, merged with s-osinte-vxworks.ads/.adb - (s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.ads, - s-vxwext-rtp.adb): New files. - - * s-taprop-vxworks.adb, s-osinte-vxworks.ads, s-osinte-vxworks.adb: - Minor updates to accomodate changes above. - -2008-04-08 Pascal Obry - - * a-exetim-mingw.adb, s-gloloc-mingw.adb, s-taprop-mingw.adb, - s-tasinf-mingw.ad{s,b}, s-taspri-mingw.ads: - Use new s-win32.ads unit instead of declaration - from s-osinte-mingw.ads. - - * s-osinte-mingw.ads: - Move all non tasking based interface to s-win32.ads. - - * s-osprim-mingw.adb: - Remove duplicated declarations and use s-win32.ads - unit instead. - -2008-04-08 Vincent Celier - Arnaud Charlet - - * mlib-tgt-aix.adb, mlib-tgt-darwin.adb, mlib-tgt-hpux.adb, - mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-lynxos.adb, - mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb, - mlib-tgt-vms.ads, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, - mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb: Renamed into... - - * mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb, - mlib-tgt-specific-hpux.adb, mlib-tgt-specific-irix.adb, - mlib-tgt-specific-linux.adb, mlib-tgt-specific-lynxos.adb, - mlib-tgt-specific-solaris.adb, mlib-tgt-specific-tru64.adb, - mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads, - mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb, - mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb, - mlib-tgt-specific-mingw.adb: New names. - - * Makefile.in: - On VxWorks platforms use s-stchop-limit.ads for s-stchop.ads - Get rid of gnatbl. - (EXTRA_GNATRTL_NONTASKING_OBJS): Add s-win32.o - Files mlib-tgt-*.adb have been renamed mlib-tgt-specific-*.adb - Minor updates for VMS - - * gnatbl.c: Removed. - -2008-04-08 Thomas Quinot - - * g-expect-vms.adb, a-textio.adb, a-witeio.adb, exp_dbug.adb, - g-expect.adb, g-locfil.adb, gnatchop.adb, gnatdll.adb, gnatlbr.adb, - gnatmem.adb, g-regist.adb, i-vxwork.ads, mlib-utl.adb, i-vxwork-x86.ads, - a-ztexio.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-ia64.adb, - s-os_lib.adb, s-regpat.adb, s-regpat.ads: Fix incorrect casing of - ASCII.NUL throughout. - -2008-04-08 Arnaud Charlet - Matthew Heaney - - * a-cgcaso.adb, a-convec.adb: (Swap, Sift): Avoid use of complex - renaming. - - * a-cgaaso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, - a-crdlli.ads, a-coormu.ads, a-ciormu.ads: modified header to conform - to convention for non-RM specs. - Add descriptive header, and documented each operation - document each operation - -2008-04-08 Robert Dewar - Bob Duff - Gary Dismukes - Ed Schonberg - - * alloc.ads: Add entries for Obsolescent_Warnings table - - * einfo.ads, einfo.adb: Minor reformatting. - (Is_Discriminal): New subprogram. - (Is_Prival): New subprogram. - (Is_Protected_Component): New subprogram. - (Is_Protected_Private): Removed. - (Object_Ref, Set_Object_Ref): Removed. - (Prival, Set_Prival): Change assertion. - (Privals_Chain, Set_Privals_Chain): Removed. - (Prival_Link, Set_Prival_Link): New subprogram. - (Protected_Operation, Set_Protected_Operation): Removed. - (Protection_Object, Set_Protection_Object): New subprogram. - (Write_Field17_Name): Remove case for Object_Ref. - (Write_Field20_Name): Add case for Prival_Link. - (Write_Field22_Name): Remove case for Protected_Operation, - Privals_Chain. - Add case for Protection_Object. - (Can_Use_Internal_Rep): Make this into a [base type only] attribute, - so clients - (Overlays_Constant): New flag - (Is_Constant_Object): New predicate - (Is_Standard_Character_Type): New predicate - (Optimize_Alignment_Space): New flag - (Optimize_Alignment_Time): New flag - (Has_Postconditions): New flag - (Obsolescent_Warrning): Field removed - (Spec_PPC_List): New field - (Relative_Deadline_Variable, Set_Relative_Deadline_Variable): Add - subprograms to get and set the relative deadline associated to a task. - - * exp_attr.adb (May_Be_External_Call): Account for the case where the - Access attribute is part of a named parameter association. - (Expand_Access_To_Protected_Op): Test for the attribute occurring - within an init proc and use that directly as the scope rather than - traversing up to the protected operation's enclosing scope. Only apply - assertion on Is_Open_Scopes in the case the scope traversal is done. - For the init proc case use the address of the first formal (_init) as - the protected object reference. - Implement Invalid_Value attribute - (Expand_N_Attribute_Reference): Case Attribute_Unrestricted_Access. - contents of the dispatch table there is no need to duplicate the - itypes associated with record types (i.e. the implicit full view - of private types). - Implement Enum_Val attribute - (Expand_N_Attribute_Reference, case Old): Properly handle appearence - within _Postconditions procedure - (Expand_N_Attribute_Reference, case Result): Implement new attribute - - * exp_ch5.adb (Expand_N_Simple_Return_Statement): Handle case in which - a return statement calls a function that is not available in - configurable runtime. - (Analyze_If_Statement): don't optimize simple True/False cases in -O0 - (Expand_Non_Function_Return): Generate call to _Postconditions proc - (Expand_Simple_Function_Return): Ditto - - * frontend.adb: Add call to Sem_Aux.Initialize - - * sem_aux.ads, sem_aux.adb: New file. - - * par-prag.adb: Add entries for pragmas Precondition/Postcondition - Add new Pragma_Relative_Deadline. - Add support for pragmas Check and Check_Policy - - * sem_attr.ads, sem_attr.adb (Check_Not_CPP_Type): New subprogram. - (Check_Stream_Attribute): Add missing check (not allowed in CPP types) - (Analyze_Attribute): In case of attributes 'Alignment and 'size add - missing check because they are not allowed in CPP tagged types. - Add Sure parameter to Note_Possible_Modification calls - Add implementation of Invalid_Value attribute - Implement new attribute Has_Tagged_Values - Implement Enum_Val attribute - (Analyze_Attribute, case Range): Set Name_Req True for prefix of - generated attributes. - (Analyze_Attribute, case Result): If prefix of the attribute is - overloaded, it always resolves to the enclosing function. - (Analyze_Attribute, case Result): Properly deal with analysis when - Postconditions are not active. - (Resolve_Attribute, case Result): Properly deal with appearence during - preanalysis in spec. - Add processing for attribute Result - - * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Code cleanup - for operators. - (Analyze_Subprogram_Body): Install private_with_clauses when the body - acts as a spec. - (Check_Inline_Pragma): recognize an inline pragma that appears within - the subprogram body to which it applies. - (Analyze_Function_Return): Check that type of the expression of a return - statement in a function with a class-wide result is not declared at a - deeper level than the function. - (Process_PPCs): Deal with enabling/disabling, using PPC_Enabled flag - (Verify_Overriding_Indicator): Handle properly subprogram bodies for - user- defined operators. - (Install_Formals): Moved to spec to allow use from Sem_Prag for - analysis of precondition/postcondition pragmas. - (Analyze_Subprogram_Body.Last_Real_Spec_Entity): New name for - Last_Formal, along with lots of comments on what this is about - (Analyze_Subprogram_Body): Fix case where we move entities from the - spec to the body when there are no body entities (now possible with - precondition and postcondition pragmas). - (Process_PPCs): New procedure - (Analyze_Subprogram_Body): Add call to Process_PPCs - - * sem_ch8.adb (Use_One_Type): refine warning on a redundant use_type - clause. - (Pop_Scope): Restore Check_Policy_List on scope exit - (Push_Scope): Save Check_Policy_List on scope entry - Change name In_Default_Expression => In_Spec_Expression - Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression - Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve - (Analyze_Object_Renaming): Allow 'Reference as object - (Analyze_Pragma, case Restriction_Warnings): Call GNAT_Pragma - (Process_Restrictions_Or_Restriction_Warnings): Check for bad spelling - of restriction identifier. - Add Sure parameter to Note_Possible_Modication calls - - * sem_prag.ads, sem_prag.adb (Analyze_Pragma, case Stream_Convert): - Don't check for primitive operations when calling Rep_Item_Too_Late. - (Process_Import_Or_Interface): Do not place flag on formal - subprograms. - (Analyze_Pragma, case Export): If the entity is a deferred constant, - propagate information to full view, which is the one elaborated by the - back-end. - (Make_Inline): the pragma is effective if it applies to an internally - generated subprogram declaration for a body that carries the pragma. - (Analyze_Pragma, case Optimize_Alignment): Set new flag - Optimize_Alignment_Local. - (Analyze_PPC_In_Decl_Part): New procedure - (Get_Pragma_Arg): Moved to outer level - (Check_Precondition_Postcondition): Change to allow new visibility - rules for package spec - (Analyze_Pragma, case Check_Policy): Change placement rules to be - same as pragma Suppress/Unsuppress. - Change name In_Default_Expression => In_Spec_Expression - Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression - Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve - (Check_Precondition_Postcondition): Do proper visibility preanalysis - for the case of these pragmas appearing in the spec. - (Check_Enabled): New function - (Initialize): New procedure - (Tree_Read): New procedure - (Tree_Write): New procedure - (Check_Precondition_Postcondition): New procedure - Implement pragmas Check and Check_Policy - Merge Assert processing with Check - - * sem_warn.adb (Warn_On_Known_Condition): Handle pragma Check - New warning flag -gnatw.e - - * sinfo.ads, sinfo.adb (Has_Relative_Deadline_Pragma): New function - returning whether a task (or main procedure) has a pragma - Relative_Deadline. - (Set_Has_Relative_Deadline_Pragma): Procedure to indicate that a task - (or main procedure) has a pragma Relative_Deadline. - Add Next_Pragma field to N_Pragma node - (PPC_Enabled): New flag - (Next_Pragma): Now used for Pre/Postcondition processing - - * snames.h, snames.ads, snames.adb: New standard name - Inherit_Source_Path - Add entry for 'Invalid_Value attribute - Add entry for new attribute Has_Tagged_Values - Add entry for Enum_Val attribute - Add new standard names Aggregate, Configuration and Library. - Add _Postconditions - Add _Result - Add Pragma_Precondition - Add Pragma_Postcondition - Add Attribute_Result - New standard name Archive_Builder_Append_Option - (Preset_Names): Add _relative_deadline and relative_deadline definitions - There was also a missing non_preemptive_within_priorities. - (Get_Pragma_Id, Is_Pragma_Name): Add support for pragma - Relative_Deadline. - Add support for pragmas Check and Check_Policy - - * tree_gen.adb: Call Sem_Aux.Tree_Write - - * tree_in.adb: Call Sem_Aux.Tree_Read - - * exp_ch11.adb (Expand_N_Raise_Statement): New Build_Location calling - sequence - - * exp_intr.adb (Expand_Source_Info): New Build_Location calling - sequence - - * exp_prag.adb (Expand_Pragma_Relative_Deadline): New procedure. - (Expand_N_Pragma): Call the appropriate procedure for expanding pragma - Relative_Deadline. - (Expand_Pragma_Check): New procedure - - * sinput.ads, sinput.adb (Build_Location_String): Now appends to name - buffer. - - * sinfo.adb (PPC_Enabled): New flag - -2008-04-08 Robert Dewar - Gary Dismukes - Javier Miranda - Ed Schonberg - - * fe.h: Remove global Optimize_Alignment flag, no longer used - - * layout.adb: Test Optimize_Alignment flags rather than global switch - - * lib.ads, lib.adb: New OA_Setting field in library record - - * lib-load.adb: New OA_Setting field in library record - - * lib-writ.ads, lib-writ.adb (Collect_Withs, Write_With_Lines): Place - units mentioned in limited_with_ clauses in the ali file, with an - 'Y' marker. - New Ox fields in U line - - * opt.adb: New flag Optimize_Alignment_Local - (Check_Policy_List[_Config]): New flags - - * opt.ads (Invalid_Value_Used): New flag - New switch Optimize_Alignment_Local - (Warn_On_Parameter_Order): New flag - (Check_Policy_List[_Config]): New flags - - * ali.ads, ali.adb: Add indicator 'Y' to mark mark the presence of - limited_with clauses. - New data structures for Optimize_Alignment - - * bcheck.adb (Check_Consistent_Restriction_No_Default_Initialization): - New procedure - (Check_Consistent_Optimize_Alignment): Rework for new structure - (Check_Consistent_Restrictions): Fix incorrect error message - - sem_ch10.adb (Decorate_Tagged_Type): Set the Parent field of a newly - created class-wide type (to the Parent field of the specific type). - (Install_Siblings): Handle properly private_with_clauses on subprogram - bodies and on generic units. - (Analyze_With_Clause, Install_Limited_Withed_Unit): Guard against an - illegal limited_with_clause that names a non-existent package. - (Check_Body_Required): Determine whether a unit named a limited_with - clause needs a body. - (Analyze_Context): A limited_with_clause is illegal on a unit_renaming. - Capture Optimize_Alignment settings to set new OA_Setting field in - library record. - (Build_Limited_Views): Include task and protected type declarations. - - * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Handle the - case of a possible constant redeclaration where the current object is - an entry index constant. - (Analyze_Object_Declaration): Generate an error in case of CPP - class-wide object initialization. - (Analyze_Object_Declaration): Add extra information on warnings for - declaration of unconstrained objects. - (Access_Type_Declaration): Set Associated_Final_Chain to Empty, to avoid - conflicts with the setting of Stored_Constraint in the case where the - access type entity has already been created as an E_Incomplete_Type due - to a limited with clause. - Use new Is_Standard_Character_Type predicate - (Analyze_Object_Declaration): Apply access_constant check only after - expression has been resolved, given that it may be overloaded with - several access types. - (Constant_Redeclaration): Additional legality checks for deferred - constant declarations tha involve anonymous access types and/or null - exclusion indicators. - (Analyze_Type_Declaration): Set Optimize_Alignment flags - (Analyze_Subtype_Declaration): Ditto - (Analyze_Object_Declaration): Ditto - (Analyze_Object_Declaration): Don't count tasks in generics - Change name In_Default_Expression => In_Spec_Expression - Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression - Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve - (Process_Discriminants): Additional check for illegal use of default - expressions in access discriminant specifications in a type that is not - explicitly limited. - (Check_Abstract_Overriding): If an inherited function dispaches on an - access result, it must be overridden, even if the type is a null - extension. - (Derive_Subprogram): The formals of the derived subprogram have the - names and defaults of the parent subprogram, even if the type is - obtained from the actual subprogram. - (Derive_Subprogram): In the presence of interfaces, a formal of an - inherited operation has the derived type not only if it descends from - the type of the formal of the parent operation, but also if it - implements it. This is relevant for the renamings created for the - primitive operations of the actual for a formal derived type. - (Is_Progenitor): New predicate, to determine whether the type of a - formal in the parent operation must be replaced by the derived type. - - * sem_util.ads, sem_util.adb (Has_Overriding_Initialize): Make - predicate recursive to handle components that have a user-defined - Initialize procedure. Handle controlled derived types whose ancestor - has a user-defined Initialize procedured. - (Note_Possible_Modification): Add Sure parameter, generate warning if - sure modification of constant - Use new Is_Standard_Character_Type predicate - (Find_Parameter_Type): when determining whether a protected operation - implements an interface operation, retrieve the type of the formal from - the entity when the formal is an access parameter or an - anonymous-access-to-subprogram. - Move Copy_Parameter_List to sem_util, for use when building stubbed - subprogram bodies. - (Has_Access_Values): Tagged types now return False - (Within_HSS_Or_If): New procedure - (Set_Optimize_Alignment_Flags): New procedure - Change name In_Default_Expression => In_Spec_Expression - Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression - Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve - -2008-04-08 Tristan Gingold - - * s-fileio.adb: Name_Error shouldn't be raised for a tempory file. - -2008-04-08 Tristan Gingold - -PR ada/10768 - - * cuintp.c: Fix 16 bits issue for AVR. - On AVR, integer is 16 bits, so it can't be used to do math with - Base (=32768). - So use long_integer instead. - -2008-04-08 Hristian Kirtchev - - * a-calend-vms.ads, a-calend-vms.adb: Add with and use clause for - System.OS_Primitives. - Change type of various constants, parameters and local variables from - Time to representation type OS_Time. - (To_Ada_Time, To_Unix_Time): Correct sign of origin shift. - Remove the declaration of constant Mili_F from several routines. New - body for internal package Conversions_Operations. - (Time_Of): Add default parameters for several formals. - - * a-caldel.adb: Minor reformatting - - * a-calend.ads, a-calend.adb: New body for internal package - Conversions_Operations. - (Time_Of): Add default parameters for several formals. - - * Makefile.rtl: Add a-ststop - Add Ada.Calendar.Conversions to the list of runtime files. - Add g-timsta - - * a-calcon.adb, a-calcon.ads: New files. - -2008-04-08 Jose Ruiz - Tristan Gingold - - * s-interr-dummy.adb, s-interr-vms.adb, s-interr-sigaction.adb - (Install_Restricted_Handlers): New procedure - which is a simplified version of Install_Handlers that does not store - previously installed. - - * s-interr-vxworks.adb: Fix ACATS cxc3001 - On VxWorks interrupts can't be detached. - (Install_Restricted_Handlers): New procedure. - - * s-interr.ads, s-interr.adb (Install_Restricted_Handlers): New - procedure. - -2008-04-08 Olivier Hainque - - * s-intman-vxworks.ads, s-intman-vxworks.adb - (Map_And_Raise_Exception): Remove. Was an import of only part of the - required services already implemented elsewhere. - (Notify_Exception): Delete body, import __gnat_error_handler instead. - (Initialize): Add SA_SIGINFO to the sa_flags, to get the sigcontext - argument passed to the handler, which we need for ZCX propagation - purposes. - -2008-04-08 Hristian Kirtchev - - * adaint.h, adaint.c (__gnat_current_time_string): New routine. - - * g-timsta.adb, g-timsta.ads: New files. - -2008-04-08 Robert Dewar - - * a-except-2005.ads, a-except-2005.adb, a-except.ads, a-except.adb - (Raise_Exception): In accordance with AI-446, raise CE for Null_Id - (Raise_Exception_Always): Fix documentation accordingly - -2008-04-08 Robert Dewar - - * a-strbou.ads, a-strbou.adb (From_String): New procedure (for use by - Stream_Convert) - - * sem_ch13.ads (Rep_Item_Too_Late): Document that Stream_Convert sets - FOnly - -2008-04-08 Javier Miranda - Robert Dewar - Ed Schonberg - - * a-tags.adb (Register_Interface_Offset): New subprogram. - (Set_Dynamic_Offset_To_Top): New subprogram (see previous comment). - (To_Predef_Prims_Table_Ptr): Removed. - (Acc_Size): Removed. - (To_Acc_Size): Removed. - (Parent_Size): Modified to the call the subprogram returning the size of - the parent by means of the new TSD component Size_Func. - - * a-tags.ads (Offset_To_Top_Ptr): New access type declaration. - (DT_Offset_To_Top_Offset): New constant value that is used to generate - code referencing the Offset_To_Top component of the dispatch table's - prologue. - (Prim_Ptr): New declaration of access to procedure. Used to avoid the - use of 'address to initialize dispatch table slots. - (Size_Func): New component of the TSD. Used by the run-time to call the - size primitive of the tagged type. - - * checks.adb (Apply_Access_Check): Avoid check when accessing the - Offset_To_Top component of a dispatch table. - (Null_Exclusion_Static_Checks): If the non-null access type appears in a - deferred constant declaration. do not add a null expression, to prevent - spurious errors when full declaration is analyzed. - (Apply_Discriminant_Check): If both discriminant constraints share a - node which is not static but has no side effects, do not generate a - check for that discriminant. - (Generate_Index_Checks): Set Name_Req to true in call to duplicate - subexpr, since the prefix of an attribute is a name. - - * checks.ads: Fix nit in comment. - - * exp_ch3.ads, exp_ch3.adb (Freeze_Record_Type): Do not add the spec - and body of predefined primitives in case of CPP tagged type - derivations. - (Freeze_Type): Deal properly with no storage pool case - (Make_Predefined_Primitive_Specs): Generate specification of abstract - primitive Deep_Adjust if a nonlimited interface is derived from a - limited interface. - (Build_Dcheck_Functions): Create discriminant-checking functions only - for variants that have some component(s). - (Build_Slice_Assignment): In expanded code for slice assignment, handle - properly the case where the slice bounds extend to the last value of the - underlying representation. - (Get_Simple_Init_Val): New calling sequence, accomodate Invalid_Value - (Is_Variable_Size_Record): An array component has a static size if - index bounds are enumeration literals. - - * exp_disp.adb (Make_DT): Use the first subtype to determine whether - an external tag has been specified for the type. - (Building_Static_DT): Add missing support for private types. - (Make_DT): Add declaration of Parent_Typ to ensure consistent access - to the entity associated with the parent of Typ. This is done to - avoid wrong access when the parent is a private type. - (Expand_Interface_Conversion): Improve error message when the - configurable runtime has no support for dynamic interface conversion. - (Expand_Interface_Thunk): Add missing support to interface types in - configurable runtime. - (Expand_Dispatching_Call): remove obsolete code. - (Make_DT): Replace occurrences of RE_Address by RE_Prim_Ptr, and - ensure that all subtypes and aggregates associated with dispatch - tables have the attribute Is_Dispatch_Table_Entity set to true. - (Register_Primitive): Rename one variable to improve code reading. - Replace occurrences of RE_Addres by RE_Prim_Ptr. Register copy o - of the pointer to the 'size primitive in the TSD. - - * rtsfind.ads (RE_DT_Offset_To_Top_Offset): New entity. - (RE_Offset_To_Top_Ptr): New entity. - (RE_Register_Interface_Offset): New entity. - (RE_Set_Dynamic_Offset_To_Top): New entity. - (RE_Set_Offset_To_Top): Removed entity. - (RE_Prim_Ptr): New entity - (RE_Size_Func): New entity - (RE_Size_Ptr): New entity - (RTU_Id): Add Ada_Dispatching and Ada_Dispatching_EDF. - (Ada_Dispatching_Child): Define this new subrange. - (RE_Id): Add new required run-time calls (RE_Set_Deadline, RE_Clock, - RE_Time_Span, and RE_Time_Span_Zero). - (RE_Unit_Table): Add new required run-time calls - - * rtsfind.adb (Get_Unit_Name): Add processing for Ada.Dispatching - children. - - * exp_atag.ads, exp_atag.adb (Build_Offset_To_Top): New subprogram. - (Build_Set_Static_Offset_To_Top): New subprogram. Generates code that - initializes the Offset_To_Top component of a dispatch table. - (Build_Predef_Prims): Removed. - (Build_Get_Predefined_Prim_Op_Address): Replace call to Predef_Prims by - its actual code. - (Build_Set_Size_Function): New subprogram. - - * exp_ch13.adb: Do not generate storage variable for storage_size zero - (Expand): Handle setting/restoring flag Inside_Freezing_Actions - -2008-04-08 Robert Dewar - - * a-ztdeau.adb, a-tideau.adb, a-wtdeau.adb (Puts_Dec): Fix error in - computing Fore when Exp > 0 - -2008-04-08 Robert Dewar - - * back_end.adb: Remove Big_String_Ptr declarations (now in Types) - - * errout.adb: Remove Big_String_Ptr declarations (now in Types) - Change name Is_Style_Msg to Is_Style_Or_Info_Msg - - * fmap.adb: Remove Big_String declarations (now in Types) - (No_Mapping_File): New Boolean global variable - (Initialize): When mapping file cannot be read, set No_Mapping_File to - False. - (Update_Mapping_File): Do nothing if No_Mapping_File is True. If the - tables were empty before adding entries, open the mapping file - with Truncate = True, instead of delete/re-create. - - * fname-sf.adb: Remove Big_String declarations (now in Types) - - * s-strcom.adb, g-dyntab.ads, g-table.ads, s-carsi8.adb, - s-stalib.ads, s-carun8.adb: Add zero size Storage_Size clauses for - big pointer types - - * table.ads: Add for Table_Ptr'Storage_Size use 0 - - * types.ads: Add Big_String declarations - Add Size_Clause of zero for big pointer types - -2008-04-08 Vincent Celier - - * clean.adb (Parse_Cmd_Line): Recognize switch --subdirs= - (Usage): Add line for switch --subdirs= - Add new switch -eL, to follow symbolic links when processing project - files. - - * gnatcmd.adb: Process switches -eL and --subdirs= - (Non_VMS_Usage): Output "gnaampcmd" instead of "gnat", and call - Program_Name to get proper tool names when AAMP_On_Target is set. - (Gnatcmd): Call Add_Default_Search_Dirs and Get_Target_Parameters to get - AAMP_On_Target set properly for use of GNAAMP tools (this is needed by - Osint.Program_Name). - - * gnatname.adb: (Scan_Args): Recognize switches -eL and --subdirs= - (Usage): Add lines for switches -eL and --subdirs= - - * makeusg.adb: Add line for switch --subdirs= - - * prj.ads: - (Source_Data): New Boolean component Compiled, defaulted to True - (Empty_File_Name: New global variable in private part, initialized in - procedure Initialize. - (Subdirs_Option): New constant string - (Subdirs): New String_Ptr global variable - (Language_Config): New component Include_Compatible_Languages - (Project_Qualifier): New type for project qualifiers - (Project_Data): New component Qualifier - (Project_Configuration): New component Archive_Builder_Append_Option - - * prj-nmsc.adb (Get_Unit_Exceptions): When a unit is already in - another imported project indicate the name of this imported project. - (Check_File): When a unit is in two project files, indicate the project - names and the paths of the source files for each project. - (Add_Source): Set Compiled to False if compiler driver is empty. Only - set object, dependency and switches file names if Compiled is True. - (Process_Compiler): Allow the empty string for value of attribute Driver - (Get_Directories): When Subdirs is not null and Object_Dir is not - specified, locate and create if necessary the actual object dir. - (Locate_Directory): When Subdirs is not empty and Create is not the - empty string, locate and create if necessary the actual directory - as a subdirectory of directory Name. - (Check_Library_Attributes.Check_Library): Allow a project where the only - "sources" are header files of file based languages to be imported by - library projects, in multi-language mode (gprbuild). - (Check_Library_Attributes.Check_Library): In multi-language mode - (gprbuild), allow a library project to import a project with no - sources, even when this is not declared explicitly. - (Check_If_Externally_Built): A virtual project extending an externally - built project is also externally built. - (Check_Library_Attributes): For a virtual project extending a library - project, inherit the library directory. - (Process_Project_Level_Array_Attributes): Process new attribute - Inherit_Source_Path. - For projects with specified qualifiers "standard", "library" or - "abstract", check that the project conforms to the qualifier. - (Process_Project_Level_Simple_Attributes): Process new attribute - Archive_Builder_Append_Option. - - * switch-m.adb: (Scan_Make_Switches): Process switch --subdirs= - (Normalize_Compiler_Switches): Only keep compiler switches that are - passed to gnat1 by the gcc driver and that are stored in the ALI file - by gnat1. - Do not take into account switc -save-temps - - * makegpr.adb (Compile_Link_With_Gnatmake): Transmit switch -eL if - gprmake is called with -eL. - (Scan_Arg): Recognize switch -eL - (Usage): Add line for switch -eL - - * prj.adb (Initialize): Initialize Empty_File_Name - (Project_Empty): New component Qualifier - - * prj-attr.ads, prj-attr.adb: New project level attribute - Inherit_Source_Path. - New project level attribute Archive_Builder_Append_Option - - * prj-dect.adb: Replace System.Strings by GNAT.Strings. - - * prj-ext.adb (Initialize_Project_Path): In Multi_Language mode, add - /lib/gnat in the project path, after /share/gpr, for - upward compatibility. - - * prj-part.adb (Project_Path_Name_Of.Try_Path): In high verbosity, put - each Trying ..." on different lines. - (Parse_Single_Project): Recognize project qualifiers. Fail in qualifier - is "configuration" when not in configuration. Fail when in configuration - when a specified qualifier is other than "configuration". - - * prj-proc.adb (Process_Declarative_Items): Link new elements of copied - full associative array together. - (Recursive_Process): Put the project qualifier in the project data - - * prj-tree.ads, prj-tree.adb: (Project_Qualifier_Of): New function - (Set_Project_Qualifier_Of): New procedure - -2008-04-08 Robert Dewar - - * errout.ads: Update comments for new handling of info: messages - - * erroutc.adb (Matches): New procedure - (Warning_Specifically_Suppressed): Modified to handle multiple * chars - (Is_Style_Or_Info_Msg): New name for Is_Style_Msg, now set for - info messages as well as style messages. - - * erroutc.ads: Remove unneeded fields from Specific_Warning_Entry - - * sem_elab.adb (Supply_Bodies): Create actual bodies for stubbed - subprograms. - (Check_A_Call): Special "info: " warnings now have ? in the text - (Elab_Warning): Use info message in static case - -2008-04-08 Ed Schonberg - - * exp_aggr.adb (Static_Array_Aggregate): Use Max_Aggr_Size to determine - whether an array aggregate with static bounds and scalar components - should be expanded into a static constant. - -2008-04-08 Gary Dismukes - Ed Schonberg - Robert Dewar - - * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Add tests of - Has_Stream_Attribute_ Definition when checking for available stream - attributes on parameters of a limited type in Ada 2005. Necessary for - proper recognition of visible stream attribute clauses. - (Has_Stream_Attribute_Definition): If the type is derived from a - private type, then use the derived type's underlying type for checking - whether it has stream attributes. - (Validate_Object_Declaration): The check for a user-defined Initialize - procedure applies also to types with controlled components or a - controlled ancestor. - Reject an object declaration in a preelaborated unit if the type is a - controlled type with an overriding Initialize procedure. - (Validate_Remote_Access_To_Class_Wide_Type): Return without further - checking when the parent of a dereference is a selected component and - the name has not been analyzed. - - * sem_ch4.adb (Analyze_Selected_Component): Add checking for selected - prefixes that are invalid explicit dereferences of remote - access-to-class-wide values, first checking whether the selected - component is a prefixed form of call to a tagged operation. - (Analyze_Call): Remove code that issues an error for limited function - calls in illegal contexts, as we now support all of the contexts that - were forbidden here. - Allow a function call that returns a task.and appears as the - prefix of a selected component. - (Analyze_Reference): Give error message if we try to make a 'Reference - for an object that is atomic/aliased without its type having the - corresponding attribute. - (Analyze_Call): Remove condition checking for attributes to allow - calls to functions with inherently limited results as prefixes of - attributes. Remove related comment about Class attributes. - (Analyze_Selected_Component): If the prefix is a remote type, check - whether this is a prefixed call before reporting an error. - (Complete_Object_Operation): If the controlling formal is an access to - variable reject an actual that is a constant or an access to one. - (Try_Object_Operation): If prefix is a tagged protected object,retrieve - primitive operations from base type. - - * exp_ch4.adb (Expand_N_Indexed_Component): Test for prefix that is a - build-in-place - function call and call Make_Build_In_Place_Call_In_Anonymous_Context. - (Expand_N_Selected_Component): Test for prefix that is a build-in-place - function call and call Make_Build_In_Place_Call_In_Anonymous_Context. - (Expand_N_Slice): Test for prefix that is a build-in-place function call - and call Make_Build_In_Place_Call_In_Anonymous_Context. - (Analyze_Call): Remove code that issues an error for limited function - calls in illegal contexts, as we now support all of the contexts that - were forbidden here. - New calling sequence for Get_Simple_Init_Val - (Expand_Boolean_Operator): Add call to Silly_Boolean_Array_Xor_Test - (Expand_N_Op_Not): Add call to Silly_Boolan_Array_Not_Test - -2008-04-08 Hristian Kirtchev - Ed Schonberg - Robert Dewar - - * exp_ch2.adb: Minor reformatting. - (Expand_Entry_Index_Parameter): Set the type of the identifier. - (Expand_Entry_Reference): Add call to Expand_Protected_Component. - (Expand_Protected_Component): New routine. - (Expand_Protected_Private): Removed. - Add Sure parameter to Note_Possible_Modification calls - - * sem_ch12.ads, sem_ch12.adb (Analyze_Subprogram_Instantiation): The - generated subprogram declaration must inherit the overriding indicator - from the instantiation node. - (Validate_Access_Type_Instance): If the designated type of the actual is - a limited view, use the available view in all cases, not only if the - type is an incomplete type. - (Instantiate_Object): Actual is illegal if the formal is null-excluding - and the actual subtype does not exclude null. - (Process_Default): Handle properly abstract formal subprograms. - (Check_Formal_Package_Instance): Handle properly defaulted formal - subprograms in a partially parameterized formal package. - Add Sure parameter to Note_Possible_Modification calls - (Validate_Derived_Type_Instance): if the formal is non-limited, the - actual cannot be limited. - (Collect_Previous_Instances): Generate instance bodies for subprograms - as well. - - * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Small): Don't - try to set RM_Size. - Add Sure parameter to Note_Possible_Modification calls - (Analyze_At_Clause): Preserve Comes_From_Source on Rewrite call - (Analyze_Attribute_Definition_Clause, case Attribute_Address): Check for - constant overlaid by variable and issue warning. - Use new Is_Standard_Character_Type predicate - (Analyze_Record_Representation_Clause): Check that the specified - Last_Bit is not less than First_Bit - 1. - (Analyze_Attribute_Definition_Clause, case Address): Check for - self-referential address clause - - * sem_ch5.ads, sem_ch5.adb (Diagnose_Non_Variable_Lhs): Rewrite the - detection mechanism when the lhs is a prival. - (Analyze_Assignment): Call Check_Unprotected_Access to detect - assignment of a pointer to protected data, to an object declared - outside of the protected object. - (Analyze_Loop_Statement): Check for unreachable code after loop - Add Sure parameter to Note_Possible_Modication calls - Protect analysis from previous syntax error such as a scope mismatch - or a missing begin. - (Analyze_Assignment_Statement): The assignment is illegal if the - left-hand is an interface. - - * sem_res.ads, sem_res.adb (Resolve_Arithmetic_Op): For mod/rem check - violation of restriction No_Implicit_Conditionals - Add Sure parameter to Note_Possible_Modication calls - Use new Is_Standard_Character_Type predicate - (Make_Call_Into_Operator): Preserve Comes_From_Source when rewriting - call as operator. Fixes problems (e.g. validity checking) which - come from the result looking as though it does not come from source). - (Resolve_Call): Check case of name in named parameter if style checks - are enabled. - (Resolve_Call): Exclude calls to Current_Task as entry formal defaults - from the checking that such calls should not occur from an entry body. - (Resolve_Call): If the return type of an Inline_Always function - requires the secondary stack, create a transient scope for the call - if the body of the function is not available for inlining. - (Resolve_Actuals): Apply Ada2005 checks to view conversions of arrays - that are actuals for in-out formals. - (Try_Object_Operation): If prefix is a tagged protected object,retrieve - primitive operations from base type. - (Analyze_Selected_Component): If the context is a call to a protected - operation the parent may be an indexed component prior to expansion. - (Resolve_Actuals): If an actual is of a protected subtype, use its - base type to determine whether a conversion to the corresponding record - is needed. - (Resolve_Short_Circuit): Handle pragma Check - - * sem_eval.adb: Minor code reorganization (usea Is_Constant_Object) - Use new Is_Standard_Character_Type predicate - (Eval_Relational_Op): Catch more cases of string comparison - -2008-04-08 Robert Dewar - Gary Dismukes - - * s-rident.ads: Add No_Default_Initialization restriction - - * exp_tss.adb: - (Has_Non_Null_Base_Init_Proc): Handle No_Default_Initialization case - (Set_TSS): Handle No_Default_Initialization case - - * exp_ch6.adb (Expand_N_Subprogram_Body): Handle restriction - No_Default_Initialization - (Expand_N_Subprogram_Body): Remove redundant initialization of out - parameters when Normalize_Scalars is active. - (Add_Final_List_Actual_To_Build_In_Place_Call): Add formal Sel_Comp - Fix casing error in formal parameter name in call - (Register_Predefined_DT_Entry): Replace occurrences of RE_Address by - (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a - dispatching call on VM targets. - -2008-04-08 Gary Dismukes - Thomas Quinot - - * exp_ch7.adb (Find_Final_List): Change the test for generating a - selected component from an access type's Associated_Final_Chain to - check for the presence of that field, rather than assuming it exists - for all named access types. - (Make_Clean): New formal Chained_Cleanup_Action allowing to specify a - procedure to call at the end of the generated cleanup procedure. - (Expand_Cleanup_Actions): When a new cleanup procedure is generated, and - and an At_End_Proc already exists in the handled sequence of statements - for which cleanup actions are being expanded, the original cleanup - action must be preserved. - -2008-04-08 Hristian Kirtchev - Ed Schonberg - Robert Dewar - Gary Dismukes - - * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry, - Build_Unprotected_Subprogram_Body): Generate debug info for - declarations related to the handling of private data in task and - protected types. - (Debug_Private_Data_Declarations): New subprogram. - (Install_Private_Data_Declarations): Remove all debug info flagging. - This is now done by Debug_Private_Data_Declarations at the correct - stage of expansion. - (Build_Simple_Entry_Call): If the task name is a function call, expand - the prefix into an object declaration, and make the surrounding block a - task master. - (Build_Master_Entity): An internal block is a master if it wraps a call. - Code reformatting, update comments. Code clean up. - (Make_Task_Create_Call): Use 'Unrestricted_Access instead of 'Address. - (Replicate_Entry_Formals): If the formal is an access parameter or - anonymous access to subprogram, copy the original tree to create new - entities for the formals of the subprogram. - (Expand_N_Task_Type_Declaration): Create a Relative_Deadline variable - for tasks to store the value passed using pragma Relative_Deadline. - (Make_Task_Create_Call): Add the Relative_Deadline argument to the - run-time call to create a task. - (Build_Wrapper_Spec): If the controlling argument of the interface - operation is an access parameter with a non-null indicator, use the - non-null indicator on the wrapper. - - * sem_ch9.adb (Analyze_Protected_Type): Only retrieve the full view when - present, which it may not be in the case where the type entity is an - incomplete view brought in by a limited with. - (Analyze_Task_Type): Only retrieve the full view when present, which it - may not be in the case where the type entity is an incomplete view brought - in by a limited with. - (Analyze_Protected_Definition): Set Is_Frozen on all itypes generated for - private components of a protected type, to prevent the generation of freeze - nodes for which there is no proper scope of elaboration. - - * exp_util.ads, exp_util.adb - (Remove_Side_Effects): If the expression is a function call that returns a - task, expand into a declaration to invoke the build_in_place machinery. - (Find_Protection_Object): New routine. - (Remove_Side_Effects): Also make a copy of the value - for attributes whose result is of an elementary type. - (Silly_Boolean_Array_Not_Test): New procedure - (Silly_Boolean_Array_Xor_Test): New procedure - (Is_Volatile_Reference): New function - (Remove_Side_Effects): Use Is_Volatile_Reference - (Possible_Bit_Aligned_Component): Handle slice case properly - - * exp_pakd.adb (Expand_Packed_Not): Move silly true/true or false/false - case test to Exp_Util - (Expand_Packed_Xor): Move silly true/true case test to Exp_Util - -2008-04-08 Thomas Quinot - - * exp_dist.ads, exp_dist.adb: Fix casing error in formal parameter name - in call - (Add_RACW_Features): When processing an RACW in another unit than the - main unit, set Body_Decls to No_List to indicate that the bodies of - the type's TSS must not be generated. - (GARLIC_Support.Add_RACW_Read_Attribute, - GARLIC_Support.Add_RACW_Write_Attribute): Do not generate bodies if - Body_Decls is No_List. - (PolyORB_Support.Add_RACW_Read_Attribute, - PolyORB_Support.Add_RACW_Write_Attribute, - PolyORB_Support.Add_RACW_From_Any, - PolyORB_Support.Add_RACW_To_Any, - PolyORB_Support.Add_RACW_TypeCode): Same. - (Transmit_As_Unconstrained): New function. - (Build_Ordered_Parameters_List): Use the above to order parameters. - (GARLIC_Support.Build_General_Calling_Stubs): - Use the above to determine which parameters to unmarshall using 'Input - at the point where their temporary is declared (as opposed to later on - with a 'Read call). - (PolyORB_Support.Build_General_Calling_Stubs): - Use the above to determine which parameters to unmarshall using From_Any - at the point where their temporary is declared (as opposed to later on - with an assignment). - -2008-04-08 Ed Schonberg - - * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): If this is - an Input function for an access type, do not perform default - initialization on the local variable that receives the value, to - prevent spurious warnings when the type is null-excluding. - -2008-04-08 Robert Dewar - Ed Schonberg - - * freeze.adb (Freeze_Entity): Improve warnings on access types in pure - units. - (Size_Known): Generic formal scalar types have known at compile - time size, so remove check. - Fix casing error in formal parameter name in call - (Freeze_Subprogram): If the subprogram is a user-defined operator, - recheck its overriding indication. - -2008-04-08 Vincent Celier - - * gnat1drv.adb: Send all messages indicating an error to standard error - -2008-04-08 Robert Dewar - - * gnatbind.adb (Restriction_Could_Be_Set): New procedure - (List_Applicable_Restrictions): Do not list existing restrictions - -2008-04-08 Thomas Quinot - - * g-socket.ads, g-socket.adb: Improve documentation of GNAT.Sockets: - add a pointer to generic sockets literature - do not mention that the given example is "typical" usage. - Remove obsolete comment about multicast not being supported on Windows. - (Connect_Socket): Make Server mode IN rather than IN OUT - since this formal is never modified. - -2008-04-08 Robert Dewar - - * sprint.adb (Write_Itype): Handle Itypes whose Parent field points to - the declaration for some different entity. - (Sprint_Node_Actual, case N_Derived_Type_Definition): When an interface - list is precent (following the parent subtype indication), display - appropriate "and" keyword. - - * itypes.adb: Remove unnecessary calls to Init_Size_Align and Init_Esize - Remove unnecessary calls to Init_Size_Align and Init_Esize. - Add notes on use of Parent field of an Itype - -2008-04-08 Ed Schonberg - Robert Dewar - Gary Dismukes - - * lib-xref.adb (Is_On_LHS): Remove dead code - (Output_Overriden_Op): If the overridden operation is itself inherited, - list the ancestor operation, which is the one whose body or absstract - specification is actually being overridden. For source navigation - purposes. - - * sem_ch7.adb (Is_Primitive_Of): use base type to determine whether - operation is primitive for the type. - (Declare_Inherited_Private_Subprograms): If the new operation overrides - an inherited private subprogram, set properly the Overridden_Operation - attribute, for better cross-reference information. - (Analyze_Package_Specification): Do late analysis of spec PPCs - (Install_Private_Declaration, Uninstall_Declarations): Save/restore - properly the full view and underlying full views of a private type in a - child unit, whose full view is derived from a private type in a parent - unit, and whose own full view becomes visible in the child body. - - * sem_disp.adb (Check_Dispatching_Operation): When a body declares a - primitive operation after the type has been frozen, add an explicit - reference to the type and the operation, because other primitive - references have been emitted already. - (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a - dispatching call on VM targets. - -2008-04-08 Vincent Celier - Thomas Quinot - - * make.adb: (Gnatmake_Called): Remove, no longer necessary - (Compile_Surces): Call Delete_Temp_Config_Files only if Gnatmake_Called - is True and Debug_Flag_N is False. Debug_Flag_N means "keep temp files". - (Insert_Project_Sources): Take into account index in multi-unit source - files. - After building a library project, delete all temporary files. - (Initialize): Reset current output after parsing project file. - (Collect_Arguments_And_Compile): Never insert in the queue the sources - of library projects that are externally built. - Put file name in error and inform messages if -df is used - (Display): If invoked with -d7, do not display path names, but only - file names. - - * makeutl.ads (Path_Or_File_Name): New function - (Path_Or_File_Name): New function - -2008-04-08 Arnaud Charlet - - * Make-lang.in: Disable warnings during first stage of bootstrap - Get rid of gnatbl. - Update dependencies. - -2008-04-08 Vincent Celier - - * mlib-prj.adb (Build_Library): Compare with ALI file name in canonical - case to decide if ALI object file is included in library. - (Build_Library): Never attempt to build a library if the project is - externally built. - -2008-04-08 Thomas Quinot - - * nlists.adb (Is_Non_Empty_List): Remove redundant test. First - (No_List) is defined to return Empty. - -2008-04-08 Jose Ruiz - - * osint.ads, osint.adb (Get_Libraries_From_Registry): Improve - documentation. - Update comments. - (Read_Default_Search_Dirs): Do not consider spaces as path separators - because spaces may be part of legal paths. - -2008-04-08 Robert Dewar - - * par-ch11.adb (P_Exception_Handler): Check indentation level for - handler - -2008-04-08 Ed Schonberg - - * par-ch3.adb (P_Type_Declaration) Reject the keyword "synchronized" - in a type declaration, if this is not an interface declaration or - private type extension. - -2008-04-08 Vincent Celier - - * prj-util.adb (Executable_Of): New String parameter Language. When - Ada_Main is False and Language is not empty, attempt to remove the body - suffix or the spec suffix of the language to get the base of the - executable file name. - (Put): New Boolean parameter Lower_Case, defauilted to False. When - Lower_Case is True, put the value in lower case in the name list. - (Executable_Of): If there is no executable suffix in the configuration, - then do not modify Executable_Extension_On_Target. - - * prj-util.ads (Executable_Of): New String parameter Language, - defaulted to the empty string. - (Put): New Boolean parameter Lower_Case, defauilted to False - -2008-04-08 Robert Dewar - - * scng.adb (Scan_Identifier): Handle case of identifier starting with - wide character using UTF-8 encoding. - -2008-04-08 Javier Miranda - - * sem.adb (Analyze): Consider case in which we analyze an empty node - that was generated by a call to a runtime function that is not - available under the configurable runtime. - - * sem.ads (Inside_Freezing_Actions): New flag. - (Save_Check_Policy_List): New field in scope stack entry - -2008-04-08 Ed Schonberg - Robert Dewar - - * sem_aggr.adb (Analyze_N_Extension_Aggregate): Add legality checks for - the ancestor part of an extension aggregate for a limited type. - (Resolve_Array_Aggregate): Issue warning for sliding of aggregate with - enumeration index bounds. - (Resolve_Array_Aggregate): Add circuit for diagnosing missing choices - when array is too short. - (Check_Expr_OK_In_Limited_Aggregate): Move function - Check_Non_Limited_Type from Resolve_Record_Aggregate to top level (and - change name). - (Resolve_Array_Aggregate.Resolve_Aggr_Expr): - Check_Expr_OK_In_Limited_Aggregates called to check for illegal limited - component associations. - (Check_Non_Limited_Type): Moved to outer level and renamed. - (Resolve_Record_Aggregate): In an extension aggregate, an association - with a box initialization can only designate a component of the - extension, not a component inherited from the given ancestor - - * sem_case.adb: Use new Is_Standard_Character_Type predicate - -2008-04-08 Robert Dewar - - * s-imgdec.adb (Set_Decimal_Digits): Fix error when input is zero with - negative scale - (Set_Decimal_Digits): Properly handle Aft=0 (equivalent to Aft=1) - Properly handle case where Aft > Scale and input number is less than - one. - -2008-04-08 Hristian Kirtchev - - * s-stoele.ads, s-soflin.ads: Move the location of - Dummy_Communication_Block from System.Storage_Elements to - System.Soft_Links. - - * s-tpobop.ads: Add comment on usage of Dummy_Communication_Block to - emulate Communication_Block in certain scenarios. - -2008-04-08 Hristian Kirtchev - - * s-strxdr.adb, s-stratt.ads, s-stratt.adb (Block_IO_OK): New - subprogram. - Add new subtype S_WWC, unchecked conversion routines From_WWC and - To_WWC. - (I_WWC, O_WWC): New routines for input and output of - Wide_Wide_Character. - -2008-04-08 Robert Dewar - - * stringt.adb (Write_String_Table_Entry): Handle wide characters - properly - -2008-04-08 Robert Dewar - - * styleg.adb (Check_Comment): Allow special char after -- in - non-end-of-line case - -2008-04-08 Robert Dewar - - * stylesw.adb: Implement -gnaty + - y options - (Set_GNAT_Style_Check_Options): Includ I in style check string - - * stylesw.ads: Add comments for new style switch options - -2008-04-08 Sergey Rybin - - * tree_io.ads: Increase ASIS_Version_Number because of adding Sem_Aux - to the set of the GNAT components needed by ASIS. - -2008-04-08 Bob Duff - - * types.h: Change CE_Null_Exception_Id to the correct value (8, was 9). - -2008-04-08 Tristan Gingold - - * vxaddr2line.adb: Use Unsigned_32 instead of Integer for address type. - Improve error message generation. - -2008-04-08 Vincent Celier - - * a-direct.adb (Start_Search): Check for Name_Error before checking for - Use_Error, as specified in the RM. Check if directory is open and raise - Use_Error if it is not. - -2008-04-08 Vincent Celier - Robert Dewar - - * vms_conv.adb (Output_Version): Print "GNAAMP" instead of "GNAT when - AAMP_On_Target is set. - - * vms_data.ads: Add NOxxx to style check switch list - Add entry COMPONENTS for -gnatVe - Add VMS qualifiers for -eL (/FOLLOW_LINKS_FOR_FILES) and --subdirs= - (/SUBDIRS=). - (GCC_Switches): Add /ALL_BACK_END_WARNINGS. - Add qualifiers for gnatmetric coupling options - Add note that -gnata enables all checks - Add entries [NO]PARAMETER_ORDER for -gnatw.p[P] - Fix inconsistency for VMS qualifier for the gnatpp '-rnb' option - New warning flag -gnatw.e - - * usage.adb: Add entries for -gnaty+ -gnaty- -gnatyy - Add entry for -gnatyN (forgotten before) - Line for new warning switch -gnatw.p - New warning flag -gnatw.e - - * gnat_ugn.texi: Add documentation fpr project file switch -aP - Document -gnaty - + y - Replace occurences of "package specification" with "package spec" - Define preprocessing symbols in documentation of gnatprep - Clarify reason for distinguishing overflow checking - Add documentation for project-aware tool switches -eL and --subdirs= - Complete list of configuration pragmas - Specify that, even when gnatmake switch -x is used, mains on the command - line need to be sources of project files. - Editing of gnatcheck/gnatmetric doc. - Add documentation for -gnatw.p/-gnatw.P - Add missing documentation for -fno-inline-functions. - Add documentation for -gnatw.e - - * gnat_rm.texi: Add documentation for No_Default_Initialization - Replace occurences of "package specification" with "package spec" - Document use of * in Warnings Off string - Update documentation of alignment/component clauses. - Add documentation for Invalid_Value - Document new consistency rule for Optimize_Alignment - Add documentation for Precondition and Postcondition pragmas - Add documentation for Check and Check_Policy pragmas - Document new Enum_Val attribute - Remove requirement for static string in pragma Assert - Add documentation on GNAT.Time_Stamp - - * ug_words: add entry for -gnatVe - Add entries for -gnat.p[P] /WARNINGS=[NO]PARAMETER_ORDER - Add entry for -gnatw.e - - * debug.adb: Add missing documentation for d.a flag - Document new -gnatd.a switch. - Add documentation for new gnatmake debug switch -df - -2008-04-08 Thomas Quinot - - * gen-soccon.c: Bump year in copyright notices. - - * g-soccon-vxworks.ads: Add new constant IP_PKTINFO - -2008-04-08 Eric Botcazou - - * ctrl_c.c: Improve handling of ctrl-c on LynxOS and Windows. - Minor reformatting. - -2008-04-08 Robert Dewar - Bob Duff - - * impunit.adb: Add Interfaces.Java.JNI, System.Strings.Stream_Ops, - Ada.Calendar.Conversions, Ada.Dispatching.EDF, GNAT.Time_Stamp - - * s-intman-mingw.adb: Minor comment fix -- spell 'explicitly' correctly - - * g-trasym.adb: Minor comment fix -- spell 'explicitly' correctly - - * g-trasym.ads: Minor comment improvements - - * s-stalib.adb: Minor comment fix -- spell 'explicitly' correctly - - * a-sequio.ads, a-direio.ads: improve message for tagged type - - * a-strunb.ads: Minor reformatting - - * a-tifiio.adb: Minor reformatting - - * atree.adb (Fix_Parents): Use clearer names for formals - Cleanup and simplify code - Use named notation in calls - - * exp_fixd.adb (Do_Multiply_Fixed_Universal): Use named notation in - confusing calls - - * uintp.adb: Used named notation for some confusing calls - - * bindusg.adb: Minor change in one line of output - - * cstand.adb: Minor reformatting of src representation of Standard - - * a-assert.ads: Add comment. - - * g-decstr.adb: Fix bad indentation - - * expander.ads, expander.adb: Code clean up. - - * sem_dist.ads: Minor comment improvement - - * sem_type.adb, g-dirope.ads, g-exctra.ads, s-valwch.adb, - s-wchstw.adb, targparm.ads, widechar.adb: Minor reformatting - - * i-cstrin.adb: Fix casing error in formal parameter name in call - -2008-04-08 Ed Schonberg - - * binde.adb (Gather_All_Links, Gather_Dependencies): units that are - mentioned in limited_with_clauses to do create semantic dependencies - even though they appear in the ali file. - -2008-04-08 Emmanuel Briot - - * g-comlin.ads, g-comlin.adb (Expansion): Remove unreachable return - statement. - (Get_Configuration): New subprogram. - - * prj-pp.ads, prj-pp.adb (Pretty_Print): new parameters Id and Id_Tree - These optional parameters help preserve the casing of the project's name - when pretty-printing. - -2008-04-08 Jerome Lambourg - Arnaud Charlet - - * bindgen.adb (Gen_Adainit_Ada): If the main program is a CIL function, - then use __gnat_set_exit_status to report the returned status code. - - * comperr.adb (Compiler_Abort): Convert most bug boxes into clean error - messages on .NET, since some constructs of the language are not - properly supported. - - * gnatlink.adb (Gnatlink): In case the command line is too long for the - .NET linker, gnatlink now concatenate all .il files and pass this to - ilasm. - -2008-04-07 Aurelien Jarno - Xavier Grave - - * Makefile.in: Add make ifeq define for mips/mipsel support. - * g-soccon-linux-mips.ads, system-linux-mipsel.ads, - system-linux-mips.ads: New files. - -2008-04-07 Aurelien Jarno - - * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to - detect systems using GNU libc. - * gsocket.h: ditto. - * socket.c: ditto. - * adaint.c: ditto. - * link.c: ditto. - -2008-04-07 Aurelien Jarno - - * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New - constant constant for sysconf call. - (bit_field): New packed boolean type used by cpu_set_t. - (cpu_set_t): New type corresponding to the C type with - the same name. Note that on the Ada side we use a bit - field array for the affinity mask. There is not need - for the C macro for setting individual bit. - (pthread_setaffinity_np): New imported routine. - * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb - on GNU/kFreeBSD. - -2008-04-07 Eric Botcazou - - * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too. - -2008-04-07 Eric Botcazou - - * gigi.h (create_subprog_type): Remove returns_with_dsp parameter. - * decl.c (gnat_to_gnu_entity): Adjust for above new prototype. - * utils.c (create_subprog_type): Remove returns_with_dsp parameter. - * trans.c (gnat_to_gnu) : Remove code dealing with - Return by Depressed Stack Pointer. - -2008-04-06 Eric Botcazou - - * decl.c (is_variable_size): Do not unconditionally return false - on non-strict alignment platforms. - -2008-04-06 Eric Botcazou - - * decl.c (rest_of_type_decl_compilation_no_defer): New local function - used to process all the variants of the specified type. - (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral - types too. Call rest_of_type_decl_compilation_no_defer if undeferring. - (rest_of_type_decl_compilation): Likewise. - * utils.c (gnat_pushdecl): Propagate the name to all variants of type. - -2008-04-03 Paolo Bonzini - - * gigi.h (insert_block): Kill. - * utils.c (insert_block): Kill. - -2008-04-02 Eric Botcazou - - * decl.c (gnat_to_gnu_entity) : For a constant object whose - type has self-referential size, get the size from the initializing - expression directly if it is also a constant whose nominal type - has self-referential size. - -2008-04-01 John David Anglin - - PR ada/33688 - * g-soccon-darwin.ads: Define new constant IP_PKTINFO. - - PR ada/33857 - * env.c: Always include crt_externs.h if __APPLE__ is defined. - (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined. - -2008-04-01 Andreas Jaeger - - * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and - IP_PKTINFO. - -2008-03-31 Ralf Wildenhues - - * g-table.adb, g-tasloc.adb, g-traceb.ads, - g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c, - gnatbind.adb, gnatchop.adb, gnatcmd.adb, - gnatcmd.ads, gnatdll.adb, gnatfind.adb, - gnatlink.adb, gnatmem.adb, gprep.adb, - i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads, - i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb, - layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb, - lib-xref.ads, lib.adb, link.c, live.ads, - make.adb, makegpr.adb, makeutl.adb, math_lib.adb, - mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads, - misc.c, mlib-prj.adb, mlib-tgt-hpux.adb, - mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads, - namet.adb, namet.h, nlists.adb, nlists.ads, - nlists.h, opt.ads, osint-b.ads, osint-c.adb, - osint-c.ads, osint.adb, osint.ads, output.ads, - par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb, - par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb, - par-endh.adb, par-labl.adb, par-prag.adb, - par-sync.adb, par-tchk.adb, par-util.adb, - par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads, - prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb, - prj-nmsc.ads, prj-pp.adb, prj-proc.adb, - prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos. - -2008-03-31 Eric Botcazou - - * decl.c (gnat_to_gnu_entity) : Do not force a non-null - size if it has overflowed. - -2008-03-31 Olivier Hainque - Eric Botcazou - - * utils2.c (find_common_type): Document assumption on t1/t2 vs - lhs/rhs. Force use of lhs type if smaller, whatever the modes. - -2008-03-30 Ralf Wildenhues - - * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads, - einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb, - exp_imgv.adb, exp_intr.adb, exp_pakd.adb, - exp_pakd.ads, exp_prag.adb, exp_smem.adb, - exp_tss.ads, exp_util.adb, exp_util.ads, - exp_vfpt.adb, freeze.adb, freeze.ads, - frontend.adb, g-alleve.adb, g-altcon.adb, - g-altive.ads, g-alveop.ads, g-alvevi.ads, - g-arrspl.adb, g-busorg.ads, g-calend.adb, - g-calend.ads, g-casuti.ads, g-cgideb.adb, - g-comlin.adb, g-comlin.ads, g-curexc.ads, - g-debpoo.adb, g-debpoo.ads, g-decstr.adb, - g-dirope.adb, g-dirope.ads, g-dynhta.ads, - g-dyntab.adb, g-encstr.ads, g-excact.ads, - g-except.ads, g-expect.ads, g-heasor.adb, - g-hesora.adb, g-hesorg.adb, g-htable.ads, - g-locfil.ads, g-md5.adb, g-md5.ads, - g-memdum.ads, g-moreex.ads, g-os_lib.adb, - g-pehage.adb, g-pehage.ads, g-regexp.adb, - g-regexp.ads, g-regpat.adb, g-regpat.ads, - g-soccon-aix.ads, g-soccon-darwin.ads, - g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads, - g-soccon-hpux.ads, g-soccon-irix.ads, - g-soccon-linux-64.ads, g-soccon-linux-ppc.ads, - g-soccon-linux-x86.ads, g-soccon-lynxos.ads, - g-soccon-mingw.ads, g-soccon-solaris-64.ads, - g-soccon-solaris.ads, g-soccon-tru64.ads, - g-soccon-vms.ads, g-soccon-vxworks.ads, - g-soccon.ads, g-socket.adb, g-socket.ads, - g-socthi-mingw.adb, g-socthi-vms.adb, - g-socthi-vxworks.adb, g-soliop-mingw.ads, - g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb, - g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment - typos. - -2008-03-27 Eric Botcazou - - * decl.c (gnat_to_gnu_entity) : Also set the public flag - if the procedure is imported. - -2008-03-26 Arnaud Charlet - - * adaint.c: Fix warnings. - -2008-03-26 Arnaud Charlet - - * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec. - -2008-03-26 Arnaud Charlet - - * a-witeio.adb: Fix problem with Current_Output (introduce Self). - Fix problem of status check for null file - -2008-03-26 Arnaud Charlet - - * s-proinf-irix-athread.ads, s-vxwork-mips.ads, - s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, - s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads, - i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads, - s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update - comments. - -2008-03-26 Thomas Quinot - - PR ada/33688 - * g-socket.ads, g-socket.adb (Options, Set_Socket_Option, - Get_Socket_Option): Add support for Receive_Packet_Info. - - * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads, - g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads, - g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads, - g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads, - g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add - new constants SO_REUSEPORT and IP_PKTINFO - -2008-03-26 Robert Dewar - - * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb, - a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb, - a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads, - a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads, - a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads, - a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads, - s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads, - s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads, - a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads, - s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads, - s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, - s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads, - s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb, - s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads, - s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads, - s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads, - s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads, - s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb, - s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb, - s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb, - a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads, - a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads, - s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads, - s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads, - s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads, - s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb, - s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb, - a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb, - a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb, - s-tasloc.adb: Minor reformatting. - Update comments. - Remove "used for" sections from comments. - -2008-03-26 Robert Dewar - - * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb, - s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb, - s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads, - s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb, - s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, - a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb, - a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, - a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads, - a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads, - a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads, - a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb, - i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads, - a-nlrear.ads, a-nucoar.ads, a-nurear.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-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads, - double spaced if it fits on one line and otherwise single spaced. - -2008-03-26 Arnaud Charlet - - * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb, - s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb, - s-taprop-posix.adb (Create_Task): Do not attempt to set task priority - or task info if the thread could not be created. - -2008-03-26 Arnaud Charlet - - * gnatvsn.ads (Library_Version): Bump to 4.4. - (Current_Year): Bump to 2008. - -2008-03-26 Robert Dewar - - * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record - - * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure - - * debug.adb: Add debug flags d.r and d.v - Add debug flag .T (Optimize_Alignment (Time)) - Add debug flag .S (Optimize_Alignment (Space)) - - * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components - depending on setting of relevant debug flags. - Replace use of Warnings_Off by Has_Warnings_Off - (Freeze_Entity): In circuit for warning on suspicious convention - actuals, do not give warning if subprogram has same entity as formal - type, or if subprogram does not come from source. - (Freeze_Entity): Don't reset Is_Packed for fully rep speced record - if Optimize_Alignment set to Space. - - * frontend.adb: Add call to Sem_Warn.Initialize - Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings - Reset Optimize_Alignment mode from debug switches .S and .T - - * layout.adb (Layout_Composite_Object): Rewritten for - Optimize_Aligment pragma. - - * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment - mode. - - * opt.ads, opt.adb: (Optimize_Alignment): New global switch - - * par-prag.adb (N_Pragma): Chars field removed, use Chars - (Pragma_Identifier (.. instead, adjustments throughout to accomodate - this change. Add entry for pragma Optimize_Alignment - - * sem_prag.adb (N_Pragma): Chars field removed, use Chars - (Pragma_Identifier (.. - instead, adjustments throughout to accomodate this change. - (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg - (Favor_Top_Level): Use new function Is_Access_Subprogram_Type - Add implementation of pragma Optimize_Alignment - -2008-03-26 Vincent Celier - - * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line): - Improve memory usage to avoid use of stack. - -2008-03-26 Robert Dewar - - * a-teioed.ads: Correct value of Default_Fill - - * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill - -2008-03-26 Robert Dewar - - * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem - with Current_Output (introduce Self). - -2008-03-26 Robert Dewar - - * checks.adb (Ensure_Valid): Capture valid status if possible - (eliminate checks) - -2008-03-26 Robert Dewar - - * stand.ads: Deal with reordering of package standard declarations - - * cstand.adb: Put package Standard declarations in proper order - -2008-03-26 Robert Dewar - - * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars - (Pragma_Identifier (.. instead. - (OK_To_Reorder_Components): New flag - (Has_Entries): Code cleanup. - (Warnings_Off_Used): New flag - (Warnings_Off_Used_Unmodified): New flag - (Warnings_Off_Used_Unreferenced): New flag - (Has_Warnings_Off): New function - (Has_Unmodified): New function - (Has_Unreferenced): New function - (Is_Trivial_Subprogram): New flag - (Is_Static_Dispatch_Table_Entity): New attribute. - Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind - (more consistent with other similar names) - (Access_Subprogram_Type): New classification function - -2008-03-26 Robert Dewar - - * errout.ads: Document new !! insertion sequence - - * errout.adb (N_Pragma): Chars field removed, use Chars - (Pragma_Identifier (.. instead. - Replace use of Warnings_Off by Has_Warnings_Off - (Error_Msg_Internal): Don't delete warning ending in !! - -2008-03-26 Robert Dewar - - * par.adb (Check_No_Right_Paren): Removed no longer used - - * par-ch10.adb (N_Pragma): Chars field removed, use Chars - (Pragma_Identifier (.. instead. - - * par-ch10.adb (P_Subunit): Improvement in error recovery and message - - * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb, - par-ch4.adb: Minor improvements in error recovery and messages. - - * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as - non-serious - - * par-ch9.adb: Minor improvements in error recovery and messages - (P_Protected): Better error recovery for "protected type x;" - - * par-util.adb: Minor improvements in error recovery and messages - (Check_No_Right_Paren): Removed no longer used - -2008-03-26 Ed Schonberg - - * exp_aggr.adb (Replace_Type): When checking for self-reference, verify - that the prefix of an attribute is the type of the aggregate being - expanded. - -2008-03-26 Javier Miranda - Robert Dewar - - * exp_attr.adb (N_Pragma): Chars field removed. - (Expand_N_Attribute_Reference): If the designated type associated with - attribute 'Unrestricted_Access is a subprogram entity then replace it - by an E_Subprogram_Type itype. - Implement attribute Old - - * sem_attr.ads (Attribute_Class_Array): Move to snames.ads - - * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation. - Replace call to - New_Internal_Entity by call to Create_Itype to centralize calls - building itypes, ad propagate the convention of the designated - subprogram. In addition, disable the machinery cleaning constant - indications from all entities in current scope when 'Unrestricted_Access - corresponds with a node initializing a dispatch table slot. - (Analyze_Attribute): Parameterless attributes returning a string or a - type will not be called with improper arguments, so we can remove junk - code that was dealing with this case. - Implement attribute Old - - * snames.ads, snames.h, snames.adb: Add entries for attribute Old - Add entry for pragma Optimize_Alignment - New standard names Sync and Synchronize - -2008-03-26 Robert Dewar - Arnaud Charlet - - * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise - stmt. - (No_Exception_Propagation_Active): New function. - (Expand_Exception_Handlers): Use No_Exception_Propagation_Active. - Update comments, and review all uses of No_Exception_Propagation, which - are now correct and in sync with what gigi expects. - - * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New - function. - (Expand_Exception_Handlers): Use No_Exception_Propagation_Active. - Update comments, and review all uses of No_Exception_Propagation, which - are now correct and in sync with what gigi expects. - -2008-03-26 Ed Schonberg - - * sem_ch3.adb (Access_Definition): If the access type is the return - result of a protected function, create an itype reference for it - because usage will be in an inner scope from the point of declaration. - (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and - OK_To_Reorder_Components. - (Make_Index): If an overloaded range includes a universal integer - interpretation, resolve to Standard.Integer. - (Analyze_Subtype_Indication): Copy Convention to subtype - (Check_Abstract_Interfaces): Complete semantic checks on the legality of - limited an synchronized progenitors in type declaration and private - extension declarations. - - * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a - protected subprogram body, determine proper scope from subprogram - declaration. - -2008-03-26 Robert Dewar - - * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for - No_Run_Time_Mode - -2008-03-26 Gary Dismukes - - * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation - of a heap allocator for a limited unconstrained function return when - resstriction No_Allocators is active. - (Analyze_Allocator): The restriction No_Allocators is now only checked - on allocators that have Comes_From_Source set, as per RM-H.4(7). - - * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation - of a heap allocator for a limited unconstrained function return when - resstriction No_Allocators is active. - (Analyze_Allocator): The restriction No_Allocators is now only checked - on allocators that have Comes_From_Source set, as per RM-H.4(7). - (Has_Fixed_Op): If the name in a function call is Standard."*" and the - operands are fixed-point types, the universal_fixed predefined operation - is used, regardless of whether the operand type (s) have a primitive - operation of the same name. - -2008-03-26 Javier Miranda - - * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute - Is_Static_Dispatch_Table - (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls - to Exchange_Declarations to exchange the private and full-view. Bug - found working in this issue. - (Expand_Dispatching_Call): Propagate the convention of the subprogram - to the subprogram pointer type. - (Make_Secondary_DT): Replace generation of Prim'Address by - Address (Prim'Unrestricted_Access) - (Make_DT): Replace generation of Prim'Address by - Address (Prim'Unrestricted_Access) - (Make_Disp_*_Bodies): When compiling for a restricted profile, use - simple call form for single entry. - (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch - tables of predefined primitives). - (Make_Secondary_DT): Add support to handle access to dispatch tables of - predefined primitives. - (Make_Tags): Add entities to Access_Dispatch_Table associated with - access to dispatch tables containing predefined primitives. - - * exp_ch6.adb (N_Pragma): Chars field removed, use Chars - (Pragma_Identifier (.. instead, adjustments throughout to accomodate - this change. - (Register_Predefined_DT_Entry): Updated to handle the new contents - of attribute Access_Disp_Table (pointers to dispatch tables containing - predefined primitives). - - * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New - subprogram. - (Find_Interface_ADT): Updated to skip the new contents of attribute - Access_Dispatch_Table (pointers to dispatch tables containing predefined - primitives). - - * sem_util.adb (Has_Abstract_Interfaces): Add missing support for - concurrent types. - (Set_Convention): Use new function Is_Access_Subprogram_Type - (Collect_Interfaces_Info): Updated to skip the new contents of attribute - Access_Dispatch_Table (pointers to dispatch tables containing predefined - primitives). - - * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve - expanded code avoiding calls to Build_Predef_Prims. - (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding - call to Build_Get_Predefined_Prim_Op_Address. - -2008-03-26 Javier Miranda - - * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized - subprogram Corresponding_Runtime_Package to know the runtime package - that will provide support to a given protected type. - - * exp_ch9.adb (Add_Private_Declarations, - Build_Protected_Subprogram_Call, - Build_Protected_Entry, Build_Simple_Entry_Call, - Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration, - Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code - cleanup using the new centralized subprogram Corresponding_Runtime - Package to know the runtime package that provides support to - a given protected type. - -2008-03-26 Ed Schonberg - - * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component - assignment is within the initialization procedure for a packed array, - and Initialize_Scalars is enabled, compile right-hand side with checks - off, because the value is purposely out of range. - -2008-03-26 Vincent Celier - - * gnatcmd.adb: Add processing for GNAT SYNC - - * vms_conv.ads: (Command_Type): Add command Sync - - * vms_conv.adb (Initialize): Add Command_List data for new command Sync - - * vms_data.ads: Add entries for -gnatw.w - Add qualifier for gnatstub --header-file option - Add switches for GNAT SYNC - - * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC - (Add_Package_Name): New procedure - (Package_Name_List): New function - (Initialize): Add known package names to the list - (Register_New_Package): Add the new package name to the list - -2008-03-26 Robert Dewar - - * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb, - s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace - Raise_Exception by "raise with" construct. - -2008-03-26 Pascal Obry - - * Makefile.in: Add proper GNAT.Serial_Communications implementation on - supported platforms. - - * Makefile.rtl: Add g-sercom.o. - - * impunit.adb: Add g-sercom.adb. - - * s-crtl.ads (open): New routine. - (close): Likewise. - (write): Likewise. - - * s-osinte-mingw.ads (BYTE): New type. - (CHAR): Likewise. - (OVERLAPPED): Likewise. - (GENERIC_READ): New constant. - (GENERIC_WRITE): Likewise. - (OPEN_EXISTING): Likewise. - (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access - type instead. - (CreateFile): New routine. - (WriteFile): Likewise. - (ReadFile): Likewise. - (CloseHandle): Move next to the other file oriented routines. - - * g-sercom.ads: New unit. - - * g-sercom.adb: Default implementation, calls to this unit will raise - a program error exception. - - * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and - GNU/Linux implementations. - -2008-03-26 Robert Dewar - - * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind - - * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for - unchecked conversion for different conventions only for subprogram - pointers or on VMS. - -2008-03-26 Vincent Celier - - * osint-c.adb (Set_Library_Info_Name): Use canonical case file names - to check if the specified object file is correct. - -2008-03-26 Thomas Quinot - - * sem_cat.adb (Validate_RACW_Primitives): Do not rely on - Comes_From_Source to exclude primitives from being checked. We want to - exclude predefined primitives only, so use the appropriate specific - predicate. Also, flag a formal parameter of an anonymous - access-to-subprogram type as illegal for a primitive operation of a - remote access to class-wide type. - -2008-03-26 Vincent Celier - - * prj-dect.adb (Parse_Package_Declaration): When a package name is not - known, check if it may be a missspelling of a known package name. In - not verbose, not mode, issue warnings only if the package name is a - possible misspelling. - In verbose mode, always issue a warning for a not known package name, - plus a warning if the name is a misspelling of a known package name. - - * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non - limited withs or limited withs are parse during one call. - (Parse_Single_Project): Post parse context clause in two passes: non - limited withs before current project and limited withs after current - project. - - * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended - project with the name With_Name, even if it is only extended indirectly. - (Recursive_Process): Process projects in order: first single withs, then - current project, then limited withs. - - * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended - project with the name With_Name, even if it is only extended indirectly. - -2008-03-26 Robert Dewar - - * scn.adb (Initialize_Scanner): Format messages belong on standard error - -2008-03-26 Ed Schonberg - - * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is - a generic subprogram that is imported, do not attempt to compile - non-existent body. - - * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is - imported, do not generate a raise_program_error for the non-existent - body. - (Pre_Analyze_Actuals): If an error is detected during pre-analysis, - perform minimal name resolution on the generic to avoid spurious - warnings. - (Find_Actual_Type): the designated type of the actual in a child unit - may be declared in a parent unit without being an actual. - -2008-03-26 Robert Dewar - - * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ - * sinfo.ads, sinfo.adb (From_At_End): New flag - -2008-03-26 Ed Schonberg - - * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on - operations that have an interface parameter. - (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag - Don't treat No_Return call as raise. - - * sem_disp.adb (Check_Dispatching_Operations): apply check for - non-primitive interface primitives to access parameters, not to all - parameters of an access type. - -2008-03-26 Ed Schonberg - - * sem_ch7.adb (Install_Parent_Private_Declarations): If the private - declarations of a parent unit are made visible when compiling a child - instance, the parent is not a hidden open scope, even though it may - contain other pending instance. - - * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a - hidden open scope for some child instance, it does affect the - visibility status of other stach entries. - (Analyze_Object_Renaming): Check that a class-wide object cannot be - renamed as an object of a specific type. - -2008-03-26 Robert Dewar - - * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite - recursion and raise SE directly. - (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is - set for formal type for IN mode parameter. - -2008-03-26 Robert Dewar - - * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table - (Initialize): New procedure - (Output_Warnings_Off_Warnings): New procedure - (Check_References): Suppress certain msgs if Is_Trivial_Subprogram - (Output_Non_Modifed_In_Out_Warnings): Ditto - (Warn_On_Unreferenced_Entity): Ditto - -2008-03-26 Vincent Celier - - * a-direct.adb (Start_Search): Raise Use_Error if the directory is not - readable. - -2008-03-26 Matthew Heaney - - * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads, - a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads: - Marked with clauses as private, and controlled operations as overriding - -2008-03-26 Robert Dewar - - * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized - -2008-03-26 Robert Dewar - - * back_end.adb, back_end.ads: Minor reformatting - - * bindgen.adb: Minor clarification of comments - - * fname.ads: Minor comment fixes - - * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads, - prj-nmsc.adb, sem_aggr.adb: Minor reformatting - - * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb, - xsnames.adb: Remove warnings off pragma no longer needed - - * a-catizo.ads, a-calari.ads, a-calfor.adb, - a-calfor.ads: Fix header. - -2008-03-26 Tristan Gingold - - * init.c: Do not adjust pc for HPARITH on alpha/vms. - -2008-03-26 Robert Dewar - - * lib-xref.adb: (OK_To_Set_Reference): New function - (Generate_Reference): Don't set referenced from occurrence in Warnings, - Unmodified, or Unreferenced pragma - -2008-03-26 Robert Dewar - - * alloc.ads: Add entries for Warnings_Off_Pragmas table - -2008-03-26 GNAT Script - - * Make-lang.in: Makefile automatically updated - -2008-03-26 Robert Dewar - - * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c, - par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field - removed, use Chars (Pragma_Identifier (.. instead, adjustments - throughout to accomodate this change. - - * s-pooglo.ads, s-pooloc.ads: Minor comment updates - - * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not - Einfo.Set_Needs_Debug_Info) - -2008-03-26 Robert Dewar - - * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W - Add description for the new gnatstub option '--header-file' - clarification of -gnatwz/-gnatwZ - Add a "Irix-Specific Considerations" section to document the need to - set LD_LIBRARY_PATH when using the default shared runtime library. - Added documentation for both gcov and gprof. - - * gnat_rm.texi: Document that pragma Compile_Time_Warning generates - messages that are not suppressed when clients are compiled. - Add documentation of s-pooglo s-pooloc - Document the new GNAT.Serial_Communications API. - Add documentation for 'Old attribute - Add description of pragma Optimize_Alignment - - * ug_words: Add entries for -gnatw.w -gnatw.W - - * usage.adb: Add line for -gnatw.w (warn on warnings off) - -2008-03-25 Eric Botcazou - - Revert - 2008-03-05 Eric Botcazou - PR ada/35186 - * decl.c (maybe_pad_type): Avoid padding an integral type when - bumping its alignment is sufficient. - -2008-03-25 Arnaud Charlet - - * exp_ch6.adb, exp_disp.adb: Update copyright notice. - Fix wrong formatting (lines too long) - -2008-03-24 Ralf Wildenhues - - * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb, - a-calend-vms.adb, a-calend.adb, a-calend.ads, - a-calfor.adb, a-chahan.ads, a-chtgke.adb, - a-cihama.ads, a-ciorse.adb, a-clrefi.ads, - a-cohama.ads, a-comlin.ads, a-coorse.adb, - a-crbtgk.adb, a-direct.adb, a-except-2005.adb, - a-except-2005.ads, a-except.adb, a-except.ads, - a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb, - a-exextr.adb, a-filico.ads, a-finali.ads, - a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb, - a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads, - a-sequio.ads, a-strbou.ads, a-strfix.adb, - checks.adb, exp_ch3.adb, exp_ch4.adb, - exp_ch4.ads, exp_ch5.adb, exp_ch6.adb, - exp_ch6.ads, exp_ch7.adb, exp_ch7.ads, - exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, - exp_dbug.ads, exp_disp.adb, exp_dist.adb, - exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos. - -2008-03-24 Robert Dewar - - * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb, - s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb, - s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads, - s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb, - s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, - a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb, - a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, - a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads, - a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads, - a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads, - a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb, - i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads, - a-nlrear.ads, a-nucoar.ads, a-nurear.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-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads, - double spaced if it fits on one line and otherwise single spaced. - -2008-03-24 Ralf Wildenhues - - PR documentation/15479 - * Make-lang.in (doc/gnat_ugn.texi) Renamed from ... - (doc/gnat_ugn_unw.texi): ... this, and adjusted. - (doc/gnat_ugn.info): Renamed from ... - (doc/gnat_ugn_unw.info): ... this. - (doc/gnat_ugn.dvi): Renamed from ... - (doc/gnat_ugn_unw.dvi): ... this. - (doc/gnat_ugn.pdf): Renamed from ... - (doc/gnat_ugn_unw.pdf): ... this. - (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi): - Adjusted. - * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename - unconditionally to gnat_ugn.info. Fix cross references to the - GNAT Reference Manual. Convert links to the GCC, GDB, Emacs, - and GNU make manuals to be proper texinfo links. - * gnat_rm.texi: Fix cross references to the GNAT User's Guide. - -2008-03-21 Olivier Hainque - - * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb) - ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0). - -2008-03-21 Eric Botcazou - - * trans.c (addressable_p): Add notes on addressability issues. - -2008-03-21 Olivier Hainque - Ed Schonberg - - * trans.c (addressable_p): Accept COND_EXPR when both arms - are addressable. - (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR. - (call_to_gnu): Do not use name reference in the error message - for a misaligned by_reference_parameter. The actual may be a - general expression. - -2008-03-18 Paolo Bonzini - - * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete. - -2008-03-15 Ralf Wildenhues - - * gnat_rm.texi (Implementation Defined Characteristics) - (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where - appropriate. - * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind) - (Switches for gnatchop, Installing a library): Likewise. - -2008-03-10 Eric Botcazou - - * trans.c (emit_range_check): Do not emit the check if the base type - of the expression is the type against which its range must be checked. - -2008-03-08 Eric Botcazou - - * decl.c (maybe_pad_type): Use value_factor_p. - -2008-03-08 Eric Botcazou - - * lang.opt (nostdlib): Move around. - * misc.c (gnat_handle_option): Fix formatting. - (gnat_dwarf_name): Move around. - * trans.c (Case_Statement_to_gnu): Fix formatting. - (gnat_to_gnu): Likewise. - * utils.c (aggregate_type_contains_array_p): Likewise. - (create_subprog_decl): Likewise. - -2008-03-08 Eric Botcazou - - * decl.c (gnat_to_gnu_entity) : Do not - bother propagating the TYPE_USER_ALIGN flag when creating a JM type. - -2008-03-08 Eric Botcazou - - * decl.c (gnat_to_gnu_entity) : Do not force - BIGGEST_ALIGNMENT when capping the alignment of records with - strict alignment and size clause. - -2008-03-08 Eric Botcazou - - * lang-specs.h: Pass -gnatwa if -Wall is passed. - * misc.c (gnat_handle_option) : Expand into -Wunused - and -Wuninitialized. - (gnat_post_options): Clear warn_unused_parameter. - -2008-03-08 Eric Botcazou - - * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently - aligned bit-fields, bumping the alignment of the record type if deemed - profitable. - (value_factor_p): Return false instead of 0. - -2008-03-08 Eric Botcazou - - * decl.c (gnat_to_gnu_entity) : Add support - for scalar types with small alignment. - -2008-03-08 Eric Botcazou - - * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label - from that of the front-end's end label. - (gnat_gimplify_stmt) : Set the SLOC of the backward goto - from that of the loop label. - -2008-03-07 Eric Botcazou - - * decl.c (gnat_to_gnu_entity) : Add - comment for the packed array type case. - * utils.c (build_template): Use a loop to strip padding or - containing records for justified modular types. - -2008-03-07 Eric Botcazou - - * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously - large alignments specified for types. - (validate_alignment): Minor cleanup. - -2008-03-07 Eric Botcazou - - * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined. - (gnat_to_gnu_entity) : Try to get a smaller form of - the component for packing, if possible, as well as if a component - size clause is specified. - : For an array type used to implement a packed - array, get the component type from the original array type. - Try to get a smaller form of the component for packing, if possible, - as well as if a component size clause is specified. - (round_up_to_align): New function. - (make_packable_type): Add in_record parameter. - For a padding record, preserve the size. If not in_record and the - size is too large for an integral mode, attempt to shrink the size - by lowering the alignment. - Ditch the padding bits of the last component. - Compute sizes and mode manually, and propagate the RM size. - Return a BLKmode record type if its size has shrunk. - (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT. - Use Original_Array_Type to retrieve the type in case of an error. - Adjust call to make_packable_type. - (gnat_to_gnu_field): Likewise. - (concat_id_with_name): Minor tweak. - * trans.c (larger_record_type_p): New predicate. - (call_to_gnu): Compute the nominal type of the object only if the - parameter is by-reference. Do the conversion actual type -> nominal - type if the nominal type is a larger record. - (gnat_to_gnu): Do not require integral modes on the source type to - avoid the conversion for types with identical names. - (addressable_p): Add gnu_type parameter. If it is specified, do not - return true if the expression is not addressable in gnu_type. - Adjust recursive calls. - * utils.c (finish_record_type): Remove dead code. - -2008-03-05 Eric Botcazou - - PR ada/35186 - * decl.c (maybe_pad_type): Avoid padding an integral type when - bumping its alignment is sufficient. - -2008-03-02 Ralf Wildenhues - - * gnatfind.adb, gnatxref.adb: Fix argument parsing typos. - * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright - statement. - * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb, - gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb, - sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source - code output strings. - * sem_type.adb, system-vms-ia64.ads, system-vms.ads, - system-vms_64.ads: Fix typos in ada source code comments. - * sinfo-cn.adb: Remove incomplete sentence. - - PR documentation/15479 - * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word. - -2008-02-27 Samuel Tardieu - - PR ada/22255 - * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed. - -2008-02-27 Samuel Tardieu - - PR ada/34799 - * sem_ch13.adb (Analyze_Record_Representation_Clause): Check - that underlying type is present. - -2008-02-26 Tom Tromey - - * misc.c (internal_error_function): Remove test of - USE_MAPPED_LOCATION. - * trans.c (gigi): Remove test of USE_MAPPED_LOCATION. - (Sloc_to_locus): Remove old location code. - -2008-02-25 Ralf Wildenhues - - * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and - `i.e.' by adding comma or `@:' as appropriate. - * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of - plain characters `C', use `@samp{C}'. - * gnat_ugn.texi (File Naming Rules, About gnatkr) - (Krunching Method): Likewise. - - * gnat_ugn.texi (Conventions): List environment variables and - metasyntactic variables. - (Compiling Programs): Fix notation of metasyntactic variables. - Add @file where appropriate. Use @file for file extensions, - @samp for strings. - * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp - instead of @file, @env instead of @code. - -2008-02-24 Ralf Wildenhues - - PR documentation/15479 - * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..' - and `...' with `@dots{}' or `@enddots{}'. - - PR documentation/15479 - * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command, - use @command instead of @code, @option instead of @samp or @code, - @code instead of @var, @samp instead of @file. - - PR documentation/15479 - * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors - in Makefile rules, by using `&&' rather than `;'. - -2008-02-17 Ralf Wildenhues - - PR documentation/15479 - * gnat_ugn.texi: In non-code, avoid space before colon. - (Regular Expressions in gnatfind and gnatxref): Fix indentation. - (Examples of gnatxref Usage): Use @command{vi} instead of - @file{vi}. - (Character Set Control): Do not use @code for UTF-8. - (Validity Checking): Fix typo "NaNs" instead of "NaN's". Do not - use @code for IEEE. - * gnat_rm.texi (Aggregates with static bounds): Fix typo in code - sample. - * gnat_rm.texi, gnat_ugn.texi: Fix typos. Bump copyright years. - -2008-02-11 Joel Sherrill - - PR ada/35143 - * env.c: Add __rtems__ to if defined. - * s-osinte-rtems.adb: Add To_Target_Priority. Fix formatting. - * s-osinte-rtems.ads: Add To_Target_Priority prototype and - PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants. Add - pragma Convention as required. - * gsocket.h: Make compile in and out of RTS. - * Makefile.in: Add system-rtems.ads. Build DEC extensions. - Use g-soccon-rtems.ads. - * g-soccon-rtems.ads, system-rtems.ads: New files. - -2008-02-06 Kaveh R. Ghazi - - PR other/35107 - * Make-lang.in (gnat1): Add $(GMPLIBS). - -2008-01-26 Eric Botcazou - - * decl.c (components_to_record): Improve comment. - -2008-01-22 Eric Botcazou - - * decl.c (components_to_record): Do not reuse the empty union type - if there is a representation clause on the record. - * trans.c (addressable_p): Return true for INTEGER_CST. - -2008-01-21 Eric Botcazou - - * trans.c (gnat_to_gnu) : Use POINTER_PLUS_EXPR - in pointer arithmetics. - * utils2.c (build_allocator): Likewise. - -2008-01-17 Eric Botcazou - - * utils.c (build_function_stub): Properly build the call expression. - -2008-01-14 Eric Botcazou - - * decl.c (gnat_to_gnu_entity) : Process renamings - before converting the expression to the type of the object. - * trans.c (maybe_stabilize_reference) : New case. - Stabilize constructors for special wrapping types. - -2008-01-13 Eric Botcazou - - * trans.c (call_to_gnu): Invoke the addressable_p predicate only - when necessary. Merge some conditional statements. Update comments. - Rename unchecked_convert_p local variable to suppress_type_conversion. - Do not suppress conversions in the In case. - (addressable_p) : Do not take alignment issues - into account on non strict-alignment platforms. - -2008-01-12 Eric Botcazou - - * utils.c (aggregate_type_contains_array_p): New predicate. - (create_field_decl): In a packed record, force byte alignment - for fields without specified position that contain an array. - -2008-01-12 Eric Botcazou - - * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression. - -2008-01-10 John David Anglin - - PR ada/34466 - * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for - sysconf call. - (bit_field): New packed boolean type used by cpu_set_t. - (cpu_set_t): New type corresponding to the C type with - the same name. Note that on the Ada side we use a bit - field array for the affinity mask. There is not need - for the C macro for setting individual bit. - (pthread_setaffinity_np): New imported routine. - -2008-01-03 Tero Koskinen - - PR ada/34647 - * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp() - on OpenBSD as is done on other BSD systems. - - PR ada/34645 - * sysdep.c (__gnat_ttyname, getc_immediate_nowait, - getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate - I/O. - - PR ada/34644 - * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing - clearenv(). - - PR ada/34646 - * init.c (__gnat_error_handler, __gnat_install_handler, - __gnat_init_float): Define for OpenBSD. - - * initialize.c (__gnat_initialize): Define for OpenBSD. - -2007-12-27 Samuel Tardieu - - PR ada/34553 - * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp() - instead of mktemp() or tmpnam() on NetBSD. - -2007-12-23 Eric Botcazou - - * trans.c (call_to_gnu): Make the temporary for non-addressable - In parameters passed by reference. - (addressable_p): Return true for STRING_CST and CALL_EXPR. - -2007-12-19 Robert Dewar - - * g-expect-vms.adb, g-expect.adb, s-poosiz.adb: - Add pragma Warnings (Off) for unassigned IN OUT arguments - - * sem_warn.adb (Output_Reference): Suppress messages for internal names - (Check_References): Extensive changes to tune up warnings - (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings - (Has_Pragma_Unmodifed_Check_Spec): New function - (Check_References): Implement pragma Unmodified - (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified - - * par-prag.adb: Dummy entry for pragma Unmodified - - * sem_prag.adb: Implement pragma Unmodified - - * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag - (Proc_Next_Component_Or_Discriminant): Fix typo. - Update comments. - - * sem_util.adb (Note_Possible_Modification): Add processinng for pragma - Unmodified. - (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func, - because the former already takes care of discarding the result. - (Mark_Coextensions): Remove ununused initial value from Is_Dynamic. - Add comment. - - * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified - -2007-12-19 Eric Botcazou - - * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads, - system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads, - system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads, - system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads, - system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads, - system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads, - system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, - system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads, - system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, - system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads - (Dynamic_Trampolines_Used): Delete. - - * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto. - Turn on stack probing mechanism on LynxOS. - -2007-12-19 Bob Duff - - * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate - the resulting tail recursion by hand. This prevents running out of - memory on deeply nested concatenations, since Field2 is where the left - operand of concatenations is stored. - Fix bug (was returning OK_Orig in some cases). Fix return subtype to - clarify that it can only return OK or Abandon. - - * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left - operand by iteration, in order to avoid running out of memory on - deeply-nested concatenations. Use the Parent pointer to get back up the - tree. - (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First, - Resolve_Op_Concat_Rest): New procedures split out of - Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is - clearer. - - * checks.adb (Remove_Checks): Use Traverse_Proc instead of - Traverse_Func, because the former already takes care of discarding the - result. - - * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func, - because the former already takes care of discarding the result. - (Remove_Warning_Messages): Use appropriate subtype for Status and - Discard - -2007-12-19 Ed Schonberg - - * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with - discriminants forces expansion of the aggregate into assignments. - (Init_Record_Controller): If the type of the aggregate is untagged and - is not inherently limited, the record controller is not limited either. - -2007-12-19 Robert Dewar - - * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in - handling compile time known size of record or array (case of front end - layout active, e.g. in GNAAMP). - -2007-12-19 Javier Miranda - - * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry - that forces the construction of static dispatch tables in case of - record subtypes. - -2007-12-19 Robert Dewar - - * exp_ch9.adb (Null_Statements): Moved to library level - (Trivial_Accept_OK): New function - (Expand_Accept_Declaration): Use Trivial_Accept_OK - (Expand_N_Accept_Statement): Use Trivial_Accept_OK - -2007-12-19 Robert Dewar - - * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type - in complex case where array is Volatile. - -2007-12-19 Ed Schonberg - - * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement - properly the Ada2005 rules concerning when the current instance of a - record type is aliased. - -2007-12-19 Ed Schonberg - - * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in - mangled declaration - (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record - declarations. - (P_Variant_Part): Cleaner patch for parenthesized discriminant - -2007-12-19 Vincent Celier - - * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when - package is not known - - * prj-attr.ads (Unknown_Package): New constant - Do not crash when an unknown package is in several projects - - * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as - ignored - - * prj-nmsc.adb (Check): Remove obsolete code related to no longer - existing package Language_Processing. - -2007-12-19 Ed Schonberg - Gary Dismukes - Samuel Tardieu - - PR ada/15803, ada/15805 - * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose - illegal access subtypes when there is a constrained partial view. - (Check_For_Premature_Usage): New procedure inside - Access_Subprogram_Declaration for checking that an access-to-subprogram - type doesn't reference its own name within any formal parameters or - result type (including within nested anonymous access types). - (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage. - (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the - context is an access_to_variable, the expression cannot be an - access_to_constant. - -2007-12-19 Bob Duff - - * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure. - (Analyze_Concatenation): Use iteration instead of recursion in order - to avoid running out of stack space for deeply nested concatenations. - -2007-12-19 Ed Schonberg - Gary Dismukes - - * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings - whose renamed entity is a subprogram that requires overriding. - (Premature_Usage): Test for the case of N_Full_Type_Declaration when - issuing an error for premature usage and issue a message that says - 'type' rather than 'object'. - -2007-12-19 Gary Dismukes - - PR ada/34149 - * sem_disp.adb (Check_Dispatching_Call): Augment existing test for - presence of a statically tagged operand (Present (Static_Tag)) with - test for Indeterm_Ancestor_Call when determining whether to propagate - the static tag to tag-indeterminate operands (which forces dispatching - on such calls). - (Check_Controlling_Formals): Ada2005, access parameters can have - defaults. - (Add_Dispatching_Operation, Check_Operation_From_Private_View): do - not insert subprogram in list of primitive operations if already there. - -2007-12-19 Tristan Gingold - - * utils.c (create_var_decl_1): call rest_of_decl_compilation only for - global variable. - -2007-12-19 Thomas Quinot - - Part of PR ada/33688 - * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary - datagram info on Linux. - -2007-12-19 Vincent Celier - - * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so - that the source path name is always found in the dependencies. - -2007-12-19 Robert Dewar - - * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o - Fix name of Wide_Wide_Latin_1/9 file names - Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads) - Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode - Add missing documentation for Ada.Command_Line.Response_File - Update list of warning letters for Warnings pragma - Add documentation for pragma Unmodified - -2007-12-19 Samuel Tardieu - - * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target. - -2007-12-17 Arnaud Charlet - - * s-vxwork-alpha.ads: Removed, no longer used. - -2007-12-15 Jakub Jelinek - - * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line. - -2007-12-13 Samuel Tardieu - - PR ada/34360 - * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name - mlib-tgt-specific.adb. - -2007-12-13 Bob Duff - - * trans.c (Attribute_to_gnu): Check for violations of the - No_Implicit_Dynamic_Code restriction. This checking used to be done in - the front end, but is moved here so we can make it more accurate. - -2007-12-13 Pascal Obry - - * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy - version is provided for older GNU/Linux distribution not - supporting thread affinity sets. - - * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf - call. - (bit_field): New packed boolean type used by cpu_set_t. - (cpu_set_t): New type corresponding to the C type with - the same name. Note that on the Ada side we use a bit - field array for the affinity mask. There is not need - for the C macro for setting individual bit. - (pthread_setaffinity_np): New imported routine. - - * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is - no null. - (Create_Task): Set the processor affinity mask if information - is present. - - * s-tasinf-linux.ads, s-tasinf-linux.adb: New files. - -2007-12-13 Robert Dewar - - * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads, - s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads, - s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads, - s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb, - s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads, - s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads, - s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads, - i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C - for subprogram pointers. - - * g-ctrl_c.adb: New file. - - * g-ctrl_c.ads (Install_Handler): New body. - - * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always - instead of obsolete function Is_Always_Inlined. - (Freeze_Entity): check for tagged type in imported C subprogram - (Freeze_Entity): check for 8-bit boolean in imported C subprogram - (Freeze_Entity): check for convention Ada subprogram pointer in - imported C subprogram. - (Freeze_Fixed_Point_Type): In the case of a base type where the low - bound would be chopped off and go from negative to zero, force - Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower - bound) so that the size computation for the base type will take - negative values into account. - -2007-12-13 Eric Botcazou - Bob Duff - Tristan Gingold - - * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, - system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads, - system-aix.ads, system-vxworks-sparcv9.ads, system-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-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, - system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, - system-vxworks-arm.ads, system-darwin-x86.ads, system.ads, - system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, - system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads, - system-vms-ia64.ads (Stack_Check_Limits): New target parameter. - (Always_Compatible_Rep): New flag to control trampolines globally. - (Dynamic_Trampolines_Used): New flag for implementing the - No_Implicit_Dynamic_Code restriction more correctly (not yet used, - and not yet set correctly for some targets). - - * s-taprop-vxworks.adb: Use stack limit method of stack checking. - Simply indirectly call s-stchop when a task is created. - - * ali.ads: - New flag added: Stack_Check_Switch_Set which is set when '-fstack-check' - appears as an argument (entries A) in an ALI file. - - * fe.h (Stack_Check_Limits): Declare new target parameter. - (Check_Implicit_Dynamic_Code_Allowed): New procedure. - - * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS. - This variable is declared in C to be sure not subject to elaboration - code. - (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to - Storage_Error. - - * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter. - (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters. - - * s-stchop.ads: Add comments. - - * s-stchop-vxworks.adb: Package almost fully rewritten to use stack - limit method of stack checking. - - * s-stchop-limit.ads: New file. - -2007-12-13 Robert Dewar - - * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb, - a-cihama.adb, g-awk.adb, - s-inmaop-posix.adb: Update handling of assigned value/unreferenced - warnings - - * exp_smem.adb: Update handling of assigned value/unreferenced warnings - - * sem.adb: Update handling of assigned value/unreferenced warnings - - * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return - - * lib-xref.ads: Improve documentation for k xref type - - * lib-xref.adb: - Update handling of assigned value/unreferenced warnings - (Generate_Reference): Warning for reference to entity for which a - pragma Unreferenced has been given should be unconditional. - If the entity is a discriminal, mark the original - discriminant as referenced. - - * sem_warn.ads, sem_warn.adb - (Check_One_Unit): Test Renamed_In_Spec to control giving warning for - no entities referenced in package - (Check_One_Unit): Don't give message about no entities referenced in - a package if a pragma Unreferenced has appeared. - Handle new warning flag -gnatw.a/-gnatw.A - Update handling of assigned value/unreferenced warnings - - * atree.h: Add flags up to Flag247 - (Flag231): New macro. - -2007-12-13 Jose Ruiz - - * adaint.h: (__gnat_plist_init): Not defined for RTX. - - * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for - RTX systems. - - * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb. - (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB, - EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS, - GNATLIB_SHARED for RTX run time): Use the versions required by RTX. - - * mingw32.h: - Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported. - - * sysdep.c (winflush_function for RTX): Procedure that does nothing - since we only have problems with Windows 95/98, which are not - supported by RTX. - (__gnat_ttyname): Return the empty string on Nucleus, just as - done on vxworks. - -2007-12-13 Robert Dewar - - * a-textio.adb, a-textio.ads: - Extensive changes to private part for wide character encoding - - * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb - (Look_Ahead): Fix mishandling of encoded sequences - Move declaration of Wch_Con to private part (should not be visible) - - * ali.adb (Scan_ALI): Set default encoding method to brackets instead of - UTF-8. Probably this is never used, but if it is, brackets is - clearly correct. - - * bindgen.adb (Get_WC_Encoding): New procedure to properly handle - setting wide character encoding for no main program case and when - encoding is specified using -W? - Initialize stack limit of environment task if stack limit method of - stack checking is enabled. - (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method - (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method - (Get_Main_Unit_Name): New function. - (Gen_Adainit_Ada): Add call to main program for .NET when needed. - (Gen_Output_File): Set Bind_Main_Program to True for .NET - - * bindusg.adb: Add line for -Wx switch - - * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function - Add comments - Add new useful constant WC_Longest_Sequences - - * switch-b.adb: Clean up handling of -Wx switch - For -gnatWx, set Wide_Character_Encoding_Method_Specified - - * switch-c.adb: -gnatg activates warning on assertion errors - For -gnatWx, set Wide_Character_Encoding_Method_Specified - - * s-wchcon.adb: (Is_Start_Of_Encoding): New function - -2007-12-13 Robert Dewar - Ed Schonberg - - * a-ngcoty.adb: New pragma Fast_Math - - * opt.adb: New pragma Fast_Math - - * par-prag.adb: - Add Implemented_By_Entry to the list of pragmas which do not require any - special processing. - (Favor_Top_Level): New pragma. - New pragma Fast_Math - - * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv - (Expand_N_Attribute_Reference, Displace_Allocator_Pointer, - Expand_Allocator_Expression): Take into account VM_Target - (Expand_Attribute, case 'Identity): Handle properly the case where - the prefix is a task interface. - New pragma Fast_Math - - * par.adb (Next_Token_Is): New function - (P_Pragma): Add Skipping parameter - (U_Left_Paren): New procedure - (U_Right_Paren): New procedure - New pragma Fast_Math - - * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after - subunit - New pragma Fast_Math - - * sem_prag.adb: Add significance value to table Sig_Flag for pragma - Implemented_By_Entry. - (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry. - (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep - items, since it can apply to more than one overloadable entity. Set - new flag Has_Pragma_Inline_Always for Inline_Always case. - (Analyze_Pragma, case Complex_Representation): Improve error message. - (Analyze_Pragma, case Assert): When assertions are disabled build the - rewritten code with Sloc of expression rather than pragma, so new - warning about failing is not deleted. - (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to - protected types and update error message to reflect that. Test whether - the protected type is allowed for the pragma (an error is issued if the - type has any entries, or components that do not have preelaborable - initialization). - New pragma Fast_Math - (Analyze_Pragma, case No_Return): Handle generic instance - - * snames.h, snames.ads, snames.adb: - Add new predefined name for interface primitive _Disp_Requeue. - New pragma Fast_Math - - * a-tags.ads, a-tags.adb: New calling sequence for - String_To_Wide_[Wide_]String - (Secondary_Tag): New subprogram. - - * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here - from Exp_Attr - New calling sequence for String_To_Wide_[Wide_]String - (Expand_Image_Attribute): Major rewrite. New calling sequence avoids - the use of the secondary stack for image routines. - - * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New - calling sequence for String_To_Wide_[Wide_]String - - * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in - Ada 95 mode - (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully - Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List - - * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode - (P_Formal_Part): Use Skipping parameter in P_Pragma call - to improve error recovery - - * par-util.adb (Next_Token_Is): New function - (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function - - * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to - semicolon if missing - (P_Pragma): Implement new Skipping parameter - Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List - Fix location of flag for unrecognized pragma message - - * par-tchk.adb (U_Left_Paren): New procedure - (U_Right_Paren): New procedure - -2007-12-13 Geert Bosch - - * a-tifiio.adb: - (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where - the second or later Scaled_Divide would omit leading zeroes, - resulting in too few digits produced and a Layout_Error as result. - (Put): Initialize Pos. - -2007-12-13 Robert Dewar - - atree.ads, atree.adb (Flag231..Flag247): New functions - (Set_Flag231..Set_Flag247): New procedures - (Basic_Set_Convention): Rename Set_Convention to be - Basic_Set_Convention - (Nkind_In): New functions - Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List - - * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always - instead - of obsolete function Is_Always_Inlined - (Register_Predefined_DT_Entry): Initialize slots of the second - secondary dispatch table. - Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List - (Expand_N_Function_Call): Remove special provision for stack checking. - - * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation): - Include _Disp_Requeue in the list of predefined operations. - (Find_Interface_ADT): Modified to fulfill the new specification. - Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List - - * par-ch4.adb, nlists.ads, nlists.adb: - Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List - - * sinfo.ads, sinfo.adb: (Nkind_In): New functions - Fix location of flag for unrecognized pragma message - - * sem_ch7.adb: Use Nkind_In - -2007-12-13 Vincent Celier - - * opt.ads: - Indicate what flags are used by the Project Manager, gprbuild and - gprclean. - (Opt.Follow_Links_For_Dirs): New flag - (Warn_On_Assertion_Failure): New flag - (Wide_Character_Encoding_Method_Specified): New flag - (Suppress_All_Inlining): New switch set by -fno-inline - (Real_VMS_Target): New flag - New pragma Fast_Math - -2007-12-13 Robert Dewar - - * back_end.adb: Recognize -fno-inline - -2007-12-13 Robert Dewar - - * checks.adb: Fix optimization problem with short-circuited form - -2007-12-13 Bob Duff - - * clean.adb (Usage): Add line for -aP - (Check_Version_And_Help): Change Check_Version_And_Help to be generic, - with a parameter "procedure Usage", instead of passing a pointer to a - procedure. This is to eliminate trampolines (since the Usage procedure - is often nested in a main procedure, and it would be inconvenient to - unnest it). - - * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch - to be generic, with a parameter "procedure Callback (...)", instead of - passing a pointer to a procedure. This is to eliminate trampolines - (since the Callback procedure is usually nested). - - * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb, - gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb - (Check_Version_And_Help): Change Check_Version_And_Help to be generic. - - * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets): - Use the generic Heap_Sort_G instead of Heap_Sort_A. - -2007-12-13 Hristian Kirtchev - - * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry. - (Implemented_By_Entry, Set_Implemented_By_Entry): New routines. - (Write_Entry_Flags): Add an entry for Implemented_By_Entry. - (Renamed_In_Spec): New flag - (Has_Pragma_Inline_Always): New flag - Add missing doc for pragma Obsolescent_Warning - Add missing doc for 17 additional unused flags (230-247) - (Is_Derived_Type): Remove condition "not Is_Generic_Type". - Alphabetize with clauses. - Separate Is_Thunk and Has_Thunks flags - (Write_Entity_Flags): Add forgotten entry for Has_Thunks - (Related_Interface): Renamed to Related_Type. - (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute. - (Set_Is_Flag): Restrict the assertion. - -2007-12-13 Vincent Celier - - * errout.adb (Output_Source_Line): Do not keep a trailing space after - the source line number if the source line is empty. - -2007-12-13 Geert Bosch - - * eval_fat.adb (Decompose_Int): Handle argument of zero. - (Compose): Remove special casing of zero. - (Exponent): Likewise. - (Fraction): Likewise. - (Machine): Likewise. - (Decompose): Update comment. - -2007-12-13 Ed Schonberg - - * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a - limited ancestor part, initialize controllers of enclosing record - before expanding ancestor aggregate. - (Gen_Assign): If a component of the aggregate is box-initialized, add - code to call Initialize if the component is controlled, and explicit - assignment of null if the component is an access type. - - Handle properly aggregates for limited types that appear in object - declarations when the aggregate contains controlled values such as - protected types. - When expanding limited aggregates into individual components, do not - call Adjust on controlled components that are limited. - -2007-12-13 Ed Schonberg - - * expander.adb: Take into account N_Subprogram_Renaming_Declaration - -2007-12-13 Hristian Kirtchev - - * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of - predefined primitive _Disp_Requeue. - (Make_Predefined_Primitive_Specs): Create the spec for predefined - primitive _Disp_Requeue. - (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the - type of formal Renamed_Eq to Entity_Id (instead of Node_Id). - (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is - an interface type. In case of limited interfaces we now declare all the - predefined primitives associated with synchronized interfaces as - abstract. - (Predef_Spec_Or_Body): For interface types generate abstract subprogram - declarations. - (Predefined_Primitive_Bodies): Add body of "=" if the parent of the - tagged type is an interface type and there is no user-defined equality - function. - Add also bodies of predefined primitives associated with synchronized - interfaces. - (Freeze_Record_Type): Do not build bodies of predefined primitives of - interface types because they are now defined abstract. - Add missing documentation. - (Expand_Record_Controller): Update occurrence of Related_Interface - to Related_Type. - (Build_Offset_To_Top_Functions): Do nothing in case of VM. - (Expand_N_Object_Declaration): Take into account VM_Target when handling - class wide interface object declaration. - (Expand_Previous_Access_Type): Do not create a duplicate master entity - if the access type already has one. - (Expand_N_Object_Declaration): Defend against attempt to validity check - generic types. Noticed for -gnatVcf specified with previous errors. - -2007-12-13 Arnaud Charlet - - * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer, - Expand_Allocator_Expression): Take into account VM_Target - - * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use - secondary stack when VM_Target /= No_VM - -2007-12-13 Javier Miranda - Ed Schonberg - - * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute - Is_Complation_Unit by Is_Library_Level_Entity in the code - that decides if the static dispatch tables need to be built. - (Wrap_Transient_Declaration): Do not generate a finalization call if - this is a renaming declaration and the renamed object is a component - of a controlled type. - -2007-12-13 Gary Dismukes - - * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration): - In the case where the renamed subprogram is a dereference, call - Force_Evaluation on the prefix. - -2007-12-13 Hristian Kirtchev - Ed Schonberg - - * exp_ch9.adb (Expand_N_Asynchronous_Select, - Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and - comment reformatting. - (Set_Privals): Inherit aliased flag from formal. From code reading. - (Build_Simple_Entry_Call): Out parameters of an access type are passed - by copy and initialized from the actual. This includes entry parameters. - (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95 - and Ada 2005 models of requeue. - (Null_Statements): Still connsider do-end block null if it contains - Unreferenced and Warnings pragmas. - (Expand_N_Accept_Statement): Do not optimize away null do end if - dispatching policy is other than defaulted. - (Expand_N_Timed_Entry_Call): When the triggering statement is a - dispatching call, manually analyze the delay statement. - (Find_Parameter_Type): Move subprogram to Sem_Util. - -2007-12-13 Hristian Kirtchev - Javier Miranda - - * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive - _Disp_Requeue occupies dispatch table slot number 15. Move - _Disp_Timed_Select to slot 16. - (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which - generate the spec and body of _Disp_Reqeueue. - (Make_DT): Build and initialize the second dispatch table. - Handle initialization of RC_Offset when the parent - is a private type with variable size components. - (Make_Secondary_DT): Complete documentation. Add support to - initialize the second dispatch table. - (Make_Tags): Generate the tag of the second dispatch table. - (Register_Primitive): Add support to register primitives in the - second dispatch table. - -2007-12-13 Pascal Obry - - * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on - Windows. This signal is used by gnatmake to kill child processes for - example. - -2007-12-13 Javier Miranda - - * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing - support for generic dispatching constructor calls in which we need to - locate the tag of a secondary dispatch table associated with an - interface type to properly dispatch the call. - (Expand_N_Attribute_Reference [case Address], - Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix - handling of VM targets. - -2007-12-13 Robert Dewar - Ed Schonberg - - * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for - assert fail - - * ug_words: Add entries for -gnatw.a -gnatw.A - - * sem_res.adb (Set_String_Literal_Subtype): If the context of the - literal is a subtype with non-static constraints, use the base type of - the context as the base of the string subtype, to prevent type - mismatches in gigi. - (Resolve_Actuals): If the actual is an entity name, generate a - reference before the actual is resolved and expanded, to prevent - spurious warnings on formals of enclosing protected operations. - (Analyze_Overloaded_Selected_Component): If type of prefix if - class-wide, use visible components of base type. - (Resolve_Selected_Component): Ditto. - (Resolve_Short_Circuit): Detect case of pragma Assert argument - evaluating to False, and issue warning message. - - * usage.adb: Add lines for -gnatw.a and -gnatw.A - -2007-12-13 Emmanuel Briot - - * g-calend.ads (No_Time): New constant, to represent an uninitialized - time value - - * g-catiio.ads, g-catiio.adb (Value): Added support for more date - formats. - (Month_Name_To_Number): New subprogram - - * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive - letter to upper-case. - -2007-12-13 Robert Dewar - Ed Schonberg - - * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target - - * layout.adb (Resolve_Attribute, case 'Access): If designated type of - context is a limited view, use non-limited view when available. If the - non-limited view is an unconstrained array, this enforces consistency - requirements in 3.10.2 (27). - (Layout_Type): For an access type whose designated type is a limited - view, examine its declaration to determine if it is an unconstrained - array, and size the access type accordingly. - (Layout_Type): Do not force 32-bits for convention c subprogram - pointers in -gnatdm mode, only if real vms target. - - * sem_attr.adb (Analyze_Access_Attribute): Use new flag - Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined - (Analyze_Access_Attribute,Attribute_Address): Remove checks for - violations of the No_Implicit_Dynamic_Code restriction. - (Resolve_Attribute, case 'Access): If designated type of context is a - limited view, use non-limited view when available. If the non-limited - view is an unconstrained array, this enforces consistency requirements - in 3.10.2 (27). - (Layout_Type): For an access type whose designated type is a limited - view, examine its declaration to determine if it is an unconstrained - array, and size the access type accordingly. - -2007-12-13 Vincent Celier - - * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when - object directory of main project does not exist. - On VMS, correctly set then environment variable for the source - directories. - -2007-12-13 Vasiliy Fofanov - - * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when - set to True this procedure will create the value of type REG_EXPAND_SZ. - It was only possible to create REG_SZ values before. - -2007-12-13 Robert Dewar - - * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads, - g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads, - namet-sp.adb, namet-sp.ads: New files. - - * g-speche.adb: Use generic routine in g-spchge - - * s-wchcnv.ads, s-wchcnv.adb: - Minor code cleanup (make formal type consistent with spec) - - * namet.adb: Update comments. - - * par-endh.adb (Evaluate_End_Entry): Use new - Namet.Sp.Is_Bad_Spelling_Of function - - * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function - - * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an - ancestor is an access type initialized with a box, set its type - explicitly, for use in subsequent expansion. - (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of - function - -2007-12-13 Robert Dewar - - * g-spipat.adb (Break): Fix accessibility error (vsn taking not null - access Vstring) - -2007-12-13 Robert Dewar - - * inline.adb (Back_End_Cannot_Inline): Use new flag - Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined - - * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag - Has_Pragma_Inline_Always instead. - of obsolete function Is_Always_Inlined - (Build_Body_To_Inline): Same change - (Cannot_Inline): Same change - Do not give warning on exception raise in No_Return function - - * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited - component has two inconsistent component clauses in the same record - representation clause, favor the message that complains about - duplication rather than inconsistency. - Update comments. - (Record_Representation_Clause): Do not warn on missing component - clauses for inherited components of a type extension. - (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for - an overloadable item if it is a pragma that can apply to multiple - overloadable entities (e.g. Inline) because a pragma cannot be on - more than one chain at a time. - (Validate_Unchecked_Conversion): Add code to warn on unchecked - conversion where one of the operands is Ada.Calendar.Time. - (Analyze_Attribute_Definition_Clause): Fix typo in error message. - For now, ignore Component_Size clause on VM targets, as done for - pragma Pack. - -2007-12-13 Emmanuel Briot - Vincent Celier - - * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a - string - (Must_Check_Configuration, Default_Language_Is_Ada): new flags in - prj.ads - (Hash): Move instantiation of System.HTable.Hash from spec to body - (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive - systems, since we do not need to recompute the Name_Id for the canonical - file name. - (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id - as a parameter. This parameter is in fact always "ada" in all calls, and - we were doing 160560 extra calls to Name_Find to convert it to Name_Ada - while loading a project with 40000 files - - * prj-attr.adb: Fix name of attribute Dependency_Driver - Change the kind of indexing for attribute Root - - * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of - variables already declared, in case constructions. - - * prj-env.adb (Initialize): Reset Current_Source_Path_File and - Current_Object_Path_File to No_Path. - - * prj-ext.adb (Initialize_Project_Path): In multi language mode, use - ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty. - - * prj-makr.adb: new parameter Current_Dir - - * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for - Ada sources when language is not Ada. - Change Opt.Follow_Links to Opt.Follow_Links_For_Files. - (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms - (Must_Check_Configuration, Default_Language_Is_Ada): new flags. - (Locate_Directory): Always resolve links when computing Canonical_Path - (Look_For_Sources): Make sure that Name_Buffer contains the file name - in Source_Files before checking for the presence of a directory - separator. - Optimize calls to Name_Find when on case sensitive systems. - (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id - as a parameter. - (Prj.Nmsc.Check): new parameter Current_Dir - (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They - cannot be empty and the spec suffix cannot be the same as the body or - separate suffix. - (Get_Unit): When a file name can be of several unit kinds (spec, body or - subunit), always consider the longest suffix. - (Check_Configuration): Do not issue an error if there is no compiler - for a language. Just issue a warning and ignore the sources for the - language. - (Check_Library_Attributes): Only check Library_Dir if Library_Name is - not empty. - (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity - (Unit_Exceptions): New hash table - (Check_Naming_Schemes): Check if a file that could be a unit because of - the naming scheme is not in fact a source because there is an exception - for the unit. - (Look_For_Sources): Put the unit exceptions in hash table - Unit_Exceptions - (Get_Unit_Exceptions): Give initial value No_Source to local variable - Other_Part to avoid exception when code is compiled with validity - checking. - (Get_Sources_From_File): Check that there is no directory information - in the file names. - (Look_For_Sources): Check that there is no directory information in the - list of file names in Source_Files. - (Look_For_Sources): In multi-language mode, do not allow exception file - names that are excluded. - (Excluded_Sources_Htable): New hash table - (Search_Directories.Check_File): New procedure to simplify - Search_Directories. - (Search_Directories): Do not consider excluded sources - (Look_For_Sources): Populate Excluded_Sources_Htable before calling - Search_Directories. - (Get_Exceptions): Set component Lang_Kind of Source_Data - (Get_Unit_Exceptions): Ditto - (Search_Directories): Ditto - - * prj-pars.adb: new parameter Current_Dir - - * prj-part.ads, prj-part.adb: - Change Opt.Follow_Links to Opt.Follow_Links_For_Files. - (Opt.Follow_Links_For_Dirs): New flag - (Project_Path_Name_Of): Cache information returned by this routine as - Locate_Regular_File is a costly routine. The code to output a log - information and the effective call to Locate_Regular_File is now - factorized into a routine (code clean-up). - (Parse, Parse_Single_Project): new parameter Current_Dir - When main project file cannot be found, indicate in the error - message the project path that was used to do the search. - - * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag - (Prj.Proc.Process*): new parameter Current_Dir - - * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files - -2007-12-13 Bob Duff - - * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New - procedure to be called from the back end to check the - No_Implicit_Dynamic_Code restriction. - -2007-12-13 Arnaud Charlet - - * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call - Fixes another case where RTE_Available_Call was ignored instead of being - taken into account. - (Load_Fail): Ditto. - - * rtsfind.ads: Add new entries. - -2007-12-13 Robert Dewar - - * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads, - g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files. - - * scn.adb: Implement BOM recognition - -2007-12-13 Thomas Quinot - Ed Schonberg - - * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level - subprogram body that acts as its own spec may not have a non-private - WITH clause on a private sibling. - (Build_Unit_Name): If the parent unit in the name in a with_clause on a - child unit is a renaming, create an implicit with_clause on that - parent, and not on the unit it renames, to prevent visibility errors - in the current unit. - -2007-12-13 Ed Schonberg - - * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram - renaming declaration, use the Slocs of the formal parameters from the - declaration of the formal subprogram when creating the formal parameter - entities in the renaming declaration. - (Analyze_Formal_Type_Declaration): Change the placement of the error - message concerning illegal known discriminants. It is now posted on the - type rather than on the first discriminant. This change ensures early - error report. - (Freeze_Subprogram_Body): If the generic subprogram is nested within - the package body that contains the instance, do not generate an - out-of-place freeze node for the enclosing package. - (Collect_Previous_Instantiations): Ignore internal instantiations - generated for formal packages. - (Validate_Derived_Type_Instance): Add a check that when a formal - derived type is Known_To_Have_Preelab_Init then the actual type must - have preelaborable initialization, and issue an error when this - condition is violated. - -2007-12-13 Robert Dewar - - * s-imenne.adb, s-imenne.ads: New files. - - * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb, - s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb, - s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads, - s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb, - s-imgwch.ads: New calling sequence for Image routines to avoid sec - stack usage. - -2007-12-13 Javier Miranda - Ed Schonberg - - * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid - generation of spurious error if parent is an interface type; caused - because predefined primitive bodies will be generated later by - Freeze_Record_Type. - (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init - flag. - (Derive_Subprograms): Handle derivations of predefined primitives - after all the user-defined primitives to ensure that they are - found in proper order in instantiations. - (Add_Interface_Tag_Components, Inherit_Components): Update occurrences - of Related_Interface to Related_Type. - (Record_Type_Declaration): Minor reordering of calls to decorate the - Tag component because the entity must have set its Ekind attribute - before setting its Is_Tag attribute. - (Analyze_Subtype_Declaration): In the case of subtypes with - Private_Kind, inherit Known_To_Have_Preelab_Init from the parent. - -2007-12-13 Hristian Kirtchev - Ed Schonberg - - * sem_ch4.adb (Analyze_Selected_Component): Include the requeue - statement to the list of contexts where a selected component with a - concurrent tagged type prefix should yield a primitive operation. - (Find_Primitive_Operation): Handle case of class-wide types. - (Analyze_Overloaded_Selected_Component): If type of prefix is - class-wide, use visible components of base type. - (Resolve_Selected_Component): Ditto. - (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a - formal of a generic subprogram. find candidate interpretations by - scanning the list of generic formal declarations.: - (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete - type from a limited_with_clause, and the full view is available, use it - for subsequent semantic checks. - (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function - (Find_Primitive_Operation): New function. - (Analyze_Overloaded_Selected_Component): insert explicit dereference - only once if several interpretations of the prefix yield an access type. - (Try_Object_Operation): Code and comment cleanup. - (Analyze_Selected_Component): Reorder local variables. Minot comment and - code reformatting. When the type of the prefix is tagged concurrent, a - correct interpretation might be available in the primitive and - class-wide operations of the type. - -2007-12-13 Robert Dewar - Ed Schonberg - - * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for - renaming entry as subprogram using rename-as-body if subprogram spec - frozen. - (Use_One_Type): The clause is legal on an access type whose designated - type has a limited view. - (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function - (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function - (Analyze_Renamed_Primitive_Operation): new procedure to determine the - operation denoted by a selected component. - (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because - it can be an expression, possibly overloaded, that returns a task or - an access to one. - -2007-12-13 Hristian Kirtchev - Gary Dismukes - - * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a - requeue statement is dispatching. Do not emit an error when the name is - not an entry and the context is a dispatching select. Add code to - perform subtype conformance between the formals of the current entry - and those of the target interface primitive. - (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_ - Timed_Entry_Call): Analyze the triggering statement as the first step of - the processing. If this is a dispatching select, postpone the analysis - of all select statements until the Expander transforms the select. This - approach avoids generating duplicate identifiers after the Expander has - replicated some of the select statements. In case the Expander is - disabled, perform regular analysis. - (Check_Triggering_Statement): New routine. - (Analyze_Requeue): Exclude any interpretations that are not entries when - checking overloaded names in a requeue. Also test type conformance for - matching interpretations rather than requiring subtype conformance at - that point to conform with the RM's resolution rule for requeues. - -2007-12-13 Ed Schonberg - - * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an - inherited operation is a defaulted tag-indeterminate call, and there is - a statically tagged actual, use the static tag as a controlling actual - for the defaulted actual. - -2007-12-13 Geert Bosch - - * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static - context, so do not call Check_Non_Static_Context. - -2007-12-13 Hristian Kirtchev - - * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check - whether formal E is an entity which may have parameters. - -2007-12-13 Bob Duff - Javier Miranda - Robert Dewar - - * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine. - (Set_Convention): New procedure to set the Convention flag, and in - addition make sure the Favor_Top_Level flag is kept in sync (all - foreign-language conventions require Favor_Top_Level = True). - (Collect_Abstract_Interfaces): Update occurrences of Related_Interface - to Related_Type. - (Collect_Interfaces_Info): Minor update to handle the two secondary - dispatch tables. Update occurrence of Related_Interface to Related_Type. - (Generate_Parent_Ref): Add parameter to specify entity to check - (Is_Preelaborable_Expression): Allow the name of a discriminant to - initialize a component of a type with preelaborable initialization. - This includes the case of a discriminal used in such a context. - (Is_Dependent_Component_Of_Mutable_Object): Take into account the - latest Ada 2005 rules about renaming and 'Access of - discriminant-dependent components. - (Check_Nested_Access): Add handling when there are no enclosing - subprograms (e.g. case of a package body). - (Find_Parameter_Type): Factor routine from several other compiler files. - Remove routine from Find_Overridden_Synchronized_Primitive. - -2007-12-13 Thomas Quinot - - * sinput.adb (Get_Source_File_Index): Add assertion to guard against - an invalid access to an uninitialized slot in the - Source_File_Index_Table. - -2007-12-13 Thomas Quinot - - * sinput-l.adb (Load_File): Disable style checks when preprocessing. - -2007-12-13 Bob Duff - - * s-soflin.ads: Apply new pragma Favor_Top_Level to all - access-to-subprogram types in this package. - -2007-12-13 Olivier Hainque - - * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant - with Stack_Grows_Down in System.Parameters. Rename Array_Address into - Stack_Overlay_Address and document that we are using an internal - abstraction. - (Byte_Size, Unsigned_32_Size): Remove, now useless. - (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used - consistently throughout the various implementation pieces. - - * s-stausa.adb (Stack_Slots): New type, abstraction for the stack - overlay we are using to fill the stack area with patterns. - (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots. - (Push_Index_Step_For, Pop_Index_Step_For): Likewise. - (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction. - -2007-12-13 Robert Dewar - - * s-stoele.adb ("mod"): mod negative value raises Constraint_Error - -2007-12-13 Arnaud Charlet - - * s-tassta.adb: - (Create_Task): Take into account tasks created by foreign threads. - Code clean up: use constants instead of hard coded values. - -2007-12-13 Robert Dewar - - * styleg.adb (Check_Comment): More liberal rules for comment placement - -2007-12-13 Olivier Hainque - - * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use - of Procedure Value instead of Frame Pointer as the invocation - identifier associated with the instruction pointer in each traceback - entry. - - * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For, - TB_Entry_For): Revert back to use of Procedure Value instead of Frame - Pointer as the invocation identifier passed to tbk$symbolize. - - * s-traent-vms.ads, s-traent-vms.adb - (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of - Procedure Value instead of Frame Pointer as the invocation identifier - passed to tbk$symbolize. - -2007-12-13 Robert Dewar - - * tbuild.ads, tbuild.adb: - Fix location of flag for unrecognized pragma message - -2007-12-13 Robert Dewar - - * treepr.ads, treepr.adb: (pl): implement use of positive value - shorthands - -2007-12-13 Robert Dewar - - * xeinfo.adb: Remove warnings - * xnmake.adb: Remove warnings - * xsinfo.adb: Remove warnings - * xtreeprs.adb: Remove warnings - * xsnames.adb: Remove warnings - - * a-ngcoar.adb: Fix typo. - * s-interr.adb: Minor reformatting - * env.c: Minor reformatting. - * g-bytswa.adb: Minor reformatting. - * g-rannum.ads: Minor documentation improvements - * s-tasinf-mingw.adb: Minor header fix - * a-clrefi.adb: Minor reformatting - * g-sttsne.ads: Minor documentation improvement - * g-sttsne-locking.ads: Minor documentation improvement - * g-soliop-solaris.ads: Minor documentation improvement - * g-soliop-mingw.ads: Minor documentation improvement - * g-soliop.ads: Minor documentation improvement - * exp_aggr.ads: Minor reformatting - * debug.adb: Add documentation for the gprbuild debug flags - * exp_ch2.adb: Use Nkind_In to simplify code throughout - * exp_pakd.adb: Minor reformatting - - * g-altive.ads, g-alleve.adb: Remove assertions. - Add comment about minor differences between targets regarding - floating-point operations. - - * g-thread.adb: Remove pragma unreferenced. - * lib.ads: Minor reformatting - * par-ch9.adb: Minor reformatting of error messages - * sem_case.adb: Minor reformatting - * s-fileio.adb: Minor reformattinng - * s-vmexta.ads: Minor typo - * vxaddr2line.adb: - Take into account 'Success' value as per new GNAT warning. - -2007-12-13 Vincent Celier - - * a-direct.adb (Create_Path): Always take '/' as a directory separator, - even on Windows - -2007-12-13 Robert Dewar - Bob Duff - - * gnat_ugn.texi: Dcoument new rules for style check comment alignment - Document that suffixes may be terminations of each others - Add doc for -gnatw.a and -gnatw.A - Document gnatbind -Wx switch - Document BOM recognition - Document pragma Implemented_By_Entry. - Document new units. - - * gnat_rm.texi: (Favor_Top_Level): Document new pragma. - Add doc for pragma Unreferenced suppressing no entities referenced msg - Add documentation of GNAT.Directory_Operations.Iteration - Add documentation of GNAT.Random_Numbers - Add documentation for pragma Shared. - Correct documentation for Bit_Order - Add documentation for the Pool_Address attribute. - Fix and improve documentation of pragma machine_attribute. - New pragma Fast_Math - Document BOM recognition - - * vms_data.ads: Add entries for -gnatw.a -gnatw.A - Add /Wide_Character_Encoding for binder - Add qualifier for the new gnatpp option --no-separate-loop-then - -2007-12-13 Matthew Heaney - - * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document - which generic formal operations are called for each operation. - -2007-12-13 Olivier Hainque - - * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh. - (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh. - -2007-12-13 Emmanuel Briot - - * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute - Reference_Dir unless we actually need it. - -2007-12-13 Vasiliy Fofanov - Tristan Gingold - - * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit. - - * s-osprim-vms.adb, - a-calend-vms.adb: Remove pragma warning off and add pragma - unreferenced. - -2007-12-13 Robert Dewar - - * impunit.adb: Add entries for missing units - - * Makefile.rtl: Add new run-time units. - - * Make-lang.in: Update dependencies. - -2007-12-13 Bob Duff - - * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram - types, set Can_Use_Internal_Rep appropriately, based on - Always_Compatible_Rep_On_Target. - -2007-12-13 Gary Dismukes - Arnaud Charlet - - * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing - it to the front end and setting the aamp_target environment variable - to the switch's argument to ensure that gnaampbind and gnaamplink will - take the specified library into account. - (Make): Only set Check_Object_Consistency to False for JVM, not for CIL - target, since the CIL compiler supports an "object" file (.il files). - -2007-12-13 Vincent Celier - - * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure - (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half. - -2007-12-13 Geert Bosch - - * s-parame-vxworks.adb: - Update comments to reflect usage of this package by Nucleus. - -2007-12-13 Arnaud Charlet - - * i-vxwork.ads: Kill new warning on Convention C, since changing the - spec would break code. - - * i-forbla-unimplemented.ads, vx_stack_info.c: New files. - - * system-vxworks-alpha.ads: Removed. - -2007-12-10 Eric Botcazou - - * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around. - -2007-12-09 Samuel Tardieu - - PR ada/34366 - * sem_ch3.adb (Designates_T): New function. - (Mentions_T): Factor reusable part of the logic into Designates_T. - Consider non-access parameters and access and non-access result. - (Check_Anonymous_Access_Components): Set ekind of anonymous access to - E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type. - - * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type. - -2007-12-07 Ludovic Brenta - - PR ada/34361 - * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect - the new implementation of target-specific calls. - -2007-12-07 Olivier Hainque - - * decl.c (gnat_to_gnu_entity) : When computing - the designated full view, only follow a second level Full_View link - for Non_Limited_Views of from_limited_with references. - -2007-12-07 Samuel Tardieu - - PR ada/15805 - * sem_ch6.adb (Process_Formals): Prevent an access type formal - to be initialized with an access to constant object. - - * sem_ch3.adb (Analyze_Object_Declaration): Signal an error - when an access to constant is used to initialize an access - value. - - PR ada/21346 - * a-direct.adb (Compose): Containing_Directory can be an empty string. - -2007-12-07 Olivier Hainque - - PR ada/34173 - * decl.c (gnat_to_gnu_entity) : When setting - the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if - this is from an alignment clause on the GNAT entity. - * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN - to distinguish the case where we set it from the type's alignment. - When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate - whether this alignment was set from an explicit alignment clause. - -2007-12-06 Eric Botcazou - - * decl.c (make_packable_type): Revert last change. - (gnat_to_gnu_field): Avoid setting size and position multiple times. - * utils.c (finish_record_type): Retrieve the real name of the type. - -2007-12-05 Eric Botcazou - - * trans.c (lvalue_required_p): Take base node directly instead - of its parent. Rename second parameter to 'gnu_type'. - : Return 0 if the node isn't the prefix. - : Likewise. - (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue. - Adjust calls to lvalue_required_p. - -2007-12-05 Samuel Tardieu - - PR ada/21489 - * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type - parameters of an entry call. - -2007-12-03 Robert Dewar - Samuel Tardieu - - PR ada/34287 - * sem_util.adb (Safe_To_Capture_Value): Do not capture values - of variables declared in a library-level package. - -2007-12-02 Samuel Tardieu - - * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead - of Empty_String'Unchecked_Access. - - * Makefile.in: Add support for sh4-linux. - - * system-linux-sh4.ads: New file. - -2007-12-01 Kostik Belousov - - PR ada/33722 - * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv() - and its argument must not be free()ed. - -2007-11-29 Eric Botcazou - - * decl.c (make_packable_type): Retrieve the real name of the type. - (maybe_pad_type): Simplify similar code. - -2007-11-28 Samuel Tardieu - - PR ada/15804 - * par-ch3.adb (P_Variant_Part): Signal an error when anything other - than an identifier is used after "case" in a variant_part. - - PR ada/17318 - * par-ch4.adb (Is_Parameterless_Attribute): New map. - (P_Name, Scan_Apostrophe block): Parse left parenthesis following - attribute name or not depending on the new map. - - * sem-attr.adb (Analyze_Attribute): Parameterless attributes - returning a string or a type will not be called with improper - arguments. - - * sem-attr.ads (Attribute_Class_Array): Move to snames.ads. - - * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads. - - PR ada/32792 - * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause): - Signal an error when attribute argument is a fixed-point value of - an unknown type. - - PR ada/22559 - * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on - a derived ordinary fixed point type. - - * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute - RM_Size when a Small clause is found. - -2007-11-26 Andreas Krebbel - - PR 34081/C++ - * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu): - Pass 'false' for the new allocate_struct_function parameter. - * utils.c (build_function_stub): Likewise. - -2007-11-25 Richard Guenther - - * utils.c (gnat_pushlevel): Use BLOCK_CHAIN. - (gnat_poplevel): Likewise. - -2007-11-25 Eric Botcazou - - * decl.c (gnat_to_gnu_entity) : If the type has - strict alignment, no alignment clause and a known static size, cap - the type alignment to the greatest power of 2 factor of the size. - (gnat_to_gnu_field): If the field has a component clause, is aliased - or of a type with strict alignment, require that its size be equal to - that of the type. - (validate_size): Use the type size as the minimum size for a type with - strict alignment. - -2007-11-23 Samuel Tardieu - - * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb, - s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb, - s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb: - Use 'Access instead of 'Unchecked_Access in second and third - arguments of pthread_sigmask. - -2007-11-23 Eric Botcazou - - * decl.c (ceil_alignment): New function. - (gnat_to_gnu_entity): Use it to set the alignment on atomic types. - (make_packable_type): Likewise. - -2007-11-22 Olivier Hainque - - * trans.c (gnat_to_gnu) : Reformat lines - to fit in 80 columns. - -2007-11-21 Aurelien Jarno - - * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function. - * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB. - -2007-11-19 Eric Botcazou - - PR ada/34098 - * misc.c (gnat_adjust_rli): Delete. - (gnat_init): Do not initialize the translation code here. - Do not call set_lang_adjust_rli. - * trans.c (init_code_table): Make static. - (gnat_init_stmt_group): Delete. - (gigi): Initialize the translation code entirely here. - Emit debug info for the common types here instead of... - * utils.c (gnat_init_decl_processing): ...here. - * gigi.h (init_code_table): Delete. - (gnat_init_stmt_group): Likewise. - -2007-11-16 Olivier Hainque - - * utils2.c (build_call_alloc_dealloc) : Move the code - retrieving an allocator return value from a super-aligned address from - here to ... - * trans.c (gnat_to_gnu) : ... here, and don't - expect a super-aligned address for a fat or thin pointer. - -2007-11-14 Eric Botcazou - - * trans.c (call_to_gnu): Always set the source location on the call - expression. If the function returns-by-target, also set it on the - address expression. - -2007-11-14 Samuel Tardieu - - * adaint.c, init.c, initialize.c, link.c: Remove system-specific - sections of non-supported Interix target. - - * s-osinte-interix.ads: Removed. - - * i-cstrin.ads (chars_ptr): Make it a C convention type. - -2007-11-13 Samuel Tardieu - - * a-tasatt.adb: Add a comment at the beginning of the package - explaining why in general 'Unchecked_Access must be used instead - of 'Access. - - * sem_prag.adb (Process_Convention): Move the test for the - entity on which the Convention pragma applies down to also - forbid pragma Convention on enumeration literals reached - through renamings. - -2007-11-10 Samuel Tardieu - - * a-tasatt.adb: Revert previous change for this file as it will - generate an error when this package is instantiated from a - local context. - -2007-11-07 Samuel Tardieu - - * a-tasatt.adb: Type Wrapper should be declared in comment instead - of already declared type Node_Access. - Use 'Access instead of 'Unchecked_Access when applicable. Local - lifetime is the one of the package. - (Set_Value): W is allocated on the heap. - - * g-socket.adb: Use 'Access instead of 'Unchecked_Access when - applicable. - (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous - access type. - (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous - access type. - - * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when - applicable. - (elaboration code): Timer_Queue lifetime is the one of the - package. - - * tracebak.c (i386 alternative): Remove useless comparaison - which is always false; LOWEST_ADDRESS is 0 and is never greater - than an unsigned integer. - - * sem_attr.adb (Analyze_Attribute): Remove duplicate identical - embedded check for "Ada_Version >= Ada_05". - -2007-11-07 Olivier Hainque - - * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we - craft and expand comment. - -2007-11-01 Eric Botcazou - - * lang-specs.h: Move translation of -fRTS= after -gnatez switch. - -2007-10-23 Eric Botcazou - - * misc.c (gnat_handle_option): Replace call to abort with - call to gcc_unreachable. - (gnat_init): Likewise. - (gnat_expand_expr): Likewise. - (fp_prec_to_size): Likewise. - (fp_size_to_prec): Likewise. - -2007-10-23 Richard Guenther - - PR bootstrap/33608 - * tracebak.c: #undef abort after including system.h. - -2007-10-20 Danny Smith - - * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb, - s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads - for win32 targets. - (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets. - -2007-10-15 Eric Botcazou - - * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter. - Set the protection status of the guard page based on the value of On. - - * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter. - - * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone. - (Exit_Task): Pass False to Hide_Yellow_Zone. - -2007-10-15 Robert Dewar - - * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, - s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb, - a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb, - checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb, - freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb, - gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb, - mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb, - prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb, - sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb, - s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads, - uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb, - a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb, - a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb, - a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb, - a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb, - a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb: - Minor reformatting. - Add Unreferenced and Warnings (Off) pragmas for cases of - variables modified calls where they are IN OUT or OUT parameters and - the resulting values are not subsequently referenced. In a few cases, - we also remove redundant code found by the new warnings. - - * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads, - sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb, - sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb, - sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new - warning controlled by -gnatw.o that warns on cases of out parameter - values being ignored. - -2007-10-15 Geert Bosch - - * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus. - - * expect.c: Initial port to arm-mentor-nucleus. - Use kill for __gnat_kill() on VMS. - -2007-10-15 Emmanuel Briot - - * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default - value. - (Xref_Record): Change type for Line, since in the case of a reference to - a predefined entity (as happens for array index types), the line is set - to 0. - Add support for parsing multiple array index types info, or - multiple inherited interfaces info. This information cannot be stored - in Xref_Entity_Record, which only supports a single instance of Tref_*, - and is therefore stored in the list of references instead. It has a - special treatement later on in tools that use this information. - -2007-10-15 Tristan Gingold - - * debug.adb: Document use of -gnatd.a and -gnatd.I - - * layout.adb: On OpenVMS -gnatd.a disables alignment optimization. - -2007-10-15 Javier Miranda - - * exp_attr.adb (Expand_N_Attribute_Reference): Case Access, - Unchecked_Access, and Unrestricted_Access. Cleanup code that takes - care of access to class-wide interface types plus removal of bizarre - conversion of tagged object to access type (reported by Gary - Dismukes). After this patch there is no need to perform any - additional management on these nodes in Expand_Interface_Actuals. - - * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code - that handles use of 'Access and 'Unchecked_Access applied to - actuals covering interface types. Such code is now - centralized in Expand_N_Attribute_Reference. - -2007-10-15 Ed Schonberg - - * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization - of tagged types whose ultimate ancestor is a CPP type. - (Freeze_Array_Type): For a packed array type, generate an initialization - procedure if the type is public, to handle properly a client that - specifies Normalize_Scalars. - -2007-10-15 Hristian Kirtchev - - * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs - inside a generic body, retrieve the full view of the entry family - discrete subtype if available. - -2007-10-15 Thomas Quinot - - * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not - attempt to generate stubs for hidden primitive operations. - -2007-10-15 Vincent Celier - - * mlib-tgt-specific.adb (Support_For_Libraries): New function, - returning None, used when there is no platform specific body for - MLib.Tgt.Specific. - -2007-10-15 Bob Duff - - * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A - (passing'Unrestricted_Access of nested subprograms to Sort) with use of - the generic Heap_Sort_G, in order to avoid trampolines. - -2007-10-15 Vasiliy Fofanov - Jose Ruiz - - * vx_stack_info.c: New file. - - * i-forbla-unimplemented.ads: New file. - - * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads - for unsupported configurations; use it on VMS targets instead of the - real one. - (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include - vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info - used by VxWorks targets to have access to task-specific data and be - able to extract the stack boundaries for stack checking. - Use system-vms-ia64.ads on ivms. - - * Make-lang.in: Update dependencies. - - * sysdep.c (__gnat_get_stack_info): Move to a standalone file - (vx_stack_info.c). - -2007-10-15 Vincent Celier - - * snames.adb, snames.ads: Add new standard name runtime_library_dir - - * prj.ads (Language_Config): Add new component Runtime_Library_Dir - - * prj-attr.adb: Add project level attribute Runtime_Library_Dir - - * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of - the source is unknown. - - * prj-ext.adb: Spelling error fix - - * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada - 95 reserved word in its name. - (Process_Project_Level_Array_Attributes): Process new attribute - Runtime_Library_Dir. - - * prj-part.adb (Parse_Single_Project): Do not check the name of the - config project against the user project names. - - * prj-proc.adb (Expression): In multi-language mode, indexes that do - not include a dot are always case insensitive. - (Process_Declarative_Items): Ditto - (Process_Project_Tree_Phase_1): Set Success to False in case an error is - detected. - - * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is - True, compare both indexes in lower case. - -2007-10-15 Robert Dewar - - * rtsfind.adb: (Load_RTU): Turn off style checks for Load call - -2007-10-15 Gary Dismukes - - * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box - association for an access component, add an association with null as - the expression. Remove testing for array subtypes and the setting in - that case of Ctyp to the array component type, which prevented proper - inclusion of an association for null-initialized arrays. Collapse - condition that tests for array subtypes into just a test of - Is_Partially_Initialized_Type (which already covers arrays anyway). - -2007-10-15 Hristian Kirtchev - - * sem_ch12.adb: Minor code reformatting. - (Check_Generic_Child_Unit): Iterate over the homonym chain in order to - find the parent package which may have been hidden by local - declarations. - -2007-10-15 Gary Dismukes - - * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained - flag of derived concurrent types, taking into account the flag setting - on the parent subtype and any new set of discriminants. - -2007-10-15 Hristian Kirtchev - - * sem_ch4.adb: Minor code and comment reformatting. - (Analyze_Allocator): When the designated type of an unconstrained - allocator is a record with unknown discriminants or an array with - unknown range bounds, emit a detailed error message depending on the - compilation mode and whether the designated type is limited. - -2007-10-15 Tristan Gingold - - * system-vms-ia64.ads: New file. - - * system-vms_64.ads: Minor comment fix. - -2007-10-15 Ed Schonberg - - * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a - body generated for a function with a controlling result that is a null - extension, discard the generated body in favor of the current explicit - one. - -2007-10-15 Ed Schonberg - - * sem_disp.adb (Find_Controlling_Arg): Examine the call node before - examining its original form, to handle properly operator calls that - have been rewritten. - -2007-10-15 Olivier Hainque - - * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer - instead of a procedure value in each traceback entry. - - * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer - instead of procedure value to TBK$SYMBOLIZE. - - * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper - field. - (TB_Entry_For): Account for the PV/FP renaming. - - * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and - add comment. - (Null_TB_Entry): Account for change of component name. - (PV_For): Rename as FP_For. - -2007-10-15 Tristan Gingold - - * trans.c (gnat_to_gnu): Remove the padding structure more often. - This optimize assignment to over-aligned record. - -2007-10-15 Emmanuel Briot - - * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie - interfaces. - - * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference - type, for dispatching calls. - -2007-10-15 Vincent Celier - Robert Dewar - - * gnat_ugn.texi: Add documentation for switches --version and --help - for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname, - gnatxref, gnatfind, gnatls, and gnatclean. - Document -gnatw.o. - Mention attribute Excluded_Source_Dirs - Replace obsolescent attribute Locally_Removed_Files with attribute - Excluded_Source_Files. - Improve documentation of -u (gnatbind) - Document how to do reliable stack checking for the environmental task - on iVMS. - - * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code. - Document attribute Excluded_Source_Files and indicate that attribute - Locally_Removed_Files is obsolescent. - -2007-10-15 Thomas Quinot - - * g-soccon-vms.ads: Fix value of MSG_WAITALL. - - * gen-soccon.c: - Update documentation to note that OpenVMS 8.3 or later must be used - to generate g-soccon-vms.ads. - - * atree.adb: Add ??? comment - - * exp_util.adb: Minor reformatting. - Add ??? comment in Kill_Dead_Code. - -2007-10-15 Robert Dewar - - * errout.ads: Comment clarification - - * exp_ch4.adb (Expand_N_Allocator): Code cleanup. - (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa - - * lib.ads: Comment update - - * init.c: Minor reformatting. - - * sem_attr.adb: Minor formatting - - * osint-b.ads: Minor reformatting - - * sem_ch9.adb: Implement -gnatd.I switch - - * g-comlin.adb: (Start): Fix handling of empty command line. - - * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section, - even when -rules follows the -cargs section. - -2007-10-08 Ollie Wild - - * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with - gnat_return_tree. - (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with - gnat_return_tree. - (gnat_eh_runtime_type): Removed. - (gnat_return_tree): New function. - -2007-10-08 Ben Elliston - - PR ada/33454 - Revert: - 2007-08-31 Ben Elliston - - * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads - when compiling for powerpc64-*-linux. - * system-linux-ppc64.ads: New file. - -2007-09-27 Eric Botcazou - - Mapped location support - * back_end.adb (Call_Back_End): Pass information about source - files instead of units to gigi. - * gigi.h (struct File_Info_Type): New. - (gigi): Rename and change type of number_units parameter, change - type of file_info_ptr parameter. - * trans.c (number_files): New global variable. - (gigi): Rename and change type of number_units parameter, change - type of file_info_ptr parameter. - If mapped location support is enabled, create the isomorphic mapping - between source files and line maps. - (Sloc_to_locus): If mapped location support is enabled, translate - source location into mapped location. - (annotate_with_node): Rename into set_expr_location_from_node. - Call set_expr_location instead of annotate_with_locus. - (Pragma_to_gnu): Adjust for above change. - (Loop_Statement_to_gnu): Likewise. - (call_to_gnu): Likewise. - (Handled_Sequence_Of_Statements_to_gnu): Likewise. - (gnat_to_gnu): Likewise. - (add_stmt_with_node): Likewise. - (add_cleanup): Likewise. - * utils.c (gnat_init_decl_processing): Do not set input_line. - -2007-09-26 Hristian Kirtchev - - * sem_ch8.adb (Analyze_Use_Type): Code cleanup. - (Applicable_Use): Emit a warning when a package tries to use itself. - (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type - is already in use or the package where it is declared is in use or is - declared in the current package. - (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type. - - * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb, - s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb, - s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause. - -2007-09-26 Hristian Kirtchev - - * a-calend-vms.adb, a-calend.adb: - Add a section on leap seconds control along with two entities used to - enable and disable leap seconds support. The array Leap_Second_Times is - now constant and contains hard time values pre-generated. Remove - all elaboration code used to populate the table of leap seconds. - - * bindgen.adb: - Add entity Leap_Seconds_Support to the list of global run-time variables - along with a comment on its usage and values. - (Gen_Adainit_Ada): Add code to generate the declaration and import of - Integer variable Leap_Seconds_Support. Set its value to zero (disabled) - or one (enabled) depending on the presence of binder switch "-y". - (Gen_Adainit_C): Add code to generate the declaration of external int - __gl_leap_seconds_support. Set is value to zero (disabled) or one - (enabled) depending on the presence of binder switch "-y". - - * init.c: Add __gl_leap_seconds_support to the list of global values - computed by the binder. - -2007-09-26 Jerome Guitton - - * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb, - s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb, - s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, - s-taprop-posix.adb (Stop_Task): New function, dummy implementation. - - * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function. - - * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time - function which can be called by the debugger to interrupt the tasks of - an Ada application asynchronously, as needed on VxWorks. - (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks. - - * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration, - renamed from Stop_All_Tasks. Update comments. - (Stop_All_tasks): New function declaration. - -2007-09-26 Olivier Hainque - - * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around - #include and #define GCC_RESOURCE_H before - #include . - Add more protections in __gnat_translate_vms. - - * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before - #include . - -2007-09-26 Thomas Quinot - Sergey Rybin - - * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed. - - * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist, - where it belongs. - - * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO. - - * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist, - where it belongs. - - * sem_dist.ads: Minor comment fix - - * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO. - -2007-09-26 Javier Miranda - Eric Botcazou - - * a-tags.adb: - (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of - indirection added to the HT_Link component of the TSD. This is required - to statically allocate the TSD. - - * a-tags.ads: - Minor reordering of the declarations in the private part. Required to - add a level of indirection to the contents of the TSD component HT_Link. - This is required to statically allocate the TSD. - - * decl.c (gnat_to_gnu_entity) : Do not exclude objects with - Is_Statically_Allocated set from constant objects. - Do not make exported constants created by the compiler volatile. - (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken - as read-only. - - * trans.c (Identifier_to_gnu): For constants, unshare initializers - before returning them. - - * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the - public part of the package. - (Make_DT): Move HT_Link component out of the TSD record. For this - purpose Make_DT now declares a separate object that stores the - HT_Link value, and initializes the TSD component with the address - of this new object. The addition of this level of indirection is - required to statically allocate the TSD because the TSD cannot - have variable components. - (Expand_Interface_Conversion): Improve the expanded code. - (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity. - - * sem_disp.adb (Check_Dispatching_Operation): In case of a body - declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---, - if we are building static dispatch tables then we must not generate - extra code to register the primitive because the dispatch table will - be built at the end of the library package; otherwise we notify that - we cannot build the static dispatch table. - -2007-09-26 Robert Dewar - - * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address - overlays. - - * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays - (Analyze_Record_Representation_Clause): Suppress junk warning for - missing component clause. - (Analyze_Attribute_Definition_Clause, case Address): Apply the special - tests for controlled type overlay to composites with controlled - components. - (Analyze_Record_Representation_Clause): Add reference for component name - -2007-09-26 Javier Miranda - Gary Dismukes - - * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True - for thunks associated with interface types. - - * einfo.ads: Improve documentatation of Is_Internal - (Is_Thunk): New attribute applicable to subprograms. True for thunks - associated with interface types. - Extensive comment fixes regarding flags that appear in all entities. The - documentation is now consistent for all such flags (there were a number - of errors in the documentation in this regard). - - * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup. - - * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any - of these procedures are passed a function call that already has - build-in-place actuals (testing new flag - Is_Expanded_Build_In_Place_Call). Set the flag on the function call in - the case where processing continues. - (Expand_Call): If the call is generated from a thunk body then we - propagate the extra actuals associated with the accessibility - level of the access type actuals. - - * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field - of each extra formal of a protected operation to reference the - corresponding extra formal of the subprogram denoted by the - operation's Protected_Body_Subprogram. - - * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on - N_Function_Call nodes. - -2007-09-26 Robert Dewar - - * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set - - * debug.adb: Add d.s flag. - -2007-09-26 Gary Dismukes - - * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the - debug variable so that it won't be initialized when pragma - Initialize_Scalars is in effect. - -2007-09-26 Gary Dismukes - - * freeze.adb (Freeze_Entity): Remove check for preelaborable - initialization of a full view. This is moved to - Analyze_Package_Specification. - - * sem_ch7.adb (Analyze_Package_Specification): Add check for - preelaborable initialization of a full view in entity loop. - (Uninstall_Declarations): If entity is a use-visible compilation unit, - its child units are use-visible only if they are visible child units. - - * sem_util.adb (Is_Preelaborable_Expression): New function to determine - whether an expression can be used within a type declaration that - requires preelaborable init. - (Check_Components): Replace inline code that does partial checking for - preelaborable default expressions with call to - Is_Preelaborable_Expression. - (Has_Preelaborable_Initialization): In the case of a generic actual - subtype, (that is, Is_Generic_Actual is True), return the result of - applying Has_Preelaborable_Initialization to the generic actual's base - type. - -2007-09-26 Hristian Kirtchev - - * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a - call to Jan_1_Day _Of_Week to optimize its performance. - (Is_Leap): Move the routine to the scope of Week_In_Year. - (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the - weekday on which January 1 falls of Year - 1 and Year + 1. This function - avoids calling Time_Of and Split, thus making it more efficent. - (Week_In_Year): Reimplemented in oder to follow ISO 8601. - - * g-calend.ads (Week_In_Year): Change comment to reflect new - implementation. - -2007-09-26 Emmanuel Briot - - * g-comlin.ads, g-comlin.adb (Command_Line_Configuration, - Command_Line): New types - (Define_Alias, Define_Prefix, Free): New subprograms. These provide - support for defining how switches can be grouped on a command line (as - is the case for -gnatw... for GNAT), and how simple switches can be - used as aliases for more complex switches (-gnatwa is same as - -gnatwbcef...) - (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram - (Start, Current_*): New subprograms - Added support for parsing an array of strings in addition to the real - command line. - (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to - be moved from the body to the private part of the spec. - (*): All subprograms now have an extra parameter with default value to - specify which parser should be used. For backward compatibility, it - defaults to parsing the command line of the application. They were also - modified to properly handle cases where each of the argument does not - start at index 1 (which is always true for Ada.Command_Line, but not - when processing any Argument_List). - (Free): New subprogram - (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch, - Argument): New subprograms - (Switch_Parameter_Type): New enum, which clarifies the code. The extra - special characters like ':', '=',... are now handled in a single place, - which makes the code more extensible eventually. - (Getopt, Full_Switch): When the switch was returned as part of the - special character '*', make sure it is prepended by the switch character - ('-' in general), so that the application knows whether "foo" or "-foo" - was specified on the command line. - -2007-09-26 Florian Villoing - - * g-dirope.adb (Remove_Dir): In case we are removing directories - recursively, make sure that if an exception is raised during the - processing, the current working directory is reset to its initial - value before propagating the exception. - -2007-09-26 Vincent Celier - - * gnatbind.adb: If there are several ALI files specified and there is - a main program to bind, the first ALI is expected to contain the main - subprogram and the names of the binder generated files will be derived - from the first ALI file name. - (Gnatbind): Fix insertion character in invocation of Error_Msg - -2007-09-26 Vincent Celier - - * gnatcmd.adb (Check_Files): Do not include sources that have been - removed by attributes Exclude_Source_Files or Locally_Removed_Files. - -2007-09-26 Ed Schonberg - - * lib-xref.ads, lib-xref.adb: The entry for array types now carries - information about each of its index types, following the type - reference for its component type. - -2007-09-26 Vincent Celier - - * make.adb: (Kill): New procedure (__gnat_kill imported) - (Running_Compile, Outstanding_Compiles): Global variables that - were previously local to procedure Compile_Sources. - (Sigint_Intercepted): Send signal SIGINT to all outstanding - compilation processes. - - (Gnatmake): If project files are used, create the mapping of all the - sources, so that the correct paths will be found. - - * prj-env.ads, prj-env.adb (Create_Mapping): New procedure - -2007-09-26 Vincent Celier - - * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads - - * prj.ads, prj.adb (Default_Language): Remove function, no longer used - Replace components Compiler_Min_Options and Binder_Min_Options with - Compiler_Required_Switches and Binder_Required_Switches in record - Language_Config. - Remove components Default_Language and Config in Project_Tree_Data, - no longer used. - - * prj-attr.adb: New attributes Required_Switches () in - packages Compiler and Binder. - - * prj-nmsc.adb: Major rewrite of the processing of configuration - attributes for gprbuild. No impact on GNAT tools. - - * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer - process configuration attributes: this is done in Prj.Nmsc.Check. - (Recursive_Process): Make a full copy of packages inherited from project - being extended, instead of a shallow copy. - (Process_Project_Tree_Phase_1): New procedure - (Process_Project_Tree_Phase_1): New procedure - (Process): Implementation now uses the two new procedures - - * prj-util.adb (Executable_Of): Get the suffix and the default suffix - from the project config, not the tree config that no longer exists. - -2007-09-26 Vincent Celier - - * Make-lang.in: Update dependencies.. - -2007-09-26 Vincent Celier - - * osint.adb, osint.ads: Minor reformatting - - * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure - -2007-09-26 Gary Dismukes - - * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95 - message to cite use of <> in aggregate component associations rather - than wrongly indicating use of limited aggregates. - -2007-09-26 Robert Dewar - - * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of - Address_Taken. - -2007-09-26 Ed Schonberg - - * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct - ancestor of the derived type, the operations are inherited from the - primary dispatch table of the parent. - (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls - when the context is an explicit type conversion. - -2007-09-26 Ed Schonberg - - * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution - rule for qualified expressions properly, to detect improper conversions - and resolve some cases of overloading. - -2007-09-26 Ed Schonberg - - * sem_res.adb (Resolve_Call): If the call is dispatching, generate the - proper kind of reference to the primitive operation, for better source - navigation. - (Valid_Conversion): A tagged conversion is legal if both operands are - tagged. - -2007-09-26 Robert Dewar - - * sem_warn.adb (Check_References): Catch more cases of unreferenced - packages. - -2007-09-26 Vincent Celier - - * snames.adb, snames.ads: Change Include_Option to Include_Switches - -2007-09-26 Robert Dewar - - * s-wchstw.adb: provide messages for run time unit exceptions - - * a-witeio.adb: Minor reformatting - - * exp_ch13.adb: Minor reformatting - -2007-09-26 Sergey Rybin - - * vms_data.ads: Revise gnatmetric qualifiers. - Add qualified for the new gnatbind option '-y' - - * gnat_ugn.texi: Revise the gnatmetric section. - Add entry for new gnatbind option '-y'. - - * gnat_rm.texi: Minor spelling correction. - Document restriction on overlaying controlled types - -2007-09-26 Vincent Celier - - * makegpr.adb (Link_Executables): Do not fail when the root project has - no sources, but is an extending project. - -2007-09-25 Eric Botcazou - - * trans.c: Fix misplaced #define. - -2007-09-22 Eric Botcazou - - * utils2.c (build_unary_op) [INDIRECT_REF]: Propagate - the TYPE_REF_CAN_ALIAS_ALL flag to the result. - -2007-09-21 Olivier Hainque - - * utils.c (type_for_nonaliased_component_p): Return false for - all AGGREGATE_TYPEs. - -2007-09-17 Eric Botcazou - - * decl.c (gnat_to_gnu_entity) : Make again the type of an - object covered by 13.3(19) volatile. - -2007-09-12 Eric Botcazou - - PR ada/26797 - PR ada/32407 - * utils.c (unchecked_convert): Use a subtype as the intermediate type - in the special VIEW_CONVERT_EXPR case. - -2007-09-12 Robert Dewar - - * types.ads, a-charac.ads, freeze.adb: Minor reformatting. - - * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads, - lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb, - s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb, - s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb, - s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb, - s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb, - s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb, - s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb, - a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads, - g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads, - s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb, - s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb, - snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads, - s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads, - s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads, - s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads, - s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement - pragma Compiler_Unit and adds it to relevant library units. - -2007-09-12 Ed Schonberg - - * sem_aggr.adb (Resolve_Record_Aggregate): An others association with - a box need not correspond to any component. - -2007-09-12 Robert Dewar - - * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading - the tasking version of the Ada run time when foreign threads are - present and there are no explicit Ada tasks or tasking constructs. - - * gnat_rm.texi: Clarify documentation of GNAT.Threads. - -2007-09-12 Hristian Kirtchev - - * bindusg.adb (Display): Correct comment for switch -X. Add a line for - the usage of switch -y. - - * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support - when switch -y is present. - - * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable - leap seconds in Ada.Calendar and its children. - -2007-09-12 Jose Ruiz - - * a-extiti.ads (Timer): The discriminant is a "not null access - constant" in the Reference Manual. - (Cancel_Handler): Cancelled is an out parameter in the Reference Manual. - -2007-09-12 Robert Dewar - - * a-swuwha.adb: Remove junk RM header - -2007-09-12 Vincent Celier - - * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode - indicator - - * g-bytswa.ads: Minor reformatting - -2007-09-12 Thomas Quinot - - * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads: - Add new constant Thread_Blocking_IO, always True by default, set False - on a per-runtime basis. - (Need_Netdb_Buffer): New constant. - -2007-09-12 Arnaud Charlet - - * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id): - Added renames for corresponding functions in System.Partition_Interface. - -2007-09-12 Doug Rupp - - * Makefile.in: Remove VMS specific System.CRTL packages which are no - longer needed. - - * s-crtl-vms64.ads: Removed. - -2007-09-12 Olivier Hainque - - * decl.c (gnat_to_gnu_entity) : For a subtype - with discriminant constraints, generalize the code for BIT_FIELDs - to PACKED fields of constant size and propagate DECL_PACKED. - -2007-09-11 Eric Botcazou - - * decl.c (array_type_has_nonaliased_component): New predicate. - (gnat_to_gnu_field) : Invoke the above predicate to - set the TYPE_NONALIASED_COMPONENT flag on the type. - : Likewise. - * gigi.h (type_for_nonaliased_component_p): Declare. - * utils.c (type_for_nonaliased_component_p): New predicate. - (create_field_decl): Invoke the above predicate to set the - DECL_NONADDRESSABLE_P flag on the field. - -2007-09-11 Javier Miranda - - * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present - in library level record type entities if we are generating statically - allocated dispatch tables. - - * exp_disp.adb (Make_Tags/Make_DT): Replace previous code - importing/exporting the _tag declaration by new code - importing/exporting the dispatch table wrapper. This change allows us - to statically allocate of the TSD. - (Make_DT.Export_DT): New procedure. - (Build_Static_DT): New function. - (Has_DT): New function. - - * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags - True_Constant and Current_Value. Required to statically - allocate the dispatch tables. - (Check_Allocator): Make function iterative instead of recursive. - Also return inner allocator node, when present, so that we do not have - to look for that node again in the caller. - -2007-09-11 Jan Hubicka - - * misc.c (gnat_expand_body): Kill. - (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill. - -2007-09-10 Robert Dewar - - * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb, - mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb, - mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, - mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads, - ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads, - bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads, - bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb, - butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb, - comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads, - elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads, - err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb, - exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads, - exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb, - exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb, - exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads, - exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb, - exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads, - exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads, - exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb, - exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb, - exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads, - exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb, - fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads, - get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb, - gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb, - gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads, - gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads, - gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads, - gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, - gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads, - inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads, - lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb, - lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads, - make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads, - mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, - mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads, - mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb, - mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt, - osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb, - osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads, - par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb, - par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb, - par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb, - par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb, - par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads, - prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads, - prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb, - prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads, - prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads, - prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads, - prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads, - prj-util.adb, prj-util.ads, restrict.adb, restrict.ads, - rtsfind.adb, rtsfind.ads, scn.adb, scn.ads, - scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb, - sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb, - sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb, - sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads, - sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads, - sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, - sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads, - sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb, - sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads, - sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb, - sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads, - sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, - sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb, - sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads, - sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads, - stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb, - styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads, - switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb, - switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb, - tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads, - treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads, - types.h, uintp.h, urealp.h, usage.adb, usage.ads, - validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb, - xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb, - xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb, - gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb, - mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb, - symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb, - mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb, - mlib-tgt-vms.ads: Replace headers with GPL v3 headers. - -2007-09-10 Emmanuel Briot - - * s-regpat.adb (Parse_Character_Class): Fix handling of empty character - classes ("[]"). - -2007-09-10 Vasiliy Fofanov - - * adaint.c (__gnat_translate_vms): new function. - -2007-09-10 Gary Dismukes - Thomas Quinot - - * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only - create an abstract subprogram in the case of 'Input. For 'Output we now - create a real spec/body when the type is abstract, since it can - potentially be called. - (Predefined_Primitive_Bodies): Now allow the creation of a predefined - body for 'Output when the type is abstract (only the creation of the - body for 'Input is excluded when the type is abstract). - (Stream_Operation_OK): Add an additional condition in the return - statement, so that False will be returned for TTS_Stream_Input if the - associated tagged type is an abstract extension. Add comments for - return statement. - (Expand_N_Object_Declaration): For the case of a shared passive - variable, insert init proc call only after the shared variable - procedures have been processed, because the IP call needs to undergo - shared passive variable reference expansion, which requires these - procedures to be available (and elaborated). - -2007-09-10 Vincent Celier - - * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove - parameter Runtime_Project. - -2007-09-10 Ed Schonberg - - * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is - given a box association, the type of the component is discriminated, - and the value of the discriminant is the discriminant of the enclosing - type, retrieve its value from the aggregate itself, where it must have - been supplied. - - * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix, - to remove other spurious ambiguities on arithmetic operations involving - literals and addresses, on systems where Address is a visible integer - type, when the operator is called in functional notation. - (Try_Primitive_Operation): Within an instance, a call in prefixed form - is legal when the types match, even if the operation is currently - hidden. - -2007-09-10 Ed Schonberg - - * sem_ch12.adb (Build_Local_Package): A formal package with no - associations is legal if all formals have defaults. It is not - equivalent to a formal declared with a box. - -2007-09-10 Sergey Rybin - - * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option - -2007-09-10 Sergey Rybin - - * gnat_ugn.texi: Add description of the new '-lratio' option - Update 7.3.1 section about availability of the feature. - -2007-09-10 Thomas Quinot - - * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last - inserted node. - -2007-09-10 Olivier Hainque - - * Makefile.in: (mips-irix section): Activate build of libgmem. - -2007-09-10 Eric Botcazou - - * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber - x87 registers. - -2007-09-10 Eric Botcazou - - * decl.c (gnat_to_gnu_entity) : Deal with variable built for - a debug renaming declaration specially. - -2007-09-08 Eric Botcazou - - * decl.c (gnat_to_gnu_entity) : Simplify the condition under - which a constant renaming is treated as a normal object declaration. - * trans.c (lvalue_required_p) : New case, extracted from - the N_Indexed_Component case. - : Fall through to above case. - : Return true for all composite types. - -2007-09-08 Eric Botcazou - - * decl.c (make_packable_type): If the new type has been given BLKmode, - try again to get an integral mode for it. - -2007-09-07 Eric Botcazou - - Re-apply accidentally reverted change: - - 2007-02-07 Andreas Krebbel - - * 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-09-06 Eric Botcazou - - * trans.c (convert_with_check): Update call to real_2expN. - -2007-09-05 Sandra Loosemore - - * trans.c (Compilation_unit_to_gnu): Use set_cfun. - * utils.c (end_subprog_body): Likewise. - -2007-09-03 Nick Clifton - - * Make-lang.in: Change copyright header to refer to version 3 of - the GNU General Public License and to point readers at the - COPYING3 file and the FSF's license web page. - * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c, - Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h, - namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h, - treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c: - Likewise. - -2007-08-31 Vincent Celier - - PR ada/4720 - - * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb, - gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb - (Check_Version_And_Help): New procedure in package Switch to process - switches --version and --help. - Use Check_Version_And_Help in GNAT tools - - * make.adb: Ditto. - (Compile_Sources): Make sure that sources that are "excluded" are not - compiled. - (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a - project file is used. - (Version_Switch): Remove, moved to Switch - (Help_Switch): Remove, moved to Switch - (Display_Version): Remove, moved to Switch - - * switch.ads, switch.adb (Check_Version_And_Help): New procedure in - package Switch to process switches --version and --help. - (Display_Version): New procedure - - * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function. - -2007-08-31 Javier Miranda - - * a-tags.adb (Internal_Tag): Protect the run-time against wrong - internal tags. - -2007-08-31 Hristian Kirtchev - - * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine. - (Mark_Non_Null): If the node for which we just generated an access check - is a reference to an *in* parameter and the reference appears in the - declarative part of a subprogram body, mark the node as known non null. - -2007-08-31 Hristian Kirtchev - - * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the - structure of E_Exception to reflect the new flag. - (Is_Raised, Set_Is_Raised): New inlined routines. - Update the usage of available flag to reflect the addition of Is_Raised. - (Is_Raised, Set_Is_Raised): Bodies of new routines. - (Write_Entity_Flags): Write the status of flag Is_Raised. - (Is_Descendent_Of_Address): New entity flag, to simplify handling of - spurious ambiguities when integer literals appear in the context of an - address type that is a visible integer type. - - * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local - exceptions never being raised. - (Analyze_Raise_Statement): When analyzing an exception, mark it as being - explicitly raised. - -2007-08-31 Javier Miranda - - * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise - statement when compiling under restriction No_Exceptions_Proparation. - -2007-08-31 Ed Schonberg - - * exp_ch3.adb (Build_Record_Init_Proc): If there is a static - initialization aggregate for the type, generate itype references for - thetypes of its (sub)components, to prevent out-of-scope errors in gigi. - -2007-08-31 Gary Dismukes - - * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a - library-level package renaming, pass the declaration associated with - the renaming's special debug variable to Qualify_Entity_Names to ensure - that its encoded name is properly qualified. - - * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity - occurring in the list of entities to qualify, and do not attempt to - traverse an entity list in that case. Variables associated with -` library-level package renamings can now occur in the table. - - * exp_dbug.ads: Revise documentation of the encoding for renaming - declarations. - -2007-08-31 Richard Kenner - - * layout.adb (Layout_Type): Use Underlying_Type to determine whether an - access type points to an unconstrained array. - -2007-08-31 Hristian Kirtchev - - * restrict.adb, namet.adb, par-util.adb: Remove redundant type - conversion. - - * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect - simple redundant qualifications. The check is performed whenever the - expression is a non-overloaded identifier. - (Resolve_Type_Conversion): Enchance the redundant type conversion check - to include loop parameters. - (Valid_Conversion): Avoid generation of spurious error message. - -2007-08-31 Bob Duff - - * par-ch4.adb (P_Simple_Expression): Fold long sequences of - concatenations of string literals into a single literal, in order to - avoid very deep recursion in the front end, which was causing stack - overflow. - - * sem_eval.adb (Eval_Concatenation): If the left operand is the empty - string, and the right operand is a string literal (the case of "" & - "..."), optimize by avoiding copying the right operand -- just use the - value of the right operand directly. - - * stringt.adb (Store_String_Chars): Optimize by growing the - String_Chars table all at once, rather than appending characters one by - one. - (Write_String_Table_Entry): If the string to be printed is very long, - just print the first few characters, followed by the length. Otherwise, - doing "pn(n)" in the debugger can take an extremely long time. - - * sem_prag.adb (Process_Interface_Name): Replace loop doing - Store_String_Char with Store_String_Chars. - -2007-08-31 Vincent Celier - - * prj-attr.adb: Add new attribute Excluded_Source_Files - - * prj-nmsc.adb: Use attribute Excluded_Source_Files before - Locally_Removed_Files. - - * snames.ads, snames.adb: New standard name Excluded_Source_Files - -2007-08-31 Ed Schonberg - - * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context - clauses of subunits, ignore limited_with_clauses that are illegal and - have not been fully analyzed. - -2007-08-31 Ed Schonberg - - * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity - flag, for effiency. It is called when analyzing arithmetic operators - and also for actuals in calls that are universal_integers. The flag is - set for the predefined type address, and for any type or subtype - derived from it. - - * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a - Universal_Integer, when the formal is a descendent of address and the - call appears in user code. - (Analyze_Selected_Component): if the prefix is a private extension, the - tag component is visible. - - * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an - entity flag. - -2007-08-31 Robert Dewar - - * s-fileio.adb (Open): Normalize file name to lower case in non-case - sensitive file name systems to avoid unexpected mismatch in Vista. - -2007-08-31 Vincent Celier - - * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR - -2007-08-31 Vincent Celier - - * symbols-vms.adb (Initialize): Read symbol files with continuation - lines - (Finalize): If symbol is long, split the line - -2007-08-31 Vincent Celier - - * fmap.ads: Minor comment updates - -2007-08-31 GNAT Script - - * Make-lang.in: Makefile automatically updated - -2007-08-31 Bob Duff - - * sinfo.ads: Minor comment fix. - -2007-08-31 Thomas Quinot - - * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent - with implementation. - Documentation cleanup only. - -2007-08-31 Sergey Rybin - - * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new - gnatpp '--separate-stmt-name' option. - Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line' - option. - - * gnat_ugn.texi: Add description for the new gnatpp - '--separate-stmt-name' and '--use-on-new-line' options. - -2007-08-31 Ben Elliston - - * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads - when compiling for powerpc64-*-linux. - * system-linux-ppc64.ads: New file. - -2007-08-22 Krister Walfridsson - - * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for - NetBSD. - -2007-08-16 Kaveh R. Ghazi - - * misc.c (gnat_type_max_size): Constify. - -2007-08-16 Gary Dismukes - - * cstand.adb (Create_Standard): Create an entity for a zero-sized type - associated with Standard_Debug_Renaming_Type, to be used as the type of - the special variables whose names provide debugger encodings for - renaming declarations. - - * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25. - (Set_Debug_Renaming_Link): Change to set Node25. - (Write_Field13_Name): Remove case for E_Enumeration_Literal. - (Write_Field25_Name): Add case for E_Variable to output - "Debug_Renaming_Link". - (Write_Field23_Name): Correct the output string for "Limited_View". - - * exp_dbug.adb: Add with and use of Tbuild. - (Debug_Renaming_Declaration): Replace creation of an enumeration type - and literal with creation of a variable of type - Standard_Debug_Renaming_Type whose name encodes both the renamed object - and the entity of the renaming declaration. - (Qualify_Entity_Name): Add the delayed qualification of the entity name - part of the name of a variable that has a Debug_Renaming_Link. - - * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a - special type to be associated with variables that provide debugger - encodings for renaming declarations. - -2007-08-16 Gary Dismukes - Ed Schonberg - Javier Miranda - - * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an - ancestor part given by an aggregate to test for an unchecked conversion, - since this can occur in some cases when the ancestor part is a function - call, and we don't want to fall into the recursive call to this - procedure in that case. - - * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of - stream attributes on limited types to account for user-specified - attributes as well as whether Input (resp. Output) becomes available - due to Read (resp. Write) being available for the type. Change Boolean - variable to the more accurate name - Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted - double-"not" predicate at beginning of return statement to more - understandable form. - - * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended - return has an associated N_Handled_Sequence_Of_Statements, then wrap it - in a block statement and use that as the first statement of the - expanded return rather than incorrectly using the handled sequence as - the first statement. - - * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected - operation, generate an explicit freeze node for it rather than - generating extra formals, to ensure that gigi has the proper order of - elaboration for anonymous subtypes in the signature of the subprograms. - (Build_In_Place_Formal): Move assertion to beginning of loop. - (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion - applied to a function call (occurs for some cases of 'Input). - (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion - applied to a function call (occurs for some cases of 'Input). - - * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada - 2005, generate an extended return statement enclosing the result object - and 'Read call. - - * freeze.adb (Freeze_Record_Type): Extend the current management of - components that are access type with an allocator as default value: add - missing support to the use of qualified expressions of the - allocator (which also cause freezing of the designated type!) - (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined - dispatching operation, since extra formals may be needed by calls to - build-in-place functions (such as stream 'Input). - - * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra - formals for 'Constrained and accessibility level in the case of a - predefined dispatching operation. - - * exp_util.adb (Insert_Actions): A protected body is a valid insertion - point, no need to find the parent node. - -2007-08-16 Javier Miranda - - * exp_attr.adb (Attribute_Priority): Add missing support for entries - and entry barriers. - -2007-08-16 Javier Miranda - - * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it - is not really required and can introduce regression with the debugger. - The original problem is fixed with the patch written for checks.adb. - -2007-08-16 Thomas Quinot - - * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress - Range_Check on Allocated_Table. - -2007-08-16 Vincent Celier - - * make.adb (Collect_Arguments): Call Test_If_Relative_Path with - Including_Non_Switch set to False. - (Gnatmake): For the compiler, call Test_If_Relative_Path with - Including_Non_Switch set to False. - - * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean - parameter Including_Non_Switch, defaulted to True. When - Including_Non_Switch is False, options that are not switches and - appear as relative path are not converted to absolute paths. - -2007-08-16 Nicolas Roche - - * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub - makefiles - - * Make-lang.in: Update dependencies - -2007-08-16 Hristian Kirtchev - - * sem_ch10.adb (Has_With_Clause): If the name of the with clause - currently inspected is a selected component, retrieve the entity of - its selector. - (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting - from the immediate ancestor of Main_Unit_Entity. - (Install_Limited_Withed_Unit): Do not install the limited view of - package P if P is reachable through an ancestor chain from package C - and C also has a with clause for P in its body. - (Has_Limited_With_Clause): New routine. - (Has_With_Clause): New routine. - -2007-08-16 Ed Schonberg - - * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the - generic for an enclosing instance is a global reference, even though - its scope is the enclosing instance. - -2007-08-16 Gary Dismukes - Javier Miranda - - * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to - initialize a limited object. - (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4 - 13/2 and 14/2. - Make sure Has_Complex_Representation is inherited by derived type. - -2007-08-16 Robert Dewar - - * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in - exception case - -2007-08-16 Ed Schonberg - - * sem_disp.adb (Check_Dispatching_Operation): If the operation - implements an operation inherited from a progenitor interface, verify - that they are subtype-conformant. - -2007-08-16 Hristian Kirtchev - Bob Duff - Nicolas Setton - - * sem_res.adb (Comes_From_Predefined_Lib_Unit): New. - (Resolve): Alphabetize local variables. Add new variable From_Lib. When - the statement which is being resolved comes from a predefined library - unit, all non-predefined library interpretations are skipped. - (Resolve_Op_Concat): If string concatenation was folded in the parser, - but the "&" is user defined, give an error, because the folding would - be wrong. - - * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that - the parser has folded a long sequence of concatenations of string - literals. - - * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE" - and "JMP_BUF" variables as artificial. - (N_String_Literal): Do not use alloca for very long string literals. Use - xmalloc/free instead. Otherwise the stack might overflow. - - * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the - compiler. - -2007-08-16 Vincent Celier - - * vms_conv.adb (Process_Argument): Ensure that project related options - are not put in the -cargs section when using GNAT COMPILE. - -2007-08-16 Robert Dewar - - * gnat_ugn.texi: Add note on preprocessing (output file not written) - -2007-08-16 Thomas Quinot - - * a-tags.adb: Minor reformatting. - -2007-08-16 Bob Duff - - * sem_type.ads, sem_ch4.adb: Minor reformatting. - -2007-08-14 Thomas Quinot - - * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads, - s-osinte-interix.ads, system-interix.ads: Removed. - -2007-08-14 Hristian Kirtchev - - * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove - calls to Check_Within_Time_Bounds. - ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds. - (Difference): Account for possible rounding of the resulting difference - -2007-08-14 Robert Dewar - - * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb, - par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb, - s-osinte-solaris.adb, s-osinte-solaris.ads, - s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting. - - * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style - switch -gnatyS. Enable -gnatyS in GNAT style check mode - -2007-08-14 Robert Dewar - Ed Schonberg - - * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads: - Suppress unmodified in-out parameter warning in some cases - This patch is a also fairly significant change to the way suppressible - checks are handled. - - * checks.ads, checks.adb (Install_Null_Excluding_Check): No check - needed for access to concurrent record types generated by the expander. - (Generate_Range_Check): When generating a temporary to capture the - value of a conversion that requires a range check, set the type of the - temporary before rewriting the node, so that the type is always - properly placed for back-end use. - (Apply_Float_Conversion_Check): Handle case where the conversion is - truncating. - (Get_Discriminal): Code reformatting. Climb the scope stack looking - for a protected type in order to examine its discriminants. - -2007-08-14 Robert Dewar - Gary Dismukes - Ed Schonberg - Thomas Quinot - - * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb, - a-stwisu.adb, a-strsup.adb: Fix warnings for range - tests optimized out. - - * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out. - (Get_Allocator_Final_List): For the case of an anonymous access type - that has a specified Associated_Final_Chain, do not go up to the - enclosing scope. - (Expand_N_Type_Conversion): Test for the case of renamings of access - parameters when deciding whether to apply a run-time accessibility - check. - (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded - aggregate code before allocator, and ahead of declaration for - temporary, to prevent access before elaboration when the allocator is - an actual for an access parameter. - (Expand_N_Type_Conversion): On an access type conversion involving an - access parameter, do not apply an accessibility check when the - operand's original node was an attribute other than 'Access. We now - create access conversions for the expansion of 'Unchecked_Access and - 'Unrestricted_Access in certain cases and clearly accessibility should - not be checked for those. - - * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that - includes a type conversion of a packed component that has been expanded, - recover the original expression for the object, and use this expression - in the post-call assignment statement, so that the assignment is made - to the object and not to a back-end temporary. - (Freeze_Subprogram): In case of primitives of tagged types not defined - at the library level force generation of code to register the primitive - in the dispatch table. In addition some code reorganization has been - done to leave the implementation clear. - (Expand_Call): When expanding an inherited implicit conversion, - preserve the type of the inherited function after the intrinsic - operation has been expanded. - - * exp_ch2.ads, exp_ch2.adb - (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference - of an entry formal appearing in an assignment statement does not assign - to the formal. - (Expand_Current_Value): Instead of calling a routine to determine - whether the prefix of an attribute reference should be optimized or - not, prevent the optimization of such prefixes all together. - - * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected - component whose prefix is known to be of an access type is an implicit - dereference and does not assign to the prefix. - -2007-08-14 Ed Schonberg - Robert Dewar - - * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and - itype is visited, make an entry into table to link associated node and - new itype. - Add comments and correct harmless error in Build_NCT_Hash_Tables - (Array_Aggr_Subtype): Associate each itype created for an index type to - the corresponding range construct, and not to the aggregate itself. to - maintain a one-to-one correspondence between itype and its associated - node, to prevent errors when complex expression is copied. - Fix mishandling of multiple levels of parens - - * sem_aggr.adb: Create a limited view of an incomplete type, to make - treatment of limited views uniform for all visible declarations in a - limited_withed package. - (New_Copy_Tree): If hash table is being used and itype is visited, - make an entry into table to link associated node and new itype. - (Resolve_Record_Aggregate): Do not add an others box association for a - discriminated record component that has only discriminants, when there - is a box association for the component itself. - - * par-ch4.adb: Fix mishandling of multiple levels of parens - -2007-08-14 Robert Dewar - - * comperr.adb: Fix problem with suppressing warning messages from gigi - - * erroutc.ads, erroutc.adb, errout.ads, - errout.adb (Write_Eol): Remove trailing spaces before writing the line - (Write_Eol_Keep_Blanks): New procedure to write a line, including - possible trailing spaces. - (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line - Fix problem with suppressing warning messages from back end - Improve handling of deleted warnings - - * gnat1drv.adb: - Fix problem with suppressing warning messages from back end - Handle setting of Static_Dispatch_Tables flag. - - * prepcomp.adb: - Fix problem with suppressing warning messages from back end - - * exp_intr.adb: Improve handling of deleted warnings - -2007-08-14 Robert Dewar - - * debug.adb: Improve -gnatdI to cover all cases of serialization - Add documentation of dZ, d.t - - * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of - serialization. - (Sprint_Node_Actual): Generate new output associated with implicit - importation and implicit exportation of object declarations. - -2007-08-14 Ed Schonberg - Robert Dewar - Javier Miranda - Gary Dismukes - - * einfo.ads, einfo.adb: Create a limited view of an incomplete type, - to make treatment of limited views uniform for all visible declarations - in a limited_withed package. - Improve warnings for in out parameters - (Set_Related_Interaface/Related_Interface): Allow the use of this - attribute with constants. - (Write_Field26_Name): Handle attribute Related_Interface in constants. - Warn on duplicate pragma Preelaborable_Initialialization - - * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the - generation of a freezing node to ensure proper management of null - excluding access types in the backend. - (Create_Extra_Formals): Test base type of the formal when checking for - the need to add an extra accessibility-level formal. Pass the entity E - on all calls to Add_Extra_Formal (rather than Scope (Formal) as was - originally being done in a couple of cases), to ensure that the - Extra_Formals list gets set on the entity E when the first entity is - added. - (Conforming_Types): Add missing calls to Base_Type to the code that - handles anonymous access types. This is required to handle the - general case because Process_Formals builds internal subtype entities - to handle null-excluding access types. - (Make_Controlling_Function_Wrappers): Create wrappers for constructor - functions that need it, even when not marked Requires_Overriding. - Improve warnings for in out parameters - (Analyze_Function_Return): Warn for disallowed null return - Warn on return from procedure with unset out parameter - Ensure consistent use of # in error messages - (Check_Overriding_Indicator): Add in parameter Is_Primitive. - (Analyze_Function_Return): Move call to Apply_Constraint_Check before - the implicit conversion of the expression done for anonymous access - types. This is required to generate the code of the null excluding - check (if required). - - * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable): - A formal parameter is never publicly referenceable outside of its body. - (Check_References): For an unreferenced formal parameter in an accept - statement, use the same warning circuitry as for subprogram formal - parameters. - (Warn_On_Unreferenced_Entity): New subprogram, taken from - Output_Unreferenced_Messages, containing the part of that routine that - is now reused for entry formals as described above. - (Goto_Spec_Entity): New function - (Check_References): Do not give IN OUT warning for dispatching operation - Improve warnings for in out parameters - (Test_Ref): Check that the entity is not undefinite before calling - Scope_Within, in order to avoid infinite loops. - Warn on return from procedure with unset out parameter - Improved warnings for unused variables - -2007-08-14 Robert Dewar - Javier Miranda - Gary Dismukes - - * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit - (Expand_N_Attribute_Reference): Further unify the handling of the - three forms of access attributes, using common code now for all three - cases. Add a test for the case of applying an access attribute to - an explicit dereference when the context is an access-to-interface - type. In that case we need to apply the conversion to the prefix - of the explicit dereference rather than the prefix of the attribute. - (Attribute_Version, UET_Address): Set entity as internal to ensure - proper dg output of implicit importation. - (Expand_Access_To_Type): Removed. - (Expand_N_Attribute_Reference): Merge the code from the three cases - of access attributes, since the processing is largely identical for - these cases. The substantive fix here is to process the case of a - type name prefix (current instance case) before handling the case - of interface prefixes. - -2007-08-14 Thomas Quinot - Ed Schonberg - Javier Miranda - Robert Dewar - - * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram. - (Freeze_Array_Type, Freeze_Record_Type): For the case of a component - type that is an anonymous access to controlled object, establish - an associated finalization chain to avoid corrupting the global - finalization list when a dynamically allocated object designated - by such a component is deallocated. - (Make_Controlling_Function_Wrappers): Create wrappers for constructor - functions that need it, even when not marked Requires_Overriding. - (Initialize_Tag): Replace call to has_discriminants by call to - Is_Variable_Size_Record in the circuitry that handles the - initialization of secondary tags. - (Is_Variable_Size_Record): New implementation. - (Expand_N_Object_Declaration): Suppress call to init proc if there is a - Suppress_Initialization pragma for a derived type. - (Is_Variable_Size_Record): New subprogram. - (Build_Offset_To_Top_Functions): New implementation that simplifies the - initial version of this routine and also fixes problems causing - incomplete initialization of the table of interfaces. - (Build_Init_Procedure): Improve the generation of code to initialize the - the tag components of secondary dispatch tables. - (Init_Secondary_Tags): New implementation that simplifies the previous - version of this routine. - (Make_DT): Add parameter to indicate when type has been frozen by an - object declaration, for diagnostic purposes. - (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to - diagnose attemps to freeze a subprogram when some untagged type of its - profile is a private type whose full view has not been analyzed yet. - (Freeze_Array_Type): Generate init proc for packed array if either - Initialize or Normalize_Scalars is set. - (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when - constructing the new profile, copy the null_exclusion indicator for each - parameter, to ensure full conformance of the new body with the spec. - - * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers): - Create wrappers for constructor functions that need it, even when not - marked Requires_Overriding. - (Covers): Handle properly designated types of anonymous access types, - whose non-limited views are themselves incomplete types. - (Add_Entry): Use an entity to store the abstract operation which hides - an interpretation. - (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op. - (Collect_Interps): Use Empty as an actual for Abstract_Op in the - initialization aggregate. - (Function_Interp_May_Be_Hidden): Rename to - Function_Interp_Has_Abstract_Op. - (Has_Compatible_Type): Remove machinery that skips interpretations if - they are labeled as potentially hidden by an abstract operator. - (Has_Hidden_Interp): Rename to Has_Abstract_Op. - (Set_May_Be_Hidden): Rename to Set_Abstract_Op. - (Write_Overloads): Output the abstract operator if present. - (Add_Entry): Before inserting a new entry into the interpretation table - for a node, determine whether the entry will be disabled by an abstract - operator. - (Binary_Op_Interp_May_Be_Hidden): New routine. - (Collect_Interps): Add value for flag May_Be_Hidden in initialization - aggregate. - (Function_Interp_May_Be_Hidden): New routine. - (Has_Compatible_Type): Do not consider interpretations hidden by - abstract operators when trying to determine whether two types are - compatible. - (Has_Hidden_Interp): New routine. - (Set_May_Be_Hidden_Interp): New routine. - (Write_Overloads): Write the status of flag May_Be_Hidden. - -2007-08-14 Ed Schonberg - Javier Miranda - - * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged - types declared in the declarative part of a nested package body or in - the proper body of a stub. - (Set_All_DT_Position): Add missing check to avoid wrong assignation - of the same dispatch table slot to renamed primitives. - (Make_Select_Specific_Data_Table): Handle private types. - (Tagged_Kind): Handle private types. - (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg - output of implicit importation and exportation. - (Expand_Interface_Thunk): Fix bug in the expansion assuming that the - first formal of the thunk is always associated with the controlling - type. In addition perform the following code cleanup: remove formal - Thunk_Alias which is no longer required, cleanup evaluation of the - the controlling type, and update the documentation. - Replace occurrence of Default_Prim_Op_Count by - Max_Predef_Prims. Addition of compile-time check to verify - that the value of Max_Predef_Prims is correct. - (Check_Premature_Freezing): Apply check in Ada95 mode as well. - (Make_DT): Add parameter to indicate when type has been frozen by an - object declaration, for diagnostic purposes. - (Build_Static_Dispatch_Tables): New subprogram that takes care of the - construction of statically allocated dispatch tables. - (Make_DT): In case of library-level tagged types export the declaration - of the primary tag. Remove generation of tags (now done by Make_Tags). - Additional modifications to handle non-static generation of dispatch - tables. Take care of building tables for asynchronous interface types - (Make_Tags): New subprogram that generates the entities associated with - the primary and secondary tags of Typ and fills the contents of Access_ - Disp_Table. In case of library-level tagged types imports the forward - declaration of the primary tag that will be declared later by Make_DT. - (Expand_Interface_Conversion): In case of access types to interfaces - replace an itype declaration by an explicit type declaration to avoid - problems associated with the scope of such itype in transient blocks. - -2007-08-14 Robert Dewar - Ed Schonberg - Javier Miranda - - * exp_util.ads, exp_util.adb: - This patch replaces a number of occurrences of explicit tests for N_Null - with calls to Known_Null. This improves tracking of null values, since - Known_Null also catches null constants, and variables currently known to - be null, so we get better tracking. - (Ensure_Defined): create an itype reference only in the scope of the - itype. - (Side_Effect_Free): A selected component of an access type that - denotes a component with a rep clause must be treated as not - side-effect free, because if it is part of a linked structure its - value may be affected by a renaming. - (Expand_Subtype_From_Expr): For limited objects initialized with build - in place function calls, do nothing; otherwise we prematurely introduce - an N_Reference node in the expression initializing the object, which - breaks the circuitry that detects and adds the additional arguments to - the called function. Bug found working in the new patch for statically - allocated dispatch tables. - (Is_Library_Level_Tagged_Type): New subprogram. - (Remove_Side_Effects): If the expression of an elementary type is an - operator treat as a function call. - (Make_Literal_Range): If the index type of the array is not integer, use - attributes properly to compute the constraint on the resulting aggregate - which is a string. - - * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a - class-wide type whose base type is an incomplete private type, leave - class-wide type unfrozen so that freeze nodes can be generated - properly at a later point. - (Freeze_Entity, array case): Handle case of pragma Pack and component - size attributre clause for same array. - -2007-08-14 Vincent Celier - - * prj.ads, prj.adb: Update Project Manager to new attribute names for - gprbuild. - Allow all valid declarations in configuration project files - (Reset): Initialize all tables and hash tables in the project tree data - Major update of the Project Manager and of the project aware tools, - including gprmake, so that the same sources in the GNAT repository - can be used by gprbuild. - (Slash_Id): Change type to be Path_Name_Type - (Slash): Return a Path_Name_Type instead of a File_Name_Type - - * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by - gprbuild. - Update Project Manager to new attribute names for ghprbuild - Allow all valid declarations in configuration project files - Major update of the Project Manager and of the project aware tools, - including gprmake, so that the same sources in the GNAT repository - can be used by gprbuild. - - * prj-com.ads: - Major update of the Project Manager and of the project aware tools, - including gprmake, so that the same sources in the GNAT repository - can be used by gprbuild. - - * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case - insensitive flag for attributes with optional index. - (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative - array attribute, put the index in lower case. - Update Project Manager to new attribute names for ghprbuild - Allow all valid declarations in configuration project files - Major update of the Project Manager and of the project aware tools, - including gprmake, so that the same sources in the GNAT repository - can be used by gprbuild. - - * prj-env.ads, prj-env.adb: - Major update of the Project Manager and of the project aware tools, - including gprmake, so that the same sources in the GNAT repository - can be used by gprbuild. - (Get_Reference): Change type of parameter Path to Path_Name_Type - - * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after - removing '-' from the path to start with the first character of the - next directory. - Major update of the Project Manager and of the project aware tools, - including gprmake, so that the same sources in the GNAT repository - can be used by gprbuild. - Major update of the Project Manager and of the project aware tools, - including gprmake, so that the same sources in the GNAT repository - can be used by gprbuild. - - * prj-nmsc.ads, prj-nmsc.adb: - Update Project Manager to new attribute names for ghprbuild - Allow all valid declarations in configuration project files - (Search_Directories): Detect subunits that are specified with an - attribute Body in package Naming. Do not replace a source/unit in the - same project when the order of the source dirs are known. Detect - duplicate sources/units in the same project when the order of the - source dirs are not known. - (Check_Ada_Name): Allow all identifiers that are not reserved words - in Ada 95. - Major update of the Project Manager and of the project aware tools, - including gprmake, so that the same sources in the GNAT repository - can be used by gprbuild. - (Look_For_Sources): If the list of sources is empty, set the object - directory of non extending project to nil. - Change type of path name variables to be Path_Name_Type - (Locate_Directory): Make sure that on Windows '/' is converted to '\', - otherwise creating missing directories will fail. - - * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb, - prj-part.ads, prj-part.adb: - Major update of the Project Manager and of the project aware tools, - including gprmake, so that the same sources in the GNAT repository - can be used by gprbuild. - - * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case - insensitive flag for attributes with optional index. - (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative - array attribute, put the index in lower case. - (Parse_Variable_Reference): Allow the current project name to be used in - the prefix of an attribute reference. - - * prj-util.ads, prj-util.adb - (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index, - defaulted to False. When True, always check against indexes in lower - case. - - * snames.ads, snames.h, snames.adb: - Update Project Manager to new attribute names for gprbuild - Allow all valid declarations in configuration project files - -2007-08-14 Robert Dewar - Ed Schonberg - - * opt.ads: Warning for non-local exception propagation now off by - default - New switch -gnatI to disable representation clauses - Implement new pragma Implicit_Packing - - * usage.adb: - Warning for non-local exception propagation now off by default - Add warning for unchecked conversion of pointers wi different - conventions. - New switch -gnatI to disable representation clauses - - * usage.adb: new switch -gnatyS - - * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a - note that aggregates of anonymous array types are not flagged. - -gnatwc now includes membership tests optimized away - -gnatw.x warnings are now off by default - Added conditional compilation Appendix - Add documentation of -gnatI - Add documentation for new -gnatyS style check - Update documentation about SAL and auto-init on Windows. - - * gnat_rm.texi: - Add documentation for pragma Check_Name and 'Enabled attribute - Document that Eliminate on dispatching operation is ignored - Document IDE attributes VCS_Repository_Root and VCS_Patch_Root. - Document pragma Main - Document pragma Implicit_Packing - - * sem_ch13.adb: Add warning for unchecked conversion of pointers wi - different conventions - New switch -gnatI to disable representation clauses - - * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not - recognized, report the invalid characters including "-gnat" instead of - just the first character in the switch. - New switch -gnatI to disable representation clauses - Set Warn_On_Object_Renames_Function true for -gnatg - - * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES - Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS - Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent - to switch -aP (add directory to project search dir). - - * par-prag.adb: Implement new pragma Implicit_Packing - - * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the - type as having a non-standard representation, to force expansion on - conversion to related types. - (Analyze_Pragma): Warn on misspelled pragma - (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg - Ensure consistent use of # in error messages - Implement pragma Implicit_Packing - -2007-08-14 Olivier Hainque - Eric Botcazou - - * targtyps.c (get_target_maximum_default_alignment): New function. - Maximum alignment - that the compiler might choose by default for a type or object. - (get_target_default_allocator_alignment): New function. Alignment known - to be honored by the target default allocator. - (get_target_maximum_allowed_alignment): New function. Maximum alignment - we might accept for any type or object on the target. - (get_target_maximum_alignment): Now synonym of maximum_default_alignment - - * gigi.h (get_target_maximum_default_alignment): Declare new function. - (get_target_default_allocator_alignment): Likewise. - (get_target_maximum_allowed_alignment): Likewise. - - PR ada/19037 - * decl.c (gnat_to_gnu_entity) : Except for the renaming of the - result of a function call, first try to use a stabilized reference for - a constant renaming too. - (validate_alignment): Use target_maximum_allowed_alignment instead of - MAX_OFILE_ALIGNMENT as the upper bound to what we accept. - (gnat_to_gnu_entity): Use common nodes directly. - (gnat_to_gnu_entity) : Pick the values of the type to annotate - alignment and size for the object. - (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call - and N_Procedure_Call_Statement. - (takes_address): Rename to lvalue_required_p, add third parameter - 'aliased' and adjust recursive calls. - : Update 'aliased' from the array type. - : New case. - : New Likewise. - (Identifier_to_gnu): Adjust for above changes. - (maybe_stabilize_reference) : New case. - - * utils2.c (build_binary_op) : Look through conversion - between type variants. - (build_simple_component_ref): Likewise. - (build_call_alloc_dealloc): Use target_default_allocator_alignment - instead of BIGGEST_ALIGNMENT as the threshold to trigger the super - aligning type circuitry for allocations from the default storage pool. - (build_allocator): Likewise. - (build_simple_component_ref): Manually fold the reference for a - constructor if the record type contains a template. - - * utils.c (value_zerop): Delete. - (gnat_init_decl_processing): Emit debug info for common types. - (rest_of_record_type_compilation): If a union contains a field - with a non-constant qualifier, treat it as variable-sized. - (finish_record_type): Give the stub TYPE_DECL a name. - (rest_of_record_type_compilation): Likewise. - (convert) : New case. Build a new constructor if - types are equivalent array types. - (create_field_decl): Claim fields of any ARRAY_TYPE are addressable, - even if the type is not passed by reference. - (static_ctors, static_dtors): Delete. - (end_subprog_body): Do not record constructors and destructors. - (build_global_cdtor): Delete. - (gnat_write_global_declarations): Do not call build_global_cdtor. - - * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when - -fRTS=rtp is specified. - If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is - specified. - - * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name - of the personality function with SJLJ exceptions. - - * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for - the name of the personality function with SJLJ exceptions. - -2007-08-14 Robert Dewar - Ed Schonberg - - * par.ads, par.adb: Improve handling of extra right parens. - (Par): Remove flag From_Limited_With_Clause. - - * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint - Improve handling of extra right parens. - -2007-08-14 Robert Dewar - - * par-tchk.adb (TF_Semicolon): Improve error recovery - -2007-08-14 Robert Dewar - Ed Schonberg - - * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For - enumeration type, mark all literals as referenced. - (Eval_Attribute, case 'Image): If the argument is an enumeration - literal and names are available, constant-fold but mark nevertheless as - non-static. - Clean up function names. - (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify - comment. - (Requires_Simple_Name_Prefix): Removed. - -2007-08-14 Robert Dewar - Ed Schonberg - - * sem_ch11.adb: Improved warnings for unused variables - - * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor - is a synchronized interface, the derived type is limited. - (Analyze_Object_Declaration): Mark the potential coextensions in the - definition and expression of an object declaration node. - (Build_Derived_Type): For the completion of a private type declaration - with a derived type declaration, chain the parent type's representation - items to the last representation item of the derived type (not the - first one) if they are not present already. - (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete - object declaration of forward references to tags. - (Access_Subprogram_Declaration): In Ada2005, anonymous access to - subprogram types can appear as access discriminants of synchronized - types. - (OK_For_Limited_Init_In_05): The initialization is legal is it is a call - given in prefixed form as a selected component. - (Process_Discriminants): If not all discriminants have defaults, place - error message on a default that is present. - (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to - extend a synchronized tagged type. - Improved warnings for unused variables - (Is_Visible_Component): Fix a visibility hole on a component inherited - by a private extension when parent is itself declared as a private - extension, and the derivation is in a child unit. - (Find_Hidden_Interface): Move spec from the package body. - -2007-08-14 Robert Dewar - Ed Schonberg - - * sem_ch5.adb: Improve warnings on redundant assignments - - * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk - parameter - (Is_Synchronized_Tagged_Type): New subprogram that returns true - in case of synchronized tagged types (AARM 3.9.4 (6/2)). - (Safe_To_Capture_Value): Can now return True for constants, even if Cond - is set to False. Improves handling of Known_[Not_]Null. - (Wrong_Type): Special case address arithmetic attempt - (Collect_Abstract_Interfaces): Add new formal to allow collecting - abstract interfaces just using the partial view of private types. - (Has_Abstract_Interfaces): Add new formal to allow checking types - covering interfaces using the partial view of private types. - (Is_Fully_Initialized_Type): Special VM case for uTag component. This - component still needs to be defined in this case, but is never - initialized as VMs are using other dispatching mechanisms. - (Abstract_Interface_List): For a protected type, use base type to get - proper declaration. - Improve warnings on redundant assignments - (Is_Variable): Handle properly an implicit dereference of a prefixed - function call. - (Build_Actual_Subtype): If this is an actual subtype for an - unconstrained formal parameter, use the sloc of the body for the new - declaration, to prevent anomalises in the debugger. - -2007-08-14 Robert Dewar - - * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for - dispatching operation - -2007-08-14 Ed Schonberg - Gary Dismukes - - * exp_aggr.ads, - exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place - expanded aggregate code before allocator, and ahead of declaration for - temporary, to prevent access before elaboration when the allocator is - an actual for an access parameter. - (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing - the TSD and the table of interfaces. - (Convert_To_Assignments): Augment the test for delaying aggregate - expansion for limited return statements to include the case of extended - returns, to prevent creation of an unwanted transient scope. - (Is_Static_Dispatch_Table_Aggregate): New subprogram. - (Expand_Array_Aggregate): Handle aggregates associated with - statically allocated dispatch tables. - (Expand_Record_Aggregate): Handle aggregates associated with - statically allocated dispatch tables. - (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators - of anonymous access type. - -2007-08-14 Ed Schonberg - - * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment - is a variable that renames a slice, use the variable itself in the - expannsion when the renamed expression itself may be modified between - the declaration of the renaming and the array assignment. - -2007-08-14 Jerome Guitton - - * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb, - s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb, - s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks): - New functions; dummy implementations. - - * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New - functions, used to implement the multi-tasks mode routines on VxWorks. - - * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop): - New functions, thin - binding to the VxWorks routines which have changed between VxWorks 5 - and 6. - (Int_Lock, Int_Unlock): New function, thin binding to kernel routines - which are not callable from a RTP. - - * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions, - implemented for the multi-tasks mode on VxWorks 5 and 6. - - * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions. - - * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New - functions. - -2007-08-14 Vincent Celier - - * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb, - gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb - mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb, - mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb, - mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, - mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb, - mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New - procedure. - (Major_Id_Name): New function. - mlib-tgt.ads/mlib.tgt.adb: - (Library_Major_Minor_Id_Supported): New function, default returns True - Most mlib-tgt-*.adb that support shared libraries and symbolic links: - (Build_Dynamic_Library): Add support for major/minor ids for shared libs - Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi): - Implementation of Library_Major_Minor_Id_Supported returns False - clean.adb: - (Clean_Library_Directory): If major/minor ids are supported, clean all - library files. - Major update of the Project Manager and of the project aware tools, - including gprmake, so that the same sources in the GNAT repository - can be used by gprbuild. - -2007-08-14 Olivier Hainque - - * system-solaris-x86.ads (ZCX_By_Default): Switch to True. - (GCC_ZCX_Support): Switch to True. - - * s-intman-solaris.adb (Notify_Exception): Call - Adjust_Context_For_Raise before raising, as expected for signal - handlers in general. - - * s-intman-posix.adb (Notify_Exception): Remove declaration of - Adjust_Context_For_Raise, moved to the spec of this unit to be visible - to other implementation bodies. - - * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to - be visible by multiple implementation bodies. - - * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context - only for conditions coming from hardware. - [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement, - adjustments to signal context prior to exception raise from signal - handler. - (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP - mode. - Solaris section: (__gnat_adjust_context_for_raise): New function. - Implementation of the machine context adjustments to perform prior to - raise from a signal handler. Version for both sparc and x86. - (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define. - (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it - prior to raising as expected for any handler, before possible nested - faults to make sure all the contexts in a chain have been adjusted by - the time we propagate. - -2007-08-14 Pascal Obry - - * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows. - (SYSTEM_INFO): New record. - (SetThreadIdealProcessor): New imported routine needed for supporting - task_info pragma on Windows. - - * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task - info can be applied to the current host. - (Create_Task): Set the ideal processor if information is present. - - * s-tasinf-mingw.adb, s-tasinf-mingw.ads, - a-exetim-mingw.adb, a-exetim-mingw.ads: New files. - -2007-08-14 Olivier Hainque - - * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the - stack size and initial stack pointer value for a given task. - (Enter_Task): Get the stack attributes of the task we are entering and - let the stack checking engine know about them. - - * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram. - Let the stack-checking engine know about the initial sp value and stack - size associated with the current task. - (Set_Stack_Info): If a stack base has been notified for the current - task, honor it. Fallback to the previous less accurate method otherwise. - - * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body. - -2007-08-14 Ed Schonberg - - * sem_ch10.adb: Create a limited view of an incomplete type, to make - treatment of limited views uniform for all visible declarations in a - limited_withed package. - Set flag indicating that a subprogram body for a child unit has a - generated spec. - (Analyze_Compilation_Unit): If unit is a subprogram body that has no - separate declaration, remove the unit name from visibility after - compilation, so that environment is clean for subsequent compilations. - (Install_Limited_Context_Clauses): Do not install a - limited_private_with_clause unless the current unit is a body or a - private child unit. - (Analyze_Subunit, Install_Parents): Treat generic and non-generic units - in the same fashion. - (Install_Limited_Withed_Unit): Do not install a limited with clause if - it applies to the declaration of the current package body. - (Remove_Private_With_Clauses): If there is a regular with_clause for - the unit, delete Private_With_Clause from context, to prevent improper - hiding when processing subsequent nested packages and instantiations. - -2007-08-14 Jose Ruiz - - * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept - dir/file, device:/dir/file, and device:drive_letter:/dir/file as - representing absolute path names. - __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues. - - * cstreams.c (__gnat_full_name for VxWorks): Use - __gnat_is_absolute_path to detect whether we need to add the current - directory to normalize the path. - -2007-08-14 Javier Miranda - - * a-tags.ads, - a-tags.adb (Displace): Associate a message with the raised CE - exception. - (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr, - To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr, - To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package - spec. - (Default_Prim_Op_Count): Removed. - (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind, - Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind): - Remove pragma Inline_Always. - - * rtsfind.ads (Default_Prim_Op_Count): Removed - (Max_Predef_Prims): New entity - (RE_Expanded_Name): Removed - (RE_HT_Link): Removed - (RE_Iface_Tag): Remmoved - (RE_Ifaces_Table): Removed - (RE_Interfaces_Array): Removed - (RE_Interface_Data_Element): Removed - (RE_Nb_Ifaces): Removed - (RE_RC_Offset): Removed - (RE_Static_Offset_To_Top): Removed - - * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new - formal. - (Build_Inherit_Predefined_Prims): Replace occurrences of Default_ - Prim_Op_Count by Max_Predef_Prims. - -2007-08-14 Thomas Quinot - Vincent Celier - - * binde.adb (Elab_All_Links): Remove unnecessary call to - Generic_Separately_Compiled (if a unit satisfies this predicate, there - won't be an associated Afile). - (Elab_All_Links): Fail if a referenced unit cannot be found - - * bindgen.adb: - Fix comments in bindgen regarding consistency checks done in Bcheck: - the checks are made across units within a partition, not across several - partitions. - Fix generation of C binder file for VxWorks. - - * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to - Generic_May_Lack_ALI, more descriptive of the current use of the - predicate, and update documentation. - - * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code - reorganization and documentation update for the case of predefined - library generics (for which we do not reference an Afile). - -2007-08-14 Robert Dewar - - * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads, - s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, - s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb, - s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb, - s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb, - s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads, - s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads, - s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb, - exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads, - s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb, - s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads, - a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads, - s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads, - g-altcon.adb: Minor reformatting - - ada-tree.h: Delete empty line. - - ali.ads: Minor reformatting - Clarification of comments. - Minor spelling correction - - * exp_dbug.adb: Add Warnings Off to suppress new warning - - * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode - formal - - * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old - value - - * a-textio.adb (Write): Remove an unnecessary IN OUT mode from - - * a-textio.ads: Reorder the standard input/output/error declarations - for consistency. - - * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call - - * par-ch2.adb: Recognize RM specially in errout - Change 'R'M to RM in all error messages - - * scng.adb: Recognize RM specially in errout - - * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename - N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology. - - * s-direio.adb: Add missing routine header box. - - * sem_attr.ads: Add ??? comments - - * sem_eval.adb: Recognize RM specially in errout - Change 'R'M to RM in all error messages - - * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes - - * s-tasinf.ads: Fix minor comment typo. - - * a-cihama.adb: Minor comment addition - - * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode - formal - - * s-tasinf-tru64.ads: Fix minor comment typo. - - * itypes.ads: Comment update. - - * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed - anymore. - - * argv.c: Added protection against null gnat_argv and gnat_envp. - - * bcheck.adb (Check_Consistency): Use correct markup character ({) in - warning message when Tolerate_Consistency_Errors is True. - - * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for - Any_Id, as this subprogram is only applicable to *type* entities (it - sets RM_Size). Instead initialize just Esize and Alignment. - -2007-08-14 Bob Duff - - * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads, - a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, - a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads, - a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads, - a-coorse.ads (Next): Applied pragma Inline. - Make all Containers packages Remote_Types (unless they are already - Pure). - (Previous): applied pragma Inline - (Elements_Type): is now a record instead of an array - -2007-08-14 Thomas Quinot - - * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms - of Set_Item. - (Set_Item): When the new item is an element of the currently allocated - table passed by reference, save a copy on the stack if we're going - to reallocate. Also, in Table.Set_Item, make sure we test the proper - variable to determine whether to call Set_Last. - - * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb, - symbols-vms.adb, symbols-processing-vms-alpha.adb, - symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace - some occurrences of the pattern - T.Increment_Last; - T.Table (T.Last) := Value; - with a cleaner call to - T.Append (Value); - -2007-08-14 Ed Schonberg - Gary Dismukes - Thomas Quinot - - * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a - derived type with interface progenitors use the analyzed formal as the - parent of the actual, to create renamings for all the inherited - operations in Derive_Subprograms. - (Collect_Previous_Instances): new procedure within of - Load_Parent_Of_Generic, to instantiate all bodies in the compilation - unit being loaded, to ensure that the generation of global symbols is - consistent in different compilation modes. - (Is_Tagged_Ancestor): New function testing the ancestor relation that - takes progenitor types into account. - (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by - traversing over the primitives of the formal and actual types to locate - any abstract subprograms of the actual type that correspond to a - nonabstract subprogram of the formal type's ancestor type(s), and issue - an error if such is found. - (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation, - Instantiate_Package_Body, Instantiate_Subprogram_Body): - Remove bogus guard around calls to Inherit_Context. - (Reset_Entity): If the entity is the selector of a selected component - that denotes a named number, propagate constant-folding to the generic - template only if the named number is global to the generic unit. - (Set_Instance_Env): Only reset the compilation switches when compiling - a predefined or internal unit. - -2007-08-14 Ed Schonberg - - * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first - parameter to determine whether operation applies to the prefix. - (Complete_Object_Operation): If actual has an access type and - controlling formal is not an in_parameter, reject the actual if it is - an access_to_constant type. - (Try_Primitive_Operation): If the type of the prefix is a formal tagged - type, the candidate operations are found in the scope of declaration of - the type, because the type has no primitive subprograms. - (Analyze_Selected_Component): If prefix is class-wide, and root type is - a private extension, only examine visible components before trying to - analyze as a prefixed call. - Change Entity_List to Type_To_Use, for better readability. - (Has_Fixed_Op): Use base type when checking whether the type of an - operator has a user-defined multiplication/division - (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when - user-defined operators are available for fixed-point types. - -2007-08-14 Thomas Quinot - Ed Schonberg - - * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New - formal At_Any_Place indicating, when True, that we want to test for - availability of the stream attribute at any place (as opposed to the - current visibility context only). - (Missing_Read_Write_Attributes): A stream attribute is missing for the - purpose of enforcing E.2.2(8) only if it is not available at any place. - Take into account the Ada2005 pragma Has_Preelaborable_Initialization - when checking the legality of an extension aggregate in a preelaborable - package. Treat the literal null as a valid default expression in a - component declaration for a type with preelaborable initialization. - A limited interface is a legal progenitor for the designated type of a - remote access to class-wide type. - -2007-08-14 Thomas Quinot - Ed Schonberg - - * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute - reference): Use correct entity as denoted entity for the selector of - the rewritten node. - (Find_Direct_Name): Add comment about Generate_Reference incorrectly - setting the Referenced_As_LHS flag for entities that are implicitly - dereferenced. - (Find_Type): If the type is an internally generated incomplete type, - mark the full view as referenced, to prevent spurious warnings. - (Find_Selected_Component, Has_Components): Handle properly non-limited - views that are themselves incomplete types. - Handle interfaces visible through limited-with clauses. - (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a - subprogram generic actual for which we have generated a renaming. - Warn when the renaming introduces a homonym of - the renamed entity, and the renamed entity is directly visible. - -2007-08-14 Ed Schonberg - Hristian Kirtchev - - * sem_res.adb (Resolve_Allocator): Propagate any coextensions that - appear in the subtree to the current allocator if it is not a static - coextension. - (Resolve_Allocator): Perform cleanup if resolution has determined that - the allocator is not a coextension. - (Resolve): Skip an interpretation hidden by an abstract operator only - when the type of the interpretation matches that of the context. - (Resolve): When looping through all possible interpretations of a node, - do not consider those that are hidden by abstract operators. - (Resolve_Actuals): When verifying that an access to class-wide object - is an actual for a controlling formal, ignore anonymous access to - subprograms whose return type is an access to class_wide type. - (Resolve_Slice): If the prefix of the slice is a selected component - whose type depends on discriminants, build its actual subtype before - applying range checks on the bounds of the slice. - (Valid_Conversion): In an instance or inlined body, compare root types, - to prevent anomalies between private and public views. - (Resolve): Improve error message for ambiguous fixed multiplication - expressions that involve universal_fixed multiplying operations. - -2007-08-14 Javier Miranda - Hristian Kirtchev - - * exp_ch9.adb (Build_Protected_Entry): Propagate the original source - location to allow the correct generation of errors in case of - restrictions applied to the expanded code. - (Expand_Entry_Barrier): Remove all generated renamings for a barrier - function if the condition does not reference them. - (Expand_Entry_Body_Declarations): Mark the index constant as having a - valid value. - -2007-08-14 Thomas Quinot - Pablo Oliveira - - * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating - typecode parameters for a union (in a variant record), remove - extraneous layer of Any wrapping for member label. - (Expand_Receiving_Stubs_Bodies): For an RCI package body that has - elabration statements, register the package with the name server - at the beginning, not at the end, of the elaboration statements so - that they can create remote access to subprogram values that designate - remote subprograms from the package. - -2007-08-14 Hristian Kirtchev - - * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time - values to compute the number of seconds since the Unix Epoc in order to - account for Daylight Savings Time. Perform special processing for dates - that are earlier than the Unix Epoc to obtain a negative number. - -2007-08-14 Emmanuel Briot - - * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing - switches. - -2007-08-14 Eric Botcazou - - * gnatlink.adb (Gnatlink): Pass switches to the linker even if the - binder-generated file is not in Ada. - Pass -mrtp to the linker if it is GCC and --RTS=rtp has been - recorded in the ALI file. - Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded. - -2007-08-14 Vincent Celier - - * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value - (Output_Source): Do nothing if parameter is No_Sdep_Id - - * make.adb (Gnatmake): Do not rebuild an archive simply because a - shared library it imports has a later time stamp. - (Check): Resolve the symbolic links in the path name of the object - directory. - Check that the ALI file is in the correct object directory - Check if a file name does not correspond to the mapping of units - to file names. - (Display_Version): New procedure - (Initialize): Process switches --version and --help - Use type Path_Name_Type for path name - -2007-08-14 Paul Hilfinger - - * impunit.adb: Re-organize System.Random_Numbers and - GNAT.Random_Numbers and add to builds. - - * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert* - - * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files. - - * a-assert.ads, a-assert.adb: New files. - -2007-08-14 Gary Dismukes - - * layout.adb (Layout_Type): In the case of access-to-subprogram types, - if AAMP_On_Target is True, then the size of the type encompasses two - addresses (a static link and a subprogram address), except in the case - of library-level access types. - -2007-08-14 Vincent Celier - - * output.ads, output.adb (Write_Eol): Remove trailing spaces before - writing the line. - (Write_Eol_Keep_Blanks): New procedure to write a line, including - possible trailing spaces. - (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line - -2007-08-14 Javier Miranda - - * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with - null-excluding access types. - -2007-08-14 Javier Miranda - - * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code - that is common to Analyze_Protected_Type and Analyze_Task_Type. In case - of private types add missing check on matching interfaces in the - partial and full declarations. - (Analyze_Protected_Type): Code cleanup. - (Analyze_Task_Type): Code cleanup. - -2007-08-14 Javier Miranda - - * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a - generated interface thunk. - -2007-08-14 Ed Schonberg - - * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent - obsolescent warning on application of 'Class to an incomplete type. - - * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to - prevent obsolescent warning on application of 'Class to an incomplete - type. - -2007-08-14 Pascal Obry - - * s-fileio.adb (Is_Open): Add check for usability of the underlying - file stream. - -2007-08-14 Cyrille Comar - - * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent - since it is potentially used in cases implying double finalization of - the same object. - -2007-08-14 Jose Ruiz - - * s-tasini.adb (Get_Stack_Info): Move this function to - System.Soft_Links.Tasking because it is common to the full and the - restricted run times. - (Init_RTS): Do not set the Get_Stack_Info soft link because it is done - in SSL.Tasking.Init_Tasking_Soft_Links. - - * s-solita.adb (Get_Stack_Info): Function moved from - System.Tasking.Initialization because it is common to the full and the - restricted run times. - (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info. - -2007-08-14 Arnaud Charlet - - * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb, - s-taskin.ads (Requeue_With_Abort): Rename field With_Abort. - (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort - parameter. - - * s-tassta.adb (Task_Wrapper): Increased value of the small overflow - guard to 12K. - -2007-08-14 Gary Dismukes - - * s-veboop.adb (SU): New named number initialized to - System.Storage_Unit. - (True_Val): The initialization expression is revised to use SU (= - Storage_Unit) rather than assuming 8 for the component size of an - unpacked Boolean array. - -2007-08-14 Tristan Gingold - - * tracebak.c: Use tb-ivms.c on OpenVMS Itanium. - - * tb-ivms.c: New file. - - * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2 - -2007-08-14 Geert Bosch - - * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads, - s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads: - Add required linker pragmas for automatically linking with the gnalasup - linear algebra support library, and the systems math library. - Rename cdot to cdotu and zdot to zdotu. - Update header comment to describe purpose of package. - -2007-08-14 Thomas Quinot - - * exp_ch7.adb (Find_Final_List): For an anonymous access type that has - an explicitly specified Associated_Final_Chain, use that list. - (Expand_N_Package_Body): Build dispatch tables of library level tagged - types. - (Expand_N_Package_Declaration): Build dispatch tables of library level - tagged types. Minor code cleanup. - -2007-08-14 Vincent Celier - - * gnatchop.adb (Terminate_Program): Remove exception and use - Types.Terminate_Program instead. - - * osint.ads, osint.adb (Current_Exit_Status): New global variable - (Find_Program_Name): Added protection against empty name. - (OS_Exit_Through_Exception): New procedure - - * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body - (OS_Exit_Default): New procedure that contains the previous - implementation of procedure OS_Exit. - (Final_Value): Remove obsolete Interix stuff. - -2007-08-14 Thomas Quinot - - * g-socket.ads: Reorganize example code so that it also works on - Windows XP. - -2007-08-14 Tristan Gingold - - * g-trasym.ads: AIX now supports symbolic backtraces. - -2007-08-14 Ed Schonberg - - * lib-load.adb (From_Limited_With_Chain): Always scan the stack of - units being loaded to detect circularities. A circularity may be - present even if the current chain of pending units to load starts from - a limited_with_clause. - - * lib-load.ads: Change profile of Load_Unit to use a with_clause - rather than a boolean flag, in order to detect circularities in - with_clauses. - - * par-load.adb: Use current with_clause in calls to Load_Unit, rather - than propagating the From_Limited_With flag, in order to handle - properly circularities involving with_clauses. - -2007-08-14 Nicolas Setton - - * link.c (FreeBSD): Add "const" keyword where needed, to eliminate - warnings. - -2007-08-14 Arnaud Charlet - - * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects - to build for libgnala. - libgnat: Add rules to build libgnala.a - (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from - target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5. - Add s-osinte-vxworks-kernel.adb to the target pairs of the - kernel run-time lib for VxWorks 6, which would provide a different - implementation for Task_Cont and Task_Stop than the VxWorks 5 version. - x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now - running ZCX by default. - Add g-sttsne-locking to LynxOS version. - Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead. - On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads. - - * system-darwin-x86.ads: New file. - - * Make-lang.in: Delete files before copying onto them, so if they are - read-only, the copy won't fail. - Update dependencies - -2007-08-14 Pascal Obry - - * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries - naming scheme. - -2007-08-14 Vincent Celier - - * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access - (Gcc): Initialize Gcc_Name at the first call - -2007-08-14 Ed Schonberg - - * sem_ch7.adb (Analyze_Package_Specification): Do not install private - with_clauses of the enclosing unit when analyzing the package - specification of a nested instance. - -2007-08-14 Hristian Kirtchev - - * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed. - (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines. - Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the - layout of N_Allocator. - -2007-08-14 Thomas Quinot - - * rtsfind.adb (Check_RPC): Add PCS version check. - - * gnatvsn.ads, gnatvsn.adb: Add PCS version. - (Gnat_Free_Software): New function. - - * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns - the PCS_Version value from s-parint, used to check that it is consistent - with what exp_dist expects. - - * s-parint.ads (PCS_Version): New entity for checking consistency - between exp_dist and PCS. - - * gen-soccon.c: (SO_REUSEPORT): New constant. - -2007-08-14 Hristian Kirtchev - - * a-calfor.adb (Image (Duration; Boolean)): Change type of local - variable Sub_Second to Duration in order to accomodate a larger range - of arithmetic operations. - -2007-08-14 Bob Duff - - * g-sttsne-locking.ads: Move comments from spec to body. - * g-sttsne-locking.adb: Move comments from spec to body. - * g-sttsne-vxworks.ads: Removed. - * g-sttsne-vxworks.adb: Removed. - -2007-08-11 Ian Lance Taylor - - * misc.c (gnat_get_alias_set): Change return type to - alias_set_type. - -2007-08-11 Kaveh R. Ghazi - - * decl.c, utils2.c: Fix whitespace in last change. - -2007-08-11 Kaveh R. Ghazi - - * decl.c (compare_field_bitpos): Constify. - * utils2.c (compare_elmt_bitpos): Likewise. - -2007-07-27 Aurelien Jarno - - * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by - anonymous access type. - (pthread_sigmask): Now take an access sigset_t. - -2007-07-05 Joel Sherrill - - * s-osinte-rtems.ads: Correct prototype of pthread_sigmask. - -2007-06-21 Eric Botcazou - - PR tree-optimization/25737 - * misc.c (gnat_post_options): Do not force flag_tree_salias to 0. - -2007-06-15 Andrew Pinski - - * trans.c (Attribute_to_gnu): When subtracting an - offset from a pointer, use POINTER_PLUS_EXPR with - NEGATE_EXPR instead of MINUS_EXPR. - (gnat_to_gnu): Likewise. - * utils.c (convert): When converting between - thin pointers, use POINTER_PLUS_EXPR and sizetype - for the offset. - * utils2.c (known_alignment): POINTER_PLUS_EXPR - have the same semantics as PLUS_EXPR for alignment. - (build_binary_op): Add support for the semantics of - POINTER_PLUS_EXPR's operands. - When adding an offset to a pointer, use POINTER_PLUS_EXPR. - -2007-06-11 Rafael Ávila de Espíndola - - * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead - of get_signed_or_unsigned_type. - * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove. - -2007-06-11 Bob Duff - Thomas Quinot - - * g-stsifd-sockets.adb (Create): Work around strange behavior of - 'bind' on windows that causes 'connect' to fail intermittently, by - retrying the 'bind'. - (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close. - -2007-06-10 Duncan Sands - - * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather - than to void, for the fields when making a new fat pointer type. - (gnat_substitute_in_type): Now substitute_in_type. - * gigi.h (gnat_substitute_in_type): Likewise. Adjust recursive calls. - * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge. - * utils.c (update_pointer_to): Update fat pointers by updating the - dummy node pointers used for the fields. - -2007-06-06 Thomas Quinot - Bob Duff - - * g-soccon-freebsd.ads, g-soccon-vxworks.ads:, - g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads, - g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads: Add new - constant Thread_Blocking_IO, always True by default, set False - on a per-runtime basis. - (Need_Netdb_Buffer): New constant. - - * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads, - g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New - files. - - * g-socthi-vxworks.ads, g-socthi-vxworks.adb, - g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname, - Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new - child package Task_Safe_NetDB - (Host_Error_Messages): Add stub body. - (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close. - - * g-soccon-mingw.ads: Add Windows-specific constants. - (Need_Netdb_Buffer): New constant. - (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada - wrapper and import inet_addr(3) from the standard sockets library - directly instead. - (In_Addr): Add alignment clause. - (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close. - -2007-06-06 Robert Dewar - - * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads, - s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb, - s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads, - s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb, - s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb, - s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb, - a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb, - a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb, - a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb, - g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb, - g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb, - i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb, - s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads, - s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb, - s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb, - s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb, - s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb, - s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb, - s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb, - s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb, - s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb, - s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb, - s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb, - s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb, - s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb, - s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb, - s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb, - s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb, - s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb, - s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads, - s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb, - a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace - Unchecked_* by Ada.Unchecked_* - -2007-06-06 Robert Dewar - - * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb, - s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb, - g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads, - output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads, - g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb, - a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate. - - * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb, - s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads, - s-tasloc.adb, s-tasloc.ads: New files. - -2007-06-06 Bob Duff - - * g-expect-vms.adb: - (Send_Signal, Close): Raise Invalid_Process if the process id is invalid. - * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string. - (Send_Signal, Close): Raise Invalid_Process if the process id is - invalid. - (Pattern_Matcher_Access): Is now a general access type to be able to - use aliased string. - -2007-06-06 Thomas Quinot - Arnaud Charlet - - * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change - (SIGEMT is now used instead of SIGTERM on AIX). - - * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads. - (Time_Slice_Supported): Set to True. - Use SIGEMT instead of SIGTERM as SIGADAABORT. - -2007-06-06 Hristian Kirtchev - - * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-" - (Time, Time)): Use To_Relative_Time rather than manual calculation to - express the bounds of Duration as Time. Raise Time_Error when the - result is greater or equal to the higher bound of Duration (on the - margin case). - ("+" (Time, Duration)): Reorder code. Remove the declaration of constant - Ada_High_And_Leaps. - ("-" (Time, Duration)): Reorder code. Remove the declaration of constant - Ada_High_And_Leaps. - ("-" (Time, Time)): Reorder code. - (All_Leap_Seconds): Removed. - (Arithmetic_Operations.Add): Remove sign related kludge. - (Arithmetic_Operations.Difference): Control the leaps seconds processing - with flag Leap_Support. - (Arithmetic_Operations.Subtract): Remove sign related kludge. - (Check_Within_Time_Bounds): New procedure. - (Clock): Control the leap seconds processing with flag Leap_Support. - (Cumulative_Leap_Seconds): Assert that the target supports leap seconds. - (Formatting_Operations.Split): Control the leap seconds processing with - flag Leap_Support. - (Formatting_Operations.Time_Of): Control the leaps seconds processing - with flag Leap_Support. Adjust the year, month and day (if applicable) - when the value of day seconds designates a new day. - (Split): Use parameter associations for better readability. Integrate - flag Is_Ada_05. - (Time_Of): Use parameter associations for better readability. Integrate - flag Is_Ada_05. - - * a-calfor.adb (Split): Use parameter associations for better - readability. Integrate flag Is_Ada_05. - (Time_Of): Remove flag Leap_Checks. Use parameter associations for - better readability. Integrate flag Is_Ada_05. - -2007-06-06 Arnaud Charlet - - * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb, - s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb, - s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb, - s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads, - s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb, - s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb, - s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads, - s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads, - s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads, - s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb, - s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base - time when entering this routine to detect a backward clock setting - (manual setting or DST adjustment), to avoid waiting for a longer delay - than needed. - (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant. - Remove handling of deferred priority change, and replace by setting the - task priority directly, as required by AI-188. - Update comments. - (Max_Task_Image_Length): New constant. - Replace Warnings (Off) by Unreferenced pragma, cleaner. - (Dynamic_Priority_Support): Removed, no longer needed. - (Poll_Base_Priority_Change): Ditto. - (Set_Ceiling): Add this procedure to change the ceiling priority - associated to a lock. This is a dummy implementation because dynamic - priority ceilings are not supported by the underlying system. - - * a-dynpri.adb (Set_Priority): Take into account case where Target is - accepting a RV with its priority boosted. - Remove handling of deferred priority change, and replace by setting the - task priority directly, as required by AI-188. - - * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for - Succeeded = True. - Remove handling of deferred priority change, and replace by setting the - task priority directly, as required by AI-188. - (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state - of Self_Id earlier. - - * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion. - (Poll_Base_Priority_Change): Removed. - Code clean up: use SSL.Current_Target_Exception. - - * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks - to run as this is a potentially dispatching point. - (Call_Synchronous): Use Local_Defer_Abort. - (Callable): Relax assertion. - (Selective_Wait): Relax assertion in case abort is not allowed. - Remove handling of deferred priority change, and replace by setting the - task priority directly, as required by AI-188. - - * s-tasuti.adb (Make_Passive): Adjust assertions. - Remove handling of deferred priority change, and replace by setting the - task priority directly, as required by AI-188. - -2007-06-06 Arnaud Charlet - - * system-vxworks-sparcv9.ads, system-solaris-x86.ads, - system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, - system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads, - system-vxworks-mips.ads, system-vxworks-alpha.ads, - system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads, - system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads, - system-interix.ads, system-linux-hppa.ads, system-tru64.ads, - system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads, - system-solaris-sparcv9.ads, system-vms.ads, system.ads, - system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads, - system-linux-ia64.ads: Document mapping between Ada and OS priorities. - This patch changes the largest non-binary modulus from 2**31-1 to - 2**32-1. - (Compiler_System_Version): Removed, no longer used. - Clean up system files by removing flags only used on a single target. - Also remove obsolete flags, only used during bootstrap from system.ads - (Address): Add a pragma Preelaborable_Initialization. - - * system-aix.ads: Ditto. - (GCC_ZCX_Support): Set to true. - Update priority range on AIX and map Ada priorities to target - priorities appropriately for different scheduling policies. - - * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1 - -2007-06-06 Vincent Celier - - * mlib-tgt-specific.adb, mlib-tgt-specific.ads, - mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files. - - * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb, - mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb, - mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, - mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, - mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package - MLib.Tgt, containing the default versions of the exported subprograms. - For each platform, create a specific version of the body of new child - package MLib.Tgt.Specific that contains only the body of subprograms - that are different from the default. - (Archive_Builder_Append_Options): New function. - -2007-06-06 Matthew Gingell - - * s-osinte-aix.adb: Map Ada priorities to target priorities - appropriately for different scheduling policies. - -2007-06-06 Arnaud Charlet - - * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely - its C counterpart. - Remove references to Unchecked_Conversion, and use Ada.xxx instead. - Replace Unchecked_Conversion by Ada.Unchecked_Conversion. - -2007-06-06 Vasiliy Fofanov - - * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure. - Noop on VMS, added for interface commonality. - -2007-06-06 Eric Botcazou - Richard Kenner - Olivier Hainque - - * decl.c (gnat_to_gnu_entity) : Manually mark the top of the - renamed expression of a full renaming at toplevel. - (gnat_to_gnu_entity, case object): If not defining, do not look inside - the values the constant is initialized to if it is an N_Allocator. - (gnat_to_gnu_entity) : Manually mark the top of the - TYPE_SIZE_UNIT of inner types after the stride is elaborated. - (make_aligning_type): Accept an extra ROOM argument for storage to be - made available before the aligned field, and an extra BASE_ALIGN - argument for callers to pass the alignment guaranteed to be honored for - the whole aligning object. Avoid call to finish_record_type, which only - interferes with the sizes we want to set. - (gnat_to_gnu_entity) : Pass the required extra arguments to - make_aligning_type for super-aligned objects on stack. - (components_to_record): Pass the adjusted size of the type when creating - fields in the qualified union for the variant part. - (gnat_substitute_in_type): Copy TYPE_USER_ALIGN. - (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for - packed array type. - (maybe_pad_type): Set TYPE_USER_ALIGN. - (make_aligning_type): Likewise. - ALIGN argument is unsigned int. - (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism. - (gnat_to_gnu_param): Likewise, for parameters. - (gnat_to_gnu_entity) : Always instantiate the renaming object - if it is constant and stems from a function call. - (gnat_to_gnu_entity) : Set packed to -2 if the alignment - of the record is specified. Adjust accordingly. - (adjust_packed): New static function. - (gnat_to_gnu_field): Use it to adjust the packedness setting. - (components_to_record): Likewise. - (gnat_to_gnu_entity) : Do not test the renamed expression for - side-effects if the object is deemed constant. - (gnat_to_gnu_entity) : Create a name for the fat pointer - type instead of merely finalizing it. Tidy. - : Retrieve the type from the TYPE_DECL. - : Likewise. - (defer_debug_incomplete_list): Rename to defer_finalize_list. - (defer_debug_level): Delete. - (gnat_to_gnu_entity) : Likewise - : Call rest_of_record_type_compilation on the fat pointer - type. - : Do not explicitly defer finalizing the type. - Adjust for write_record_type_debug_info renaming. - : Likewise. - Finalize deferred types right after deferred incomplete types are - expanded. - (rest_of_type_decl_compilation): New global function. - (components_to_record): Rename defer_debug parameter to do_not_finalize. - (components_to_record): Propagate the packedness to the fields of the - qualified union type if there is a variant part. - (gnat_to_gnu_entity) : Use new function - instead of inline code to adjust the XUT field offsets. - (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type. - : Do not let finish_record_type compute the sizes - and write the debug info if the type derives from a discriminated one. - (gnat_to_gnu_entity) : Adjust call to create_index_type. - : Likewise. - : Likewise. - (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have - an alignment clause. - (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN - before giving warning. - (prepend_one_attribute_to): New function, helper to prepend an attribute - to an attribute list. - (gnat_to_gnu_entity) : Use it. - (prepend_attributes): Likewise. - (gnat_to_gnu_entity) : Use constants of the proper type. - : Declare the padding type for the element type, if any. - : Likewise. - (defer_limited_with): New variable. - (Gigi_Equivalent_Type): New function. - (gnat_to_gnu_entity): Use it at start and use result throughout. - (gnat_to_gnu_entity, case E_Access_Type): Rework to use - Gigi_Equivalent_Type, support Limited_With, allow two levels of - indirection, precompute if unconstrained array to simplify logic, and - use defer_limited_with to defer elaboration of some types from limited - with. - (finalize_from_with_types): New function. - -2007-06-06 Gary Dismukes - Eric Botcazou - Tristan Gingold - Olivier Hainque - - * trans.c (Identifier_to_gnu): Change test for deferred constant by - adding guard that the entity is an E_Constant before testing presence - of Full_view (and remove unnecessary test that entity is not a type). - For a CONST_DECL used by reference, manually retrieve - the DECL_INITIAL. Do not invoke fold in the other DECL_P cases either. - (struct language_function): Move from utils.c to here. - (struct parm_attr): New structure. - (parm_attr, parm_attr vector, parm_attr GC vector): New types. - (f_parm_attr_cache): New macro. - (Attribute_to_gnu) : When not optimizing, cache the - expressions for the 'First, 'Last and 'Length attributes of the - unconstrained array IN parameters. - (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout. - Allocate the information structure for the function earlier, as well - as the language-specific part. - If the parameter attributes cache has been populated, evaluate the - cached expressions on entry. - (takes_address): Add OPERAND_TYPE parameter. Handle N_Function_Call, - N_Procedure_Call_Statement and N_Indexed_Component. - (Pragma_to_gnu): Translate inspection_point to an asm statement - containaing a comment and a reference to the object (either its address - for BLKmode or its value). - (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide - to go to DECL_INITIAL. Together with the size constraint relaxation - in create_var_decl, enlarges the set of situations in which an - identifier may be used as an initializer without implying elaboration - code. - (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set - DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the - node. - (maybe_stabilize_reference): Remove lvalues_only parameter. - (gnat_stabilize_reference): Adjust for above change. - (gnat_to_gnu): Do not set location information on the result - if it is a reference. - (add_cleanup): Add gnat_node parameter and set the location of the - cleanup to it. - (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup. - (Exception_Handler_to_gnu_zcx): Likewise. - (gigi): Remove the cgraph node if the elaboration procedure is empty. - (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit - the former right after the latter. - (start_stmt_group): Make global. - (end_stmt_group): Likewise. - (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New - vars. - (gnu_program_error_label_stack): Likewise. - (gigi): Initialize them. - (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise. - (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label): - New cases. - (push_exception_label_stack): New function. - (takes_address): New function. - - * utils.c (struct language_function): Move to trans.c from here. - (unchecked_convert): Do not wrap up integer constants in - VIEW_CONVERT_EXPRs. - (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent - the latter for aggregate types, unexpected by later passes, and relax an - arbitrary size constraint on the former. - (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p - to compare the sizes. - (convert_vms_descriptor): When converting to a fat pointer type, be - prepared for a S descriptor at runtime in spite of a SB specification. - (shift_unc_components_for_thin_pointers): New function. - (write_record_type_debug_info): For variable-sized fields, cap the - alignment of the pointer to the computed alignment. - (finish_record_type): Change HAS_REP parameter into REP_LEVEL. - If REP_LEVEL is 2, do not compute the sizes. - (build_vms_descriptor): Adjust for new prototype of finish_record_type. - (build_unc_object_type): Likewise. - (declare_debug_type): New function. - - * ada-tree.def: USE_STMT: removed (not emitted anymore). - - * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because - no statement is expandable anymore. - (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice. - (gnat_handle_option): Only allow flag_eliminate_debug_types to be set - when the user requested it explicitely. - (gnat_post_options): By default, set flag_eliminate_unused_debug_types - to 0 for Ada. - (get_alias_set): Return alias set 0 for a type if - TYPE_UNIVERSAL_ALIASING_P is set on its main variant. - - * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro. - (DECL_FUNCTION_STUB): New accessor macro. - (SET_DECL_FUNCTION_STUB): New setter macro. - - * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada. - - * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New - declarations. - -2007-06-06 Jose Ruiz - - * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal): - Rename to Abort_Task_Interrupt to be able to keep the same interface - as the rest of the targets. - - * s-osinte-vxworks.ads s-osinte-vxworks.adb - (To_VxWorks_Priority): Remove explicit "in" mode indicator - - * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads: - New files. - -2007-06-06 Robert Dewar - - * a-chahan.ads: Remove obsolescent pragmas - - * a-chlat1.ads: Minor reformatting - -2007-06-06 Robert Dewar - - * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface - for Errout - - * errout.adb: New Finalize/Compilation_Errors/Output_Messages - implementation - - * errout.ads (Finalize): Changed interface - (Output_Messages): New procedure - (Compilation_Errors): New Interface - - * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New - Finalize/Output_Messages interface for Errout - (Prepare_To_Preprocess): New Finalize/Output_Messages interface for - Errout. - -2007-06-06 Thomas Quinot - Olivier Hainque - Robert Dewar - - * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18) - check. - (Raise_Current_Excep): Call Debug_Raise_Exception just before - propagation starts, to let debuggers know about the event in a reliable - fashion. - (Local_Raise): Moved to System.Exceptions - More convenient to have this as a separate unit - - * s-except.adb, s-except.ads: New files. - - * a-exextr.adb (Unhandled_Exception): Delete - replaced by - Debug_Unhandled_Exception in System.Exceptions where it belongs - together with a couple of other debug helpers. - (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of - the former Unhandled_Exception. - - * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure - (Warn_No_Exception_Propagation): New procedure - (Warn_If_No_Propagation): Rewritten for new warning generation - (Expand_Exception_Handlers): New warning generation - (Expand_N_Raise_xxx_Error): Rewritten for new warnings - (Add_Exception_Label): Use Special_Exception_Package_Used for test - instead of Most_Recent_Exception_Used (accomodates Exception_Traces) - (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap - even if restriction is set (makes life easier in Check_Returns) - (Expand_Local_Exception_Handlers): Follow renamed entity chain when - checking exception identities. - (Expand_Local_Exception_Handlers): Do not optimize when all others case - (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated - block for handler (used by Check_Returns) - (Expand_Local_Exception_Handlers): Local_Raise now takes an address - (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to - remove all exception handlers when optimizing local raise statements. - (Find_Local_Handler): Use Get_Renamed_Entity - (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is - marked analyzed after expanding exception handlers, do not generate - redundant cleanup actions, because they have been constructed already. - -2007-06-06 Thomas Quinot - - * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The - presence of this categorization pragma is mandated by the language. - (Limited_Controlled): Add missing pragma Preelaborable_Initialization - for this type. - -2007-06-06 Vincent Celier - Robert Dewar - - * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb, - butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads, - err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads, - fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads, - lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads, - makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb, - par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb, - prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads, - prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb, - sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb, - uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb, - ali.ads, ali.adb: - Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to - package Namet. Make File_Name_Type and Unit_Name_Type types derived from - Mame_Id. Add new type Path_Name_Type, also derived from Name_Id. - Use variables of types File_Name_Type and Unit_Name_Type in error - messages. - (Get_Name): Add parameter Ignore_Special, and set it reading file name - (New_Copy): When debugging the compiler, call New_Node_Debugging_Output - here. - Define flags Flag217-Flag230 with associated subprograms - (Flag_Word5): New record type. - (Flag_Word5_Ptr): New access type. - (To_Flag_Word5): New unchecked conversion. - (To_Flag_Word5_Ptr): Likewise. - (Flag216): New function. - (Set_Flag216): New procedure. - -2007-06-06 Arnaud Charlet - - * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length - instead of 'Size. - - * a-stwifi.ads, a-stzfix.ads: Minor reformatting - -2007-06-06 Javier Miranda - - * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to - the package. - (Object_Specific_Data_Array): This is now internal to the package. - (Object_Specific_Data): This is now internal to the package. - (Select_Specific_Data_Element): This is now internal to the package. - (Select_Specific_Data_Array): This is now internal to the package. - (Select_Specific_Data): This is now internal to the package. - (Offset_To_Top_Function_Ptr): This is now public. - (To_Offset_To_Top_Function_Ptr): Removed. - (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now - local to subprogram Offset_To_Top. - (Predefined_DT): Removed. - (Typeinfo_Ptr): Removed. - (OSD): This function is now internal to this package. - (SSD): This function is now internal to this package. - (DT): New function that displaces the pointer to the table of primitives - to get access to the enclosing wrapper record. - (IW_Membership): Code cleanup. - (Offset_To_Top): Code cleanup. - (Predefined_DT): Removed. - (Register_Interface_Tag): Removed. - (Set_Interface_Table): Removed. - (Set_Offset_Index): Removed. - (Set_Offset_To_Top): Code cleanup. - (Set_OSD): Removed. - (Set_Signature): Removed. - (Set_SSD): Removed. - (Set_Tagged_Kind): Removed. - (Typeinfo_Ptr): Removed. - (TSD): Removed. - (Displace): Add missing check on null actual. - - * exp_disp.ads, exp_disp.adb - (Select_Expansion_Utilities): Removed. - (Build_Common_Dispatching_Select_Statements): Moved to exp_atags. - (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because - the interface requires a new parameter. - (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec, - Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace - calls to subprograms Build_T, Build_S, etc. by the corresponding code. - Done to remove package Select_Expansion_Utilities. - (Make_DT): New implementation for statically allocated dispatch tables. - (Make_Secondary_DT): Moved to the scope of Make_DT. - (Register_Primitive): Code cleanup plus incoporate the use of the new - function DT_Address_Attribute. - (Expand_Interface_Thunk): The profile of this subprogram has been - changed to return the Thunk_Id and the corresponding code. - (Fill_DT_Entry): Removed. Its functionality is now provided by - subprogram Register_Primitive. - (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by - subprogram Register_Primitive. - (Register_Primitive): New subprogram that incorporates the previous - functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry. - (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This - was only required to call Make_DT_Access_Action, which is now removed. - (Ada_Actions): Removed - (Action_Is_Proc): Removed - (Action_Nb_Arg): Removed - Replace all the calls to Make_DT_Access_Action by direct calls to - Make_Procedure_Call_Statement or Make_Function_Call. - (Set_DTC_Entity_Value): New subprogram. - (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value. - (Expand_Interface_Thunk): Add missing support for primitives that are - functions with a controlling result (case in which there is no need - to generate the thunk). - - * exp_atag.ads, exp_atag.adb - (Build_DT): New subprogram that displaces the pointer to reference the - base of the wrapper record. - (Build_Typeinfo_Offset): Removed. - (RTE_Tag_Node): Removed. - (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp - (Build_Get_RC_Offset): Removed. - (Build_Inherit_Predefined_Prims): Removed. - (Build_Inherit_TSD: Removed. - (Build_New_TSD): Removed. - (Build_Set_External_Tag): Removed. - (Build_Set_Predefined_Prim_Op_Address): Add documentation. - (Build_Set_Prim_Op_Address): Add documentation. - (Build_Set_TSD): Removed. - - * rtsfind.ads, rtsfind.adb - (Load_Fail): If load fails and we are not in configurable run-time - mode, then raise Unrecoverable_Error. - (Text_IO_Kludge): Generate an error message if a run-time library is - not available in a given run-time (ie. zfp run-time). - (RTE_Record_Component): Add code to check that the component we search - for is not found in two records in the given run-time package. - (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed - (RE_DT_Predef_Prims_Offset): New entity - (RE_Static_Offset_To_Top): New entity - (RE_HT_Link): New entity. - (System_Address_Image): Addition of this run-time package. - (RE_Address_Image): New entity. - (RE_Abstract_Interface): Removed. - (RE_Default_Prim_Op_Count): Removed. - (RE_DT_Entry_Size): Removed. - (RE_DT_Min_Prologue_Size): Removed. - (RE_DT_Prologue_Size): Removed. - (RE_Ifaces_Table_Ptr): Removed. - (RE_Interface_Data_Ptr): Removed. - (RE_Type_Specific_Data): Removed. - (RE_Primary_DT): Removed. - (RE_Register_Interface_Tag): Removed. - (RE_Set_Offset_Index): Removed. - (RE_Set_OSD): Removed. - (RE_Set_SSD): Removed. - (RE_Set_Signature): Removed. - (RE_Set_Tagged_Kind): Removed. - (RE_Address_Array): New entity. - (RE_DT): New entity. - (RE_Iface_Tag): New entity. - (RE_Interfaces_Table): New entity. - (RE_No_Dispatch_Table): New entity. - (RE_NDT_Prims_Ptr): New entity. - (RE_NDT_TSD): New entity. - (RE_Num_Prims): New entity. - (RE_Offset_To_Top_Function_Ptr): New entity. - (RE_OSD_Table): New entity. - (RE_OSD_Num_Prims): New entity. - (RE_Predef_Prims): New entity - (RE_Predef_Prims_Table_Ptr): New entity. - (RE_Primary_DT): New entity. - (RE_Signature): New entity. - (RE_SSD): New entity. - (RE_TSD): New entity. - (RE_Type_Specific_Data): New entity. - (RE_Tag_Kind): New entity. - -2007-06-06 Thomas Quinot - - * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the - C imported variable. - (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set - on entry. - -2007-06-06 Robert Dewar - - * a-tienio.adb (Get): Adjust buffer size to accomodate one extra - character - -2007-06-06 Vincent Celier - - * a-tifiio.adb (Put, internal): For negative numbers, check that there - is room for at least one digit and the minus sign. - (Put.Put_Character): Never put a character outside of the range of - string To. - -2007-06-06 Olivier Hainque - Eric Botcazou - - * utils2.c (build_allocator): Provide the extra arguments to - make_aligning_type for super-aligned objects allocated from the default - pool. Leave enough room for a pointer before the aligning field, and - store the system's allocator return value there. - (build_call_alloc_dealloc): When releasing a super-aligned object, - retrieve the system's allocator return value from where build_allocator - has stored it, just ahead of the adjusted address we are passed. - (build_call_raise): Handle properly the generation of line numbers when - the node is marked No_Location. - (compare_elmt_bitpos): Use tree_int_cst_compare. Stabilize the sort - by using DECL_UID on ties. - (build_binary_op) : Accept fat pointer types with the same - main variant. - (build_call_raise): Handle converting exception into goto; support new - argument KIND. - (build_component_ref): Add new arg to build_call_raise. - -2007-06-06 Hristian Kirtchev - - * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse - "." in the case of nnn.xxx when nnn terminates with an underscore. - Parse the remaining "#" or ":" in the case of nnn#.xxx# - -2007-06-06 Robert Dewar - - * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT - -2007-06-06 Arnaud Charlet - Vincent Celier - Robert Dewar - - * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when - needed. - (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute - ((destructor)) for adafinal, even when switch -a is used. - Do not issue pragma Linker_Destructor for adafinal when switch -a is - used. - (Gen_Object_Files_Options): Add formatting of Linker Options, when - Output_Linker_Option_List is set. Suppress this formatting when - Zero_Formatting is set. - Add case for CLI_Target. - (System_Restrictions_Used): New flag, used to avoid generating with of - System_Restrictions and initialization of the data unless there is - some use of System.Restrictions in the partition. - (Check_System_Restrictions_Used): New procedure - - * s-stalib.adb: Remove with of System.Restrictions. No longer needed - since we only with this unit in the binder file if it is used elsewhere - in the partition. - -2007-06-06 Vincent Celier - - * bindusg.adb: Add line for @ - Add lines for new switches -R and -Z - - * gnatbind.adb (Gnatbind): Do not include sources from the GNAT - hierarchy in the list of files of the closure when -R is used - (Gnatbind): Accept arguments starting with '@' to indicate response - files and take the arguments from the response files. - If List_Closure is set, display the referenced files - -2007-06-06 Javier Miranda - Robert Dewar - Ed Schonberg - - * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in - which the address-clause is applied to in-mode actuals (allowed by - 13.1(22)). - (Apply_Discriminant_Check): Do not generate a check if the type is - constrained by a current instance. - (Activate_Division_Check): New procedure - (Activate_Overflow_Check): New procedure - (Activate_Range_Check): New procedure - Call these new Activate procedures instead of setting flags directly - (Apply_Array_Size_Check): Removed, no longer needed. - Code clean up: remove obsolete code related to GCC 2. - (Get_E_Length): Protect against bomb in case scope is standard - (Selected_Range_Checks): If the node to be checked is a conversion to - an unconstrained array type, and the expression is a slice, use the - bounds of the slice to construct the required constraint checks. - Improve NOT NULL error messages - (Apply_Constraint_Check): If the context is a null-excluding access - type, diagnose properly the literal null. - -2007-06-06 Pascal Obry - - * clean.adb (Clean_Archive): Use untouched casing for the archive name - and the corresponding .deps file. - (Clean_Interface_Copy_Directory): Use untouched casing for the library - src directory. Minor code-clean-up. Use untouched casing for files - read into the library src dir. - (Clean_Library_Directory): Idem. - (Parse_Cmd_Line): Accept new switch -aP - -2007-06-06 Javier Miranda - Ed Schonberg - Robert Dewar - Eric Botcazou - Arnaud Charlet - - * einfo.ads, einfo.adb (Available_View): New synthesized attribute - applicable to types that have the With_Type flag set. Returns the - non-limited view of the type, if available, otherwise the type itself. - For class-wide types, there is no direct link in the tree, so we have - to retrieve the class-wide type of the non-limited view of the Etype. - New attributes Static_Initialization and Static_Elaboration_Desired. - Remove the pragma Thread_Body, and the associated flag - Is_Thread_Body in entities, and all related code. - (Suppress_Value_Tracking_On_Call): New flag - E_Exception has Esize and Alignment fields - (Universal_Aliasing): New function. - (Set_Universal_Aliasing): New procedure. - (Write_Entity_Flags): Deal with Universal_Aliasing flag. - (Check_Nested_Access): New procedure. - (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures. - (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access. - (Related_Interface): New attribute. Present in dispatch table pointer - components of records. Set to point to the entity of the corresponding - interface type. - (Is_By_Reference_Type): Recurse on the full view of an incomplete type. - (Original_Access_Type): Remove, not needed. - (Root_Type): Handle properly subtypes of class-wide-types. - Update comments. - - * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for - class-wide types visible through limited-with clauses. - (Try_Primitive_Operation): When examining all primitive operations of a - tagged type, do not consider subprograms labeled as hidden unless they - belong to a private generic type with a tagged parent. - (Try_Object_Operation): Extensive rewriting, to handle properly various - overloading cases, when several ancestors may have class-wide operations - that are possible candidates, and when the overloaded functions return - array types and have defaulted parameters so that the call may be - interpreted as an indexing. - (Analyze_Allocator): Remove Mark_Allocator and its invocation. - (Process_Function_Call): use Next, rather than Next_Actual, to analyze - successive actuals before analyzing the call itself. - (Try_Primitive_Operation): A primitive operation is compatible with the - prefix if the prefix has a synchronized type and the type of the formal - is its corresponding record, as can be the case when the primitive - operation is declared outside of the body of the type. - (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to - perform homonym traversal, looking for class-wide operation matches - (formerly done in statements of Try_Class_Wide_Operation). Matches on - access parameters are now restricted to anonymous access types. - (Mark_Allocator): An allocator with a discriminant association parent is - a coextension. - (Try_One_Prefix_Interpretation): If the type of the object is - incomplete, as can be happen when it is a limited view obtained through - a limited_with_clause, the selected component is not part of a prefixed - call. - (Complete_Object_Operation): Diagnose properly an object that is not - aliased when the corresponding controlling formal is an access - parameter. - (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly - ambiguous calls in prefixed notation, where two primitives differ only - in that the controlling argument of one is an access parameter. - - * sem_ch6.adb (Has_Single_Return): Add guard in code that determines - whether a function that returns an unconstrained type can be inlined. - (Process_Formals): Diagnose properly the illegal use of an incomplete - type in the profile of an access_to_subprogram declaration. - (Check_Synchronized_Overriding): Nothing check for concurrent types, the - operations are attached to the corresponding record. - (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ. - When processing a primitive of a concurrent type which implements an - interface change the type of all controlling formals to that of the - corresponding record type. - (Check_Synchronized_Overriding): Relax the conditional logic when trying - to determine the tagged type to which a primitive belongs. - (Check_Conventions): Capture condition to ignore a primitive operation - (which is shared between the loop in Check_Conventions and the one in - Check_Convention) in a new local function Skip_Check. - (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible - confusion with Check_Conventions' own Prim_Op local variable. - (Create_Extra_Formals): Test for a tagged result type rather than a - controlling result when determining whether to add a BIP_Alloc_Form - formal and a BIP_Final_List formal to the function. - (Check_Conformance); For parameters that are anonymous access types, - subtype conformance requires that the not null and the constant - indicators must match - (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery - to retrieve the appropriate type when processing a concurrent type - declared within a generic. Minor comment reformatting. Change invocation - of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri- - mitive. - (Analyze_Subprogram_Body): If the return type of a function is an - anonymous access to the limited view of a class-wide type, and the - non-limited view of the type is available, update the type of the - function so that code can be generated. - (Process_Formals): In case of access-subtype itype whose designated - type is also an itype (situation that happens now with access to - subprograms) we mark the access-type itype with the Has_Delayed_Freeze - attribute to avoid backend problems. - (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in - init of R_Stm_Type_Is_Anon_Access. Also check that base types of the - anonymous types' designated types are same before testing - Subtypes_Statically_Match. - (Create_Extra_Formals): Test for a named access parameter that is a - controlling formal as an additional condition for adding an - accessibility level formal. This can occur in the subp type created for - dispatching calls in Expand_Dispatching_Call, and allows calling - Create_Extra_Formals from that procedure rather than special-casing the - extra formals there. - (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals - when the function has a controlling result. - (Check_Returns): Add much more knowledge of the optimization of local - raise statements to gotos, to retain proper warnings in this case. - (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label - nodes when looking for last statement. - - * sem_type.ads, sem_type.adb (Specific_Type): Add support for - class-wide types visible through limited with clauses. - (Add_One_Interp): If the operands are anonymous access types, the - predefined operator on universal_access is immediately visibles - (Find_Unique_Type): Handle anonymous access to subprogram types just as - other anonymous access types. - (Disambiguate): Take into account CIL convention. - (Interface_Present_In_Ancestor): Add support for class-wide interfaces. - -2007-06-06 Robert Dewar - - * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb, - sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads, - elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure. - Fix lower bound of tables. - Add rep clauses. - - * nlists.adb: Ditto. - (Prev_Node, Next_Node): Change index type to Int so that it properly - covers the range First_Node_Id - 1 up. - -2007-06-06 Javier Miranda - Ed Schonberg - Bob Duff - Hristian Kirtchev - - * exp_aggr.ads, exp_aggr.adb: - (Build_Record_Aggr_Code): Add missing initialization of secondary tags - in extension aggregates. - (Flatten): Other conditions being met, an aggregate is static if the - low bound given by component associations is different from the low - bound of the base index type. - (Packed_Array_Aggregate_Handled): If the component type is itself a - packed array or record, the front-end must expand into assignments. - (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to - Init_Pr, instead of Ancestor_Is_Expression. - (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a - coextension chain root, either generate a list controller or use the - already existing one. - (Static_Array_Aggregate): New procedure to construct a positional - aggregate that can be handled by the backend, when all bounds and - components are compile-time known constants. - (Expand_Record_Aggregate): Force conversion of aggregates of tagged - types covering interface types into assignments. - (Replace_Type): move to Build_Record_Aggr_Code. - (Expand_Record_Aggr_Code): if the target of the aggregate is an - interface type, convert to the definite type of the aggregate itself, - so that needed components are visible. - (Convert_Aggr_In_Object_Decl): If the aggregate has controlled - components and the context is an extended return statement do not - create a transient block for it, to prevent premature finalization - before the return is executed. - (Gen_Assign): Do not generate a call to deep adjust routine if the - component type is itself an array of controlled (sub)-components - initialized with an inner aggregate. - (Component_Check): New name for Static_Check. This name is now more - appropriate, and documentation is added which was missing. - (Component_Check): Add test for bit aligned component value - (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_ - Tagged_Comps, name is more appropriate given added function below. - (Component_Not_OK_For_Backend): Check for bit aligned component ref. - -2007-06-06 Hristian Kirtchev - Javier Miranda - Robert Dewar - - * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and - Terminated: Add unchecked type conversion from System.Address to - System.Tasking.Task_Id when calling the predefined primitive - _disp_get_task_id. - Disable new Ada 05 accessibility check for JVM.NET targets, which - cannot be implemented in a practical way. - (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in - the sources always references the tag of the actual object. Therefore, - if 'Tag is applied in the sources to class-wide interface objects we - generate code that displaces "this" to reference the base of the object. - (Expand_N_Attribute_Reference, case Size): Return specified size if - known to front end. - (Expand_N_Attribute_Reference): The expansion of the 'Address attribute - has code that displaces the pointer of the object to manage interface - types. However this code must not be executed when the prefix is a - subprogram. This bug caused the wrong expansion of the internally - generated assignment that fills the dispatch table when the primitive - is a function returning a class-wide interface type. - (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to - Set_Attribute_Name for Name_Unaligned_Valid. - -2007-06-06 Ed Schonberg - Gary Dismukes - - * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address): - If the initialization is the equivalent aggregate of the initialization - procedure of the type, do not remove it. - (Expand_N_Attribute_Definition_Clause): Exclude access variables - initialized to null from having their expression reset to empty and - note this exception in the comment. - -2007-06-06 Hristian Kirtchev - Robert Dewar - Ed Schonberg - Gary Dismukes - - * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames. - Add "with" and "use" clauses for Sem_Attr. - (Expand_Current_Value): Do not replace occurences of attribute - references where the prefix must be a simple name. - - * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for - Namet. Add new arrays Attribute_Name_Modifies_Prefix and - Attribute_Requires_Simple_Name_Prefix. - (Name_Modifies_Prefix): Body of new function. - (Requires_Simple_Name_Prefix): Body of new function. - (Resolve_Attribute, case Access): Improve error message for case of - mismatched conventions. - (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an - incomplete type. - (Analyze_Attribute, case 'Access): If the type of the prefix is a - constrained subtype for a nominal unconstrained type, use its base type - to check for conformance with the context. - (Resolve_Attribute): Remove test of the access type being associated - with a return statement from condition for performing accessibility - checks on access attributes, since this case is now captured by - Is_Local_Anonymous_Access. - (Analyze_Access_Attribute): Set Address_Taken on entity - (Analyze_Attribute, case Address): Set Address_Taken on entity - (OK_Self_Reference): Traverse tree to locate enclosing aggregate when - validating an access attribute whose prefix is a current instance. - (Resolve_Attribute): In case of attributes 'Code_Address and 'Address - applied to dispatching operations, if freezing is required then we set - the attribute Has_Delayed_Freeze in the prefix's entity. - (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in - current scope if access of local subprogram taken - (Analyze_Access_Attribute): Check legality of self-reference even if the - expression comes from source, as when a single component association in - an aggregate has a box association. - (Resolve_Attribute, case 'Access): Do not apply accessibility checks to - the prefix if it is a protected operation and the attribute is - Unrestricted_Access. - (Resolve_Attribute, case 'Access): Set the Etype of the attribute - reference to the base type of the context, to force a constraint check - when the context is an access subtype with an explicit constraint. - (Analyze_Attribute, case 'Class): If the prefix is an interface and the - node is rewritten as an interface conversion. leave unanalyzed after - resolution, to ensure that type checking against the context will take - place. - -2007-06-06 Ed Schonberg - Javier Miranda - Robert Dewar - - * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a - wrapper when the full view of the controlling type of an inherited - function that dispatches on result implements interfaces. - (Expand_N_Object_Declaration): In cases where the type of the - declaration is anonymous access, create finalization list for it. - (Expand_N_Object_Declaration): Generate a persistent_bss directive only - if the object has no explicit initialization, to match description of - functionality of pragam Persistent_BSS. - (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate): - new function to build static aggregates, to replace initialization call - when static initialization is desired. - (Freeze_Type): Generate a list controller for an access type whenever - its designated type has controlled anonymous access discriminants. - (Build_Equivalent_Aggregate): New procedure to compute a static - aggregate to be used as default initialization for composite types, - instead of a generating a call to the initialization procedure for the - type. - (Build_Initialization_Call): When available, replace a call to the - initialization procedure with a copy of the equivalent static aggregate - for the type. - (Expand_N_Object_Declaration): Use New_Occurrence_Of in generated - declarations for objects of a class-wide interface type, rather than - just identifiers, to prevent visibility problems. - (Expand_N_Object_Declaration): When expanding the declaration for an - object of a class-wide interface type, preserve the homonym chain of - the original entity before exchanging it with that of the generated - renaming declaration. - (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation - active, because there is no way to handle the exception. - (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT - to do a minimum decoration of the Access_Disp_Table list. - (Expand_Record_Controller): Avoid the addition of the controller between - the component containing the tag of a secondary dispatch table and its - adjacent component that stores the offset to the base of the object. - This latter component is only generated when the parent type has - discriminants ---documented in Add_Interface_Tag_Components). - (Apply_Array_Size_Check): Removed, no longer needed. - (Expand_N_Full_Type_Declaration): If the type has anonymous access - components, create a Master_Entity for it only if it contains tasks. - (Build_Init_Procedure): Suppress the tag assignment compiling under - no run-time mode. - (Freeze_Record_Type): Remove code associated with creation of dispatch - table. - (Init_Secondary_Tags): Update type of actuals when generating calls to - Ada.Tags.Set_Offset_To_Top - (Stream_Operation_OK): Disable use of streams compiling under no - run-time mode - (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization - if Has_Init_Expression set. - (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to - Register_Primitive, which provides the same functionality. - (Requires_Init_Proc): Return false in case of interface types. - (Add_Secondary_Tables): Use the new attribute Related_Interface to - cleanup the code. - (Predefined_Primitive_Freeze): Do not assume that an internal entity - is always associated with a predefined primitive because the internal - entities associated with interface types are not predefined primitives. - Therefore, the call to Is_Internal is replaced by a call to the - function Is_Predefined_Dispatching_Operation. - (Make_Eq_If): When generating the list of comparisons for the - components of a given variant, omit the controller component that is - present if the variant has controlled components. - -2007-06-06 Javier Miranda - Hristian Kirtchev - Bob Duff - - * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to - handle the creation of finalization lists and calls for nested - coextensions when the root of the chains is part of a return statement. - (Inside_A_Return_Statement): New function inside Complete_Coextension_ - Finalization. - (Expand_Record_Equality): Skip components that are interface types. - (Displace_Allocator_Pointer): Add missing support for interface subtypes - (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant - with Rewrite_Coextension. Change the condition for detecting coextension - root nodes. - (Is_Local_Access_Discriminant): Removed. - (Rewrite_Coextension): New routine which rewrites a static coextension - as a temporary and uses its unrestricted access in the construction of - the outer object. - (Complete_Coextension_Finalization): New routine. Generate finalization - attachment calls to all delayed coextensions. - (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever - the allocator is not a coextension itself and has delayed coextensions. - If the current allocator is controlled, but also a coextension, delay - the generation of the finalization attachment call. - Rename local variable "Node" to "Nod" in order to avoid confusion with - "Elists.Node". - (Expand_Allocator_Expression): Call Adjust for initialized allocators of - limited types that are not inherently limited. Such an allocator is - illegal, but is generated by the expander for a return statement, to - copy the result onto the secondary stack. This is the only case where a - limited object can be copied. Generate code to displace the pointer - to the object if the qualified expression is a class-wide interface - object. Such displacement was missing and hence the copy of the object - was wrong. - (Apply_Accessibility_Check): Handle allocated objects initialized in - place. - (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator - and Expand_Allocator_Expression. Allocating class-wide interface objects - this routine displaces the pointer to the allocated object to reference - the component referencing the corresponding secondary dispatch table. - Expand_Allocator_Expression): Add missing support to allocate class-wide - interface objects initialized with a qualified expression. - (Get_Allocator_Final_List): Test for an anonymous access type that is a - function result type, and use the finalization list associated with the - function scope in that case (such an anonymous type should not be - treated like an access parameter's type). - -2007-06-06 Ed Schonberg - Gary Dismukes - Javier Miranda - - * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a - controlled type, use Make_Handler_For_Ctrl_Operation to construct the - required exception handler. - (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle - properly the case of a function whose return type is a limited - class-wide interface type. Modify the code of the accessibility - check to handle class-wide interface objects. In this case we need to - displace "this" to reference the primary dispatch table to get access - to the TSD of the object (to evaluate its accessibility level). - (Expand_N_Extended_Return_Statement): Test for a tagged result type - rather than a controlling result as one of the conditions for - generating tests of the implicit BIP_Alloc_Form formal. The - initialization assignment is also handled according to whether the - result is tagged instead of controlling. - In the case where the init assignment is inserted in the "then" part of - the allocation conditional, rewrite the target to be a dereference of - the implicit BIP_Object_Access formal. - If the returned value is unconstrained and created on the secondary - stack, mark the enclosing block and function so that the secondary - stack is not reclaimed on return. - Treat returns from functions with controlling results similarly to - returns from functions with unconstrained result subtypes. - If the object returned is unconstrained, and an allocator must be - created for it, analyze the allocator once the block for the extended - return is installed, to ensure that finalizable components - of the expression use the proper finalization list. Guard the call to - Move_Final_List with a check that there is something to finalize. - (Make_Tag_Ctrl_Assignment): Use "old" handling - of controlled type assignment for virtual machines, since new code uses - unsupported features (such as direct access to bytes in memory). - -2007-06-06 Gary Dismukes - Ed Schonberg - - * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra - accessibility actual, check for the case of an aliased object that has - been rewritten as an Access attribute, and assign Prev to Prev_Orig so - we fall into processing for the attribute rather than the name of the - object. - (Expand_Inline_Call): If an actual is a literal, and the corresponding - formal has its address taken in the body, create a temporary to capture - value. If the return type is a limited interface, do not treat the - return value as Controlled. - (Is_In_Place_Function): If the return type is a limited interface, - treat as returning in place. The actual returned object may not always - be limited, but the caller has to assume that it is returned in place. - (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the - context of an allocator, use the correct finalization chain (that is, - the chain belonging to the access type, rather than the chain belonging - to the current scope). - (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged - result type rather than a controlling result as a precondition for - adding an allocation form actual to a build-in-place call. - (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto. - (Freeze_Subprogram): Code cleanup. Remove all the code that register the - primitive in the dispatch tables. This work is now done by Make_DT when - the type is frozen. - (Register_Predefined_DT_Entry): Removed. - (Add_Return): If end label is not present, use sloc of last statement - for generated return statement in procedure, for better gdb behavior - on expanded code. - (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the - object address nodes to ensure proper processing by routines like - Insert_After*. - (Expand_Call): Fix generation of validity check for parameter - (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing - the allocation form parameter if the result subtype is constrained, - except when the function has a controlling result. - (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type - rather than Is_Controlled and Has_Controlled_Component, since we want to - include class-wide result types in this treatment. Also test for a - controlling result, since that also requires passing a finalization - list. - (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_* - even when the result subtype is constrained, to handle calls involving - controlling results. - (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_* - is now called even when the result subtype is constrained, to handle - calls involving controlling results. - (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained - on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure - now performs the test). - (Make_Build_In_Place_Call_In_Object_Declaration): - Add_Alloc_Form_Actual_* is now called even when the result subtype is - constrained, to handle calls involving controlling results. - (Add_Return): Accomodate rewritten pattern from local raise to goto - transformation, so that we still recognize an transfer statement - and do the right thing here in that case. - (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start - and end of subprogram code. - (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing - support for primitives that are functions (without formals) with a - controlling result. - (Inherited_From_Formal): If the actual subtype has not generic parent - type, it is not an actual for a formal derived type, and there is no - operation to inherit from the formal. - -2007-06-06 Ed Schonberg - Thomas Quinot - - * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of - inserted cleanup code appropriately for GDB use. - (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create - exception handler for Deep_Adjust or Deep_Finalize. - (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity - Raise_From_Controlled_Operation is available, use a call to that - subprogram instead of a plain "raise Program_Error" node to raise - Program_Error if an exception is propagated from an Adjust or Finalize - operation. - (Insert_Actions_In_Scope_Around): If the statement to be wrapped - appears in the optional statement list of a triggering alternative, the - scope actions can be inserted directly there, and not in the list that - includes the asynchronous select itself. - -2007-06-06 Ed Schonberg - Robert Dewar - Hristian Kirtchev - - * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of - generated exception handler appropriately when debugging generated code. - Deal properly with No_Exception_Propagation restriction mode. - (Expand_N_Abort_Statement): Add an unchecked type conversion from - System.Address to System.Tasking.Task_Id when processing the result of - the predefined primitive _disp_get_task_id. - (Expand_N_Asynchronous_Select): Clarify comment. - (Expand_N_Protected_Type_Declaration): Minor code cleanup. - (Find_Parameter_Type): New routine inside Type_Conformant_Parameters. - (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup. - (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for - privals and for generated call to Complete_Entry_Body, for better gdb - behavior. - (Copy_Result_Type): Utility to construct a parameter and result profile - for protected functions whose return type is an anonymous access to - subprogram. - (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type): - call the above. - (Build_Task_Activation_Call): Insert Activate_Tasks call at proper - point when the local-raise-to-goto transformation has taken place. - -2007-06-06 Javier Miranda - Nicolas Setton - - * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its - functionality when the backend is generating code. - Otherwise any serious error - reported by the backend calling the frontend routine Error_Msg - changes the Compilation_Mode to Check_Semantics, disables the - functionality of this routine and causes the generation of - spureous additional errors. - - * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the - debugging information now generated by the compiler for fat-pointer - types. - Document the contents of DW_AT_producer in the GNAT Vendor extensions to - DWARF2/3. - Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch. - -2007-06-06 Thomas Quinot - - * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram - (GARLIC_Support.Build_Subprogram_Receiving_Stubs, - PolyORB_Support.Build_Subprogram_Receiving_Stubs): - For a remote call to a function with a classwide return type, apply an - E.4(18) check to the returned value. - (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for - stream attributes of the designated type of an RACW, as they are not - dispatching primitive operations. - -2007-06-06 Geert Bosch - - * exp_fixd.adb (Integer_Literal): Add optional argument to construct a - negative literal - (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always - positive - (Do_Divide_Fixed_Universal): Handle case of negative Frac. - (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always - positive - (Do_Multiply_Fixed_Universal): Handle case of negative Frac. - -2007-06-06 Javier Miranda - - * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this - attribute compiling package Ada.Tags under No_Run_Time_Mode. - -2007-06-06 Javier Miranda - - * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for - deallocation of class-wide interface objects. - (Expand_Dispatching_Constructor_Call): Take into account that if the - result of the dispatching constructor is an interface type, the - function returns a class-wide interface type; otherwise the returned - object would be actual. The frontend previously accepted returning - interface types because Expand_Interface_Actuals silently performed - the management of the returned type "as if" it were a class-wide - interface type. - (Expand_Dispatching_Constructor_Call): Replace call to - Make_DT_Access_Action by direct call to Make_Function_Call. - -2007-06-06 Robert Dewar - Ed Schonberg - - * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to - compute masking constant, since we now set Esize properly to the - underlying size. - (Create_Packed_Array_Type): Set proper Esize value adjusted as required - to match the alignment. - (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for - packed arrays of 8 bits or less. - - * freeze.adb (Freeze_Entity): When freezing the formals of a - subprogram, freeze the designated type of a parameter of an access type - only if it is an access parameter. - Increase size of C convention enumeration object - (Freeze_Entity, array type case): Make sure Esize value is properly - adjusted for the alignment if it is known. - (Freeze_Entity, array type case): When checking bit packed arrays for - the size being incorrect, check RM_Size, not Esize. - (Freeze_Record_Type): Check for bad discriminated record convention - (In_Exp_Body): Return true if the body is generated for a subprogram - renaming, either an attribute renaming or a renaming as body. - (Check_Itype): If the designated type of an anonymous access component - is a non-protected subprogram type, indicate that it is frozen, to - prevent out-of-scope freeze node at some subsequent call. - (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism - only if the subprogram is neither imported nor exported, as well as the - NCA descriptor class if the subprogram is exported. - -2007-06-06 Ed Schonberg - Arnaud Charlet - Robert Dewar - Gary Dismukes - - * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a - default initialization on an imported object, when there is no - initialization call generated for it. - (Expand_Pragma_Assert): Add handling of No_Exception_Propagation - restriction - - * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma - Static_Elaboration_Desired. - Remove pragma Thread_Body. - Implement a new pragma No_Body - Removes the Explicit_Overriding pragma - Remove Optional_Overriding pragma - (Prag): Deal with Universal_Aliasing. - (Name_CIL, Name_CIL_Constructor, Convention_CIL, - Pragma_CIL_Constructor): New names. - - * sem_cat.adb (Validate_Object_Declaration): An initialization that - uses the equivalent aggregate of a type must be treated as an implicit - initialization. - (Get_Categorization): Check a unit for pragma Preelaborate only if it - has none of the other categories. - (Process_Import_Or_Interface_Pragma): Report an error for an attempt - to apply Import to an object renaming declaration. - - * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported - from a C++ class should be declared as limited and that it will be - considererd limited. - (Analyze_Pragma): Warn that a type specified with pragma CPP_Class - should be declared as limited and that it will be considererd limited. - (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas - (Analyze_Pragma, case Export): Diagnose export of enumeration literal - (Analyze_Pragma): Deal with Universal_Aliasing. - (Sig_Flags): Likewise. - (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP. - (Overflow_Checks_Unsuppressed): New flag. - (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed. - (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in - case of JVM or .NET targets, and compiling user code. - Add debugging convenience routine rv - -2007-06-06 Robert Dewar - - * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that - are interface type. - (Build_Elementary_Input_Call): For floating-point use right type in the - absence of strange size or stream size clauses. - (Build_Elementary_Write_Call): Same fix - (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute - set to value that does not match base type size. - -2007-06-06 Ed Schonberg - - * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an - object of a limited type can be initialized with a call to a function - that returns in place. If the limited type has unknown discriminants, - and the underlying type is a constrained composite type, build an actual - subtype from the function call, as is done for private types. - (Side_Effect_Free): An expression that is the renaming of an object or - whose prefix is the renaming of a object, is not side-effect free - because it may be assigned through the renaming and its value must be - captured in a temporary. - (Has_Controlled_Coextensions): New routine. - (Expand_Subtype_From_Expr): Do nothing if type is a limited interface, - as is done for other limited types. - (Non_Limited_Designated_Type): new predicate. - (Make_CW_Equivalent_Type): Modified to handle class-wide interface - objects. - Remove all handling of with_type clauses. - - * par-ch10.adb: Remove all handling of with_type clauses. - - * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the - checksum if the main source could not be parsed. - (Loat_Unit): When processing a child unit, determine properly whether - the parent unit is a renaming when the parent is itself a child unit. - Remove handling of with_type clauses. - - * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function. - (Set_Is_Static_Coextension): New procedure. - (Has_Local_Raise): New function - (Set_Has_Local_Raise): New procedure - (Renaming_Exception): New field - (Has_Init_Expression): New flag - (Delay_Finalize_Attach): Remove because flag is obsolete. - (Set_Delay_Finalize_Attach): Remove because flag is obsolete. - Remove all handling of with_type clauses. - (Exception_Junk): Can now be set in N_Block_Statement - -2007-06-06 Vincent Celier - Robert Dewar - - * frontend.adb (Frontend): Return immediately if the main source could - not be parsed, because of preprocessing errors. - - * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully. - (Gnat1drv): Exit with errors if the main source could not be parsed, - because of preprocessing errors. - (Check_Rep_Info): New procedure - -2007-06-06 Robert Dewar - - * g-hesorg.ads, g-heasor.ads, - g-busorg.ads, g-bubsor.ads: Update documentation - GNAT.Heap/Bubble_Sort_G is now pure - -2007-06-06 Robert Dewar - - * g-catiio.ads, g-catiio.adb (Image): Check for null picture string - -2007-06-06 Robert Dewar - Ed Schonberg - - * g-comlin.ads, g-comlin.adb: - Add new warning for renaming of function return objects - - * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size - (Tree_Read): Use size of object instead of type'object_size, since the - latter is incorrect for packed array types. - (Tree_Write): Same fix - - * opt.ads: Add new warning for renaming of function return objects - (Generating_Code): New boolean variable used to indicate that the - frontend as finished its work and has called the backend to process - the tree and generate the object file. - (GCC_Version): Is now private - (Static_Dispatch_Tables): New constant declaration. - (Overflow_Checks_Unsuppressed): New flag. - (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed. - (List_Closure): New flag for gnatbind (-R) - Zero_Formatting: New flag for gnatbind (-Z) - (Special_Exception_Package_Used): New flag. - (Warn_On_Unrepped_Components): New flag. - - * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed - unit is a compilation unit, rather than relying on its scope, so that - Standard can be renamed. - (Analyze_Object_Renaming): Add new warning for renaming of function - return objects. - Also reject attempt to rename function return object in Ada 83 mode. - (Attribute_Renaming): In case of tagged types, add the body of the - generated function to the freezing actions of the type. - (Find_Type): A protected type is visible right after the reserved word - "is" is encountered in its type declaration. Set the entity and type - rather than emitting an error message. - (New_Scope): Properly propagate Discard_Names to inner scopes - (Check_Nested_Access): New procedure. - (Has_Nested_Access, Set_Has_Nested_Access): New procedures. - (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access. - - * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning - Add new warning for renaming of function return objects - (Check_References): Suppress warnings for objects whose type or - base type has Warnings suppressed. - (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C - (Set_Warning_Switch): Include new -gnatwc in -gnatwa - -2007-06-06 Vincent Celier - Emmanuel Briot - Olivier Hainque - - * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the - absolute value of Header.Block_Size when displaying the freed physical - memory in traces. - (Allocate): Compute Storage_Address using Integer_Address, not - Storage_Offset, because the range of Storage_Offset may not be large - enough. - (Configure): New parameter Low_Level_Traces - (Allocate, Deallocation, Free_Physically): Added low-level traces - (Configure): new parameter Errors_To_Stdout. - (Output_File): new subprogram - (Deallocate, Dereference): Send error messages to the proper stream - (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as - documented. Previous code would send it to the current output file - defined in GNAT.IO, which might not be stdout - (Is_Valid): Adjust comment to mention that a positive reply means that - Header_Of may be used to retrieve the allocation header associated with - the subprogram Storage address argument. Return False early if this - address argument is misaligned. - -2007-06-06 Vincent Celier - - * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept - switch -P - (ASIS_Main): New global variable - (Get_Closure): New procedure - (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat - check, metric or pretty. Call Get_Closure in this case. - (Check_Files): For GNAT LIST, check all sources of all projects when - All_Projects is True. - (GNATCmd): Accept -U for GNAT LIST - -2007-06-06 Vincent Celier - - * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK= - has been specified - Correct error message when invocation of the linker fails - Add explicit size clause for the C imported variables - Object_List_File_Supported and Using_GNU_Linker to emphasize that - we expect char size. - Read target parameters earlier, since this is needed to set - Target_VM properly. Also do not use -static/shared-libgcc for non GCC - targets. - -2007-06-06 Vincent Celier - - * gnatls.adb: - Add 3 spaces before the default project directory when displaying - the project search path. - Add new command line switch '-l' to display license information. - -2007-06-06 Vasiliy Fofanov - - * gmem.c: Add support for timestamps on memory operations. - - * memtrack.adb, gnatmem.adb: Add support for timestamps on memory - operations (not used currently, just foundation for future - enhancements). Add possibility to perform full dump of gmem.out file. - (Print_Back_Traces): Declare accesses to root arrays constants since - they aren't modified. - (Print_Back_Traces): allocate root arrays on the heap rather than stack. - -2007-06-06 Vincent Celier - - * gnatsym.adb: Update Copyright notice - (Parse_Cmd_Line): Accept new switch -D - (Gnatsym): In Direct policy (switch -D) copy reference file to symbol - file. - - * prj.ads (Policy): New policy Direct - (Yes_No_Unknown): New enumeration type - (Project_Data): New component Libgnarl_Needed - - * prj-nmsc.adb (Check_For_Source): When recording a source file make - use the untouched pathname casing. - (Get_Directories): Ensure that the Display_Exec_Directory is using the - proper casing on non case-sensitive platforms like Windows. - (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s) - on all platforms, as it is not possible to know which one is allowed - before processing the project files. - (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is - specified when symbol policy is Direct. Check that when there is a - symbol file defined (either by default or with attribute - Library_Symbol_File) it is not the same as the reference symbol file. - (Check_Stand_Alone_Library): Recognize new symbol policy Direct. - (Look_For_Sources): Allow Locally_Removed_Files to be declare in non - extending projects. - (Record_Ada_Source): Record a source that has been locally removed in an - imported project. - - * symbols.ads (Policy): New policy Direct - - * symbols-vms.adb (Initialize): Take new policy Direct in case - statement - -2007-06-06 Vincent Celier - - * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory): - Correct obvious bug (return Dir; instead of return Directory;). - (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last - -2007-06-06 Thomas Quinot - - * g-pehage.adb (Produce): Open output files in Binary mode, so that - they have UNIX line endings (LF only) even on Windows, and thus pass - all GNAT style checks. - -2007-06-06 Emmanuel Briot - - * g-regpat.adb (Quote): Fix improper quoting of '.' - -2007-06-06 Thomas Quinot - - * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by - default, set False on a per-runtime basis. - (Need_Netdb_Buffer): New constant. - - * g-socket.ads, g-socket.adb: Import new package - GNAT.Sockets.Thin.Task_Safe_NetDB. - (Raise_Host_Error): Use Host_Error_Message from platform-specific thin - binding to obtain proper message. - (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close. - Replace various occurrences of Arry (Arry'First)'Address with the - equivalent Arry'Address (GNAT always follows implementation advice from - 13.3(14)). - (Get_Host_By_Address, Get_Host_By_Name, - Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock; - instead, rely on platform-specific task safe netdb operations provided - by g-socthi. - - * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal - parameter Process_Blocking_IO. - (Host_Error_Messages): Add stub body. - (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close. - (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname, - Safe_Getservbyport): Move functions into new child package - Task_Safe_NetDB. - (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr, - Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines. - (In_Addr): Add alignment clause. - -2007-06-06 Robert Dewar - - * g-trasym.ads, g-traceb.ads: Update list of supported targets - Add note about symbolic traceback - -2007-06-06 Pascal Obry - - * hostparm.ads (Normalized_CWD): Use the host directory separator - instead of the hardcoded forward slash which is not the proper - character on Windows for example. - (Java_VM): Removed. - -2007-06-06 Vincent Celier - Arnaud Charlet - - * a-clrefi.adb, a-clrefi.ads: New files - - * impunit.adb: Add s-os_lib in the list of user visible units. - (Non_Imp_File_Names_95): Add a-clrefi to this list - Remove obsolete run-time entries. - (Non_Imp_File_Names_05): Add Ada 2005 entries for: - "a-exetim" -- Ada.Execution_Time - "a-extiti" -- Ada.Execution_Time.Timers - - * mlib-prj.ads, mlib-prj.adb - (Build_Library): Use untouched object dir and library dir. At the - same time makes sure that the checks are done using the canonical - form. Removes hard-coded directory separator and use the proper host - one instead. - (Process_Project): Do not look in object directory to check if libgnarl - is needed for a library, if there is no object directory. - (Build_Library): Scan the ALI files to decide if libgnarl is needed for - linking. - (Build_Library): When invoking gnatbind, use a response file if the - total size of the arguments is too large. - - * Makefile.rtl: (g-sttsne): New object file. - Add entry for a-clrefi, s-utf_32, System.Exceptions - - * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o. - (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o. - (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o - Change g-string to s-string, g-os_lib to s-os_lib - Change all g-utf_32 references to s-utf_32 - -2007-06-06 Tristan Gingold - Olivier Hainque - - * init.c: Do not adjust IP of an imported VMS exception of ia64. - LIB$STOP is called to raise an exception and the IP of the exception - is the instruction right after the call. - (__gnat_adjust_context_for_raise, AIX): Implement. - (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call - adjust_context_for_raise before Raise_From_Signal_Hanler. - (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure - siginfo is passed to the handler, necessary to let the zcx propagation - engine unwind past it. - -2007-06-06 Olivier Hainque - - * initialize.c (__gnat_initialize for vxworks): Update documentation - on the ZCX support, using different sets of crtstuff objects than with - GCC 3.4. - -2007-06-06 Robert Dewar - - * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package - spec from body - (Layout_Type): Fix recomputation of size from alignment. - -2007-06-06 Ed Schonberg - Javier Miranda - - * sem_ch12.adb (Analyze_Associations): Diagnose use of an others - association in an instance. - (Copy_Generic_Node): If the node is a string literal, no need to copy - its descendants. - (Is_Generic_Formal): For a formal subprogram, the declaration is the - grandparent of the entity. - (Analyze_Formal_Interface_Type): Transform into a full type declaration, - to simplify handling of formal interfaces that derive from other formal - interfaces. - (Instantiate_Subprogram_Body): The defining unit name of the body of - the instance should be a defining identifier. - (Install_Formal_Packages): make global to the package, for use in - instantiations of child units. - (Analyze_Package_Instantiation): Do not attempt to set information on an - enclosing master of an entry when expansion is disabled. - (Instantiate_Type): If the actual is a tagged synchronized type and the - generic ancestor is an interface, create a generic actual for the - corresponding record. - (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type - declaration, to ensure that the interface list is processed correctly. - (Inline_Instance_Body): If enclosing scope is an instance body, remove - its entities from visibiility as well. - (Pre_Analyze_Actuals): if the actual is an allocator with constraints - given with a named association, analyze the expression only, not the - discriminant association itself. - (Reset_Entity): If the analysis of a selected component is transformed - into an expanded name in the prefix of a call with parameters, do not - transform the original node into an expanded name, to prevent visibility - errors in the case of nested generics. - (Check_Private_View): For an array type, check whether the index types - may need exchanging. - -2007-06-06 Arnaud Charlet - Vincent Celier - - * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java, - since both are separated. - Add support for imported CIL packages. - Add further special handling of "value_type" for CIL. - Add special handling of pragma Import for CIL. - - * make.ads, make.adb: When switch -eS is used, direct all outputs to - standard output instead of standard error, except errors. - (Absolute_Path): Use untouched casing for the parent directory. - (Add_Library_Search_Dir): Use the untouched directory name. - (Add_Source_Search_Dir): Idem. - (Change_To_Object_Directory): Update output to use proper casing. - (Create_Binder_Mapping_File): Use the untouched filename to set - ALI_Name. - (Gnatmake): Use untouched library and executable directory names. - (Insert_Project_Sources): Use untouched filename for spec and body. - (Is_In_Object_Directory): Use untouched object directory. - (Mark_Directory): Idem. - (Collect_Arguments_And_Compile): Ensure that Full_Source_File always - contains the non-canonical filename in all cases. - (Change_To_Object_Directory): In verbose mode, display the name of the - object directory we're changing to. - (Compile_Sources): Make sure, when a project file is used, to compile - the body of the unit, when there is one, even when only the spec is - recorded in an ALI file. - (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the - spec to the body. - (Report_Compilation_Failed): New procedure - (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg): - procedures moved from the spec to the body. - (Extract_Failure): Removed, not used - Replace explicit raises of exception Bind_Failed and Link_Failed with - calls to Make_Failed with the proper message. - Replace explicit raises of exception Compilation_Failed with calls to - procedure Report_Compilation_Failed. - (Initialize): Create mapping files unconditionally when using project - files. - - * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL, - Pragma_CIL_Constructor): New names. - - * targparm.ads, targparm.adb - (Compiler_System_Version): Removed, no longer used. - (Get_Target_Parameters): Relax checks on system.ads validity. Add - handling of two new system flags: JVM and CLI. - -2007-06-06 Jose Ruiz - Arnaud Charlet - - * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run - time, use the default s-interr body that provides interrupt support - based on signals. - (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of - a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b}, - g-soccon.ads, and s-taprop.adb for the marte run time. - (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and - timers are supported on marte. - (EH_MECHANISM for marte): Do not use ZCX. - (THREADSLIB for marte): Use -lmarte. - Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS - Add mlib-tgt-specific.o to gnatmake objects - mlib-tgt-.adb is now the body of MLib.Tgt.Specific, no - longer of MLib.Tgt. - (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks - 6, either kernel or rtp, use a specialized version of s-osinte.ads. - -2007-06-06 Pascal Obry - - * mkdir.c (__gnat_mkdir): Add support for UTF-8. - -2007-06-06 Vincent Celier - - * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory - separator, use instead the proper host directory separator. - (Copy_ALI_Files): Make sure that an already existing ALI file in the - ALI copy dir is writable, before doing the copy. - - * mlib-utl.ads, mlib-utl.adb: - (Gcc): If length of command line is too long, put the list of object - files in a response file, if this is supported by the platform. - (Ar): If invocation of the archive builder is allowed to be done in - chunks and building it in one shot would go above an OS dependent - limit on the number of characters on the command line, build the archive - in chunks. - -2007-06-06 Vincent Celier - - * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name - of specified object file is not equal to base name of source. - -2007-06-06 Javier Miranda - Hristian Kirtchev - Ed Schonberg - - * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to - the full type declaration. - (Analyze_Component_Declaration): Add local variable E to capture the - initialization expression of the declaration. Replace the occurences of - Expression (N) with E. - (OK_For_Limited_Init_In_05): Allow initialization of class-wide - limited interface object with a function call. - (Array_Type_Declaration): If the declaration lacks subtype marks for - indices, create a simple index list to prevent cascaded errors. - (Is_Null_Extension): Ignore internal components created for secondary - tags when checking whether a record extension is a null extension. - (Check_Abstract_Interfaces): Add missing support for interface subtypes - and generic formals. - (Derived_Type_Declaration): Add missing support for interface subtypes - and generic formals. - (Analyze_Object_Declaration): If an initialization expression is - present, traverse its subtree and mark all allocators as static - coextensions. - (Add_Interface_Tag_Component): When looking for components that may be - secondary tags, ignore pragmas that can appear within a record - declaration. - (Check_Abstract_Overriding): an inherited function that dispatches on - result does not need to be overriden if the controlling type is a null - extension. - (Mentions_T): Handle properly a 'class attribute in an anonymous access - component declaration, when the prefix is an expanded name. - (Inherit_Component): If the derivation is for a private extension, - inherited components remain visible and their ekind should not be set - to Void. - (Find_Type_Of_Object): In the case of an access definition, always set - Is_Local_Anonymous_Access. We were previously not marking the anonymous - access type of a return object as a local anonymous type. - (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete - range with character literal bounds. - (Constrain_Array): Initialize the Packed_Array_Type field to Empty. - (Access_Subprogram_Declaration): Indicate that the type declaration - depends on an incomplete type only if the incomplete type is declared - in an open scope. - (Analyze_Subtype_Declaration): Handle properly subtypes of - synchronized types that are tagged, and that may appear as generic - actuals. - (Access_Subprogram_Declaration): An anonymous access to subprogram can - appear as an access discriminant in a private type declaration. - (Add_Interface_Tag_Components): Complete decoration of the component - containing the tag of a secondary dispatch table and the component - containing the offset to the base of the object (this latter component - is only generated when the parent type has discriminants --as documented - in this routine). - (Inherit_Components): Use the new decoration of the tag components to - improve the condition that avoids inheriting the components associated - with secondary tags of the parent. - (Build_Discriminanted_Subtype): Indicate to the backend that the - size of record types associated with dispatch tables is known at - compile time. - (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed. - (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface - to include task, protected, and synchronized interfaces as limited - interfaces. - (Process_Discriminants): Remove the setting of - Is_Local_Anonymous_Access on the type of (anonymous) access - discriminants of nonlimited types. - (Analyze_Interface_Type_Declaration): Complete the decoration of the - class-wide entity it is is already present. This situation occurs if - the limited-view has been previously built. - (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep - field. - (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute - Related_Interface. - -2007-06-06 Ed Schonberg - - * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components - of the type that specify the position of interface tags when the type - inherits discriminated array components from the parent type. - If a component is initialized with a box, check for the presence of a - default expression in its declaration before using its default - initialization procedure. - (Resolve_Record_Aggregate): If a component is box-initialized, and the - component type has a discriminants, create a partial aggregate for it - by copying the discriminants of the component subtype. - Reject attempt to initialize a discriminant with a box. - (Array_Aggr_Subtype): Indicate to the backend that the size of arrays - associated with dispatch tables is known at compile time. - (Get_Value): If an association in a record aggregate has a box - association, and the corresponding record component has a default - expression, always copy the default expression, even when the - association has a single choice, in order to create a proper - association for the expanded aggregate. - -2007-06-06 Ed Schonberg - Robert Dewar - - * par-ch12.adb (P_Generic_Associations): The source position of an - Others association is that of the others keyword, not that of the token - that follows the box. - (P_Formal_Type_Definition): Handle formal access types that carry a - not null indicator. - - * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If - multiple identifier are present, save Scan_State before scanning the - colon, to ensure that separate trees are constructed for each - declaration. - (P_Identifier_Declarations): For object declaration, set new flag - Has_Init_Expression if initialization expression present. - (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL - Improve NOT NULL error messages - -2007-06-06 Robert Dewar - - * par-ch4.adb: (P_Name): Recover from literal used as name - -2007-06-06 Vincent Celier - - * prep.ads, prep.adb (Expression): New Boolean parameter Complemented, - defaulted to False. - In the "not" case, recursive call with Complemented set to True. - Do not allow "or" or "and" operators when Complemented is True. - -2007-06-06 Vincent Celier - - * prj.adb (Project_Empty): Gives default value for new component - Libgnarl_Needed - - * prj-attr.ads: Minor reformatting - - * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object - directory using the untouched casing. - (For_All_Source_Dirs): Idem. - - * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record - directories specified with switches -aP. - (Add_Search_Project_Directory): New procedure - (Initialize_Project_Path): Put the directories in table - Search_Directories in the project search path. - (Initialize_Project_Path): For VMS, transform into canonical form the - project path. - -2007-06-06 Arnaud Charlet - - * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return - true if configurable run-time or No_Run_Time is set. - (Set_Restriction): Avoid setting restriction No_Elaboration_Code when - processing an unit which is not the one being compiled. - -2007-06-06 Arnaud Charlet - - * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax. - Replace UC by Ada.UC - - * s-bitops.adb: Get rid of System.Pure_Exceptions. - Replace UC by Ada.UC - -2007-06-06 Robert Dewar - - * scng.adb: (Check_End_Of_Line): Deal with very long lines - -2007-06-06 Robert Dewar - - * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names - Remove no longer used nodes. - -2007-06-06 Javier Miranda - Ed Schonberg - Robert Dewar - - * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check - on obsolescent withed unit in case of limited-withed units. - (Analyze_Compilation_Unit): Add guard to code that removed an - instantiation from visibility, to prevent compiler aborts when - instantiation is abandoned early on. - (Install_Limited_Withed_Unit): Recognize a limited-with clause on the - current unit being analyzed, and Distinguish local incomplete types - from limited views of types declared elsewhere. - (Build_Limited_Views.Decorate_Tagged_Type): Add documentation - to state that the class-wide entity is shared by the limited-view - and the full-view. - (Analyze_With_Clause): Improve placement of flag for case of - unimplemented unit. - (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a - manner similar to GNAT.Current_Exception. This is a violation of - restriction (No_Exception_Propagation), and also inhibits the - optimization of local raise to goto. - (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed, - and if so set Most_Recent_Exception_Used flag in Opt, and also check - for violation of restriction No_Exception_Propagation. - -2007-06-06 Javier Miranda - Hristian Kirtchev - Gary Dismukes - - * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the - use of entity Exception_Occurrence if it is not available in the - target run-time. - - * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When - concurrent types are declared within an Ada 2005 generic, build their - corresponding record types since they are needed for overriding-related - semantic checks. - (Analyze_Protected_Type): Rearrange and simplify code for testing that a - protected type does not implement a task interface or a nonlimited - interface. - (Analyze_Task_Type): Rearrange and simplify code for testing that a task - type does not implement a protected interface or a nonlimited interface. - (Single_Task_Declaration, Single_Protected_Declaration): use original - entity for variable declaration, to ensure that debugging information - is correcty generated. - (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander - routines if the expander is not active. - (Analyze_Task_Body): Mark all handlers to stop optimization of local - raise, since special things happen for task exception handlers. - - * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for - concurrent types declared within a generic. - (Check_Dispatching_Operation): Do not emit warning about late interface - operations in the context of an instance. - (Check_Dispatching_Call): Remove restriction against calling a - dispatching operation with a limited controlling result. - (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and - Register_Interface_DT_Entry by calls to Register_Primitive. - (Check_Dispatching_Formals): Handle properly a function with a - controlling access result. - -2007-06-06 Robert Dewar - Arnaud Charlet - - * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size): - Check for restriction No_Implementation_Attributes if in Ada 95 mode. - (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available - (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error - message when using a VM, since this attribute is not supported. - (Analyze_Record_Representation_Clause): Give unrepped component warnings - - * usage.adb: Add new warning for renaming of function return objects - Indicate that -gnatwp and -gnatwP concern front-end inlining - Add line for -gnatyg - Add usage information for -gnatw.c/C - -2007-06-06 Robert Dewar - Ed Schonberg - - * sem_ch5.adb - (Find_Var): Do not consider function call in test for infinite loop - warning if warnings set off for function entity. - (One_Bound): Do not create a temporary for a loop bound if it is a - character literal. - (Analyze_Assignment): Traverse the right hand side of an assignment and - mark all allocators as static coextensions. - (Analyze_Assignment): Exempt assignments involving a dispatching call - to a function with a controlling access result from the check requiring - the target to be class-wide. - -2007-06-06 Hristian Kirtchev - Ed Schonberg - Robert Dewar - Javier Miranda - - * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the - chain of coextensions when an allocator serves as the root of such a - chain. - (Propagate_Coextensions): Remove the test for the root being an - allocator. - (Resolve_Allocator): Add condition to ensure that all future decoration - occurs on an allocator node. Add processing and cleanup for static - coextensions. - (Valid_Conversion): If the operand type is the limited view of a - class-wide type, use the non-limited view is available to determine - legality of operation. - (Ambiguous_Character): move to spec, for use elsewhere. - (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode - (Resolve_Range): Diagnose properly an ambiguous range whose bounds are - character literals. - (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting - Do_Division_Check flag explicitly. - (Resolve_Actuals): If the actual is of a synchronized type, and the - formal is of the corresponding record type, this is a call to a - primitive operation of the type, that is declared outside of the type; - the actual must be unchecked-converted to the type of the actual - (Resolve_Call): Kill all current values for any subprogram call if - flag Suppress_Value_Tracking_On_Call is set. - (Resolve_Type_Conversion): Generate error message the the operand - or target of interface conversions come from a limited view. - (Check_Infinite_Recursion): Ignore generated calls - (Check_Allocator_Discrim_Accessibility): New procedure for checking - that an expression that constrains an access discriminant in an - allocator does not denote an object with a deeper level than the - allocator's access type. - (Resolve_Allocator): In the case of an allocator initialized by an - aggregate of a discriminated type, check that associations for any - access discriminants satisfy accessibility requirements by calling - Check_Allocator_Discrim_Accessibility. - (Resolve_Equality_Op): Handle comparisons of anonymous access to - subprogram types in the same fashion as other anonymous access types. - (Resolve_Concatenation_Arg): Remove initial character '\' in an error - message that is not a continuation message. - (Resolve_Type_Conversion): Add missing support for conversion to - interface type. - (Resolve_Actuals): Introduce a transient scope around the call if an - actual is a call to a function returning a limited type, because the - resulting value must be finalized after the call. - (Resolve_Actuals): If the call was given in prefix notations, check - whether an implicit 'Access reference or implicit dereference must be - added to make the actual conform to the controlling formal. - -2007-06-06 Robert Dewar - Javier Miranda - - * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body - (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit - overriding of an inherited private subprogram now there is no need to - inherit its dispatching slot and reduce the size of the dispatch table. - Set_All_DT_Position now ensures that the same slot is now assigned to - both entities. This is required to statically build the dispatch table. - (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need - of calling Set_All_DT_Position to re-evaluate the position of the - entries in the dispatch table. Such reevaluation is not desired if - the tagged type is already frozen. - -2007-06-06 Hristian Kirtchev - Gary Dismukes - Robert Dewar - Javier Miranda - - * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute - reference acts as an lvalue when the attribute name modifies the prefix - (Is_Coextension_Root): New routine. - (Mark_Static_Coextensions): New routine. - (Type_Access_Level): Revise code for checking the level of the - anonymous access type of a return object. - (Safe_To_Capture_Value): Not safe to capture if Address_Taken - (Matches_Prefixed_View_Profile): Remove the no longer necessary - retrieval of the corresponding controlling record type. - (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of - concurrent types declared within a generic as well as class wide types. - Emit a mode incompatibility error whenever a protected entry or routine - override an interface routine whose first parameter is not of mode - "out", "in out" or access to variable. - (Overrides_Synchronized_Primitive): Rename to - Find_Overridden_Synchronized_Primitive. - (Collect_Interface_Components): New subprogram that collects all the - components of a tagged record containing tags of secondary dispatch - tables. - (Add_Global_Declaration): New procedure - (Abstract_Interface_List): Handle properly the case of a subtype of a - private extension. - (Type_Access_Level): In the case of a type whose parent scope is a - return statement, call Type_Access_Level recursively on the enclosing - function's result type to determine the level of the return object's - type. - (Build_Elaboration_Entity): Build name of elaboration entity from the - scope chain of the entity, rather than the unit name of the file name. - (Check_Nested_Access): New procedure. - (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures. - (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access. - (Get_Renamed_Entity): Utility routine for performing common operation - of chasing the Renamed_Entity field of an entity. - -2007-06-06 Robert Dewar - - * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on - elaboration model - (Check_A_Call): Add check for entry call which was causing blowup - -2007-06-06 Olivier Hainque - - * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add - special code on ia64-vms to handle major incompatibilities between the - GCC unwinding ABI and the VMS Condition Handling Facility, both calling - this routine with a very different set of arguments and expectations on - the return value. - -2007-06-06 Thomas Quinot - - * socket.c (__gnat_close_signalling_fd): New function. - (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname, - __gnat_safe_getservbyname, __gnat_safe_getservbyport): - New supporting functions for task safe Netdb operations. - -2007-06-06 Thomas Quinot - Olivier Hainque - - * a-except-2005.ads, a-except-2005.adb - (Raise_From_Controlled_Operation): New procedure in - (private part of) Ada.Exceptions (standard runtime version). Used to - provide informational exception message when Program_Error is raised as - a result of an Adjust or Finalize operation propagating an exception. - (Rmsg_28): Fix description for E.4(18) check. - (Raise_Current_Excep): Call Debug_Raise_Exception just before - propagation starts, to let debuggers know about the event in a reliable - fashion. - Take the address of E and dereference to make sure it is homed on stack - and prevent the stores from being deleted, necessary for proper - debugger behavior on "break exception" hits. - (Local_Raise): Moved to System.Exceptions - - * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate - exception message from the current occurrence and raise Program_Error - has been moved to Ada.Exceptions.Raise_From_Controlled_Operation. - -2007-06-06 Jose Ruiz - Arnaud Charlet - - * s-taprob.adb (Unlock): Change the ceiling priority of the underlying - lock, if needed. - - * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling - priority associated to a lock. - - * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax - assertion to take into account case of no abort restriction. - (Initialize_Protection_Entries): Add initialization for the field - New_Ceiling associated to the protected object. - (Unlock_Entries): Change the ceiling priority of the underlying lock, if - needed. - - * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest, - since this function needs to be set consistently with Update_Exception. - - * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest, - since this function needs to be set consistently with Update_Exception. - - * s-taskin.ads: Update comments on - Interrupt_Server_Blocked_On_Event_Flag. - (Unbind_Handler): Fix handling of server_task wakeup - (Server_Task): Set self's state so that Unbind_Handler can take - appropriate actions. - (Common_ATCB): Now use a constant from System.Parameters to determine - the max size of the Task_Image field. - - * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the - Initialize_Analyzer function. - ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to - take into account case of no abort restriction. - ([Vulnerable_]Complete_Master): Modify assertion. - - * s-tataat.adb (Finalize): Use the nestable versions of - Defer/Undefer_Abort. - - * s-tpobop.adb (Protected_Entry_Call): Relax assertion. - - * s-tpobop.ads: Update comments. - - * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead - of locking the object manually, to avoid inconsistencies between - Lock/Unlock_Entry assertions. - - * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when - terminating - application and System.Parameters.No_Abort is True. - Update comments on Interrupt_Server_Blocked_On_Event_Flag. - (Unbind_Handler): Fix handling of server_task wakeup - (Server_Task): Set self's state so that Unbind_Handler can take - appropriate actions. - -2007-06-06 Thomas Quinot - - * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure - declarations instead of an explicit null body, for conciseness. - -2007-06-06 Robert Dewar - - * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an - illegal aggregate and the type is still Any_Composite. - (Subtypes_Statically_Match): Fix problem of empty discriminant list - -2007-06-06 Ed Schonberg - - * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object, - to prevent subsequent expansion. - -2007-06-06 Robert Dewar - - * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body - -2007-06-06 Ed Schonberg - Robert Dewar - - * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for - exceptions. - (Write_Itype): Handle case of string literal subtype, which - comes up in this context. - (Update_Itype): when debugging expanded code, update sloc of itypes - associated with defining_identifiers and ranges, for gdb use. - (Sprint_Node_Actual): Add static keyword to object or exception - declaration output if Is_Statically_Allocated is True. - (Sprint_End_Label): Set entity of end marker for a subprogram, package, - or task body, so that the tree carries the proper Sloc information for - debugging use. - (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes - -2007-06-06 Arnaud Charlet - - * s-secsta.adb (Chunk): Ensure this object has a static size known at - compile time, to avoid dynamic memory allocation - (Elaboration code): Only use dynamic memory allocation when needed. - -2007-06-06 Quentin Ochem - - * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter - "Overflow_Guard". - (Stack_Analyzer): Added field "Overflow_Guard" - (Task_Result): Added field "Overflow_Guard". - (Index_Str): New constant. - (Task_Name_Str): New constant. - (Actual_Size_Str): New constant. - (Pattern_Array_Element_Size): New constant. - (Get_Usage_Range): New subprogram. - (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len. - Now align the output. - Added comments. - (Initialize): Added value for Overflow_Guard. - (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant. - Update the value of the overflow guard according to the actual - beginning of the pattern array. - (Initialize_Analyzer): Added parameter Overflow_Guard. - Take this parameter into accound when computing the max size. - (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant. - (Report_Result): Removed extra useless procedure. - Updated call to Output_Result. - Moved full computation of the Task_Result here. - -2007-06-06 Thomas Quinot - - * g-soccon-darwin.ads, gen-soccon.c: Add new constant - Thread_Blocking_IO, always True by default, set False on a per-runtime - basis. - Add Windows-specific constants - Add new constant Need_Netdb_Buffer. - Add new macros to indicate whether getXXXbyYYY is thread safe and, if - not, whether to use getXXXbyYYY_r. - - * gsocket.h: Add new constant Need_Netdb_Buffer. - Add new macros to indicate whether getXXXbyYYY is thread safe and, if - not, whether to use getXXXbyYYY_r. - -2007-06-06 Eric Botcazou - - * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier - than their first call. - Add type Dummy_Communication_Block used in the generation of the pre- - defined dispatching primitive _disp_asynchronous_select. - (Storage_Element): Put Pragma Universal_Aliasing on it. - -2007-06-06 Vincent Celier - - * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean - function. - - * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive - letter if it is not followed by a '/' or a '\'. - (Windows): New Boolean function - - * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma - Ada 2005. - (Containing_Directory): On Windows, keep at least one '/' or '\' after a - drive letter. - (Containing_Directory): Raise Use_Error when the directory is a root - directory. - (Extension): When returning the result, use a conversion to Result_Type, - not a qualification. - -2007-06-06 Robert Dewar - - * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure - (Set_Style_Check_Options): Recognize new -gnatyg style switch - - * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set - Warn_On_Non_Local_Exception to False, to turn off warnings for - No_Exception_Propagation in ZFP runtime. - (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC - back-ends. - (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks - -2007-06-06 Vincent Celier - - * switch-b.adb (Scan_Binder_Switches): Add processing for new - switches -R and -Z - - * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E - (Scan_Make_Switches): Recognize new switch -aP - -2007-06-06 Matthew Gingell - Jose Ruiz - - * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the - VxWorks task descriptor in the Ada run time, call a C subprogram - (__gnat_get_stack_info) that extracts the required information. - - * sysdep.c: Back out temporary lynxos workaround. - (__gnat_get_stack_info): Add this procedure that passes to the Ada run - time the stack information associated to the currently executing task. - Only VxWorks systems require this function. - -2007-06-06 Eric Botcazou - - * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not - add the stack bias if the offset is computed from a frame address. - (__gnat_backtrace): Adjust for above change. - -2007-06-06 Thomas Quinot - - * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to - PE_Non_Transportable_Actual. - (By_Descriptor_Last): New constant. - (By_Copy_Return): Likewise. - -2007-06-06 Vincent Celier - - * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as - is. - - * vms_data.ads: Add entries for -gnatw.x and -gnatw.X - /STYLE_CHECKS=GNAT: Change meaning to -gnatyg - /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg - Add missing comment for /OPTIMIZE=SPACE - Add entry for OPTIMIZE=SPACE - Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST - Add documentation for new qualifiers corresponding to -gnatw.c/.C - -2007-06-06 Vincent Celier - Robert Dewar - - * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and - -gnatw.C) - - * gnat_ugn.texi: Fix ordering of -g switch for gnatmake - Document gnatbind switch -a - (case Constructions): Document that variables declarations are allowed - for previously declared variables. - Fix external lib project example - -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL - Indicate that "#if not X or Y then" is not allowed in input files to - gnatprep. - Document gnatw.x and gnatw.X warning flags - Mention -Winline switch to activate warnings when back-end inlining is - ineffective. - Add gnatcheck rule descriptions - Describe how to use the GNAT driver to call a tool on a closure. - Describe how to run project-wide checks or metrics. - Document gnatbind's -R option - Updated to account for Ada 2005 support - - * gnat_rm.texi (Case Construction): Allow variable declarations for - previously declared variables. - (Representation Clauses and Pragmas): Lift restriction on alignment - clauses for record types. - (Ada.Characters.*): Fix typo in reference to A.3.3(27). - Document No_Exception_Propagation restriction - Document No_Body pragma - Updated to account for Ada 2005 support; corrected some typos - (Implementation Defined Pragmas): Document pragma Universal_Aliasing. - - * gnat-style.texi: Make it clear that we never use mode IN for - procedures or functions - - * ug_words: Add entries for -gnatw.x and -gnatw.X - Add entries for -gnatw.c/.C - -2007-06-06 Pascal Obry - Vincent Celier - - * makegpr.adb (Add_Archive_Path): Use untouched object and library - dirs and library name. - (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate - comments. - (Build_Library): Idem. - (Compile_Individual_Sources): Idem. - (Compile_Link_With_Gnatmake): Idem. - (Compile_Sources): Idem. - (Get_Imported_Directories): Idem. - (Link_Executables): Idem. Same change for the executable dir. - (Check_Compilation_Needed): C_Source_Path new variable containing - the canonical form of Source_Path to check against the source names - in the dependency file. - (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In - verbose mode, display the name of the object directory we're changing - to. - (Saved_Switches): New name of table X_Switches - (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches - (Usage): New line for switch -aP - (Get_Imported_Directories.Add): Make sure that Add_Arg is True before - testing if a directory should be added to the search path. - -2007-06-06 Javier Miranda - - * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads, - a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object - declaration after freezing point of all its associated tagged types; - otherwise such types are frozen too early. - -2007-06-06 Robert Dewar - - * a-reatim.adb: Documentation addition - - * g-cgideb.adb: Minor code reorganization - - * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb, - mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads, - s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting. - - * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete - function. Change name New_Scope to Push_Scope - (Get_Debug_Flag_K): Remove unused obsolete function. - - * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to - Push_Scope. - - * makeusg.adb: Update Copyright notice - Add line for switch -aP - - * makeusg.adb: Fix wording of some usage messages - - * s-assert.adb (Raise_Assert_Failure): Add call to - Debug_Raise_Assert_Failure. - - * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min - (2, Standard'Alignment) for compatibility with AAMP (where alignment - is restricted to 1). - - * s-wchjis.adb: Remove use of System.Pure_Exceptions - - * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the - node location to No_Location when we're not debugging the expanded - code. - -2007-05-22 Alexandre Oliva - - * misc.c (enumerate_modes): Consider log2_b to always be one. - -2007-05-14 Rafael Ávila de Espíndola - - * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove. - -2007-05-02 Pascal Obry - - * 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 - - PR ada/31660 - * ada-tree.h (lang_tree_node): Fix typo in chain_next. - -2007-04-21 Jan Hubicka - - * misc.c (gnat_expand_body): Don't call target for destructors, - avoid redundant check on syntax errors. - -2007-04-21 Andrew Pinski - - * ada-tree.h (lang_tree_node): Use GENERIC_NEXT - instead of checking GIMPLE_STMT_P in chain_next. - -2007-04-17 Andreas Krebbel - - 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 - Matt Heaney - Robert Dewar - - 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 - - * 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 - - * 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 - - * 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 - Pat Rogers - Pascal Obry - - * 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 - Vincent Celier - - * 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 - - * 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 - - * system-aix.ads: Back out previous change. - (Functions_Return_By_DSP): Removed - -2007-04-06 Pascal Obry - - * 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 - - * 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 - Thomas Quinot - - * 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 - - * 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 - - * 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 - - * 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 - Javier Miranda - - * 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 - Ed Schonberg - Javier Miranda - Bob Duff - - * 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 - Bob Duff - - * 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 - Ed Schonberg - Gary Dismukes - - * 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 - Eric Botcazou - - * 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 - - * 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 - - * 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 - Eric Botcazou - - * decl.c (gnat_to_gnu_entity) : Associate an external - VAR_DECL to a CONST_DECL we make for a public constant when we know the - corresponding definition has created the so made visible variable. - Handle anonymous access to protected subprogram. - (gnat_to_gnu_entity) : Do not make the underlying type of an - object with an address clause volatile. Re-enable original fix. - : Set TYPE_REF_CAN_ALIAS_ALL on the reference type - too. - (gnat_to_gnu_entity) : 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) : If the subtype has - discriminants, invoke again variable_size on its newly computed sizes. - -2007-04-06 Robert Dewar - Thomas Quinot - Ed Schonberg - Bob Duff - - * 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 - Robert Dewar - Bob Duff - Gary Dismukes - - * 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 - - * 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 - Thomas Quinot - - * 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 - Gary Dismukes - Ed Schonberg - - * 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 - Bob Duff - Cyrille Comar - - * 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 - Ed Schonberg - Gary Dismukes - - * 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 - Pablo Oliveira - - * 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 - Ed Schonberg - - * 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 - - * 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 - - * 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 - Bob Duff - - * 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 - - * 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 - - * 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 - - * 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 - Pablo Oliveira - - * 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 - - * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding - computation. - -2007-04-06 Jose Ruiz - Vincent Celier - - * 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 - - * gprep.adb (Process_Files.Process_One_File): Use full file name when - issuing pragma Source_Reference. - -2007-04-06 Emmanuel Briot - - * 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 - - * 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 - Robert Dewar - - * 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 - Arnaud Charlet - - * 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 - - * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the - switches from previously loaded tree - -2007-04-06 Thomas Quinot - - * 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 - Javier Miranda - - * 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 - Arnaud Charlet - Vincent Celier - - * 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 - - * 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 - - * 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 - Javier Miranda - Bob Duff - - * 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 - Javier Miranda - Bob Duff - Vincent Celier - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - Gary Dismukes - - * 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 - Bob Duff - Gary Dismukes - - * 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 - Robert Dewar - - * 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 - Thomas Quinot - - * 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 - Robert Dewar - - * 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 - Javier Miranda - - * 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 - Javier Miranda - - * 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 - Robert Dewar - - * 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 - - * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion - before propagating exception. - -2007-04-06 Olivier Hainque - - * 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 - Eric Botcazou - - * trans.c (call_to_gnu) : Return an - expression with a COMPOUND_EXPR including the call instead of emitting - the call directly here. - (gnat_to_gnu) : 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. - : New case. Directly stabilize the call if an lvalue is not - requested; otherwise fail. - (addressable_p) : Do not test DECL_NONADDRESSABLE_P. - -2007-04-06 Thomas Quinot - - * 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 - - * 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 - Olivier Hainque - - * 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 - - * s-stchop-vxworks.adb: - (Stack_Check): Raise Storage_Error if the argument has wrapped around. - -2007-04-06 Robert Dewar - Arnaud Charlet - - * 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 Ávila de Espíndola - - * 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 - - * 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 - - * Make-lang.in: Add install-pdf target as copied from - automake v1.10 rules. - -2007-02-28 Andreas Schwab - - * 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 - - * gnat-style.texi: Standardize title page. - * gnat_rm.texi: Likewise. - * gnat_ugn.texi: Likewise. - -2007-02-25 Mark Mitchell - - * decl.c (annotate_value): Adjust for refactoring of tree_map - hierarchy. - -2007-02-24 Mark Mitchell - - * decl.c (annotate_value): Adjust for refactoring of tree_map - hierarchy. - -2007-02-21 Ed Schonberg - - 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 - Sandra Loosemore - - * 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) : Delete. - : New case. - : 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 - - * 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 - - * 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 - - * misc.c, utils2.c: Fix comment typos. - -2007-01-24 Roger Sayle - - * 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 - - 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 - - * cuintp.c (build_cst_from_int): Use built_int_cst_type. - * trans.c (gnat_to_gnu): Likewise. - -2006-12-07 Geoffrey Keating - - * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE. - * adaint.c: Likewise. - -2006-12-05 Aldy Hernandez - - Merge from gimple-tuples-branch: - 2006-11-02 Aldy Hernandez - - * 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 - - * 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 - - 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 - - * trans.c (maybe_stabilize_reference): Remove handling of - FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR. - -2006-11-05 Arnaud Charlet - - PR ada/29707 - * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads - (To_Target_Priority): New function. - -2006-10-31 Robert Dewar - - * 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 - Bob Duff - Ed Schonberg - - * 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 - - * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned - error status. - -2006-10-31 Hristian Kirtchev - Jose Ruiz - - * 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 - Jose Ruiz - - * 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 - - * 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 - Eric Botcazou - - * 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 - - * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer. - (Initialize): Add type conversions required by above change. - -2006-10-31 Jose Ruiz - - * 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 - Eric Botcazou - Vincent Celier - - * 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 - Nicolas Setton - Olivier Hainque - Gary Dismukes - - * 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) : 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. - : 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. - : 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) : Restore comment. - (gnat_to_gnu_entity) : Do not use a dummy type. - (gnat_to_gnu_entity) : 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) : 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) : Do not force - TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate. - : Likewise. - (gnat_to_gnu_entity) : Add support for regular - incomplete subtypes and incomplete subtypes of incomplete types visible - through a limited with clause. - (gnat_to_gnu_entity) : 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) : Ignore constant overflow - stemming from type conversion for the lhs. - (Attribute_to_gnu) : Also divide the alignment by the - number of bits per unit for components of records. - (gnat_to_gnu) : 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) : 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 - - * 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 - - * 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 - Jose Ruiz - - * 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 - - * 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 - - * binde.adb (Better_Choice, Worse_Choice): Implement new preferences. - -2006-10-31 Robert Dewar - - * 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 - - * 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 - Ed Schonberg - - * 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 - - * 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 - Ed Schonberg - Bob Duff - - * 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 - - * 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 - - * 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 - Ed Schonberg - - * 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 - Thomas Quinot - Javier Miranda - Robert Dewar - - * 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 - - * 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 - Robert Dewar - Ed Schonberg - Gary Dismukes - - * 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 - Ed Schonberg - Bob Duff - Gary Dismukes - Robert Dewar - - * 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 - Robert Dewar - Gary Dismukes - Ed Schonberg - - * 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 - Ed Schonberg - Bob Duff - Gary Dismukes - - * 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 - - * 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 - - * 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 - Pablo Oliveira - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - Ed Schonberg - Robert Dewar - - * 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 - - * 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 - Ed Schonberg - - * 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 - - * 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 - Robert Dewar - Ed Schonberg - - * 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 - - * 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 - - * g-debpoo.adb (Is_Valid): Correctly compute Offset using - Integer_Address arithmetic, as in Set_Valid. - -2006-10-31 Arnaud Charlet - Robert Dewar - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * g-speche.ads, g-speche.adb: Add special case to recognize misspelling - initial letter o as a zero. - -2006-10-31 Robert Dewar - - * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First - -2006-10-31 Robert Dewar - - * 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 - - * 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 - Eric Botcazou - Arnaud Charlet - - * 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 - - * 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 - - * 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 - - * par-ch10.adb (P_Context_Clause): Minor error message fix - -2006-10-31 Hristian Kirtchev - Javier Miranda - - * 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 - Javier Miranda - - * 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 - - * 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 - - * 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 - - * 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 - - * repinfo.adb (List_Entities): Don't list entities from renaming - declarations. - -2006-10-31 Arnaud Charlet - Robert Dewar - - * 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 - - * 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 - - * scng.adb (Scan, case of numeric literal): Better msg for identifier - starting with a digit. - -2006-10-31 Ed Schonberg - Thomas Quinot - Javier Miranda - Gary Dismukes - - * 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 - - * 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 - Hristian Kirtchev - - * 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 - Thomas Quinot - - * 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 - Javier Miranda - Robert Dewar - - * 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 - Ed Schonberg - Gary Dismukes - - * 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 - Hristian Kirtchev - Bob Duff - - * 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 - Javier Miranda - - * 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 - Hristian Kirtchev - Javier Miranda - Ed Schonberg - - * 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 - Ed Schonberg - - * 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 - Ed Schonberg - Javier Miranda - Gary Dismukes - - * 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 - Ed Schonberg - - * 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 - - * 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 - Hristian Kirtchev - Javier Miranda - - * 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 - Hristian Kirtchev - Ed Schonberg - - * 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 - - * 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 - Ed Schonberg - Bob Duff - - * 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 - Robert Dewar - Bob Duff - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed - in file names. - -2006-10-31 Vincent Celier - - * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005 - -2006-10-31 Vincent Celier - - * 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 - - * 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 - - * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function. - Call TBK$SYMBOLIZE without omitting parameters. - -2006-10-31 Vincent Celier - - * 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 - - * 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 - Cyrille Comar - Ben Brosgol - - * 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 - Thomas Quinot - Arnaud Charlet - - * 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 Ávila de Espíndola - - * 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 - - * Makefile.in: Add TEXI2PDF definition. - * Make-lang.in: Add "ada.pdf" target. - -2006-10-03 Kazu Hirata - - * decl.c, utils.c: Fix comment typos. - * utils.c: Fix a typo. - -2006-09-28 Eric Botcazou - - * decl.c (gnat_to_gnu_entity) : 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 - - PR ada/28716 - g-socket.adb (Bind_Socket): Call Set_Address. - -2006-09-15 Eric Botcazou - - PR ada/15802 - * decl.c (same_discriminant_p): New static function. - (gnat_to_gnu_entity) : 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 - - 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 - - PR ada/29025 - * trans.c (gnat_gimplify_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 - - 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 - - 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 - - * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies. - -2006-06-23 Olivier Hainque - - * 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 - Eric Botcazou - - PR ada/18692 - * Make-lang.in: Add check-gnat to lang_checks. Rename existing - check-gnat into check-acats. - -2006-06-17 Karl Berry - - * gnat-style.texi (@dircategory): Use "Software development" - instead of "Programming", following the Free Software Directory. - -2006-06-12 John David Anglin - - PR ada/27944 - * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'. - -2006-06-06 Laurent Guerby - - PR ada/27769 - mlib-utl.adb: Use Program_Name. - -2006-05-28 Kazu Hirata - - * 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 - - * misc.c (gnat_dwarf_name): New function. - (LANG_HOOKS_DWARF_NAME): Define to it. - -2006-05-14 H.J. Lu - - * 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 - - * Makefile.in: Add Ada support for GNU/kFreeBSD. - * s-osinte-kfreebsd-gnu.ads: New file. - -2006-03-29 Carlos O'Donell - - * Make-lang.in: Rename docdir to gcc_docdir. - -2006-03-04 Eric Botcazou - - * 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 - - * uintp.adb (Num_Bits): Handle Uint_Int_First specially. - -2006-03-02 Richard Sandiford - - * 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 - - * Make-lang.in (Ada): Remove. - (.PHONY): Remove Ada - -2006-02-17 Ed Schonberg - - * 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 - - 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 - - * 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 - Robert Dewar - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - Ed Schonberg - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - Thomas Quinot - Robert Dewar - Javier Miranda - - * 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 - - * env.c (__gnat_setenv): Use size_t. - (__gnat_unsetenv): Likewise. - (__gnat_clearenv): Likewise. - -2006-02-16 Arnaud Charlet - - * opt.ads (Ada_Version_Default): Set to Ada 2005 by default. - -2006-02-13 Arnaud Charlet - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - Nicolas Roche - Arnaud Charlet - - * 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 - Olivier Hainque - Eric Botcazou - - * 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) : 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) : 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 - Robert Dewar - - * 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 - Vincent Celier - Robert Dewar - - * 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 - - * 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 - - * 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 - - * 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 - - * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of - quicksort. - -2006-02-13 Eric Botcazou - - * 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 - - * 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 - - * a-envvar.adb, a-envvar.ads: New files. - -2006-02-13 Douglas Rupp - - * 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 - - * a-rttiev.adb, a-rttiev.ads: New files. - -2006-02-13 Hristian Kirtchev - - * 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 - - * 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 - Gary Dismukes - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - Eric Botcazou - - * 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 - - * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has - wrapped around. - -2006-02-13 Vincent Celier - - * 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 - Thomas Quinot - - * 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 - Vincent Celier - - * 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 - Serguei Rybin - - * 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 - Robert Dewar - Ed Schonberg - - * 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 - Olivier Hainque - - * 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) : 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 - - * 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 - - * 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 - Gary Dismukes - - * 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 - Ed Schonberg - - * 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 - - * 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 - Javier Miranda - Robert Dewar - Gary Dismukes - - * 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 - Hristian Kirtchev - - * 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 - - * 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 - - * 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 - - * 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 - - * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze - call. - -2006-02-13 Thomas Quinot - - * 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 - Javier Miranda - Eric Botcazou - - * 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 - - * 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 - - * 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 - - * 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 - - * g-dyntab.adb (Index_Of): conversion from Natural can no longer raise - Constraint_Error. - -2006-02-13 Arnaud Charlet - - * 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 - - * 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 - - * 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 - Robert Dewar - - * 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 - - * 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 - - 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 - - * 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 - - * par-endh.adb (Explicit_Start_Label): Add code to protect the parser - against source containing syntax errors. - -2006-02-13 Vincent Celier - - * prj.adb (Reset): Initialize the first element of table Namings with - the standard naming data. - -2006-02-13 Vincent Celier - - * 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 - - * 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 - Gary Dismukes - Robert Dewar - - * 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 - - * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type. - -2006-02-13 Javier Miranda - - * 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 - Ed Schonberg - - * 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 - Ed Schonberg - Gary Dismukes - - * 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 - Robert Dewar - Ed Schonberg - Javier Miranda - - * 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 - Javier Miranda - - * 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 - - * 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 - - * 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 - Robert Dewar - - * 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 - Javier Miranda - - * 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 - - * 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 - Robert Dewar - - * 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 - - * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of - task name. - -2006-02-13 Bob Duff - - * 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 - - * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value - -2006-02-13 Eric Botcazou - - * 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 - Ben Brosgol - Robert Dewar - - * 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 - - * Make-lang.in (check-gnat): Run run_acats with $(SHELL). - -2006-02-06 Roger Sayle - - * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE. - -2006-02-03 John David Anglin - - PR target/25926 - * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target - implementation that calls __main. - -2006-01-25 Peter O'Gorman - - PR bootstrap/25859 - * Makefile.in (GCC_LINK): Remove quotes. - (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)" - or $(GCC_LINK). - - (powerpc-darwin): Pass -shared-libgcc when building shared library. - -2006-01-20 John David Anglin - - PR ada/24533 - * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8. - -2005-12-28 John David Anglin - - * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t. - -2005-12-12 Arnaud Charlet - - * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer - needed. - -2005-12-12 Arnaud Charlet - - * Make-lang.in: Update dependencies - -2005-12-12 Arnaud Charlet - - * Make-lang.in: Add rule for ada/exp_sel.o - -2005-12-12 Arnaud Charlet - - * Makefile.in (mingw section): Remove EH_MECHANISM setting. - -2005-12-09 Arnaud Charlet - - * gnatvsn.ads (Library_Version): Bump to version 4.2 - (ASIS_Version_Number): Bumped. - -2005-12-09 Doug Rupp - - * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change - Ada bind file prefix on VMS from b$ to b__. - (Build_Dynamic_Library): Change Init file suffix on VMS from $init to - __init. - - * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to - Targparm.OpenVMS_On_Target. - (Object_Suffix): Initialize with target object suffix. - (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__. - - * butil.adb: Change some Hostparm.OpenVMS checks to - Targparm.OpenVMS_On_Target. - - * clean.adb: Change some Hostparm.OpenVMS checks to - Targparm.OpenVMS_On_Target. - (Object_Suffix): Initialize with call to Get_Target_Object_Suffix. - ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change - Ada bind file prefix on VMS from b$ to b__. - - * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in - --GCC so that Get_Target_Parameters can find system.ads. - (Gnatlink): Call Get_Target_Parameters in mainline. - Initialize standard packages for Targparm. - Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target. - (Process_Args): Also Check for object files with target object - extension. - (Make_Binder_File_Names): Create with target object extension. - (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$ - to b__. - - * mlib-prj.adb: Change some Hostparm.OpenVMS checks to - Targparm.OpenVMS_On_Target. - ({declaration},Build_Library,Check_Library): Change Ada bind file - prefix on VMS from b$ to b__. - - * osint-b.adb: Change some Hostparm.OpenVMS checks to - Targparm.OpenVMS_On_Target. - (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to - b__. - - * targext.c: New file. - - * Makefile.in: add support for vxworks653 builds - (../../vxaddr2line): gnatlink with targext.o. - (TOOLS_LIBS): Move targext.o to precede libgnat. - (init.o, initialize.o): Minor clean up in dependencies. - (GNATLINK_OBJS): Add targparm.o, snames.o - Add rules fo building targext.o and linking it explicitly with all - tools. - Also add targext.o to gnatlib. - - * Make-lang.in: Add rules for building targext.o and linking it in - with gnat1 and gnatbind. - Add entry for exp_sel.o. - - * osint.adb Change some Hostparm.OpenVMS checks to - Targparm.OpenVMS_On_Target. - (Object_File_Name): Use target object suffix. - - * osint.ads (Object_Suffix): Remove, no longer used. - (Target_Object_Suffix): Initialize with target object suffix. - - * rident.ads: Add special exception to license. - - * targparm.adb (Get_Target_Parameters): Set the value of - Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive - value. - (Get_Target_Parameters): Set OpenVMS_On_Target if openvms. - - * targparm.ads: Add special exception to license. - - * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New - function. - (Copy_File): Make sure from file is closed if error on to file - (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions. - - * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix. - (Executable_Suffix): Intialize with Get_Target_Executable_Suffix. - - * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with - target object suffix. - -2005-12-09 Jose Ruiz - Quentin Ochem - Florian Villoing - - * 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 - routine is not executed twice for the environment task when finishing - because of an unhandled exception. - - * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination - handler because of an unhandled exception. - - * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from - System.Tasking.Utilities instead of that in System.Tasking.Stages. - - * s-finimp.adb (initialization code): Modify the soft link for the - finalization of the global list instead of Adafinal. - - * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this - non-tasking version of the soft link for task termination. We do - nothing since if we are using the non-tasking version it - means that the task termination functionality is not used. - (Null_Finalize_Global_List): Add this null version for the procedure - in charge of finalizing the global list for controlled objects. - (Null_Adafinal): Remove this procedure. Adafinal_NT has been created - instead for handling run-time termination in a more flexible way. - (Adafinal_NT): This new procedure will take care of finalizing the - global list for controlled objects if needed, but no tasking - finalization. - - * s-tarest.adb (Task_Lock): Do not try to lock again the - Global_Task_Lock if we already own it. Otherwise, we get blocked in - some run-time operations. - (Task_Unlock): Do not try to actually unlock the Global_Task_Lock - until all nested locks have been released. - (Task_Wrapper): Call the fall-back task termination handler. It - applies to all tasks but the environment task. - (Finalize_Global_Tasks): Add the call for the task termination - procedure for the environment task. - (Task_Wrapper): suppress warnings around declaration of - Secondary_Stack_Address. - - * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been - moved to the Common_ATCB record. - (Task_Lock): Global_Task_Lock_Nesting has been moved to the - Common_ATCB record. - (Task_Unlock): Global_Task_Lock_Nesting has been moved to the - Common_ATCB record. - - * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting, - Fall_Back_Handler, and Specific_Handler. - - * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already - defined in Ada.Task_Termination, to avoid circular dependencies. - (Termination_Handler): Redefine this type here, alredy defined in - Ada.Task_Termination, for avoiding circular dependencies. - (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required - for storing task termination handlers. In addition, - Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to - Common_ATCB because it is used by both the regular and the restricted - run times. - (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to - Common_ATCB because it is used by both the regular and the restricted - run times. - (Common_ATCB): Added a dynamic task analyzer field. - - * s-tassta.adb (Abort_Tasks): Move the code in charge of checking - potentially blocking operations to System.Tasking.Utilities.Abort_Tasks. - (Task_Wrapper): Call the task termination handler. It applies to all - tasks but the environment task. - (Finalize_Global_Tasks): Call the task termination procedure for the - environment task. The call to Finalize_Global_List is now performed - using the soft links mechanism. - (Task_Wrapper): added dynamic stack analysis. - - * s-tasuti.adb (Abort_Tasks): The code in charge of checking - potentially blocking operations has been moved from - System.Tasking.Stages.Abort_Tasks to this procedure. There can be - direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass - through System.Tasking.Stages.Abort_Tasks, and we do not want to miss - this run-time check. - - * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version - of task termination procedure. - (Init_Tasking_Soft_Links): Install the task-safe version of the soft - link for the task termination procedure. - - * bindusg.adb: (Bindusg): Added documentation for -u option. - - * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis. - (Get_Main_C): Add handling of dynamic stack analysis. - (Gen_Output_File_C): Add external functions for dynamic stack analysis. - - * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination). - (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis - (GNATRTL_NONTASKING_OBJS): Add AltiVec files. - - * opt.ads: Added flags used by dynamic stack measurement. - (Max_Line_Length): Remove (not used anymore) - - * s-io.ads, s-io.adb (Standard_Error): new subprogram - (Standart_Output): new subprogram - (Set_Output): new subprogram - (Put): now uses the value of Current_Out to know if the output has to be - send to stderr or stdout. - - * s-stausa.ads: Complete implementation. - - * switch-b.adb: Added handling of -u switch for dynamic stack analysis. - - * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the - list of Ada 05 files. - (GNAT Library Units): Add AltiVec files. - - * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb, - g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads - g-alvety.ads, g-alvevi.ads: New files providing altivec API. - -2005-12-09 Nicolas Setton - - * adaint.c (__gnat_locate_regular_file): Return immediately if - file_name is empty. - -2005-12-09 Javier Miranda - Hristian Kirtchev - - * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body - to the specification because the frontend generates code that uses this - subprogram. - (Set_Interface_Table): Add missing assertion. - Update documentation describing the run-time structure. - (Displace): New subprogram that displaces the pointer to the object - to reference one of its secondary dispatch tables. - (IW_Membership): Modified to use the new table of interfaces. - (Inherit_TSD): Modified to use the new table of interfaces. - (Register_Interface_Tag): Use the additional formal to fill the - contents of the new table of interfaces. - (Set_Interface_Table): New subprogram that stores in the TSD the - pointer to the table of interfaces. - (Set_Offset_To_Top): Use the additional formal to save copy of - the offset value in the table of interfaces. - Update structure of GNAT Primary and Secondary dispatch table diagram. - Add comment section on GNAT dispatch table prologue. - (Offset_To_Signature): Update the constant value of the Signature field. - (Dispatch_Table): Update comment on hidden fields in the prologue. - (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD, - Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change - the type of formal parameter T to Tag, introduce additional assertions. - (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type - conversion. - (Get_Tagged_Kind, Set_Tagged_Kind): New bodies. - - * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual - in all the calls to Expand_Interface_Thunk. Instead of referencing the - record component containing the tag of the secondary dispatch table we - have to use the Offset_To_Top run-time function to get this information; - otherwise if the pointer to the base of the object has been displace - we get a wrong value if we use the 'position attribute. - - * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in - all the calls to Expand_Interface_Thunk. - (Make_Secondary_DT): Secondary dispatch tables do not have a table of - interfaces; hence the call to Set_Interface_Table was clearly wrong. - (Collect_All_Interfaces): Modify the internal subprogram Collect to - ensure that the interfaces implemented by the ancestors are placed - at the header of the generated list. - (Expand_Interface_Conversion): Handle the case in which the displacement - associated with the interface conversion is not statically known. In - this case we generate a call to the new run-time subprogram Displace. - (Make_DT): Generate and fill the new table of interfaces. - (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for - Get_Tagged_Kind and Set_Tagged_Kind. - (Tagged_Kind): New function that determines the tagged kind of a type - with respect to limitedness and concurrency and returns a reference to - RE_Tagged_Kind. - (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body, - Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the - primary dispatch table for a type. - (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and - secondary dispatch table respectively of a tagged type. - - * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal. - (Expand_Interface_Conversion): New subprogram to indicate if the - displacement of the type conversion is statically known. - (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind. - - * rtsfind.ads (RE_Offset_To_Top): New entity - (RTU_Id): Add Ada_Task_Termination to the list so that it is made - accessible to users. - (Re_Displace): New entity - (RE_Interface_Data): New entity - (RE_Set_Interface_Data): New_Entity - (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind, - Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged, - RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected, - RE_TK_Tagged, RE_TK_Task. - - * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram - Init_Secondary_Tags_Internal to allow its use with interface types and - also to generate the code for the new additional actual required - by Set_Offset_To_Top. - (Build_Init_Statements): In case of components associated with abstract - interface types there is no need to generate a call to its IP. - (Freeze_Record_Type): Generate Select Specific Data tables only for - concurrent types. - (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate - the bodies and specifications of the predefined primitive operations - dealing with dispatching selects and abort, 'Callable, 'Terminated only - for concurrent types. - - * 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 - properly protected objects and attach handler in the case of the - restricted profile. - Move embeded package Select_Expansion_Utilities into a separate external - package. - (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select, - Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel. - (Build_K, Build_S_Assignment): New subprograms, part of the select - expansion utilities. - (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call, - Expand_N_Timed_Entry_Call): Optimize expansion of select statements - where the trigger is a dispatching procedure of a limited tagged type. - -2005-12-09 Olivier Hainque - - * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand - pointer initialization values. Make a SAVE_EXPR instead. Add comments - about the use and expansion of SAVE_EXPRs in the various possible - renaming handling cases. - (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by - abusing DECL_FCONTEXT. - -2005-12-09 Matthew Heaney - - * a-convec.adb (Merge): Added assertions to check whether vector params - are sorted. - - * a-coinve.adb (Merge): Added assertions to check whether vector params - are sorted. - - * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302 - draft. - (Cursor'Read): raises PE - - * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem - to its default value. - - * a-cihama.adb: Manually check whether cursor's key and elem are - non-null - - * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode - (Merge): Assert that target and source lists are in order - (Swap): Declare non-const temporaries, to pass to Splice - - * a-cdlili.ads: (Splice): Changed param name and param mode - - * a-cdlili.adb: (Splice): Changed param name and param mode - (Merge): Assert that target and source lists are in order - (Swap): Declare non-const temporaries, to pass to Splice - - * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null - (Write): declare Stream param as not null - - * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include - an exception message. - -2005-12-09 Thomas Quinot - Robert Dewar - - * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1, - which is the absolute maximum length we can support. - - * frontend.adb: For the processing of configuration pragma files, - remove references to Opt.Max_Line_Length, which is not checked anymore. - - * namet.ads (Name_Buffer): Adjust size to reflect increase on max line - length. - - * scn.adb, scng.adb: - Always check line length against the absolute supported maximum, - Hostparm.Max_Line_Length. - - * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported - value for the maximum line length is Max_Line_Length (not - Column_Number'Last). - Minor error msg update - (Set_Style_Check_Options): New interface returning error msg - Minor code reorganization (processing for 'M' was out of alpha order) - - * switch-c.adb: New interface for Set_Style_Check_Options - - * stylesw.ads (Set_Style_Check_Options): New interface returning error - msg. - -2005-12-09 Javier Miranda - - * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records - with IP subprogram were only supported if there were limited types. - - * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized - records with IP subprogram were only supported if there were limited - types. - -2005-12-09 Olivier Hainque - Eric Botcazou - - * trans.c (tree_transform, emit_check): Adjust calls to - build_call_raise, passing the now expected GNAT_NODE argument. - - * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better - source line information than what the current global locus indicates - when appropriate. - - * utils2.c (build_simple_component_ref): Return 0 if the offset of the - field has overflowed. - (build_call_raise): Add a GNAT_NODE argument to convey better source - line information than what the current global locus indicates when - appropriate. - (build_component_ref): Adjust call to build_call_raise. - -2005-12-09 Pascal Obry - - * g-diopit.adb (Find): Fix test to exit the iterator and make sure that - the iterator is quitting iteration on parent directory. - -2005-12-09 Javier Miranda - - * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types - and the assignment to a class-wide object, before the assignment we - generate a run-time check to ensure that the tag of the Target is - covered by the tag of the source. - -2005-12-09 Robert Dewar - - * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean - parameter in call to Image_Wide_Character. - - * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean - parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency. - (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with - annoying FFFE/FFFF inconsistency. - -2005-12-09 Robert Dewar - Javier Miranda - Ed Schonberg - - * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case - of type conversion. - (Find_Interface): New subprogram that given a tagged type and one of its - component associated with the secondary table of an abstract interface - type, return the entity associated with such abstract interface type. - (Make_Subtype_From_Expr): If type has unknown discriminants, always use - base type to create anonymous subtype, because entity may be a locally - declared subtype or generic actual. - (Find_Interface): New subprogram that given a tagged type and one of its - component associated with the secondary table of an abstract interface - type, return the entity associated with such abstract interface type. - - * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the - conversion cannot be handled at compile time. In this case we pass this - information to the expander to generate the appropriate code. - -2005-12-09 Robert Dewar - Ed Schonberg - Gary Dismukes - Javier Miranda - Hristian Kirtchev - - * einfo.adb (Itype_Printed): New flag - (Is_Limited_Type): Derived types do not inherit limitedness from - interface progenitors. - (Is_Return_By_Reference_Type): Predicate does not apply to limited - interfaces. - - * einfo.ads (Itype_Printed): New flag - Move Is_Wrapper_Package to proper section - Add missing Inline for Is_Volatile - - * output.ads, output.adb (Write_Erase_Char): New procedure - (Save/Restore_Output_Buffer): New procedures - (Save/Restore_Output_Buffer): New procedures - - * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes - Add missing support for anonymous access type - (Write_Id): Insert calls to Write_Itype - (Write_Itype): New procedure to output itypes - - * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle - use of "limited" in declaration. - - * sinfo.ads, sinfo.adb: - Formal derived types can carry an explicit "limited" indication. - - * sem_ch3.adb: Add with and use of Targparm. - (Create_Component): If Frontend_Layout_On_Target is True and the - copied component does not have a known static Esize, then reset - the size and positional fields of the new component. - (Analyze_Component_Declaration): A limited component is - legal within a protected type that implements an interface. - (Collect_Interfaces): Do not add to the list the interfaces that - are implemented by the ancestors. - (Derived_Type_Declaration): If the parent of the full-view is an - interface perform a transformation of the tree to ensure that it has - the same parent than the partial-view. This simplifies the job of the - expander in order to generate the correct object layout, and it is - needed because the list of interfaces of the full-view can be given in - any order. - (Process_Full_View): The parent of the full-view does not need to be - a descendant of the parent of the partial view if both parents are - interfaces. - (Analyze_Private_Extension_Declaration): If declaration has an explicit - "limited" the parent must be a limited type. - (Build_Derived_Record_Type): A derived type that is explicitly limited - must have limited ancestor and progenitors. - (Build_Derived_Type): Ditto. - (Process_Full_View): Verify that explicit uses of "limited" in partial - and full declarations are consistent. - (Find_Ancestor_Interface): Remove function. - (Collect_Implemented_Interfaces): New procedure used to gather all - implemented interfaces by a type. - (Contain_Interface): New function used to check whether an interface is - present in a list. - (Find_Hidden_Interface): New function used to determine whether two - lists of interfaces constitute a set equality. If not, the first - differing interface is returned. - (Process_Full_View): Improve the check for the "no hidden interface" - rule as defined by AI-396. - -2005-12-09 Robert Dewar - - * freeze.adb (Freeze_Record_Type): Only test for useless pack on record - types, not on record subtypes. - (Freeze_Entity): Code cleanup. Add barrier to the loop - that generates the references for primitive operations. This allows to - remove an unnecessary exception handler. - Code reformatting and comment clean ups. - -2005-12-09 Vincent Celier - - * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U - If GNAT CHECK is called with a project file, but with no - source on the command line, call gnatcheck with all the compilable - sources of the project. - Take into account the new command Check, for gnatcheck. Treat as for - other ASIS tools: take into account project, specific package Check and - Compiler switches. - For ASIS tools, add the switches in package Compiler for - the invocation of the compiler. - - * prj-attr.adb: Add package Check and its attributes - - * vms_conv.ads (Command_Type): New command Check, for gnatcheck - - * vms_conv.adb (Initialize): Change Params of command Check to - unlimited files. - Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target. - Add data for new command Check - - * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT - ELIM. - Add qualifiers for Check command options - (Command_Type): New command Check - -2005-12-09 Thomas Quinot - - * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a - command line switch overruns the output buffer. - -2005-12-09 Robert Dewar - - * sem_prag.adb: Processing for new pragma Complete_Representation - (Analyze_Pragma, case Debug): Implement two argument form. - - * par-prag.adb: Entry for new pragma Complete_Representation - (Prag, case Debug): Recognize two argument form of pragma Debug - New interface for Set_Style_Check_Options. - - * sem_ch13.adb: Implement new pragma Complete_Representation. - - * snames.adb, snames.ads, snames.h: Entry for new pragma - Complete_Representation. - -2005-12-09 Gary Dismukes - - * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for - available user-specified stream attributes on limited parameters to - also test the type directly rather than only its underlying type (for - Ada 95) and, in the case of Ada 2005, to check that the user-specified - attributes are visible at the point of the subprogram declaration. - For Ada 2005, the error message is modified to indicate that the - type's stream attributes must be visible (again, only for -gnat05). - -2005-12-09 Ed Schonberg - - * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of - anonymous access types. - - * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for - matching of anonymous access types and anonymous access to subprogram - types. 'R'M 4.9.1 (2/2). - -2005-12-09 Ed Schonberg - - * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference - rule prematurely when operands are universal, remaining ambiguities - will be removed during resolution. - Code cleanup. - - * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations - that are Ada 2005 functions. - (Has_Abstract_Interpretation): Subsidiary to - Remove_Conversions, to remove ambiguities caused by abstract operations - on numeric types when operands are universal. - -2005-12-09 Robert Dewar - - * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization - for case where spec is categorized. - -2005-12-09 Javier Miranda - - * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent - types use the corresponding record type. This was not needed before - the implementation of Ada 2005 synchronized types because - concurrent types were never tagged types in Ada 95. - -2005-12-09 Ed Schonberg - - * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the - first subtype of the type of the expression to verify that it is a - legal Time type. - -2005-12-09 Robert Dewar - - * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides - decoded names. - -2005-12-09 Quentin Ochem - Robert Dewar - Ed Falis - Florian Villoing - Thomas Quinot - Arnaud Charlet - - * gnat_ugn.texi: Created section "Stack Related Tools" - Moved "Stack Overflow Checking" subsection from "Switches for gcc" to - "Stack Related Tools" - Added subsection "Static Stack Usage Analysis" - Added subsection "Dynamic Stack Usage Analysis" - Include documentation of itypes in sprint listing (-gnatG) - Documented gnatbind -D switch (default sec stack size for fixed sec - stacks). - Added Interrupt_State and Persistent_BSS to list of configuration - pragmas. - Add missing doc for maximum value of nnn in -gnatyMnnn - - * gnat_rm.texi: Document the AltiVec binding. - Add documentation for pragma Complete_Representation - Shortened an overly long line (> 79 chars) - Clarify documentation of unchecked conversion in implementation - defined cases. - Document two argument form of pragma Debug - - * types.ads (Column_Number): Update documentation. - - * exp_ch7.ads (Make_Adjust_Call): Document the special processing for - library level Finalize_Storage_Only objects (these are not attached to - any finalization list). - - * system-mingw.ads: (Underlying_Priorities): Update comment. - -2005-12-09 Robert Dewar - - * 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, - 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, - lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb, - interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads, - s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor - reformatting. - -2005-12-09 Robert Dewar - - * s-vaflop-vms-alpha.adb: (Ne_F): New function - (Ne_G): New function - - * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code - for tag assignment. - (Rewrite_Comparison): Handle case where operation is not a comparison - and ignore, and also handle type conversion case. - -2005-12-09 Thomas Quinot - - * exp_aggr.ads: Fix typo in comment. - ???-mark Convert_Aggr_In_Assignment as needing documentation. - -2005-12-09 Gary Dismukes - - * layout.adb: Replace various uses of byte by storage unit throughout. - (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a - static size, convert to storage units before returning, to conform to - spec. - -2005-12-09 Matthew Gingell - - * g-exctra.ads: Fix typo in comment. - -2005-12-09 Richard Kenner - - * utils.c: Minor reformatting. - -2005-12-09 Robert Dewar - - * g-soccon.ads: - Further comment fixes to make the status of the default file clear - - * s-bitops.adb: Clarify comment for Bits_Array - -2005-12-07 Rafael Ávila de Espíndola - - * Make-lang.in (ada.install-normal): Remove. - -2005-12-07 Rafael Ávila de Espíndola - - * Make-lang.in: Remove all dependencies on s-gtype. - -2005-12-05 Richard Guenther - - * utils.c (convert): Use fold_convert where appropriate. - -2005-12-05 Paolo Bonzini - - * Makefile.in (gnatlib): Fix regex, using \. instead of . when - a period is meant. - -2005-12-02 Richard Guenther - - * trans.c (gnat_gimplify_expr): Use buildN instead of build. - -2005-12-01 Roger Sayle - - * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST - nodes. - -2005-11-23 Laurent Guerby - - * mlib-prj.adb (Build_Library): Initialize Delete. - -2005-11-21 Joel Sherrill - - * socket.c: Add extern int h_errno for rtems since networking header - files are not available at this point in a tool bootstrap. Newlib - only has basic C library header files. - -2005-11-19 Richard Guenther - Roger Sayle - - PR ada/23717 - * misc.c (internal_error_function): Don't use vsprintf to format - the error message text, instead use pp_format_text and the new - pretty printer APIs. This allows handling of %qs, %w, etc. - -2005-11-18 Laurent Guerby - - PR ada/24857 - * Makefile.in: Use s-auxdec-empty for RTEMS. - -2005-11-17 Richard Kenner - - PR ada/22333 - * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make - a temporary if taking the address of something that is neither - reference, declaration, or constant, since the gimplifier - can't handle that case. - -2005-11-17 Laurent Guerby - - PR ada/24857 - * s-auxdec-empty.ads, s-auxdec-empty.adb: New files. - -2005-11-16 Richard Guenther - - * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux. - -2005-11-16 Joel Sherrill - - PR ada/24855 - * raise-gcc.c: Add missing stdarg.h include. - -2005-11-16 Richard Guenther - - * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency. - (ada/misc.o): Likewise. - -2005-11-14 Thomas Quinot - - * g-soccon.ads: Minor reformatting. Update comments. - - * gsocket.h: Include in the VxWorks case, in order to - gain visibility on the declaration of struct timeval. - - * g-soccon-freebsd.ads, - g-soccon-darwin.ads, - g-soccon-tru64.ads, - g-soccon-aix.ads, - g-soccon-irix.ads, - g-soccon-hpux.ads, - g-soccon-solaris.ads, - g-soccon-vms.ads, - g-soccon-mingw.ads, - g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants. - - * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads, - g-soccon-solaris-64.ads, g-soccon-linux-64.ads, - g-soccon-linux-x86.ads: New files. - - * g-socthi-mingw.adb: - (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants - - * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads - (time_t, suseconds_t): New types constructed to match the tv_sec - and tv_usec fields of C struct timeval. - (Timeval): Construct structure in terms of the new types. - (Host_Errno): New function (imported from socket.c), returns last hosts - database error. - - * g-socthi-vxworks.adb: Add error handling circuitry. - - * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for - components of struct timeval. - (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry. - (Check_Selector): In error conditions, clear internal socket sets to - avoid a memory leak. - (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If, - Send_Timeout, Receive_Timeout. - - * g-socthi.ads (time_t, suseconds_t): New types constructed to match - the tv_sec and tv_usec fields of C struct timeval. - (Timeval): Construct structure in terms of the new types. - (Host_Errno): New function (imported from socket.c), returns last hosts - database error. - - * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the - hosts database last error code. - - * gen-soccon.c: Complete value expansion should not be performed on - TARGET, as it has the form of a math expression, and some components - may be platform-defined macros. - For VxWorks, generate the OK and ERROR values. - New constants giving the sizes of the components of C struct timeval. - -2005-11-14 Robert Dewar - Ed Schonberg - - PR ada/18434 - * types.ads: Include All_Checks in Suppress_Array - - * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as - not(a=b), since we no longer do this rewriting, and hence it is not - needed. - (Elaboration_Checks_Suppressed): Add special casing to - deal with different cases of static and dynamic elaboration checks (all - checks does not count in the first case, but does in the second). - (Expr_Known_Valid): Do not assume that the result of any arbitrary - function call is valid, since this is not the case. - (Ensure_Valid): Do not apply validity check to a real literal - in a universal or fixed context - - * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for - elementary types using the operator in standard. It is cleaner not to - modify the programmers intent, especially in the case of floating-point. - (Rewrite_Comparison): Fix handling of /= (this was always wrong, but - it did not matter because we always rewrote a/=b to not(a=b). - (Expand_Allocator_Expression): For an allocator expression whose nominal - subtype is an unconstrained packed type, convert the expression to its - actual constrained subtype. - Implement warning for <= or >= where < or > not possible - Fix to Vax_Float tests (too early in many routines, causing premature - Vax_Float expansions. - - * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma - to be used with packages and generic packages as well as with - subprograms. - (Suppress): Set All_Checks, but not Elaboration_Check, for case - of pragma Suppress (All_Checks) - (Analyze_Pragma, case Warnings): Implement first argument allowed to be - a string literal for precise control over warnings. - Avoid raise of pragma in case of unrecognized pragma and just return - instead. - - * sem_prag.ads: Minor reformatting - - * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;" - with call to new procedure Bad_Switch. Call Scan_Pos with new parameter - Switch. Do not handle any exception. - Include -gnatwx as part of -gnatg (warn on redundant parens) - Allow optional = after -gnatm - (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no - longer sets Elaboration_Checks. - Code to set warning mode moved to Sem_Warn - so that it can be shared by pragma processing. - - * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if - statement. - - * s-taprop-solaris.adb: - Change some <= to =, to avoid new warning - - * a-exexda.adb, prj-proc.adb: - Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0) - Fix obvious typo (Total_Errors_Detected <= 0 should be = 0) - -2005-11-14 Robert Dewar - - * exp_vfpt.adb: Handle /= case - (Expand_Vax_Conversion): Properly recognize Conversion_OK flag - so that we do not get duplicate scaling for fixed point conversions. - - * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function - -2005-11-14 Matthew Gingell - - * system-lynxos-ppc.ads, system-lynxos-x86.ads: - Increase default priority on Lynx from 15 to 17, and meet the Ada - requirement that Default_Priority be ((Priority'First + - Priority'Last) / 2) by increasing the range of Interrupt_Priority. - -2005-11-14 Vincent Celier - - * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, - mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb, - mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, - mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, - mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads, - mlib-tgt-lynxos.adb (DLL_Prefix): New function - -2005-11-14 Doug Rupp - - * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in - private part. - -2005-11-14 Arnaud Charlet - - * s-traces-default.adb, s-trafor-default.ads, - s-tratas-default.adb: Fix compilation errors. - -2005-11-14 Jose Ruiz - - * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before - raising the exception so the memory used is freed. - -2005-11-14 Arnaud Charlet - - * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant. - (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used. - (convert_address): Update comments and list of platforms using this. - - * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed, - no longer used. - -2005-11-14 Pascal Obry - Vincent Celier - - * gnatdll.adb (Parse_Command_Line): Remove redundant use of - GNAT.Command_Line. - - * memroot.adb: Remove redundant with/use clause on - System.Storage_Elements. - -2005-11-14 Arnaud Charlet - - * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used. - (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp - related code to a-exexpr.adb - (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. - - * a-exexpr-gcc.adb, raise-gcc.c: New file. - - * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code - from a-except.adb. - Move GCC EH related code to a-exexpr-gcc.adb - - * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and - 64-bit Solaris - Split the Linux version of g-soccon into separate variants for 32 and 64 - bit platforms. - (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET) - vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS). - install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use - of host variable $(RANLIB_FLAGS). - (alpha64-dec-*vms*): Fix translations for 64 bit compiler. - Code clean up: remove unused/obsolete targets. - (EH_MECHANISM): New variable introduced to differenciate between the - two EH mechanisms statically. - (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually. - (LIBGNAT_OBJS): Add raise-gcc.o - (LIBGNAT_TARGET_PAIRS for ppc-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 ppc-vxworks): Remove the use of - i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs. - - * raise.c: Move all GCC EH-related routines to raise-gcc.c - -2005-11-14 Jose Ruiz - - * s-tassta.adb (Create_Task): Move the code in charge of resetting the - deferral level, when abort is not allowed, to a later stage (the - Task_Wrapper). - (Task_Wrapper): If Abort is not allowed, reset the deferral level since - it will not get changed by the generated code. It was previously done - in Create_Task. - -2005-11-14 Thomas Quinot - Olivier Hainque - Eric Botcazou - - * decl.c: - Factor common code to build a storage type for an unconstrained object - from a fat or thin pointer type and a constrained object type. - (annotate_value): Handle BIT_AND_EXPR. - (annotate_rep): Don't restrict the back annotation of inherited - components to the type_annotate_only case. - (gnat_to_gnu_entity) : Do not invoke create_type_decl if - we are not defining the type. - : Likewise. - (gnat_to_gnu_entity) : Adjust comments and structure - to get advantage of the new maybe_stabilize_reference interface, to - ensure that what we reference is indeed stabilized instead of relying - on assumptions on what the stabilizer does. - (gnat_to_gnu_entity) : If the entity is an incomplete - type imported through a limited_with clause, use its non-limited view. - (Has_Stdcall_Convention): New macro, to centralize the Windows vs others - differentiation. - (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix - of #if sections + explicit comparisons of convention identifiers. - (gnat_to_gnu_entity) : Decrement force_global if necessary - before early-returning for certain types when code generation is - disabled. - (gnat_to_gnu_entity) : Adjust comment attached to the - nullification of gnu_expr we do for objects with address clause and - that we are not defining. - (elaborate_expression_1): Do not create constants when creating - variables needed by the debug info: the dwarf2 writer considers that - CONST_DECLs is used only to represent enumeration constants, and emits - nothing for them. - (gnat_to_gnu_entity) : When turning a non-definition of an - object with an address clause into an indirect reference, drop the - initializing expression. - Include "expr.h". - (STACK_CHECK_BUILTIN): Delete. - (STACK_CHECK_PROBE_INTERVAL): Likewise. - (STACK_CHECK_MAX_FRAME_SIZE): Likewise. - (STACK_CHECK_MAX_VAR_SIZE): Likewise. - (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree - corresponding to the renamed object as ignored for debugging purposes. - - * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size & - related): For a prefix that is a dereference of a fat or thin pointer, - if there is an actual subtype provided by the front-end, use that - subtype to build an actual type with bounds template. - (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype - is provided by the front-end, use that subtype to compute the size of - the deallocated object. - (gnat_to_gnu): When adding a statement into an elaboration procedure, - check for a potential violation of a No_Elaboration_Code restriction. - (maybe_stabilize_reference): New function, like gnat_stabilize_reference - with extra arguments to control whether to recurse through non-values - and to let the caller know if the stabilization has succeeded. - (gnat_stabilize_reference): Now a simple wrapper around - maybe_stabilize, for common uses without restriction on lvalues and - without need to check for the success indication. - (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to - pass false instead of 0 as the FORCE argument which is a bool. - (Identifier_to_gnu): Remove checks ensuring that an renamed object - attached to a renaming pointer has been properly stabilized, as no such - object is attached otherwise. - (call_to_gnu): Invoke create_var_decl to create the temporary when the - function uses the "target pointer" return mechanism. - Reinstate conversion of the actual to the type of the formal - parameter before any other specific treatment based on the passing - mechanism. This turns out to be necessary in order for PLACEHOLDER - substitution to work properly when the latter type is unconstrained. - - * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a - common pattern. - (maybe_stabilize_reference): New function, like gnat_stabilize_reference - with extra arguments to control whether to recurse through non-values - and to let the caller know if the stabilization has succeeded. - - * utils2.c (gnat_build_constructor): Only sort the fields for possible - static output of record constructor if all the components are constant. - (gnat_build_constructor): For a record type, sort the list of field - initializers in increasing bit position order. - Factor common code to build a storage type for an unconstrained object - from a fat or thin pointer type and a constrained object type. - (build_unary_op) : Always recurse down conversions between - types variants, and process special cases of VIEW_CONVERT expressions - as their NOP_EXPR counterpart to ensure we get to the - CORRESPONDING_VARs associated with CONST_DECls. - (build_binary_op) : Do not strip VIEW_CONVERT_EXPRs - on the right-hand side. - - * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring - a common pattern. - (convert) : Return the inner operand directly if we - are converting back to its original type. - (convert) : Fallthrough regular conversion code instead of - extracting the object if converting to a type variant. - (create_var_decl): When a variable has an initializer requiring code - generation and we are at the top level, check for a potential violation - of a No_Elaboration_Code restriction. - (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN - SIZE and SIZE_UNIT which we need for later back-annotations. - * utils.c: (convert) : Remove obsolete code. - : Do not lift the conversion if the target type - is an unchecked union. - (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions. - (convert) : When the types have the same - main variant, just replace the VIEW_CONVERT_EXPR. - : Revert 2005-03-02 change. - - * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR. - - * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions. - -2005-11-14 Matthew Heaney - - * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads, - a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb, - a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads, - a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb, - a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, - a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb: - Compiles against the spec for ordered maps described in sections - A.18.6 of the most recent (August 2005) AI-302 draft. - -2005-11-14 Olivier Hainque - - * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations - to ensure bias adjustments take place when need be and to prevent - occurrences of intermediate overflows. - -2005-11-14 Matthew Gingell - Olivier Hainque - - * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on - ia64 HP-UX. - - * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven - tracebacks on ia64 HP-UX and provide explanatory comment. - Enable backtraces on ia64 GNU/Linux. - (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real - base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly. - -2005-11-14 Hristian Kirtchev - Javier Miranda - - * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads, - exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads, - exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads, - einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces. - - * a-tags.ads, a-tags.adb: Major rewrite and additions to implement - properly new Ada 2005 interfaces (AI-345) and add run-time checks (via - assertions). - - * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New - subprogram that generates the external name associated with a - secondary dispatch table. - (Get_Secondary_DT_External_Name): New subprogram that generates the - external name associated with a secondary dispatch table. - -2005-11-14 Emmanuel Briot - - * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity - line in the ALI file to include both an instantiation reference, and a - returned value. - -2005-11-14 Vincent Celier - - * clean.adb (Check_Project): Look for Ada code in extending project, - even if Ada is not specified as a language. - Use new function DLL_Prefix for DLL_Name - (Clean_Interface_Copy_Directory): New procedure - (Clean_Library_Directory): New procedure - (Clean_Directory): Remove procedure, no longer used - (Clean_Project): Do not delete any file in an externally built project - - * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object - directory of an extending project, even when there are no Ada source - present. - (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path - (Set_Ada_Paths.Add.Recursive_Add): Ditto - - * mlib-prj.adb (Check_Library): For all library projects, get the - library file timestamp. - (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir - (Build_Library): Use new function DLL_Prefix for the DLL_Name - (Clean): Remove procedure, no longer used - (Ultimate_Extension_Of): New function - (Build_Library): When cleaning the library directory, only remove an - existing library file and any ALI file of a source of the project. - When cleaning the interface copy directory, remove any source that - could be a source of the project. - - * prj.ads, prj.adb (Project_Empty): Add values of new components - Library_TS and All_Imported_Projects. - (Project_Empty): Add values for new components of Project_Data: - Library_ALI_Dir and Display_Library_ALI_Dir - - * prj-attr.adb: New project level attribute name Library_ALI_Dir - - * prj-nmsc.adb (Check_Library_Attributes): Take into account new - attribute Library_ALI_Dir. - (Check_Library_Attributes): The library directory cannot be the same as - any source directory of the project tree. - (Check_Stand_Alone_Library): The interface copy directory cannot be - the same as any source directory of the project tree. - - * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete - all temporary files. - -2005-11-14 Robert Dewar - Ed Schonberg - - * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package - (Check_Elab_Call): A call within a protected body is never an - elaboration call, and does not require checking. - (Same_Elaboration_Scope): Take into account protected types for both - entities. - (Activate_Elaborate_All_Desirable): New procedure - - * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate - desirable - - * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable - (Elab_Error_Msg): Use -da to include internal unit links, not -de. - - * lib-writ.ads, lib-writ.adb: - Implement new AD/ED for Elaborate_All/Elaborate desirable - Use new Elaborate_All_Desirable flag in N_With_Clause node - - * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for - N_Free_Statement nodes. - Define new class N_Subprogram_Instantiation - Add Elaborate_Desirable flag to N_With_Clause node - Add N_Delay_Statement (covering two kinds of delay) - - * debug.adb: Introduce d.f flag for compiler - Add -da switch for binder - -2005-11-14 Ed Schonberg - Cyrille Comar - - * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity - for task component, in the case of a limited aggregate. The enclosed - object declaration will create it earlier. Otherwise, in the case of a - nested aggregate, the object may appear in the wrong scope. - (Convert_Aggr_In_Object_Decl): Create a transient scope when needed. - (Gen_Assign): If the component being assigned is an array type and the - expression is itself an aggregate, wrap the assignment in a block to - force finalization actions on the temporary created for each row of the - enclosing object. - (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl - structures are initialized after all discriminants are set so that - they can be accessed even when their offset is dynamic. - -2005-11-14 Robert Dewar - Hristian Kirtchev - - * sem_attr.adb: Implement Machine_Rounding attribute - (Analyze_Access_Attribute): The access attribute may appear within an - aggregate that has been expanded into a loop. - (Check_Task_Prefix): Add semantic check for attribute 'Callable and - 'Terminated whenever the prefix is of a task interface class-wide type. - (Analyze_Attribute): Add semantic check for attribute 'Identity whenever - the prefix is of a task interface class-wide type. - - * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant - to avoid warnings. - - * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function - Remove pragma Inline for [Unaligned_]Valid. - Add comments that Valid routines do not work for Vax_Float - - * exp_attr.adb: Implement Machine_Rounding attribute - - * snames.h: Add entry for Machine_Rounding attribute - -2005-11-14 Javier Miranda - Robert Dewar - Hristian Kirtchev - - * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size - and related): For a prefix that is an explicit dereference of an - access to unconstrained packed array type, annotate the dereference - with an actual subtype so GIGI can make a correct size computation. - (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and - 'Unrestricted_Access, if the designated type is an interface we - add a type conversion to force the displacement of the pointer - to the secondary dispatch table. - Use Universal_Real instead of Long_Long_Float when we need a high - precision float type for the generated code (prevents gratuitous - Vax_Float stuff when pragma Float_Representation (Vax_Float) used) - (Expand_N_Attribute_Reference): Add support for attribute 'Callable and - 'Terminated for task interface class-wide objects. Generate a call to - the predefined dispatching routine used to retrieve the _task_id from - a task corresponding record. - (Expand_Fpt_Attribute): Major change to properly handle Vax_Float - - * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package - (Check_Dispatching_Operation): Protect the frontend againts - previously detected errors. - - * Makefile.rtl: Add new instantiations of system.fat_gen - - * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads: - Change name of instantiated package for better consistency - with newly added system.fat_gen instantiations. - - * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads, - s-fvagfl.ads: New files. - -2005-11-14 Cyrille Comar - Thomas Quinot - - * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an - assignment of a value of a tagged type that has been rewritten to a - block statement, it is known by construction that no checks are - necessary for the statements within the block: analyze it with checks - suppressed. - (Expand_N_If_Statement): When killing a dead then-branch in an - if-statement that has elsif_parts, recompute the Current_Value node - for any entity whose value is known from the condition of the first - elsif_part. - (Expand_N_Return_Statement): When returning a mutable record, convert - the return value into its actual subtype in order to help the backend - to return the actual size instead of the maximum. This is another - aftermath of not returning mutable records on the sec-stack anymore. - - * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to - handling of error msg for suspicious reverse range iteration. - (Check_Possible_Current_Value_Condition): Move declaration from body to - spec, to allow this subprogram to be called from exp_ch5. - -2005-11-14 Thomas Quinot - - * exp_dist.adb (Append_Array_Traversal): Modify constrained case to - generate a set of nested array aggregates instead of a single flat - aggregate for multi-dimensional arrays. - -2005-11-14 Pascal Obry - - * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned - by spawnve is a process handle, no need to convert. Add a parameter - close to control wether the process handle must be closed. - (__gnat_waitpid): Fix implementation, the pid returned by spawnve is - a process handle, not need to convert. - (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec. - - * g-expect.adb: (Kill): Document the new close parameter. - (Close): Do not release the process handle in the kill there as - waitpid() is using it. - (Send_Signal): Release the process handle. - -2005-11-14 Robert Dewar - - * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we - need a high precision float type for the generated code (prevents - gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float) - used). - - * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we - need a high precision float type for the generated code (prevents - gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float) - used). - (Expand_Width_Attribute): In configurable run-time, the attribute is not - allowed on non-static enumeration subtypes. Force a load error to emit - the correct diagnostic. - -2005-11-14 Thomas Quinot - Robert Dewar - Ed Schonberg - - * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual - subtype to compute the size of the designated object at run-time, - create such a subtype and store it in the Actual_Designated_Subtype - attribute of the N_Free_Statement. - Generate itype for classwide designated object in both cases of - user-specified storage pool: specific and class-wide, not only in the - specific case. - Raise CE when trying to set a not null access type object to null. - (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with - an explicit loop, because freeze nodes make its position variable. - - * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not - null object. - -2005-11-14 Javier Miranda - - * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function, - Build_Stream_Procedure): Add the null-excluding attribute to the first - formal. - This has no semantic meaning under Ada95 mode but it is a - requirement under Ada05 mode. - - * par-ch3.adb (P_Access_Definition): Addition of warning message if - the null exclusion is used under Ada95 mode - (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95. - (P_Access_Definition): Remove assertion that forbids the use of - the null-exclusion feature in Ada95. - -2005-11-14 Robert Dewar - - * impunit.adb: Exclude container helper units not intended for use by - users. - -2005-11-14 Ed Schonberg - - * freeze.adb (Freeze_Entity): For an access formal that is an access - to subprogram, freeze the anonymous subprogram type at the same time, - to prevent later freezing in the wrong scope, such as the enclosing - subprogram body. - (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_ - subprogram whenever available. - -2005-11-14 Arnaud Charlet - - PR ada/23732 - * gnatvsn.ads (Library_Version): Bump to 4.1 - -2005-11-14 Robert Dewar - - * g-debpoo.adb (Set_Valid): Use Integer_Address instead of - Storage_Offset to avoid wrap around causing invalid results. - -2005-11-14 Pascal Obry - - * gnatbind.adb (Is_Cross_Compiler): New function returning True for - cross-compiler. - (Scan_Bind_Arg): Fail with an error message if -M option is used - on a native compiler. - -2005-11-14 Robert Dewar - Vincent Celier - - * gprep.adb: Implement -C switch to scan comments - - * scng.adb: Scan comment symbol separately if Replace_In_Comments set - - * scans.ads: Comment updates (including new use of Tok_Comment in - preprocessing) - - * opt.ads: Add documentation for flags that are used by gprmake, - currently and in the next version of gprmake. - (Verbosity_Level): New variable - Add Replace_In_Comments switch - - * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm - and -vm. - Add /REPLACE_IN_COMMENTS for gnatprep -C switch - -2005-11-14 Arnaud Charlet - - * g-regpat.adb (Fail): raise Expression_Error including the diagnostic - message, friendlier. - -2005-11-14 Robert Dewar - - * g-spitbo.adb: (Hash): Rotate by 3 instead of 1 - -2005-11-14 Doug Rupp - - * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined. - -2005-11-14 Robert Dewar - - * interfac.ads: Change declarations of IEEE float types so that we no - longer need a separate version of this package for VMS. - -2005-11-14 Ed Schonberg - - * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the - internal entity created for the declaration of a child subprogram body - with no spec as coming from source, to generate proper cross-reference - information. - -2005-11-14 Vincent Celier - - * make.adb (Compile_Sources): Change verbose message to minimum - verbosity level High for "is in an Ada library", "is a read-only - library" and "is an internal library", - (Create_Binder_Mapping_File): Path name of ALI file for library project - must include the library directory, not the object directory. - (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called - for new switches -vl, -vm and -vh. - (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity - (Check): Use minimum verbosity Medium for some Verbose_Msg calls - (Compile_Sources): Do not attempt to compile if an ALI file is missing - in a project that is externally built. - (Compute_All_Imported_Projects): New procedure - (Gnatmake): Check if importing libraries should be regenerated because - at least an imported library is more recent. - (Initialize): For each project compute the list of the projects it - imports directly or indirectly. - (Add_Library_Search_Dir): New procedure, used in place of - Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are - put in the search paths. - (Add_Source_Search_Dir): New procedure, used in place of - Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are - put in the search paths. - (Mark_Directory): Resolve the absolute path the directory before marking - it. - - * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with - call to new procedure Bad_Switch. Call Scan_Pos with new parameter - Switch. Do not handle any exception. - (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh - so that the switch is recognized as valid. - (Scan_Make_Switches): Implement new switches -vl, -vm and -vh. - -2005-11-14 GNAT Script - - * Make-lang.in: Makefile automatically updated - -2005-11-14 Pascal Obry - - * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is - used. - (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used. - In both cases the last argument was dropped. - -2005-11-14 Eric Botcazou - - * namet.h: (Column_Numbe): New type. - (Get_Column_Number): Define to sinput__get_column_number. - (Instantiation): Define to sinput__instantiation. - (Get_Column_Number): Declare. - (Instantiation): Likewise. - -2005-11-14 Robert Dewar - - * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit - syntax, which could cause compiler hangs. - -2005-11-14 Vincent Celier - - * prj-ext.adb: Take into account new environment variable - GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH - are defined. - (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH, - normalize its path name, making it absolute and resolving symbolic - links, and replace the original if resolved path is different. - -2005-11-14 Vincent Celier - - * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project - into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS. - -2005-11-14 Emmanuel Briot - - * prj-pp.adb (Print): Do not output the with statement if the - associated name is empty, which happens for virtual extending projects. - (Print): Preserve the "extends all" attribute when printing the project. - - * prj-tree.ads (String_Value_Of): Add comment about returned value for - a virtual extending project. - -2005-11-14 Ed Schonberg - - * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the - rhs of an assignment even if the type is unconstrained, when the - context is non-expanding. - In an inlined body, if the context type is private, - resolve with its full view, which must be a composite type. - -2005-11-14 Robert Dewar - Ed Schonberg - - * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package - Do not give obsolescent warning on with of subprogram (since we - diagnose calls) - (Analyze_With_Clause): Add test for obsolescent package - (Install_Context_Clauses): If the unit is the body of a child unit, do - not install twice the private declarations of the parents, to prevent - circular lists of Use_Clauses in a parent. - (Implicit_With_On_Parent): Do add duplicate with_clause on parent when - compiling body of child unit. - Use new class N_Subprogram_Instantiation - (Expand_With_Clause): If this is a private with_clause for a child unit, - appearing in the context of a package declaration, then the implicit - with_clauses generated for parent units are private as well. - (License_Check): Do not generate message if with'ed unit is internal - -2005-11-14 Gary Dismukes - Ed Schonberg - Thomas Quinot - - * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose - names are internal, because they will not have a corresponding partner - in the actual package. - (Analyze_Formal_Package): Move the setting of the formal package spec's - Generic_Parent field so that it occurs prior to analyzing the package, - to allow proper operation of Install_Parent_Private_Declarations. - (Analyze_Package_Instantiation): Set the instantiated package entity's - Package_Instantiation field. - (Get_Package_Instantiation_Node): Move declaration to package spec. - Retrieve the N_Package_Instantiation node when the Package_Instantiation - field is present. - (Check_Generic_Child_Unit): Within an inlined call, the only possible - instantiation is Unchecked_Conversion, for which no parents are needed. - (Inline_Instance_Body): Deinstall and record the use_clauses for all - parent scopes of a scope being removed prior to inlining an instance - body. - (Analyze_Package_Instantiation): Do not perform front-end inlining when - the current context is itself an instance within a non-instance child - unit, to prevent scope stack errors. - (Save_References): If the node is an aggregate that is an actual in a - call, rewrite as a qualified expression to preserve some type - information, to resolve possible ambiguities in the instance. - (Instance_Parent_Unit): New global variable to record the ultimate - parent unit associated with a generic child unit instance (associated - with the existing Parent_Unit_Visible flag). - (type Instance_Env): New component Instance_Parent_Unit for stacking - parents recorded in the global Instance_Parent_Unit. - (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env - stack. - (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when - it's not a top-level unit, and only do this if Instance_Parent_Unit is - not already set. Replace test of Is_Child_Unit with test of parent's - scope against package Standard. Add comments and a ??? comment. - (Remove_Parent): Revise condition for resetting Is_Immediately_Visible - on a child instance parent to test that the parent equals - Instance_Parent rather than simply checking that the unit is not a - child unit. - (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env. - (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of - a formal interface are ancestors of the corresponding actual. - (Validate_Formal_Interface_Type): Additional legality checks. - (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal - interface types with ancestors. - (Analyze_Formal_Package): If formal is a renaming, use renamed entity - to diagnose attempts to use generic within its own declaration. - -2005-11-14 Ed Schonberg - Javier Miranda - - * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original - discriminant. - (Build_Private_Derived_Type): The entity of the created full view of the - derived type does not come from source. If after installing the private - declarations of the parent scope the parent is still private, use its - full view to construct the full declaration of the derived type. - (Build_Derived_Record_Type): Relax the condition that controls the - execution of the check that verifies that the partial view and - the full view agree in the set of implemented interfaces. In - addition, this test now only takes into account the progenitors. - (Derive_Interface_Subprograms): No need to derive subprograms - of ancestors that are interfaces. - (Derive_Subprograms): Remove formal No_Predefined_Prims and the - associated code. - Change name Is_Package to Is_Package_Or_Generic_Package - (Complete_Subprograms_Derivation): Handle the case in which the full - view is a transitive derivation of the ancestor of the partial view. - (Process_Full_View): Rename local subprogram Find_Interface_In_ - Descendant to Find_Ancestor_Interface to leave the code more clear. - Remove wrong code that avoids the generation of an error message - when the immediate ancestor of the partial view is an interface. - In addition some minor reorganization of the code has been done to - leave it more clear. - (Analyze_Type_Declaration): If type has previous incomplete tagged - partial view, inherit properly its primitive operations. - (Collect_Interfaces): Make public, for analysis of formal - interfaces. - (Analyze_Interface_Declaration): New procedure for use for regular and - formal interface declarations. - (Build_Derived_Record_Type): Add support for private types to the code - that checks if a tagged type implements abstract interfaces. - (Check_Aliased_Component_Type): The test applies in the spec of an - instance as well. - (Access_Type_Declaration): Clean up declaration of malformed type - declared as an access to its own classwide type, to prevent cascaded - crash. - (Collect_Interfaces): For private extensions and for derived task types - and derived protected types, the parent may be an interface that must - be included in the interface list. - (Access_Definition): If the designated type is an interface that may - contain tasks, create Master_Id for it before analyzing the expression - of the declaration, which may be an allocator. - (Record_Type_Declaration): Set properly the interface kind, for use - in allocators, the creation of master id's for task interfaces, etc. - -2005-11-14 Javier Miranda - Ed Schonberg - - * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be - omitted in case of stream attribute subprograms. - (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that - appear immediately after a subprogram body, when there is no previous - subprogram declaration. - Change name Is_Package to Is_Package_Or_Generic_Package - (Process_Formals): A non null qualifier on a non null named access - type is not an error, and is a warning only if Redundant_Constructs - are flagged. - -2005-11-14 Gary Dismukes - Ed Schonberg - - * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure - nested within Analyze_Package_Specification to install the private - declarations and use clauses within each of the parent units of a - package instance of a generic child package. - (Analyze_Package_Specification): When entering a private part of a - package associated with a generic instance or formal package, the - private declarations of the parent must be installed (by calling new - procedure Install_Parent_Private_Declarations). - Change name Is_Package to Is_Package_Or_Generic_Package - (Preserve_Full_Attributes): For a synchronized type, the corresponding - record is absent in a generic context, which does not indicate a - compiler error. - -2005-11-14 Ed Schonberg - - * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do - not try to rewrite a renamed stream attribute, because the operations - on the type may not have been generated. - Handle properly a renaming_as_body generated for a stream operation - whose default is abstract because the object type itself is abstract. - (Find_Type): If the type is incomplete and appears as the prefix of a - 'Class reference, it is tagged, and its list of primitive operations - must be initialized properly. - (Chain_Use_Clauses): When chaining the use clauses that appear in the - private declaration of a parent unit, prior to compiling the private - part of a child unit, find on the scope stack the proper parent entity - on which to link the use clause. - (Note_Redundant_Use): Emit a warning when a redundant use clause is - detected. - (Analyze_Object_Renaming): An attribute reference is not a legal object - if it is not a function call. - -2005-11-14 Robert Dewar - Ed Schonberg - - * sem_eval.adb: Implement d.f flag - (Subtype_Statically_Match): A generic actual type has unknown - discriminants when the corresponding actual has a similar partial view. - If the routine is called to validate the signature of an inherited - operation in a child instance, the generic actual matches the full view, - -2005-11-14 Hristian Kirtchev - Ed Schonberg - Robert Dewar - Thomas Quinot - - * sem_res.adb (Resolve_Call): Provide a better error message whenever - a procedure call is used as a select statement trigger and is not an - entry renaming or a primitive of a limited interface. - (Valid_Conversion): If the operand has a single interpretation do not - remove address operations. - (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise - statement to inhibit warning. - (Resolve_Unary_Op): Do not produce a warning when - processing an expression of the form -(A mod B) - Use Universal_Real instead of Long_Long_Float when we need a high - precision float type for the generated code (prevents gratuitous - Vax_Float stuff when pragma Float_Representation (Vax_Float) used) - (Resolve_Concatenation_Arg): Improve error message when argument is an - ambiguous call to a function that returns an array. - (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that - there is an implicit operator in the given scope if we are within an - instance: legality check has been performed on the generic. - (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator - after resolving operand, to avoid false warnings on overloaded calls. - -2005-11-14 Ed Schonberg - Javier Miranda - - 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 - previously detected errors to ensure that its compilation - with assertions enabled gives the same output that its - compilation without assertions. - (Interface_Present_In_Ancestor): Add support for private types. - Change name In_Actual to In_Generic_Actual (clean up) - (Disambiguate): New predicate In_Actual, to recognize expressions that - appear in the renaming declaration generated for generic actuals, and - which must be resolved in the outer context. - -2005-11-14 Robert Dewar - Thomas Quinot - Hristian Kirtchev - Ed Schonberg - - * sem_util.ads, sem_util.adb: Change name Is_Package to - Is_Package_Or_Generic_Package. - (Check_Obsolescent): New procedure. - (Set_Is_Public): Remove obsolete junk test. - (Set_Public_Status): Do not set Is_Public on an object whose declaration - occurs within a handled_sequence_of_statemets. - (Is_Controlling_Limited_Procedure): Factor some of the logic, account - for a parameterless procedure. - (Enter_Name): Recognize renaming declarations created for private - component of a protected type within protected operations, so that - the source name of the component can be used in the debugger. - -2005-11-14 Ed Schonberg - Robert Dewar - - * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals - of a generic subprogram are not visible outside the body. - (Set_Warning_Switch): New procedure (code to set warning mode moved - here from Switch.C so that it can be shared by pragma processing. - (Check_References): Special case warning for non-modified non-imported - volatile objects. - * par-prag.adb: Modify processing of pragma Warnings to accomodate new - form with a string literal argument - -2005-11-14 Javier Miranda - - * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the - anonymous access. - (Write): Addition of "not null" to the anonymous access. - (Read): Addition of "not null" to the anonymous access. - (Write): Addition of "not null" to the anonymous access. - - * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F, - I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU, - I_SU, I_U, I_WC): Addition of "not null" to the anonymous access. - (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU, - W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of - "not null" to the anonymous access. - -2005-11-14 Robert Dewar - - * s-stoele.adb: Fix code for Address mod Storage_Offset for negative - offset values - -2005-11-14 Vincent Celier - - * switch.adb (Bad_Switch): New procedure - (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate - message when in error. - - * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value, - Too_Many_Output_Files): Remove declarations, no longer used. - (Scan_Nat): New parameter Switch - (Scan_Pos): Ditto - (Bad_Switch): New procedure - - * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;" - with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith - new parameter Switch. Replace "raise Too_Many_Output_Files;" with call - to Osint.Fail. Do not handle any exception. - -2005-11-14 Vincent Celier - - * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it - designates a non existent directory. - -2005-11-14 Robert Dewar - - * xgnatugn.adb: Replace invalid membership test by 'Valid - -2005-11-14 Vincent Celier - - * makegpr.adb (Gprmake): Do not attempt to build the global archive if - there is no object directory. - -2005-11-14 Robert Dewar - - * usage.adb: Minor adjustment to output format, use nn instead of nnn - (so that -gnateInnn does not run into next column) - -2005-11-14 Ed Falis - - * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" => - "constrained" - -2005-11-14 Cyrille Comar - - * s-chepoo.ads: Add comments on Dereference. - Remove unnecessary inherited abstract primitives. - Cosmetic cleanup. - -2005-11-14 Robert Dewar - - * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration - node parameter, not needed, since it is available as Declaration_Node. - -2005-11-14 Geert Bosch - - * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and - grammatically correct. - -2005-11-14 Vincent Celier - - * s-fileio.ads: Correct spelling error in comment - -2005-11-14 Cyrille Comar - Robert Dewar - Vincent Celier - Ben Brosgol - Jose Ruiz - Pascal Obry - - * gnat_ugn.texi: - Document that -fstack-check is needed for strict compliance with the - Ada 95 Reference Manual. - Correct reference to VAX systems to meet HP guidelines - Add documentation for new gnatmake switches -vl, -vm and -vh - Replace DEC Ada by HP Ada - Replace DIGITAL by HP - Remove empty section on tools in compatibility section - Clarify the Windows convention semantics. - Document the Win32 calling convention. - The Stdcall, Win32 and DLL convention are synonyms. - Add a note in -gnatR description about zero size record components - Note on new >= and <= warnings for -gnatwc - Document that equal sign after -gnatm is optional. - Note that strip is working fine on DLL built with a Library - Project. The restriction apply only to DLL built with gnatdll. - Update section about the way to debug a DLL. - Update information about the DLL convention. - Document -C switch for gnatprep - Document new attribute Library_ALI_Dir - Update elaboration doc to include implicit Elaborate pragmas now - generated for subprogram instantiations. - Document limitation on executable names that include spaces for --GCC, - --GNATBIND, and --GNATLINK switches. - Document that -w causes -gnatws to be added at start of gcc switches - - * gnat_rm.texi: Document that -mieee is needed for generating infinite - and NaN values in case of overflow on machines that are not fully - compliant with the IEEE floating-point standard. - Create a section describing the set of compiler options needed for - strict compliance with the Ada 95 Reference Manual. - Add documentation for pragma Obsolescent applied to a package - Clarify potential issues of mixed language programs related to the - I/O buffering enabling in the elaboration of the GNAT runtime. - Add extra documentation for pragma Restrictions (No_Elaboration_Code) - This documentation only patch adds extra documentsion for pragma - Restrictions (No_Elaboration_Code), explaining why it is not possible - to document this restriction in terms of allowed source constructs. - Document string literal form of pragma Warnings - Document new attribute Library_ALI_Dir - Add documentation on stable attributes in project files that was missing - - * gnat-style.texi: Indicate that paragraphs within a single comment - should be separated by empty comment lines - - * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and - /05 respectively) - - * bindusg.adb: Minor cleanup, put -m before -M for consistency - -2005-11-14 Robert Dewar - - * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb, - a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb, - a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads, - a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb, - a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads, - a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads, - a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb, - a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb, - a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, - a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb, - a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, - a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb, - g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads, - a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb, - a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb, - system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads, - g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb, - g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads, - a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads, - a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads, - a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads, - a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads, - a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads, - a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads, - system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads, - system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb, - a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb, - a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb, - a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads, - system-tru64.ads, system-aix.ads, system-solaris-x86.ads, - system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads, - s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb, - system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads, - system-interix.ads, system-solaris-sparc.ads, - system-solaris-sparcv9.ads, s-inmaop-vms.adb, - s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb, - system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb, - s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads, - a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads, - a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb, - a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads, - a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads, - a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads, - a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads, - a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb, - a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb, - a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb, - a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads, - a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb, - a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb, - a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads, - a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads, - a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb, - a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb, - a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb, - a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, - a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb, - a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads, - a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb, - a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb, - a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb, - a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads, - a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb, - a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, - a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb, - a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb, - a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb, - a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb, - bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb, - csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb, - errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads, - errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads, - exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb, - exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb, - freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads, - g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads, - g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads, - g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads, - g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb, - g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads, - g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads, - g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads, - g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb, - gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb, - gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb, - g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb, - g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb, - g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads, - g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads, - g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb, - layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb, - mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads, - mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads, - nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb, - osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads, - par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb, - par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb, - par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads, - prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads, - prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb, - prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb, - prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb, - sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb, - sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads, - sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads, - sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads, - s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb, - sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, - s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, - s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, - s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, - s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, - s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, - s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, - s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, - s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, - s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, - s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, - s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, - s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, - s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, - s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, - s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, - s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, - s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, - s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, - s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, - s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, - s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads, - s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb, - s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads, - s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads, - s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads, - s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads, - styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads, - s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, 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, s-valwch.ads, s-veboop.adb, s-veboop.ads, - s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads, - s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads, - s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb, - s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads, - s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, - s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads, - table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c, - tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads, - ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads, - usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads, - xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, - xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, - a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads, - a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads, - a-numaux-darwin.ads, a-numaux-darwin.adb, - a-swuwha.ads, a-stunha.ads: Minor reformatting - -2005-11-14 Robert Dewar - - PR ada/18434 - * osint-m.adb: Add pragma Elaborate_All for Osint - -2005-11-10 Eric Botcazou - - PR ada/23995 - * trans.c (call_to_gnu): Restore statement lost in translation. - -2005-11-08 Eric Botcazou - - * init.c: Use the Linux-specific section for the IA-64/Linux target. - (__gnat_adjust_context_for_raise): Add conditional code so that the - IA-64 is also supported. - -2005-11-03 James E Wilson - - PR ada/23427 - * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in - TREE_OVERFLOW check. - -2005-09-21 Olivier Hainque - - PR ada/22418 - * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects, - as we create them to store a size in bits. - -2005-10-21 Eric Botcazou - - PR ada/21937 - PR ada/22328 - PR ada/22381 - PR ada/22383 - PR ada/22419 - PR ada/22420 - * utils2.c (build_return_expr): New helper function. - * gigi.h (build_return_expr): Declare it. - * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead - of manually building the RETURN_EXPR tree. - (call_to_gnu): Pass MODIFY_EXPR through build_binary_op. - (gnat_to_gnu) : Pass MODIFY_EXPR through - build_binary_op for the "target pointer" case. Use build_return_expr - instead of manually building the RETURN_EXPR tree. - -2005-09-16 Laurent Guerby - - PR ada/23788 - * s-tpinop.ads: Make this unit Preelaborate. - -2005-09-16 Andreas Jaeger - - * socket.c: Add string.h for memcpy. - -2005-09-05 Arnaud Charlet - - * dec-io.ads, dec-io.adb: Removed, no longer used. - -2005-09-01 Arnaud Charlet - - * a-calend-mingw.adb: Add call to OS_Primitives.Initialize; - - * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb, - s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb, - s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb, - s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that - dependent units are Preelaborate. - (Initialize): Call Interrupt_Managemeent.Initialize and - OS_Primitives.Initialize to ensure proper initialization of this unit. - Remove use of System.Soft_Links - Make this unit Preelaborate. - - * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads, - s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads, - s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads, - s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads, - s-proinf-irix-athread.adb, s-proinf-irix-athread.ads, - s-tratas.ads, s-tasinf.ads: Minor reformatting. - Add pragma Preelaborate, since these packages are suitable for this - categorization. - Update comments. - - * s-traent-vms.ads, s-intman-dummy.adb, - s-taprop-dummy.adb: Make this unit Preelaborate. - - * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads, - s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb, - s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads, - s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb, - s-intman-solaris.adb, s-intman-irix-athread.adb, - s-intman-irix.adb: Mark this unit Preelaborate. - (Initialize): New procedure. - Update comments. - - * s-taspri-linux.ads: Removed. - - * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure, - as done by other implementations (e.g. posix). - - * s-taprop.ads (Timed_Delay): Update spec since the caller now is - responsible for deferring abort. - Mark this unit Preelaborate. - - * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure - proper initialization of the tasking run-time. - - * s-tasdeb.ads: Mark this unit Preelaborate. - (Known_Tasks): Add explicit default value to avoid elaboration code. - - * s-inmaop-vms.adb (Elaboration code): Add call to - Interrupt_Management.Initialize since the elaboration code depends on - proper initialization of this package. - - * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb, - s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads, - s-osprim-posix.adb: Make this unit Preelaborate. - - * a-calend.adb: Add call to OS_Primitives.Initialize - - * a-elchha.adb: Update use of Except.Id.Full_Name. - Minor reformatting. - Remove use of Ada.Exceptions.Traceback when possible, cleaner. - - * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads: - Move with clauses outside Warnings Off now that dependent units are - Preelaborate. - Use raise xxx with "..."; Ada 2005 form. - - * a-taside.ads, a-taside.adb: - Remove some dependencies, to make it easier to make this unit truly - Preelaborate. - Rewrite some code to be conformant with Preelaborate rules. - - * g-os_lib.adb: Remove non-preelaborate code so that this unit can be - marked Preelaborate in the future. - - * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make - these units Preelaborate. - - * s-exctab.adb: Update use of Except.Id.Full_Name. - - * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05. - (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT, - Set_Exc_Stack_Addr): Removed, no longer used. - Remove reference to *Machine_State_Addr*, no longer needed. - - * s-stalib.ads: Mark this unit as Preelaborate[_05]. - (Exception_Data): Full_Name is now a System.Address so that this unit - can be made Preelaborate. - Clean up/simplify code thanks to Full_Name being a System.Address. - Remove obsolete pragma Suppress (All_Checks), no longer needed. - - * s-taskin.ads, s-taskin.adb: - Move with clauses outside Warnings Off now that dependent units are - Preelaborate. - Make this unit Preelaborate. - (Initialize): New proceduure, replace elaboration code and makes the - set up of the tasking run-time cleaner. - (Detect_Blocking): Now a function instead of a deferred boolean, to - obey Preelaborate rules. - - * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr - soft links, no longer used. - - * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these - packages are suitable for this categorization. - - * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..." - since we compile run-time sources in Ada 2005 mode. - (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to - avoid having s-taprop*.adb depend on s-soflin and to avoid code - duplication. - Remove reference to *Machine_State_Addr*, no longer needed. - -2005-09-01 Arnaud Charlet - - * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb - (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used. - Remove reference to System.Exceptions. - - * s-mastop-x86.adb: Removed, no longer used. - - * s-traceb-mastop.adb: Adjust calls to Pop_Frame. - - * a-excach.adb: Minor reformatting. - - * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and - instead fix new warnings that were hidden by this change. - (AAA, ZZZ): Removed, replaced by... - (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who - are used instead of constants, to help make Ada.Exception truly - preelaborate. - (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error, - Raise_Storage_Error): File is now a System.Address, to simplify code. - (Elab code): Removed, no longer used. - (Null_Occurrence): Remove Warnings Off and make this construct - preelaborate. - Remove code related to front-end zero cost exception handling, since - it is no longer used. - Remove -gnatL/-gnatZ switches. - - * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg): - Update use of Except.Msg. - - * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads, - freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related - to front-end zero cost exception handling, since it is no longer used. - Remove -gnatL/-gnatZ switches. - - * lib-writ.ads: Minor reformatting - Remove doc of UX - - * Makefile.rtl: Remove references to s-except*, s-mastop-x86* - - * Make-lang.in: Remove references to s-except.ads - - * s-except.ads: Removed, no longer used. - - * s-mastop.ads, s-mastop.adb: - (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used. - Remove reference to System.Exceptions. - - * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb, - switch-b.adb: Remove code related to front-end zero cost exception - handling, since it is no longer used. - Remove -gnatL/-gnatZ switches. - -2005-09-01 Robert Dewar - Gary Dismukes - Javier Miranda - - * exp_ch4.adb (Expand_N_In): Replace test of expression in its own - type by valid test and generate warning. - (Tagged_Membership): Generate call to the run-time - subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class" - Change formal name Subtype_Mark to Result_Definition in several calls to - Make_Function_Specification. - (Expand_Allocator_Expression): Add tests for suppression of the AI-344 - check for proper accessibility of the operand of a class-wide allocator. - The check can be left out if checks are suppressed or if the expression - has a specific tagged type whose level is known to be safe. - - * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that - generates the run-time check associated with null-excluding entities. - (Expand_N_Return_Statement): Add tests to determine if the accessibility - check on the level of the return expression of a class-wide function - can be elided. The check usually isn't needed if the expression has a - specific type (unless it's a conversion or a formal parameter). Also - add a test for whether accessibility checks are suppressed. Augment - the comments to describe the conditions for performing the check. - -2005-09-01 Hristian Kirtchev - Javier Miranda - Gary Dismukes - Ed Schonberg - - * a-tags.adb (IW_Membership): Give support to - "Iface_CW_Typ in T'Class". For this purpose the functionality of this - subprogram has been extended to look for the tag in the ancestors tag - table. - Update the structure of the GNAT Dispatch Table to reflect the - additional two tables used in dispatching selects. - Introduce appropriate array types and record components in - Type_Specific_Data to reflect the two tables. - (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in - the TSD of a tag, indexed by position. - (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive - operation kind in the TSD of a tag, indexed by position. - - * a-tags.ads: Introduce an enumeration type to capture different - primitive operation kinds. Define a constant reflecting the number of - predefined primitive operations. - (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index - of an entry wrapper. - (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of - callable entity of a primitive operation. - - * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the - primitive operations used in dispatching selects for limited - interfaces, limited tagged, task and protected types what implement a - limited interface. - (Freeze_Type): Generate the bodies of the primitive operations used in - dispatching selects for limited tagged, task and protected types that - implement a limited interface. Generate statements to populate the two - auxiliary tables used for dispatching in select statements. - (Freeze_Record_Type): Add call to initialize the dispatch table entries - associated with predefined interface primitive operations. - (Build_Dcheck_Function): Change Set_Subtype_Mark to - Set_Result_Definition. - (Build_Variant_Record_Equality): Change Subtype_Mark to - Result_Definition. - (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition. - (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition. - (Build_Assignment): Simplify the code that adds the run-time-check. - (Expand_N_Object_Declaration): Code cleanup. - - * exp_ch7.adb (Make_Clean): Select the appropriate type for locking - entries when there is a protected type that implements a limited - interface. - - * exp_ch9.adb: Add package Select_Expansion_Utilities that contains - common routines used in expansion of dispatching selects. - (Add_Private_Declarations): Select the appropriate protection type when - there is a protected type that implements a limited interface. - (Build_Parameter_Block): Generate a wrapped parameter block. - (Build_Protected_Subprogram_Body): Select the appropriate type for - locking entries when there is a protected type that implements a - limited interface. - (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures - classified as entry wrappers. - (Expand_N_Asynchronous_Select): Add support for expansion of dispatching - asynchronous selects. - (Expand_N_Conditional_Entry_Call): Add support for expansion of - dispatching conditional selects. - (Expand_N_Protected_Type_Declaration): Select the appropriate type for - protection when there is a protected type that implements limited - interfaces. - (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching - timed selects. - (Extract_Dispatching_Call): Extract the entity of the name of a - dispatching call, the object parameter, actual parameters and - corresponding formals. - (Make_Initialize_Protection): Correct logic of protection initialization - when there is a protected type that implements a limited interface. - (Parameter_Block_Pack): Populate a wrapped parameter block with the - values of actual parameters. - (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter - block and assign them to the original actual parameters. - - * exp_ch9.ads (Subprogram_Protection_Mode): New type. - (Build_Protected_Sub_Specification): Change the type and name of the - last formal to account for the increased variety of protection modes. - - * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all - entities. Used to save the value of the Is_Hidden attribute when the - limited-view is installed. - (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change - the attribute of procedures classified as entry wrappers. - (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped - entity of a primitive wrapper. - (Write_Entity_Flags): Output the name and value of the - Is_Primitive_Wrapper attribute. - (Write_Field27_Name): Output the name and entity of the field Wrapped_ - Entity. - (Underlying_Type): If we have an incomplete entity that comes from - the limited view then we return the Underlying_Type of its non-limited - view if it is already available. - (Abstract_Interface_Alias): Flag applies to all subrogram kinds, - including operators. - (Write_Field26_Name): Add entry for Overridden_Operation - (Overridden_Operation): New attribute of functions and procedures. - - * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a - predefined position in the dispatch table for the primitive operations - used in dispatching selects. - (Init_Predefined_Interface_Primitives): Remove the hardcoded number of - predefined primitive operations and replace it with - Default_Prim_Op_Count. - (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec, - Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update - the names of the generated primitive operations used in dispatching - selects. - (Init_Predefined_Interface_Primitives): No need to inherit primitives in - case of abstract interface types. They will be inherit by the objects - implementing the interface. - (Make_DT): There is no need to inherit the dispatch table of the - ancestor interface for the elaboration of abstract interface types. - The dispatch table will be inherited by the object implementing the - interface. - (Copy_Secondary_DTs): Add documentation. - (Validate_Position): Improve this static check in case of - aliased subprograms because aliased subprograms must have - the same position. - (Init_Predefined_Interface_Primitives): New subprogram that initializes - the entries associated with predefined primitives of all the secondary - dispatch tables. - (Build_Anonymous_Access_Type): Removed. - (Expand_Interface_Actuals): With the previous cleanup there is no need - to build an anonymous access type. This allows further cleanup in the - code generated by the expander. - (Expand_Interface_Conversion): If the actual is an access type then - build an internal function to handle the displacement. If the actual - is null this function returns null because no displacement is - required; otherwise performs a type conversion that will be - expanded in the code that returns the value of the displaced actual. - (Expand_Interface_Actuals): Avoid the generation of unnecessary type - conversions that have no effect in the generated code because no - displacement is required. Code cleanup; use local variables to - avoid repeated calls to the subprogram directly_designated_type(). - - * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation): - Classify the primitive operations used in dispatching selects as - predefined. - (Implements_Limited_Interface): Determine whether some type either - directly implements a limited interface or extends a type that - implements a limited interface. - (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition. - (Expand_Subtype_From_Expr): Do not build actual subtype if the - expression is limited. - (Find_Interface_Tag): Add code to handle class-wide types and - entities from the limited-view. - - * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for - Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure, - POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure, - POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index, - Set_Prim_Op_Kind. - - * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type - of procedure name or prefix that appears as a trigger in a triggering - alternative. - - * uintp.ads: Introduce constants Uint_11 and Uint_13. - -2005-09-01 Arnaud Charlet - - * s-tataat.adb, a-tasatt.adb: - Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort. - - * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved - these procedures to body, and renamed Abort_Defer, Abort_Undefer. - (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no - longer used. - -2005-09-01 Arnaud Charlet - Jose Ruiz - - * s-taprop-vxworks.adb: - Move with clauses outside Warnings Off now that dependent units are - Preelaborate. - (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper - initialization of this unit. - (Specific): Add new procedures Initialize and Delete so that this - package can be used for VxWorks 5.x and 6.x - (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide - differences between VxWorks 5.x and 6.x - Minor reformatting. - (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by - caller. - Use only Preelaborate-compatible constructs. - - * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from - Primitives.Operations. - (Delete, Initialize): New procedures. - - * s-osinte-vxworks.adb: Body used to handle differences between - VxWorks 5.x and 6.x - (kill, Set_Time_Slice, VX_FP_TASK): New functions. - - * s-osinte-vxworks.ads: Minor reformatting. - Add VxWworks 6.x specific functions (only called from VxWorks 6 files). - (VX_FP_TASK): Now a function, to handle differences between VxWorks 5 - and 6. - (Set_Time_Slice): New function, replacing kerneltimeSlice to share code - between Vxworks 5 and 6. - (taskLock, taskUnlock): Removeed, no longer used. - - * adaint.c: The wait.h header is not located in the sys directory on - VxWorks when using RTPs. - (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when - using RTPs. - (__gnat_dup): dup is available on Vxworks when using RTPs. - (__gnat_dup2): dup2 is available on Vxworks when using RTPs. - - * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs. - - * expect.c: The wait.h header is not located in the sys directory on - VxWorks when using RTPs. - -2005-09-01 Thomas Quinot - - * g-soccon-vms.adb: Renamed to g-soccon-vms.ads - - * g-soccon-vms.ads: Renamed from g-soccon-vms.adb - - * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads, - g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads, - g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads, - g-soccon-freebsd.ads: Add new constants: - IP_MULTICAST_IF - SO_RCVTIMEO/SO_SNDTIMEO - IOV_MAX - - * gen-soccon.c: - Move all target-specific file inclusions and macro definitions to - gsocket.h, in order to ensure that any C code in socket.c will see a - set of constants that is consistent with the contents of g-soccon.ads. - - * gsocket.h: Code imported from gen-soccon.c: - Move all target-specific file inclusions and macro definitions to - gsocket.h, in order to ensure that any C code in socket.c will see a set - of constants that is consistent with the contents of g-soccon.ads. - This change also makes gen-soccon self-contained (removing dependencies - upon GCC internal headers). - - * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX - iovecs at a time. - (To_Inet_Addr): Now a procedure instead of a function, more efficient. - - * socket.c: Minor reformatting. - -2005-09-01 Ed Schonberg - Thomas Quinot - - * fname-sf.adb, mlib-tgt.ads, - back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb, - g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb, - osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads, - prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads, - prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb, - prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads, - sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads, - makegpr.adb: Remove redundant use_clauses. - -2005-09-01 Arnaud Charlet - - * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads, - s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads, - s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads, - s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads, - s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads, - s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads, - s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads, - table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads, - s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, - s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads, - a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads, - a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads, - a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads, - a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads, - system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads, - system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads, - s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads, - system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads, - s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads, - s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads, - s-vxwork-mips.ads, system-os2.ads, system-interix.ads, - s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads, - system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads, - s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads, - system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads, - s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads, - a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads, - a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads, - a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb, - a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads, - a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads, - a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads, - a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads, - a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads, - a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads, - a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads, - csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads, - g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads, - a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads, - a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads, - a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads, - a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads, - g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads, - i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads, - interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, - i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads, - s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads, - s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads, - s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads, - s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads, - s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads, - s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads, - s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads, - s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads, - s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads, - s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads, - s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads, - s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads, - s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads, - s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads, - s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads, - s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads, - s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads, - s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads, - s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads, - s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads, - s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads, - s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate - and always use the no parameter form for consistency. - - * gnat-style.texi: Document rules about Preelaborate/Pure pragmas. - -2005-09-01 Robert Dewar - - * binde.adb: Minor reformatting - (Find_Elab_Order): Output warning if -p used with static elab order - -2005-09-01 Robert Dewar - - * checks.adb (Check_Needed): New procedure, deals with removing checks - based on analysis of short-circuited forms. Also generates warnings for - improper use of non-short-circuited forms. - Code clean ups. - -2005-09-01 Robert Dewar - - * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks - with 'Valid tests. - -2005-09-01 Robert Dewar - - * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet - spec. - Implement new insertion char < (conditional warning) - * errutil.adb, erroutc.adb: Implement new insertion char < - (conditional warning). - * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads - (Error_Msg_Warn): New variable for < insertion char. - * prj-nmsc.adb: Implement new errout insertion char < (conditional - warning). - (Check_For_Source): Change value of Source_Id only after the current - source has been dealt with. - -2005-09-01 Robert Dewar - Doug Rupp - - * exp_attr.adb: Handle vax fpt for 'Valid attribute - * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure - * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb - (Valid_D, Valid_F, Valid_G): New functions - -2005-09-01 Ed Schonberg - Hristian Kirtchev - Javier Miranda - - * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten - from object notation, the original node is unanalyzed and carries no - semantic information, so that accessiblity checks must be performed on - the type of the actual itself. - (Expand_N_Subprogram_Declaration): Change last actual parameter for - compatibility with Build_Protected_Sub_Specification. - (Check_Overriding_Inherited_Interfaces): Add suport to handle - overloaded primitives. - (Register_Interface_DT_Entry): Use the new name of the formal - the the calls to Expand_Interface_Thunk - - * exp_dbug.ads: Augment comments on encoding of protected types to - include the generation of dispatching subprograms when the type - implements at least one interface. - - * lib.ads: Extend information in Load_Stack to include whether a given - load comes from a Limited_With_Clause. - - * lib-load.adb (From_Limited_With_Chain): New predicate to determine - whether a potential circularity is harmless, because it includes units - loaded through a limited_with clause. Extends previous treatment which - did not handle properly arbitrary combinations of limited and - non-limited clauses. - -2005-09-01 Nicolas Setton - - * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types - to be encoded as typ___XBLU_lowerbound__upperbound instead of - typ___XB_lowerbound__upperbound. - -2005-09-01 Thomas Quinot - - * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate - dummy access formal for RACW/RAS TypeCode TSS. - (Build_TypeCode_Call): Do not generate dummy null access actual for - calls to the TypeCode TSS. - -2005-09-01 Ed Schonberg - - * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate - fully qualified name, to distinguish instances with the same local name. - - * g-souinf.ads (Enclosing_Entity): Document that entity name is now - fully qualified. - -2005-09-01 Robert Dewar - - * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large - packed arrays. - -2005-09-01 Jerome Lambourg - - * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to - (Free): New deallocation procedure for filter elements - (Close): Deallocate any existing filter for the concerned connection - -2005-09-01 Laurent Pautet - - * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character - position set is provided, we compute one in order to reduce the maximum - length of the keys. This computation first selects a character - position between 1 and the minimum length of the keys in order to - avoid reducing one of the keys to an empty string. - (Initialize, Compute): When the ratio V to K is too low, the algorithm - does not converge. The initialization procedure now comes with a - maximum number of iterations such that when exceeded, an exception is - raised in Compute. The user can initialize this ratio to another value - and try again - Reformating and updated headers. - -2005-09-01 Javier Miranda - - * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram - that given an entity T creates and returns an Itype that duplicates the - contents of T. The returned Itype has the null-exclusion - attribute set to True, and its Etype attribute references T - to keep the association between the two entities. - Update copyright notice - - * sem_aggr.adb (Check_Can_Never_Be_Null, - Aggregate_Constraint_Checks, Resolve_Aggregate, - Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup. - - * sem_ch5.adb (Analyze_Assignment): Code cleanup. - -2005-09-01 Gary Dismukes - Robert Dewar - Hristian Kirtchev - - * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to - Result_Definition. - - * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in - function specs. - Call Set_Result_Definition instead of Set_Subtype_Mark. - (P_Subprogram_Specification): Add parsing of anonymous access result - plus null exclusions. Call Set_Result_Definition instead of - Set_Subtype_Mark. - - * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419 - (P_Access_Type_Definition): Add parsing for an anonymous access result - subtype, plus parsing for null exclusions. Call Set_Result_Definition - instead of Set_Subtype_Mark. - - * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419 - (Null_Exclusion_Present): Allow this flag for N_Function_Specification. - (Result_Definition): New function for N_Function_Specifications. - (Subtype_Mark): No longer allowed for N_Access_Function_Definition and - N_Function_Specification. - (Set_Null_Exclusion_Present): Allow this flag for - N_Function_Specification. - (Set_Result_Definition): New procedure for N_Function_Specifications. - (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition - and N_Function_Specification. - - * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative, - Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement. - Add support for LIMITED NEW for Ada 2005 AI-419 - Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new - syntax for anonymous access results. - Replace Subtype_Mark field by Result_Definition in - N_Function_Specification and N_Access_Definition specs. - Add Null_Exclusion_Present to spec of N_Function_Specification. - (Result_Definition): New function for N_Function_Specification and - N_Access_Function_Definition. - (Set_Result_Definition): New procedure for N_Function_Specification and - N_Access_Function_Definition. - - * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to - Result_Definition for cases of N_Access_Function_Definition and - N_Function_Specification. - Print "not null" if Null_Exclusion_Present on N_Function_Specification. - -2005-09-01 Vincent Celier - - * lib-writ.adb: Update Copyright notice - (Write_With_Lines): On platforms where file names are case-insensitive, - record the file names in lower case. - (Write_ALI): For D lines, on platforms where file names are - case-insensitive, record the file names in lower case. - -2005-09-01 Ed Schonberg - Emmanuel Briot - - * lib-xref.adb (Output_Overridden_Op): Display information on - overridden operation. - - * lib-xref.ads: Add documentation on overridden operations. - - * ali.ads (Xref_Entity_Record): Add support for storing the overriding - information. - - * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the - overriding entity information. - -2005-09-01 Vincent Celier - - * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources, - including those that are inherited. - -2005-09-01 Robert Dewar - - * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config] - - * par-prag.adb: Implement new pragma Debug_Policy - - * sem_prag.adb Implement new pragma Debug_Policy - (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit - Component_Size attribute specification. Give warning for ignored pragma - Pack. - - * snames.h, snames.ads, snames.adb: Introduce entries in - Preset_Names for Name_Disp_Asynchronous_Select, - Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind, - Name_Disp_Timed_Select. - New pragma Debug_Policy - - * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode - explicitly. - Switch -gnata also sets Debug_Pragmas_Enabled - - * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to - handle an explicit -gnata when compiling predefined files. - -2005-09-01 Vincent Celier - - * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object - directories of projects that have no Ada sources. - -2005-09-01 Robert Dewar - - * scng.adb (Check_End_Of_Line): Count characters, rather than bytes - (makes a difference for wide characters) - - * widechar.adb, widechar.ads: - Add Wide_Char_Byte_Count feature to count chars vs bytes - -2005-09-01 Thomas Quinot - Ed Schonberg - Robert Dewar - - * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal - 'Address attribute reference with an overloaded prefix, use the - location of the prefix (not the location of the attribute reference) as - the error location. - (Analyze_Attribute, case 'Size): The name of an enumeration literal, or - a function renaming thereof, is a valid prefix for 'Size (where it is - intepreted as a function call). - (Statically_Denotes_Entity): New predicate to determine whether the - prefix of an array attribute can be considered static. - - PR ada/9087 - (Eval_Attr): Fix failure to evaluate Component_Size for - unconstrained arrays (resulted in wrong value in packed case, since - back end cannot handle this case) - -2005-09-01 Robert Dewar - - * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to - error msgs for most common cases. - Use new errout insertion char < (conditional warning) - -2005-09-01 Javier Miranda - Ed Schonberg - - * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to - become local to the whole package. - (Install_Limited_Withed_Unit): Instead of unchaining real entities if - the package was already analyzed the new algorithm "replaces" the - real entities by the shadow ones. This is required to ensure that - the order of these entities in the homonym chains does not change; - otherwise we can have undefined references at linking time because - in case of conflicts the external name of the entities will have - a suffix that depends on the order of the entities in the chain. - (Remove_Limited_With_Clause): Complementary code that completes the - new algorithm and replaces the shadow entities by the real ones. - (Install_Limited_Withed_Unit): When unchaining entities before the - installation of the shadow entities, only regular entities of the - public part must be taken into account. This is required to - keep this routine in synch with the work done by Remove_Limited_ - With_Clause - (Install_Limited_With_Clause): Introduce implicit limited_with_clause - even if unit is analyzed, because the analysis of the unit is - idempotent in any case, and the limited view of the unit may have to - be installed for proper visibility. - (Expand_Limited_With_Clause): Even if the unit in the implicit - with_clause has been analyzed already, a limited view of the package - must be built for the current context, if it does not exist yet. - -2005-09-01 Ed Schonberg - Javier Miranda - Gary Dismukes - - * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the - defining entity for the instance body, make a new defining identifier - rather than copying the entity of the spec, to prevent accidental - sharing of the entity list. - (Check_Private_View): When exchanging views of private types, build the - list of exchanged views as a stack, to ensure that on exit the exchanges - are undone in the proper order. - (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): - Restore the compilation environment in case of instantiation_error. - (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity - for an anonymous access result. - (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition - (Formal_Entity): Handle properly the case of a formal package that - denotes a generic package renaming. - -2005-09-01 Thomas Quinot - - * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the - clause if the array aggregate is surrounded by parentheses. - -2005-09-01 Cyrille Comar - Gary Dismukes - Ed Schonberg - Javier Miranda - - * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the - underlying type - to check if a type is Constrained in cases related to code generation - (rather than semantic checking) since otherwise we do not generate - similar code for mutable private types depending if their - discriminants are visible or not. - (Check_Abstract_Overriding): Do not complain about failure to override - the primitive operations used in dispatching selects since they will - always be overriden at the freeze point of the type. - (Access_Definition): Separate out handling for resetting the scope - of an anonymous access function result type. Retrieve the scope - of the associated function rather than using Current_Scope, which - does not have a consistent value (depends on whether we're in the - middle of analyzing formal parameters). Add ??? comment about - finding a cleaner way to handle the special cases of scope setting. - (Process_Incomplete_Dependents): A protected operation is never a - dispatching operation (only its wrapper may be). - (Build_Derived_Record_Type): In case of tagged private types that - implement interfaces add derivation of predefined primitive - operations. - (Derive_Subprograms): Replace the Is_Interface_Derivation parameter - by two parameters that are used in case of derivation from abstract - interface types: No_Predefined_Prims is used to avoid the derivation - of predefined primitives from the interface, and Predefined - Prims_Only is used to complete the derivation predefined primitives - in case of private tagged types implementing interfaces. - Fix typo in comments - (Find_Interface_In_Descendant): Protect the frontend against - wrong code with large circularity chains. - (Is_Private_Overriding): Add support for entities overriding interface - subprograms. The test failed because Entities associated with overriden - interface subprograms are always marked as hidden (and used to build - the secondary dispatch table); in this case the overriden entity is - available through the field abstract_interface_alias (cf. override_ - dispatching_operation) - (Access_Definition): Set the scope of the type to Current_Scope for the - case of a function with an anonymous access result type. - (Access_Subprogram_Declaration): Handle creation of the type entity for - an access-to-function type with an anonymous access result. - (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition - in handling for N_Access_Function_Definition. - (Analyze_Subtype_Declaration): Modify the text of error message. - (Derived_Type_Declaration): Modify the text of error message. - (Process_Subtype): Modify the text of error message plus cleanup - of one redundant error message. - (Analyze_Component_Declaration): Code cleanup. - (Analyze_Object_Declaration): Code cleanup. - (Analyze_Subtype_Declaration): Propagate the null-exclusion - attribute in case of access types. Code cleanup. - (Array_Type_Declaration): Code cleanup. - (Process_Discriminants): Create the new null-excluding itype - if required. Code cleanup. - (Process_Subtype): Create the new null-excluding itype if - required. Code cleanup. - (Build_Derived_Record_Type): Code cleanup to avoid calling - twice the subprogram derive_subprograms in case of private - types that implement interfaces. In this particular case the - 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. - -2005-09-01 Ed Schonberg - Javier Miranda - - * sem_ch4.adb (Transform_Object_Operation): In a context off the form - V (Obj.F), the rewriting does not involve the indexed component, but - only the selected component itself. - Do not apply the transformation if the analyzed node is an actual of a - call to another subprogram. - (Complete_Object_Operation): Retain the entity of the - dispatching operation in the selector of the rewritten node. The - entity will be used in the expansion of dispatching selects. - (Analyze_One_Call): Improve location of the error message associated - with interface. - (Analyze_Selected_Component): No need to resolve prefix when it is a - function call, resolution is done when parent node is resolved, as - usual. - (Analyze_One_Call): Add a flag to suppress analysis of the first actual, - when attempting to resolve a call transformed from its object notation. - (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies - of the argument list for each interpretation of the operation. - (Try_Object_Operation): The designated type of an access parameter may - be an incomplete type obtained through a limited_with clause, in which - case the primitive operations of the type are retrieved from its full - view. - (Analyze_Call): If this is an indirect call, and the return type of the - access_to_subprogram is incomplete, use its full view if available. - -2005-09-01 Javier Miranda - Gary Dismukes - - * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous - access types the null-exclusion and access-to-constant attributes must - also match. - (Analyze_Return_Statement): When the result type is an anonymous access - type, apply a conversion of the return expression to the access type - to ensure that appropriate accessibility checks are performed. - (Analyze_Return_Type): For the case of an anonymous access result type, - generate the Itype and set Is_Local_Anonymous_Access on the type. - Add ??? placeholder for check to disallow returning a limited object - in Ada 2005 unless it's an aggregate or a result of a function call. - Change calls from Subtype_Mark to Result_Definition. - (Analyze_Subprogram_Body): Change formal Subtype_Mark to - Result_Definition in call to Make_Function_Specification. - (Build_Body_To_Inline): Change Set_Subtype_Mark to - Set_Result_Definition. - (Make_Inequality_Operator): Change formal Subtype_Mark to - Result_Definition in call to Make_Function_Specification. - (Process_Formals): Create the new null-excluding itype if required. - (New_Overloaded_Entity): For an entity overriding an interface primitive - check if the entity also covers other abstract subprograms in the same - scope. This is required to handle the general case, that is, overriding - other interface primitives and overriding abstract subprograms inherited - from some abstract ancestor type. - (New_Overloaded_Entity): For an overriding entity that comes from - source, note the operation that it overrides. - (Check_Conformance, Type_Conformant): Addition of one new formal - to skip controlling formals in the analysis. This is used to - handle overloading of abstract interfaces. - (Base_Types_Match): Add missing case for types imported from - limited-with clauses - (New_Overloaded_Entity): Add barrier to protect the use of - the "alias" attribute. - -2005-09-01 Ed Schonberg - - * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration, - verify that the procedure and the entry are mode conformant. - (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed - as a different operator, which is often a cut-and-paste error. - -2005-09-01 Javier Miranda - Ed Schonberg - - * sem_disp.adb (Check_Controlling_Formals): Anonymous access types - used in controlling parameters exclude null because it is necessary to - read the tag to dispatch, and null has no tag. - (Override_Dispatching_Operation): If the previous operation is inherited - from an interface, it becomes hidden and does not participate in later - name resolution. - -2005-09-01 Javier Miranda - Ed Schonberg - Gary Dismukes - - * sem_res.adb (Resolve_Membership_Op): In case of the membership test - "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend; - the expander will generate the corresponding run-time check to evaluate - the expression. - (Resolve_Call): Check for legal type of procedure name or prefix that - appears as a trigger in a triggering alternative. - (Valid_Conversion): If expression is ambiguous and the context involves - an extension of System, remove System.Address interpretations. - (Resolve_Qualified_Expression): Reject the case of a specific-type - qualification applied to a class-wide argument. Enhance comment - to explain checking of Original_Node. - (Resolve_Type_Conversion): The location of the error message was not - general enough to handle the general case and hence it has been removed. - In addition, this patch improves the text of the message. - (Resolve_Type_Conversion): Add missing support for access to interface - types. - (Resolve_Type_Conversion): If the target is a class-wide interface type, - do not expand if the expression is the actual in a call, because proper - expansion will take place when the call itself is expanded. - (Resolve_Allocator): If the context is an unchecked conversion, the - allocator inherits its storage pool, if any, from the target type of - the conversion. - -2005-09-01 Ed Schonberg - Javier Miranda - - * sem_type.adb (Add_One_Interp): If a candidate operation is an - inherited interface operation that has an implementation, use the - implementation to avoid spurious ambiguities. - (Interface_Present_In_Ancestor): In case of concurrent types we can't - use the Corresponding_Record_Typ attribute to look for the interface - because it is set by the expander (and hence it is not always - available). For this reason we traverse the list of interfaces - (available in the parent of the concurrent type). - (Interface_Present_In_Ancestor): Handle entities from the limited view - -2005-09-01 Ed Schonberg - - * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags - from the list of required components. - (Is_Controlling_Limited_Procedure): Determine whether an entity is a - primitive procedure of a limited interface with a controlling first - parameter. - (Is_Renamed_Entry): Determine whether an entry is a procedure renaming - of an entry. - (Safe_To_Capture_Value): A value (such as non_null) is not safe to - capture if it is generated in the second operand of a short-circuit - operation. - Do not capture values for variables with address clauses. - (Is_Object_Reference): Treat a function call as an object reference only - if its type is not Standard_Void_Type. - -2005-09-01 Ed Schonberg - - * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied - to a variable that is statically known to be constant. - -2005-09-01 Geert Bosch - Robert Dewar - - * ttypef.ads (VAXDF_Safe_First): Use correct value for constant. - (VAXGF_Safe_First): Idem. - -2005-09-01 Robert Dewar - Arnaud Charlet - - * g-dirope.ads: Minor reformatting - Document that bounds of result of Base_Name match the input index - positions. - Add documentation on environment variable syntax for Expand_Path - - * gnat_ugn.texi: Update documentation to include mention of -m switches - Document new treatment of wide characters in max line length - style check. - Remove -gnatL/-gnatZ switches, no longer used. - Add note on pragmas Assertion_Policy and Debug_Policy in discussion - of -gnata switch. - - * gnat_rm.texi: Add doc for two argument form of pragma - Float_Representation. - Add documentation for pragma No_Strict_Aliasing - Add note that explicit component clause overrides pragma Pack. - Add documentation of pragma Debug_Policy - -2005-09-01 Matthew Heaney - - * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb, - a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb, - a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads, - a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest - draft (Draft 13, August 2005) of Ada Amendment 1. - -2005-09-01 Arnaud Charlet - - * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM. - Note that the platform-specific version of g-soccon.ads for VMS is now - named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it - really is a package spec). - Replace s-taspri-linux.ads by s-taspri-posix.ads - Remove references to s-mastop-x86.adb - - * system-vxworks-xscale.ads: Removed, no longer used. - * s-vxwork-xscale.ads: Removed, no longer used. - -2005-09-01 Robert Dewar - - * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb, - g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads, - g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb, - exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads, - g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads, - g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb, - g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads, - g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb, - g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads, - g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads, - sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb, - a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads, - g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads, - a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads, - a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb, - a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb, - g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads, - g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads, - g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb, - i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb, - a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting - -2005-08-29 Arnaud Charlet - - PR ada/23187 - * adaint.c - (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined. - -2005-08-29 Arnaud Charlet - Doug Rupp - - * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings - when needed. - (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep - this code in the GNAT run-time. - - * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions. - - PR ada/21053 - * init.c (__gnat_error_handler [many]): Mark "msg" as const - (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused - - (__gnat_inside_elab_final_code): Moved here from - Standard_Library and only defined for the compiler. - __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL. - (__gnat_inum_to_ivec): Do not define this function on VxWorks when - using RTPs because directly vectored Interrupt routines are not - supported on this configuration. - (getpid): Do not redefine this function on VxWorks when using RTPs - because this primitive is well supported by the RTP libraries. - (copy_msg): Correct the code that checks for buffer overflow. - Discovered during code reading. - -2005-08-29 Olivier Hainque - - * decl.c (gnat_to_gnu_entity) : When allocating storage for - a library level mutable variable with an initializer, tell - build_allocator to ignore the initializer's size. It may not be large - enough for all the values that might be assigned to the variable later - on. - -2005-08-29 Arnaud Charlet - Eric Botcazou - - * trans.c: Protect < in error msg with quote - Replace GCC_ZCX by Back_End_Exceptions. - (addressable_p) : Also return 1 if the field - has been sufficiently aligned in the record. - -2005-08-15 James E. Wilson - - * system-linux-alpha.ads: Change ia64 to alpha. - -2005-08-01 Kazu Hirata - - * decl.c, utils.c: Fix comment typos. - -2005-07-29 Kazu Hirata - - * decl.c, init.c, initialize.c: Fix comment typos. - -2005-07-20 Giovanni Bajo - - Make CONSTRUCTOR use VEC to store initializers. - * decl.c (gnat_to_gnu_entity): Update to cope with VEC in - CONSTRUCTOR_ELTS. - * trans.c (extract_values): Likewise. - * utils.c (convert, remove_conversions): Likewise. - * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op, - gnat_build_constructor): Likewise. - -2005-07-09 Andrew Pinski - - * decl.c (components_to_record): Use DECL_FCONTEXT instead of - DECL_SECTION_NAME. - (compare_field_bitpos): Likewise. - -2005-07-09 Andrew Pinski - - * utils.c (create_var_decl): Only set DECL_COMMON on - VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on - VAR_OR_FUNCTION_DECL_P. - -2005-07-08 Daniel Berlin - - * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is - removed. - -2005-07-07 Pascal Obry - - * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the - returned type on Windows. - - * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this - routine. - - * g-socket.adb (Inet_Addr): Check for empty Image and raises an - exception in this case. - Simplify the code as "Image (Image'Range)" = "Image". - -2005-07-07 Vincent Celier - - * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put - the destructor/constructor attributes for final/init. - - * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C - -2005-07-07 Eric Botcazou - - * decl.c (gnat_to_gnu_entity) : Do not strip the padding - type if the parameter is not passed by copy but reference by default. - -2005-07-07 Javier Miranda - - * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type): - Reimplementation of the support for abstract interface types in order - to leave the code more clear and easy to maintain. - - * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for - abstract interface types in order to leave the code clearer and easier - to maintain. - - * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality - is now implemented by the new subprogram Fill_Secondary_DT_Entry. - (Fill_Secondary_DT_Entry): Generate the code necessary to fill the - appropriate entry of the secondary dispatch table. - (Make_DT): Add code to inherit the secondary dispatch tables of - the ancestors. - - * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of - implementing both functionalities by means of a common routine, each - routine has its own code. - -2005-07-07 Javier Miranda - - * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types. - - * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete - types: - -- - type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED]; - -- - - * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong - use of tag incomplete types. - - * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to - give support to tagged incomplete types. - - * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the - expression is a discriminant reference and its type is private, as can - happen within a stream operation for a mutable record, use the full - view of the type to resolve the case alternatives. - (Analyze_Assignment): Check wrong dereference of incomplete types. - - * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete - types. - - * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged - incomplete types. - - * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to - N_Incomplete_Type_Declaration nodes. - - * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute - Tag_Present to give support to tagged incomplete types: - -- - type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED]; - -- - -2005-07-07 Olivier Hainque - - 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. - -2005-07-07 Ed Schonberg - Javier Miranda - - * par-load.adb (Load): If a child unit is loaded through a limited_with - clause, each parent must be loaded as a limited unit as well. - - * sem_ch10.adb (Previous_Withed_Unit): Better name for - Check_Withed_Unit. Return true if there is a previous with_clause for - this unit, whether limited or not. - (Expand_Limited_With_Clause): Do not generate a limited_with_clause on - the current unit. - (Is_Visible_Through_Renamings): New local subprogram of install_limited - _withed_unit that checks if some package installed through normal with - clauses has a renaming declaration of package whose limited-view is - ready to be installed. This enforces the check of the rule 10.1.2 (21/2) - of the current Draft document for Ada 2005. - (Analyze_Context): Complete the list of compilation units that - are allowed to contain limited-with clauses. It also contains - checks that were previously done by Install_Limited_Context_Clauses. - This makes the code more clear and easy to maintain. - (Expand_Limited_With_Clause) It is now a local subprogram of - Install_Limited_Context_Clauses, and contains the code that adds - the implicit limited-with clauses for parents of child units. - This functionality was prevously done by Analyze_Context. - - * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of - incomplete type. - - * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has - been erroneously named in a limited-with clause of its own context. - In this case the error has been previously notified by Analyze_Context. - -2005-07-07 Ed Schonberg - - * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a - generic package that contains local declarations with the same name. - (Analyze_Object_Renaming): Check wrong renaming of incomplete type. - -2005-07-07 Bernard Banner - - * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on - ia64 platform only on platforms that you the GCC unwind library - rather than the system unwind library. - -2005-07-07 Thomas Quinot - - * expect.c: Minor reformatting - -2005-07-07 Sergey Rybin - - * vms_data.ads: Add VMS qualifiers for new gnatpp switch - --no-separate-is - - * gnat_ugn.texi: Add description for new gnatpp option - (--no-separate-is) - -2005-07-04 Thomas Quinot - - * g-expect-vms.adb, g-expect.ads, g-expect.adb - (Get_Command_Output): New subprogram to launch a process and get its - standard output as a string. - -2005-07-04 Eric Botcazou - Olivier Hainque - - * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to - fetch a code-range descriptor associated with the machine state. On - failure set the machine state's PC to 0; on success, pass the - descriptor to exc_virtual_unwind. - - * init.c (Tru64 section): New function __gnat_set_code_loc. - -2005-07-04 Vincent Celier - - * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, - mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb, - mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library): - Remove all auto-initialization code, as this is now done through the - constructor mechanism. - - * adaint.h, adaint.c (__gnat_binder_supports_auto_init, - __gnat_sals_init_using_constructors): New functions. - - * bindgen.adb (Gen_Output_File_Ada): Generate pragmas - Linker_Constructor and Linker_Destructor when switch -a is used. - - * bindusg.adb: Add line for new switch -a - - * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function - (Gnatbind): When switch -a is used, check if it is allowed - - * switch-b.adb (Scan_Binder_Switches): Process new switch -a - -2005-07-04 Joel Brobecker - - * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array. - This prevents us from hitting a limitation during the debug info - generation when using stabs. - (Prims_Ptr): Likewise. - -2005-07-04 Gary Dismukes - Ed Schonberg - Javier Miranda - - * checks.adb (Null_Exclusion_Static_Checks): In the case of - 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. - - * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the - Corresponding_Spec on the body created for a null procedure. Add ??? - comment. Remove New_Copy_Tree call on body argument to - Set_Body_To_Inline. - - * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with - discriminants, use the type of the actual as well, because the - discriminants may be read by the called subprogram. - - * sem_ch3.adb (Access_Type_Declaration): If the designated type is an - access type we do not need to handle non-limited views. - (Build_Derived_Record_Type): Additional check to check that in case of - private types, interfaces are only allowed in private extensions. - -2005-07-04 Eric Botcazou - - * decl.c (prepend_attributes) : New case. - : Likewise. - - * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and - Pragma_Linker_Destructor. - - * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and - ATTR_LINK_DESTRUCTOR. - (static_ctors, static_dtors): New variables. - - * misc.c (gnat_expand_body): Output current function as constructor - and destructor if requested. - - * par-prag.adb: Add processing for pragma Linker_Constructor and - Linker_Destructor. - - * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function - extracted from Check_Interrupt_Or_Attach_Handler. - (Check_Interrupt_Or_Attach_Handler): Invoke it. - Implement pragma Linker_Constructor and Linker_Destructor with the - help of Find_Unique_Parameterless_Procedure. - Replace Name_Alias with Name_Target for pragma Linker_Alias. - - * snames.h, snames.ads, snames.adb: - Add Name_Linker_Constructor and Name_Linker_Destructor. - Add Pragma_Linker_Constructor and Pragma_Linker_Destructor. - * snames.adb: Remove Name_Alias. - - * trans.c: Include cgraph.h. - (build_global_cdtor): New function. - (Compilation_Unit_to_gnu): Build global constructor and destructor if - needed. - (tree_transform) : Substitute renaming of view-conversions - of objects too. - (addressable_p) : Unconditionally test - DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms. - - * utils.c (process_attributes) : Do not assemble the - variable if it is external. - - (static_ctors, static_dtors): New global variables. - (process_attributes) : New case. - : Likewise. - (end_subprog_body): Chain function as constructor and destructor - if requested. - - * exp_util.adb (Force_Evaluation): Unconditionally invoke - Remove_Side_Effects with Variable_Ref set to true. - (Remove_Side_Effects): Handle scalar types first. Use a renaming - for non-scalar types even if Variable_Ref is true and for class-wide - expressions. - -2005-07-04 Ed Schonberg - - * exp_attr.adb (Mod): Evaluate condition expression with checks off, - to prevent spurious warnings. - -2005-07-04 Thomas Quinot - - * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for - Itypes. Itypes are really unexpected there. - (Build_TypeCode_Function): Generalise special processing for Itypes to - handle the case of numeric implicit base types as well as enumerated - ones. - -2005-07-04 Ed Schonberg - - * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is - controlled, indicate the expected type of the dereference that is - created for the call to Deep_Finalize, to prevent spurious errors when - the designated type is private and completed with a derivation from - another private type. - -2005-07-04 Vincent Celier - - * make.adb (Change_To_Object_Directory): When unable to change the - current dir to the object directory, output the full path of the - directory. - -2005-07-04 Matthew Gingell - - * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb - - * indepsw-linux.adb: Replace by... - - * indepsw-gnu.adb: ...this new file - -2005-07-04 Vincent Celier - - * mlib-prj.adb (Auto_Initialize): New constant String - (SALs_Use_Constructors): New Boolean function - (Build_Library): Call gnatbind with Auto_Initialize switch when - SALs_Use_Constructors returns True. - - * mlib-tgt.ads: Minor reformatting - - * mlib-utl.ads: Minor reformatting - - * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag - -2005-07-04 Ed Schonberg - - * par-ch9.adb (P_Task, P_Protected): Indicate that single task and - single protected declarations can have an interface list. - (P_Entry_Declaration): Add handler for Error_Resync, which can be raised - with seriously malformed entry declarations, and lead to compilation - abandoned messages. - -2005-07-04 Javier Miranda - - * par-load.adb: Load the context items in two rounds. - -2005-07-04 Robert Dewar - - * scng.adb: Do not consider Mod used as an attribute to be a keyword - -2005-07-04 Ed Schonberg - Javier Miranda - - * sem_ch10.adb (Build_Limited_Views): A type declared with a private - type extension needs a limited view. - Remove previous restriction on private types available through the - limited-view (only tagged private types were previously allowed). - (Install_Withed_Unit): In the code that implements the - legality rule given in AI-377, exclude a child unit with the name - Standard, because it is a homonym of the Standard environment package. - -2005-07-04 Thomas Quinot - - * sem_ch4.adb (Transform_Object_Operation): For an actual that is an - overloaded function call, carry interpretations from the original tree - to the copy. - -2005-07-04 Ed Schonberg - - * sem_ch6.adb (Conforming_Types): If the types are anonymous access - types check whether some designated type is a limited view, and use - the non-limited view if available. - -2005-07-04 Gary Dismukes - - * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant - constraint of full view of a private view T1 if present, when T2 is a - discriminated full view. - -2005-07-04 Thomas Quinot - - * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an - actual that is a view conversion of a bit packed array reference. - -2005-07-04 Ed Schonberg - - * sem_type.adb (Covers): Verify that Corresponding_Record_Type is - present before checking whether an interface type covers a synchronized - type. - -2005-07-04 Ed Schonberg - - * sem_util.adb (Is_Object_Reference): An indexed or selected component - whose prefix is an implicit dereference is an object reference. Removes - spurious errors when compiling with -gnatc. - -2005-07-04 Robert Dewar - - PR ada/22039 - * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix - -2005-07-04 Matthew Gingell - - * tracebak.c: Enable tracebacks on ia64 platforms - -2005-07-04 Vincent Celier - - * vms_conv.adb (Initialize): Allow multiple ALI files to be given to - the GNAT BIND command, as gnatbind accepts multiples ALI files with - the -L or -n switches. - -2005-07-04 Vincent Celier - - * makegpr.adb (Build_Global_Archive): Make sure the list of sources is - correctly computed and the main project data is not modified while - doing so. - (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler - (Choose_C_Plus_Plus_Link_Process): Do not generate shell script - c++linker as this does not work on some platforms. - -2005-07-04 Matthew Heaney - - * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index - was changed. - * a-coinve.adb: Perform constraint checks explicitly. - -2005-07-04 Richard Kenner - Thomas Quinot - - * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency. - new target gen-soccon. - -2005-07-04 Robert Dewar - - * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting - -2005-07-04 Thomas Quinot - - * g-socket.ads (Check_Selector): Minor rewording of comment. - -2005-07-04 Vincent Celier - - * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol= - -2005-07-04 Thomas Quinot - - * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO. - -2005-07-04 Sergey Rybin - - * gnat_ugn.texi: Add description of --eol gnatpp option - -2005-07-04 Eric Botcazou - Thomas Quinot - - * 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. - -2005-07-04 Arnaud Charlet - - * s-stausa.ads, s-stausa.adb: New files. - -2005-06-30 Kelley Cook - - * all files: Update FSF address in copyright headers. - * gen-soccon.co (main): Output new FSF address in generated files. - -2005-06-28 Paul Brook - - * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc. - -2005-06-14 Olivier Hainque - Eric Botcazou - - * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to - exc_unwind, now that we are generating proper .debug_frame output for - that target. - - * tracebak.c: Remove the mips-irix section, as we are now using the - s-mastop based unwinder again. - Under SPARC/Solaris, take into account the stack bias to compute the - frame offset. The stack bias is 0 for the V8 ABI and 2047 for the V9 - ABI. - -2005-06-14 Doug Rupp - - * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb - - * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files - -2005-06-14 Pascal Obry - - * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb, - a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads, - a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in - package name). - - * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads, - a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb, - a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads, - a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads, - a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads, - a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads, - a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb, - s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, - s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads, - s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb, - s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb, - s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads, - s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads, - s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb, - s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb, - s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads, - s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads, - s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb, - s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads, - s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb, - s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb, - s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb, - s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb, - s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads, - s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb, - s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb, - s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb, - s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb, - s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb, - s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb, - a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb, - a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb, - a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads, - a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb, - a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads, - a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.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.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb, - 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-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads, - a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb, - a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads, - a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads, - a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb, - a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb, - a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb, - a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb, - a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, - a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb, - a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb, - a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads, - a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, - a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb, - a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb, - a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads, - dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb, - g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads, - g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads, - g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, - g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, - g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb, - gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb, - g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb, - i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads, - s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads, - s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb, - s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads, - s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb, - s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb, - s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads, - s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb, - s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads, - s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb, - s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads, - s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb, - s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads, - s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb, - s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads, - s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads - s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads, - s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb, - s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads, - s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb, - s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads, - s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb, - s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads, - s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb, - s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads, - s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb, - s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads, - s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb, - s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads, - s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb, - s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads, - s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb, - s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads, - s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb, - s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads, - s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb, - s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads, - s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb, - s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads, - s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb, - s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads, - s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb, - s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb, - s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads, - s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb, - s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads, - s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb, - s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads, - s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads, - s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads, - s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb, - s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads, - s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb, - s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads, - s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads, - s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb, - s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb, - s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads, - a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads, - a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads, - a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb, - a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb, - a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, - a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb, - a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb, - a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb, - a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style. - "GNU Ada" to GNAT, use proper casing for RUN-TIME. - -2005-06-14 Jose Ruiz - Arnaud Charlet - - * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no - longer protected objects. They have been replaced by lower-level - suspension objects made up by a mutex and a condition variable (or - their equivalent given a particular OS) plus some internal data to - reflect the state of the suspension object. - (Initialize, Finalize): Add this initialization procedure for - Suspension_Object, which is a controlled type. - (Finalize): Add the finalization procedure for Suspension_Object, - which is a controlled type. - - * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of - Ada.Synchronous_Task_Control because there is no longer a need for a - VxWorks specific version of this package. Target dependencies - has been moved to System.Task_Primitives.Operations. - - * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no - longer needed. - (InitializeCriticalSection, EnterCriticalSection, - LeaveCriticalSection, DeleteCriticalSection): Replace the type - pCriticalSection by an anonymous access type so that we avoid problems - of accessibility to local objects. - - * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb, - s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb, - s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb, - s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb, - s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer - set the environment task mask here. - (Current_State): Add this function that returns the state of the - suspension object. - (Set_False): Add this procedure that sets the state of the suspension - object to False. - (Set_True): Add this procedure that sets the state of the suspension - object to True, releasing the task that was suspended, if any. - (Suspend_Until_True): Add this procedure that blocks the calling task - until the state of the object is True. Program_Error is raised if - another task is already waiting on that suspension object. - (Initialize): Add this procedure for initializing the suspension - object. It initializes the mutex and the condition variable which are - used for synchronization and queuing, and it sets the internal state - to False. - (Finalize): Add this procedure for finalizing the suspension object, - destroying the mutex and the condition variable. - - * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads, - s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads, - s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads, - s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object - which provides a low-level abstraction (using operating system - primitives) for Ada.Synchronous_Task_Control. - This object is made up by a mutex (for ensuring mutual exclusion), a - condition variable (for queuing threads until the condition is - signaled), a Boolean (State) indicating whether the object is open, - and a Boolean (Waiting) reflecting whether there is a task already - suspended on this object. - - * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb, - s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb, - s-intman-vms.ads, s-intman-mingw.adb, - (Initialize_Interrupts): Removed, no longer used. - - * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb, - (Setup_Interrupt_Mask): New procedure. - - * s-intman-vxworks.ads, s-intman-vxworks.adb: Update comments. - - * s-inmaop.ads (Setup_Interrupt_Mask): New procedure - - * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that - this is no longer done in the body of s-taprop - (Server_Task): Explicitely test for Pending_Action in case - System.Parameters.No_Abort is True. - - * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this - is no longer done in the body of s-taprop - -2005-06-14 Robert Dewar - - * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads, - system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads, - system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads, - system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads, - system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads, - system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads, - system-os2.ads, system-interix.ads, system-solaris-sparc.ads, - system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads, - system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads, - system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads, - system-linux-hppa.ads, system-vms_64.ads, - system-vxworks-alpha.ads: Minor comment update for - AI-362 (unit is Pure). - - * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions - Add pragma Pure_05 for AI-362 - Make remaining conversion functions obsolescent in Ada 95 - - * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha - Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode - Add entries for a-wichun and a-zchuni - Add a-widcha a-zchara for AI-395 - Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines - - * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha - Add entries for a-wichun.o and a-zchuni.o - Entries for a-widcha.o and a-zchara.o - Add entry for a-chacon.o - - * a-ztenau.adb: Add with of Ada.Characters.Conversions - - * a-chacon.ads, a-chacon.adb: New files. - - * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow - categorization violations. - - * a-strmap.ads: Add pragma Pure_05 for AI-362 - * a-strmap.ads: Add note on implicit categorization for AI-362 - - * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362 - - * par-prag.adb: Dummy entry for pragma Persistent_BSS - Set Ada_Version_Explicit, for implementation of AI-362 - Add processing for pragma Pure_05 and Preelaborate_05 - Add entry for Assertion_Policy pragma - - * sem.adb: Make sure predefined units are compiled with GNAT_Mode true - when needed for proper processing of categorization stuff - - * sem_cat.adb: - For several cases, make errors in preealborate units warnings, - instead of errors, if GNAT_Mode is set. For AI-362. - - * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in - preelaborate unit is now warning if in GNAT mode - - * s-stoele.ads: Document AI-362 for pragma preelaborate - -2005-06-14 Doug Rupp - - * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads, - s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads: - Default_Exception_Msg_Max_Length: new parameter. - - * a-except.ads: (Exception_Msg_Max_Length): Set to - System.Parameters.Default_Exception_Msg_Max_Length - Add pragma Preelaborate_05 for AI-362 - Add warnings off to allow categorization violations for AI-362 - -2005-06-14 Vincent Celier - - * gnatsym.adb: Adapt to modification of package Symbols: procedure - Process is now in package Processing. - - * symbols.ads, symbols.adb: - (Processing): New package, containing procedure Process - - * symbols-vms-alpha.adb: - Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb - - * symbols-vms.adb, symbols-processing-vms-alpha.adb, - symbols-processing-vms-ia64.adb: New files. - -2005-06-14 Pascal Obry - - * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous - implementation. This new version generates the proper DllMain routine - to initialize the SAL. The DllMain is generated in Ada and compiled - before being added as option to the library build command. - -2005-06-14 Doug Rupp - Pascal Obry - - * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in - call to decc$translate_vms. - (__gnat_locate_regular_file): Check if the path_val contains quotes. We - need to remove those quotes before catenating the filename. - (__gnat_locate_exec_on_path): improvements to the Win32 section: - * avoid allocating the memory twice for better efficiency; - * allocate 32K buffer for environment expansion as suggested by MSDN; - * prepend ".;" to the path so that current directory is searched too. - -2005-06-14 Robert Dewar - - * a-except.adb (Exception_Identity): return Null_Id for null occurrence - instead of raising CE (AI-241) - Add warnings off to allow categorization violations for AI-362 - -2005-06-14 Robert Dewar - - * ali-util.adb, gnatbind.adb: Remove references to - Force_RM_Elaboration_Order. - - * switch-b.adb: Remove recognition of -f switch - -2005-06-14 Pascal Obry - - * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New - implementation which is slightly more efficient. - -2005-06-14 Gary Dismukes - Javier Miranda - Ed Schonberg - Hristian Kirtchev - - * exp_ch4.adb (Expand_Allocator_Expression): When an initialized - allocator's designated type is a class-wide type, and compiling for - Ada 2005, emit a run-time check that the accessibility level of the - type given in the allocator's expression is not deeper than the level - of the allocator's access type. - - (Tagged_Membership): Modified to gives support to abstract interface - types. - - * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component - Access_Level. - (Descendant_Tag): New predefined function - (Is_Descendant_At_Same_Level): New predefined function - (Get_Access_Level): New private function - (Set_Access_Level): New private procedure - (IW_Membership): New function. Given the tag of an object and the tag - associated with an interface, evaluate if the object implements the - interface. - (Register_Interface_Tag): New procedure used to initialize the table of - interfaces used by the IW_Membership function. - (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue - of the dispatch table. - (Inherit_TSD): Modified to copy the table of ancestor tags plus the - table of interfaces of the parent. - (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag. - (External_Tag): Raise Tag_Error if the passed tag equals No_Tag. - (Parent_Tag): Return No_Tag in the case of a root-level tagged type, - and raise Tag_Error if the passed tag equalis No_Tag, to conform with - Ada 2005 semantics for the new predefined function. - - * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate - call to Descendant_Tag rather than Internal_Tag. - (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that - the accessibility level of the attribute's Item parameter is not deeper - than the level of the attribute's prefix type. Tag_Error is raised if - the check fails. The check is only emitted for Ada_05. - (Find_Stream_Subprogram): If a TSS exists on the type itself for the - requested stream attribute, use it. - (Expand_N_Attribute_Reference): If the designated type is an interface - then rewrite the referenced object as a conversion to force the - displacement of the pointer to the secondary dispatch table. - (Expand_N_Attribute_Reference, case 'Constrained): Return false if this - is a dereference of an object with a constrained partial view. - - * exp_ch5.adb (Expand_N_Return_Statement): When a function's result - type is a class-wide type, emit a run-time check that the accessibility - level of the returned object is not deeper than the level of the - function's master (only when compiling for Ada 2005). - - * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc, - Action_Nb_Arg): Add entries for new Get_Access_Level and - Set_Access_Level routines in these tables. - (Make_DT): Generate a call to set the accessibility level of the - tagged type in its TSD. - (Make_DT): Code cleanup. The functionality of generating all the - secondary dispatch tables has been moved to freeze_record_type. - (Make_Abstract_Interface_DT): Minor code cleanup. - (Set_All_DT_Position): Code cleanup. As part of the code cleanup - this subprogram implements a new algorithm that provides the - same functionality and it is more clear in case of primitives - associated with abstract interfaces. - (Set_All_Interfaces_DTC_Entity): Removed. As part of the code - clean up, the functionality of this subprogram is now provided - by Set_All_DT_Position. - (Write_DT): New subprogram: a debugging procedure designed to be called - within gdb to display the dispatch tables associated with a tagged - type. - (Collect_All_Interfaces): New subprogram that collects the whole list - of interfaces that are directly or indirectly implemented by a tagged - type. - (Default_Prim_Op_Position): New subprogram that returns the fixed - position in the dispatch table of the default primitive operations. - (Expand_Interface_Actuals): New subprogram to generate code that - displaces all the actuals corresponding to class-wide interfaces to - reference the interface tag of the actual object. - (Expand_Interface_Conversion): New subprogram. Reference the base of - the object to give access to the interface tag associated with the - secondary dispatch table. - (Expand_Interface_Thunk): New subprogram that generates the code of the - thunk. This is required for compatibility with the C+ ABI. - (Make_Abstract_Interface_DT): New subprogram that generate the - declarations for the secondary dispatch tables associated with an - abstract interface. - (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity - attribute for each primitive operation covering interface subprograms - (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position): - These subprograms were upgraded to give support to abstract interfaces - - * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag, - RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and - RE_Set_Access_Level. - (RE_Unit_Table): Add entries for new Ada.Tags operations. - Add support to call the followig new run-time subprograms: - IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top - - * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to - match its full declaration when both have an access definition with - statically matching designated subtypes. - (Analyze_Component_Declaration): Delete commented out code that was - incorrectly setting the scope of an anonymous access component's type. - (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of - an access discriminant when the containing type is nonlimited. - (Make_Incomplete_Type_Declaration): Create an incomplete type - declaration for a record type that includes self-referential access - components. - (Check_Anonymous_Access_Types): Before full analysis of a record type - declaration, create anonymous access types for each self-referential - access component. - (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that - an access component in this context is a Local_Anonymous_Access, for - proper accessibility checks. - (Access_Definition): Set properly the scope of the anonymous access type - created for a stand-alone access object. - (Find_Type_Of_Object): An object declaration may be given with an access - definition. - (Complete_Subprograms_Derivation): New subprogram used to complete - type derivation of private tagged types implementing interfaces. - In this case some interface primitives may have been overriden - with the partial-view and, instead of re-calculating them, they - are included in the list of primitive operations of the full-view. - (Build_Derived_Record_Type): Modified to give support to private - types implemening interfaces. - (Access_Definition): Reject ALL on anonymous access types. - (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged - type derivation to occur at a deeper accessibility level than the - parent type. - For the case of derivation within a generic body however, disallow the - derivation if the derived type has an ancestor that is a formal type - declared in the formal part of an enclosing generic. - (Analyze_Object_Declaration): For protected objects, remove the check - that they cannot contain interrupt handlers if not declared at library - level. - (Add_Interface_Tag_Components): New subprogram to add the tag components - corresponding to all the abstract interface types implemented by a - record type or a derived record type. - (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type, - Derived_Type_Declaration, Find_Type_Name, Inherit_Components, - Process_Full_View, Record_Type_Declaration): Modified to give - support to abstract interface types - (Collect_Interfaces): New subprogram that collects the list of - interfaces that are not already implemented by the ancestors - (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately - when partial view has no discriminants and full view has defaults. - (Constrain_Access): Reject a constraint on a general access type - if the discriminants of the designated type have defaults. - (Access_Subprogram_Declaration): Associate the Itype node with the inner - full-type declaration or subprogram spec. This is required to handle - nested anonymous declarations. - (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type, - Derived_Type_Declaration, Find_Type_Name, Inherit_Components, - Process_Full_View, Record_Type_Declaration): Modified to give - support to abstract interface types - (Derive_Subprograms): Addition of a new formal to indicate if - we are in the case of an abstact-interface derivation - (Find_Type_Of_Subtype_Indic): Moved from the body of the package - to the specification because it is requied to analyze all the - identifiers found in a list of interfaces - - * debug.adb: Complete documentation of flag "-gnatdZ" - - * exp_ch3.adb: Implement config version of persistent_bss pragma - (Check_Stream_Attributes): Use Stream_Attribute_Available instead of - testing for TSS presence to properly enforce visibility rules. - (Freeze_Record_Type): Code cleanup. Modified to call the subprogram - Make_Abstract_Interfaces_DT to generate the secondary tables - associated with abstract interfaces. - (Build_Init_Procedure): Modified to initialize all the tags - corresponding. - (Component_Needs_Simple_Initialization): Similar to other tags, - interface tags do not need initialization. - (Freeze_Record_Type): Modified to give support to abstract interface - types. - (Expand_N_Object_Declaration): Do not generate an initialization for - a scalar temporary marked as internal. - - * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an - in-out parameter that is a component in an initialization procedure, - whose constraint might depend on discriminants, and that may be - misaligned because of packing or representation clauses. - (Is_Legal_Copy): New predicate to determine whether a possibly - misaligned in-out actual can actually be passed by copy/return. This - is an error in case the type is by_reference, and a warning if this is - the consequence of a DEC import pragma on the subprogram. - (Expand_Call, Freeze_Subprogram): Modified to give support to abstract - interface types - (Expand_Inlined_Call): Mark temporary generated for the return value as - internal, so that no useless scalar normalization is generated for it. - (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to - null procedure can always be inlined. - (Expand_N_Subprogram_Declaration): If this is the declaration of a null - procedure, generate an explicit empty body for it. - - * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram. - Given a type implementing an interface, returns the corresponding - access_disp_table value. - (Find_Interface_Tag): New subprogram. Given a type implementing an - interface, returns the record component containing the tag of the - interface. - (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the - previous ones that return the corresponding tag and access_disp_table - entities. - (Is_Predefined_Dispatching_Operation): Determines if a subprogram - is a predefined primitive operation. - (Expand_Subtype_From_Expr): If the expression is a selected component - within an initialization procedure, compute its actual subtype, because - the component may depend on the discriminants of the enclosing record. - - * i-cpp.ads, i-cpp.adb: - This package has been left available for compatibility with previous - versions of the frontend. As part of the new layout this is now a - dummy package that uses declarations available at a-tags.ads - - * par-ch3.adb (P_Identifier_Declarations): Give an error for use of - "constant access" and "aliased [constant] access" when not compiling - with -gnat05. - Suppress Ada 2005 keyword warning if -gnatwY used - (P_Identifier_Declarations): Add support for object declarations with - access definitions. - (Private_Extension_Declaration): Complete the documentation - (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list - attribute in case of private extension declaration - (P_Type_Declaration): Mark as "abstract" the type declarations - corresponding with protected, synchronized and task interfaces - (P_Declarative_Items): "not" and "overriding" are overriding indicators - for a subprogram or instance declaration. - - * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an - instantiation that is a dispatching operation has controlling access - parameters that are null excluding. - Save and restore Ada_Version_Explicit, for implementation of AI-362 - (Validate_Derived_Type_Instance): Add check for abstract interface - types. - (Analyze_Formal_Package): Establish Instantiation source for the copy of - the generic that is created to represent the formal package. - (Analyze_Package_Instantiation): Instantiate body immediately if the - package is a predefined unit that contains inlined subprograms, and - we are compiling for a Configurable_Run_Time. - (Instantiate_Formal_Subprogram): Indicate that null default subprogram - If the program has a null default, generate an empty body for it. - - * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update - error message condition, null procedures are correctly detected now. - (New_Overloaded_Entity): Bypass trivial overriding indicator check - for subprograms in the context of protected types. Instead, the - indicator is examined in Sem_Ch9 while analysing the subprogram - declaration. - (Check_Overriding_Indicator): Check consistency of overriding indicator - on subprogram stubs as well. - (Analyze_Subprogram_Declaration): Diagnose null procedures declared at - the library level. - (Analize_Subprogram_Specification): When analyzing a subprogram in which - the type of the first formal is a concurrent type, replace this type - by the corresponding record type. - (Analyze_Subprogram_Body): Undo the previous work. - (Analyze_Procedure_Call): If the call has the form Object.Op, the - analysis of the prefix ends up analyzing the call itself, after which - we are done. - (Has_Interface_Formals): New subprogram subsidiary to analyze - subprogram_specification that returns true if some non - class-wide interface subprogram is found - (New_Overloaded_Entity): Modified to give support to abstract - interface types - (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous - access to subprograms must be recursive. - (Is_Unchecked_Conversion): Improve the test that recognizes - instantiations of Unchecked_Conversion, and allows them in bodies that - are to be inlined by the front-end. When the body comes from an - instantiation, a reference to Unchecked_Conversion will be an - Expanded_Name, even though the body has not been analyzed yet. - Replace Is_Overriding and Not_Overriding in subprogram_indication with - Must_Override and Must_Not_Override, to better express intent of AI. - (Analyze_Subprogram_Body): If an overriding indicator is given, check - that it is consistent with the overrinding status of the subprogram - at this point. - (Analyze_Subprogram_Declaration): Indicate that a null procedure is - always inlined. - If the subprogram is a null procedure, indicate that it does not need - a completion. - - * sem_disp.adb (Check_Controlling_Type): Give support to entities - available through limited-with clauses. - (Check_Dispatching_Operation): A stub acts like a body, and therefore is - allowed as the last primitive of a tagged type if it has no previous - spec. - (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified - to give support to abstract interface types - - * sem_res.adb (Valid_Conversion): Perform an accessibility level check - in the case where the target type is an anonymous access type of an - object or component (that is, when Is_Local_Anonymous_Access is true). - Prevent the special checks for conversions of access discriminants in - the case where the discriminant belongs to a nonlimited type, since - such discriminants have their accessibility level defined in the same - way as a normal component of an anonymous access type. - (Resolve_Allocator): When an allocator's designated type is a class-wide - type, check that the accessibility level of type given in the - allocator's expression or subtype indication is not statically deeper - than the level of the allocator's access type. - (Check_Discriminant_Use): Diagnose discriminant given by an expanded - name in a discriminant constraint of a record component. - (Resolve_Explicit_Dereference): Do not check whether the type is - incomplete when the dereference is a use of an access discriminant in - an initialization procedure. - (Resolve_Type_Conversion): Handle conversions to abstract interface - types. - (Valid_Tagged_Conversion): The conversion of a tagged type to an - abstract interface type is always valid. - (Valid_Conversion): Modified to give support to abstract interface types - (Resolve_Actuals): Enable full error reporting on view conversions - between unrelated by_reference array types. - The rule for view conversions of arrays with aliased components is - weakened in Ada 2005. - Call to obsolescent subprogram is now considered to be a violation of - pragma Restrictions (No_Obsolescent_Features). - (Check_Direct_Boolean_Operator): If the boolean operation has been - constant-folded, there is nothing to check. - (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer - check on possible violation of restriction No_Direct_Boolean_Operators - until after expansion of operands, to prevent spurious errors when - operation is constant-folded. - - * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type, - Has_Compatible_Type): Modified to give support to abstract interface - types. - (Interface_Present_In_Ancestor): New function to theck if some ancestor - of a given type implements a given interface - - * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose - prefix is a parameterless function that returns an access_to_procedure. - (Transform_Object_Operation): Handle properly function calls of the - form Obj.Op (X), which prior to analysis appear as indexed components. - (Analyze_One_Call): Complete the error notification to help new Ada - 2005 users. - (Analyze_Allocator): For an allocator without an initial value, where - the designated type has a constrained partial view, a discriminant - constraint is illegal. - -2005-06-14 Robert Dewar - - * a-textio.adb (Set_Col): Fix two errors noticed recently, having to - do with treatment of Set_Col when positioned at end of line character. - -2005-06-14 Robert Dewar - - * atree.adb: (Elist*): Protect against uninitialized field - -2005-06-14 Ed Schonberg - - * checks.adb (Install_Null_Excluding_Check): Do not generate checks - for an attribute reference that returns an access type. - (Apply_Discriminant_Check): No need for check if (designated) type has - constrained partial view. - - (Apply_Float_Conversion_Check): Generate a short-circuit expression for - both bound checks, rather than a conjunction. - (Insert_Valid_Check): If the expression is an actual that is an indexed - component of a bit-packed array, force expansion of the packed element - reference, because it is specifically inhibited elsewhere. - -2005-06-14 Vincent Celier - - * clean.adb (Clean_Project): Correctly delete executable specified as - absolute path names. - - * make.adb (Gnatmake): Allow relative executable path names with - directory information even when project files are used. - (Change_To_Object_Directory): Fail gracefully when unable to change - current working directory to object directory of a project. - (Gnatmake): Remove exception handler that could no longer be exercized - (Compile_Sources.Compile): Use deep copies of arguments, as some of them - may be deallocated by Normalize_Arguments. - (Collect_Arguments): Eliminate empty arguments - - * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False, - and set to True when -U is used for GNAT PRETTY or GNAT METRIC. - (Check_Project): Return False when Project is No_Project. Return True - when All_Projects is True. - (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set - All_Projects to True. - Minor reformatting - -2005-06-14 Ed Schonberg - Javier Miranda - Thomas Quinot - Robert Dewar - Hristian Kirtchev - Gary Dismukes - - * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on - anonymous access types, to indicate that the accessibility level of - the type is determined by that of the enclosing declaration. - (Has_Persistent_BSS): New flag - (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage - of this attribute with functions. - (Is_Primitive_Wrapper): Remove the barrier. - (Has_Specified_Stream_Input, Has_Specified_Stream_Output, - Has_Specified_Stream_Read, Has_Specified_Stream_Write): - New subprograms. - (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output, - Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write): - New subprograms. - (Is_Pure_Unit_Access_Type): New flag - (Abstract_Interfaces): Complete the assertion to cover all usages. - (Set_Is_Interface): Complete the assertion to cover all usages. - (Is_Primitive_Wrapper): New attribute. - (Is_Obsolescent): Now applies to all entities (though it is only set - for subprograms currently) - New flag: Has_Constrained_Partial_View, to implemente Ada 2005 AI-363, - which solves various problems concerning access subtypes. - (Has_Persistent_BSS): New flag - (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup. - Remove these subprograms because this attribute is currently - not used. - New entity flags: - Has_Specified_Stream_Input (Flag190) - Has_Specified_Stream_Output (Flag191) - Has_Specified_Stream_Read (Flag192) - Has_Specified_Stream_Write (Flag193) - Present in all type and subtype entities. Set for a given view if the - corresponding stream-oriented attribute has been defined by an - attribute definition clause. When such a clause occurs, a TSS is set - on the underlying full view; the flags are used to track visibility of - the attribute definition clause for partial or incomplete views. - (Is_Pure_Unit_Access_Type): New flag - Clarify use of Is_Internal. - (Is_Primitive_Wrapper): New attribute present in primitive subprograms - internally generated to wrap the invocation of tasks and protected - types that implement interfaces. - (Implementation_Base_Type): Documentation correction - (Is_Obsolescent): Now applies to all entities (though it is only set - for subprograms currently) - New flag: Has_Constrained_Partial_View, to implement Ada 2005 AI-363, - which solves various problems concerning access subtypes. - - * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance - for examined parameters. Identify unequal parameter list lengths as - non-conformant parameters. - (Overriding_Possible): Do not check for "All" qualifier in declaration - of controlling access parameter, following prescription of AI-404. - (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms - that build the procedure body that wraps an entry invocation - (Build_Corresponding_Record, Build_Protected_Sub_Specification, - Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration, - Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to - give support to abstract interface types - - * freeze.adb (Freeze_Entity): Issue error message if - Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the - type has no storage pool (Ada 2005) AI-366. - Also modified to give support to abstract interface types - (Freeze_Subprogram): Issue an error for a dispatching subprogram with an - Inline_Always pragma. - - * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may - now begin an entry declaration. - (P_Entry_Or_Subprogram_With_Indicator): New procedure in - P_Protected_Operation_Declaration_Opt. Parse an entry declaration or - a subprogram declaration preceded by an overriding indicator. - (P_Protected_Operation_Declaration_Opt): Add case for parsing entry - declarations or subprogram declarations preceded by reserved words - "not" or "overriding". - (P_Entry_Declaration): Update comment. Parse and check overriding - indicator, set semantic flags of entry declarations. - (P_Task): New error message in case of private applied - to a task type declaration. - (P_Protected): New error message in case of private applied - to a task type declaration. - - * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case - in which the full view of a type implementing an interface is a - concurrent type. - (Has_Overriding_Pragma): Remove obsolete implementation of AI-218. - Declare_Inherited_Private_Subprograms): If an explicit operation - overrides an operation that is inherited in the private part, mark the - explicit one as overriding, to enable overriding indicator checks. - (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from - full view to partial view, to simplify handling in back-end. - - * sprint.adb: Print interface lists where needed: derived types, - protected types, task types. - output "is null" for null procedures. Part of implementation of - - * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366 - relaxation of rules for access types in pure, shared passive partitions. - - * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to - first read discriminants into temporary objects, performing checks on - the read values, then possibly performing discriminant checks on the - actual (if it is constrained), and only finally reading the components - into a constrained temporary object. - (Build_Elementary_Input_Call): Adjust the specific circuitry for the - case of reading discriminants of a mutable record type to recognize - the new form of the code generated by - Build_Mutable_Record_Read_Procedure. - - * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms - of a simple call to Make_TSS_Name. - (Make_TSS_Name_Local): Add the TSS name as the last thing in the name - buffer, in order for Is_TSS to work correctly on local TSS names. - - * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag - Is_Local_Anonymous_Access to check legaliy of attributes in the - context of access components and stand-alone access objects. - (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is - treated as available for a limited private type if there is an - attribute_definition_clause that applies to its full view, but not in - other cases where the attribute is available for the full view - (specifically, the sole fact that the full view is non-limited does not - make the attribute available for the partial view). - (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a - non-overloaded intrinsic subprogram. - (Check_Stream_Attribute): Reject an attribute reference for an - unavailable stream attribute even if the prefix is not a limited type - (case of a 'Input attribute reference for an abstract, non-classwide - type) - (Stream_Attribute_Available): New function to determine whether a stream - attribute is available at a place. - (Check_Attribute): Use Stream_Attribute_Available instead of just - testing for TSS presence on the implementation base type. - (Analyze_Attribute): Modified to give support to task interfaces. - (Analyze_Access_Attribute): Add error check for use of an Access (or - Unrestricted_Access) attribute with a subprogram marked as - Inline_Always. - (Analyze_Attribute, case Attribute_Address): Add error check for use of - an Address attribute with a subprogram marked as Inline_Always. - Update Eval_Attribute to handle new value of Width from AI-395 - - * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram. - (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write): - Factor common code across the stream-oriented attribute circcuits into - a new subprogram, Analyze_Stream_TSS_Definition. The new uniform - processing is functionally identical to the previous duplicated one, - except that an expression that denotes an abstract subprogram will now - be rejected, as mandated by AI-195 item 5. - - * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag - Is_Local_Anonymous_Access to apply accessibility checks to access - components and stand-alone access objects. - (Has_Discriminant_Dependent_Constraint): Moved to spec for use - elsewhere. - (Is_Potentially_Persistent_Type): New function - (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is - a heap-object whose type has a constrained partial view, the object is - unconstrained and the component may depend on a discriminant, making its - renaming illegal. - - * sinfo.ads, sinfo.adb - (Must_Not_Override): Flag applicable to N_Entry_Declaration. - (Must_Override): Flag applicable to N_Entry_Declaration. - Indicate that interface_list can appear in single task and single - protected declarations. - Replace Is_Overriding and Not_Overriding with Must_Override and - Must_Not_Override, to better express intent of AI. - Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence - of an overriding indicator in a subprogram or instance. - Ada 2005 (AI-248) Null_Present can appear in a procedure specification. - Add the overriding indicator [[not] overriding] construct to the - following grammar productions: - ENTRY_DECLARATION - GENERIC_INSTANTIATION - SUBPROGRAM_SPECIFICATION - - * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body - can start with an overriding indicator. - - * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set - flags accordingly on subrogram specifications or instances. - - * sem_ch8.adb: - (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the - overriding_indicator, if present, is consistent with status of spec. - Improve error message for null-excluding checks on controlling access - parameters. - (Check_In_Previous_With_Clause): Protect the frontend against - previously reported critical errors in the context clauses. - Save and restore Ada_Version_Explicit, for implementation of AI-362 - (Analyze_Subprogram_Renaming): If the new entity is a dispatching - operation verify that controlling formals of the renamed entity that - are access parameters are explicitly non-null. - (Find_Expanded_Name): Improve error message when prefix is an illegal - reference to a private child unit. - - * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb, - 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. - -2005-06-14 Ed Schonberg - Robert Dewar - - * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user - code, not on the bodies of predefined operations, to cut down on - spurious noise. - -2005-06-14 Ed Schonberg - - * exp_aggr.adb (Aggr_Size_OK): An array with no components can always - be expanded in place. The size computation does not require a - subtraction, which would raise an exception on a compiler built with - assertions when the upper bound is Integer'first. - (Flatten): For an array of composite components, take into account the - size of the components to determine whether it is safe to expand the - array into a purely positional representation. - -2005-06-14 Thomas Quinot - - * exp_ch2.adb (Param_Entity): Take the case of an expanded_name - denoting a formal parameter into account. - -2005-06-14 Ed Schonberg - - * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within - the entry_call alternative of a conditional entry call, wrap the - conditional entry call itself. - -2005-06-14 Nicolas Setton - Ed Schonberg - - * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of - the "simple_choice" member in a variant record, in accordance with the - description in the package spec: the information output for a constant - should be "S number", not "SS number". - (Get_Encoded_Name): Return at once if not generating code. Avoids name - overflow problem when compiling with -gnatct, for ASIS/gnatmetrics. - -2005-06-14 Thomas Quinot - - * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an - RACW without any primitives, do not generate the if statement for - dispatching by name in the PolyORB/DSA case, as it would be malformed - (it would have an Elsif_Parts list that is not No_List, but with a - length of 0). - -2005-06-14 Robert Dewar - - * exp_intr.adb, par-ch5.adb: Minor fix to error message text - -2005-06-14 Jose Ruiz - - * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi - can determine whether pragma Suppress_Exception_Locations is in effect. - - * utils2.c (build_call_raise): Do not pass the file name to the - exception handler if pragma Suppress_Exception_Locations is in effect. - (build_allocator): Add and process arg IGNORE_INIT_TYPE. - -2005-06-14 Emmanuel Briot - - * g-debpoo.adb (Deallocate, Dereference): Improve output. - -2005-06-14 Nicolas Roche - - * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal - to "" - (Next_Level): Fix minor bug in handling of ../dir case - (Read): Add dir separator to Directory name so that "" is understood as - "/" - -2005-06-14 Pascal Obry - - * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after - releasing the items. - -2005-06-14 Vincent Celier - Cyrille Comar - - * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions - with output file descriptor and with output file name. - (Dup, Dup2): Now global procedures as they are used by two subprograms - (Copy): Allocate the 200K buffer on the heap rather than on the stack. - -2005-06-14 Thomas Quinot - - 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 - socket pair to 127.0.0.1 to limit the scope for 'theft' of connection. - Set listen backlog to 1 to ensure that we detect socket theft by a - failure of our own connect(2) call. - (Check_Selector): Improve documentation of the selector mechanism. - (Broadcast_Inet_Addr): New constant. - -2005-06-14 Gary Dismukes - - * layout.adb (Discrimify): Remove resetting of Vtype to the underlying - type which turns out to be an incomplete and incorrect fix. - (Layout_Array_Type): Use Underlying_Type when checking whether the scope - of the type is declared in a record (for determination of insertion - type). - (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of - a private type and ensure that the primary entity is used for the type - of the newly created function's V formal by taking the Etype of the - view. - -2005-06-14 Javier Miranda - Jose Ruiz - Robert Dewar - Ed Schonberg - - * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter - that indicates if we are parsing a compilation unit found in a - limited-with clause. - It is use to avoid the circularity check. - - * par.ads, par.adb (Par): Addition of a new parameter to indicate if - we are parsing a compilation unit found in a limited-with clause. This - is use to avoid the circularity check. - - * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the - unit as a consequence of parsing a limited-with clause. This is used - to avoid the circularity check. - - * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used - (Analyze_Context): Limited-with clauses are now allowed - in more compilation units. - (Analyze_Subunit_Context, Check_Parent): Protect the frontend - againts previously reported critical errors in context clauses - (Install_Limited_Withed_Unit): Code cleanup plus static detection - of two further errors: renamed subprograms and renamed packages - are not allowed in limited with clauses. - (Install_Siblings): Do not install private_with_clauses on the package - declaration for a non-private child unit. - (Re_Install_Parents): When a parent of the subunit is reinstalled, - reset visibility of child units properly. - (Install_Withed_Unit): When a child unit appears in a with_clause of its - parent, it is immediately visible. - -2005-06-14 Ed Schonberg - Emmanuel Briot - - * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity - declared within an inlined body as referenced, to prevent spurious - warnings. - (Output_One_Ref): If an entity renames an array component, indicate in - the ALI file that this aliases (renames) the array. Capture as well - function renamings that rename predefined operations. - Add information about generic parent for package and subprogram - instances. - (Get_Type_Reference): For a subtype that is the renaming of an actual in - an instantiation, use the first_subtype to ensure that we don't generate - cross-reference information for internal types. - 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.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. - -2005-06-10 Doug Rupp - Arnaud Charlet - Olivier Hainque - Jose Ruiz - - * Make-lang.in: Add initialize.o when needed. - Remove obsolete references to RT_FLAGS. - Add missing dependencies for sdefault.o - - * initialize.c: New file. - - * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS. - [VMS] cond_signal_table: Fix problem in declaration. - [VMS] __gnat_error_handler: rewrite. - Move all __gnat_initialize() routines to initialize.c - Specialize the former "hpux" section to "hppa hpux", as this is what the - section really is here for and we now have other hpux ports that need - different contents. - (__gnat_adjust_context_for_raise) i386-linux: First version of this - function for this target. Adjust PC by one in the machine context. This - adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but - it is more reliable to do that in the signal handler itself. - (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction - flags, so that the handler is passed the context structure to adjust - prior to the raise. - (__gnat_error_handler) i386-linux: Adjust the signature to match what a - SA_SIGINFO sigaction should look like. Call - __gnat_adjust_context_for_raise before actually raising. Cleanup unused - Machine_State_Operations stuff. - Add conditional code so that the x86_64 is also supported. - -2005-06-14 Pascal Obry - - * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given - the library name. - -2005-06-14 Robert Dewar - - * opt.ads, opt.adb: New flags for persistent_bss mode - Add Ada_Version_Explicit, for implementation of AI-362 - Add Assertions_Enabled_Config and associated handling - Needed since setting can be changed with Assertion_Policy pragma - Add new flag Warn_On_Ada_2005_Compatibility - - * switch-c.adb: Recognize -gnatwy/Y - Set Ada_Version_Explicit, for implementation of AI-362 - The -gnatg switch now includes -gnatyu - - * usage.adb: Add -gnatwy/Y - Remove wrong asterisk on -gnatwX line - Add line for -gnatyu switch - -2005-06-14 Vincent Celier - - * osint.adb (Add_Default_Search_Dirs): Put source and object - directories of project files before directories coming from - ADA_INCLUDE_PATH and ADA_OBJECTS_PATH. - -2005-06-14 Robert Dewar - - 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 - -2005-06-14 Vincent Celier - - * prep.adb (Preprocess): Ignore error when scanning the first token of - a line. - -2005-06-14 Vincent Celier - - * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp" - (Check_Stand_Alone_Library): If the specified reference symbol file does - not exist, only issue a warning when the symbol policy is not - Controlled. And, when symbol policy is Compliant, set the symbol - policy to Autonomous. - -2005-06-14 Vincent Celier - - * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List - when the project file in a with clause is not the last one, that is the - project file name is followed by a comma. - * prj-pp.adb: (First_With_In_List): New Boolean global variable - (Print): Issue list of project files separated by commas in with clauses - according to the values returned by Is_Not_Last_In_List. - * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function - (Set_Is_Not_Last_In_List): New procedure - -2005-06-14 Eric Botcazou - - * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer. - -2005-06-14 Robert Dewar - - * scng.adb: Add call to new Check_EOF routine - (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24 - Add some comments regarding wide character handling - - * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu - - * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu - - * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format - 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. - - * treeprs.adt: Remove a blank line so that output from xtreeprs does - not have an extra blank line - -2005-06-14 Gary Dismukes - - * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the - expression when the component type is an anonymous access type to - ensure that appropriate accessibility checks are done. - - * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the - expression of an assignment when the target object is of an anonymous - access type. This ensures that required accessibility checks are done. - (One_Bound): Move the check for type Universal_Integer to - Process_Bounds. - (Process_Bounds): Check whether the type of the preanalyzed range is - Universal_Integer, and in that case set Typ to Integer_Type prior - to setting the type of the original range and the calls to One_Bound. - -2005-06-14 Ed Schonberg - - * sem_case.adb (Expand_Others_Choice): Improve warning. - -2005-06-14 Ed Schonberg - - * sem_eval.adb (Subtypes_Statically_Match): Use discriminant - constraint of full view if present, when other type is discriminated. - (Eval_Relational_Op): Recognize tests of pointer values against Null, - when the pointer is known to be non-null, and emit appropriate warning. - -2005-06-14 Robert Dewar - Ed Schonberg - - 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 - Test Ada_Version_Explicit for Preelaborate_05 and Pure_05 - Add processing for pragma Pure_05 and Preelaborate_05 - Add processing for Assertion_Policy pragma - Add pragma identifiers for Assert - (Analyze_Pragma, case Assert): Check number of arguments - (Process_Inline): Additional guard against an illegal program, where the - argument of the pragma is undefined, and warnings on redundant - constructs are enabled. - (Analyze_Pragma, case Obsolescent): Allow an optional second argument - Ada_05 to this pragma, specifying that the pragma is only active in - Ada_05 mode. - (Check_Arg_Order): New procedure - Add appropriate calls to this procedure throughout - Also throughout, check entity name before doing any other checks - - * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS - Remove obsolete pragma Persistent_Data, Persistent_Object - Add entries for pragma Pure_05 and Preelaborate_05 - Add entries for Assertion_Policy pragma and associated names - Add some names for pragma argument processing - - * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function - -2005-06-14 Ed Schonberg - - * sem_warn.adb (Warn_On_Known_Condition): If the constant expression - appears within a negation (either from source or as a rewriting of - inequality) adjust text of warning accordingly. - -2005-06-14 Thomas Quinot - - * s-strxdr.adb: Follow AI95-00132 - -2005-06-14 Arnaud Charlet - - * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition. - -2005-06-14 Arnaud Charlet - Jose Ruiz - - * s-tposen.adb, s-tpobop.adb - (Exceptional_Complete_Rendezvous): Save the occurrence and not only - the exception id. - (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that - there is no violation of the Max_Entry_Queue_Length restriction (if it - has been set); Program_Error is raised otherwise. - (Requeue_Call): Before requeuing the task on the target entry queue we - check that there is no violation of the Max_Entry_Queue_Length - restriction (if it has been set); Program_Error is raised otherwise. - -2005-06-14 Robert Dewar - - * styleg.adb: Fix several remaining problems in -gnatyu switch - Blank line count not reset at start - Scanning outside source buffer in some cases - Confusing message for blanks at end of file - Non-empty blank lines not recognized - - * 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 - -2005-06-14 Sergey Rybin - - * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message. - -2005-06-14 Doug Rupp - Vincent Celier - - * vms_conv.ads, vms_conv.adb: Remove "Library" command. - Update copyright. - - * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY - Remove "Library" command. - Change keyword for style check -gnatyd from NOCRLF to - DOS_LINE_ENDINGS. - Remove useless second style check keyword NONE - Remove help documentation for inexistent style check keyword - RM_COLUMN_LAYOUT. - Add help documentation for style check keywords DOS_LINE_ENDINGS, - UNNECESSARY_BLANK_LINES and XTRA_PARENS - 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 - -2005-06-14 Vincent Celier - - * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if - gprmake was invoked with -d. - (Compile_Sources): If -d was used, output the "completed ..." message - for each compilation. - (Scan_Arg): Recognize new switch -d - When -c and at least one main is specified, set - Unique_Compile to True to guarantee that no other sources will be - compiled. - -2005-06-14 Matthew Heaney - - * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb] - * a-swuwha.ads, a-swuwha.adb: New files - - * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb] - * a-szuzha.ads, a-szuzha.adb: New files. - - * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads, - a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads, - a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads, - a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, - a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads, - a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, - a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, - a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads, - a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb, - a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the - Ada 2005 RM. - -2005-06-10 Eric Botcazou - Olivier Hainque - Richard Kenner - Pascal Obry - - * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE. - - * trans.c (call_to_gnu): Issue a warning for users of Starlet when - making a temporary around a procedure call because of non-addressable - actual parameter. - (process_freeze_entity): If entity is a private type, capture size - information that may have been computed for the full view. - (tree_transform, case N_Allocator): If have initializing expression, - check type for Has_Constrained_Partial_View and pass that to - build_allocator. - (tree_transform, case N_Return_Statement): Pass extra arg to - build_allocator. - - * decl.c (annotate_value): Remove early return if -gnatR is not - specified. - (gnat_to_gnu_field): Don't make a packable type for a component clause - if the position is byte aligned, the field is aliased, and the clause - size isn't a multiple of the packable alignment. It serves no useful - purpose packing-wise and would be rejected later on. - (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator. - - PR ada/20515 - (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the - context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES - instead. - (create_concat_name): Idem. - -2005-06-10 Robert Dewar - Eric Botcazou - Ben Brosgol - Cyrille Comar - Sergey Rybin - Pascal Obry - - * gnat_rm.texi: Add documentation for pragma Persistent_BSS - Document second argument (Ada_05) of pragma Obsolescent - Add note that call to subprogram marked with pragma Obsolescent - is now considered to be a violation of program Restrictions - (No_Obsolescent_Features). - (Implementation Defined Pragmas) : Make it clear - that only machine-dependent attributes are supported. - - * gnat_ugn.texi: - Commented out menu lines and empty section for gnatclean examples - Document -gnatwy/Y - Fix some over long lines - Clarify and enhance documentation of ADA_PROJECT_PATH. - Rework section 2.11.2(3) about linking with a non-GNU compiler. - Mention new switch -fcallgraph-info. - Mention new switch -fstack-usage. - For gnatpp, replace '-notab' with '-N' and add this option to Index - Corrected VMS example. - VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF - Minor reformatting - Add documentation for -gnatyu switch (unnecessary blank lines) - Document new switch -U for GNAT PRETTY and GNAT METRIC - Add note about Stdcall being handled as C convention on non Windows OS. - Remove some junk typo in description of gnatbind -S switch - Remove reference to Extensions_Allowed pragma - Document the new order of the directories to be searched (source and - object directories of project files before directories in ADA_*_PATH - environment variables. - - * g-trasym.ads: Document that IRIX is supported - -2005-06-10 Arnaud Charlet - - * Makefile.in: Add initialize.o when needed. - Adapt to new VMS package body Symbols and subunits - No specialized version of a-sytaco is needed for VxWorks. - - * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files. - * a-zchara.ads, a-widcha.ads: New files. - - * system-hpux-ia64.ads: New file. - - * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which - is imported from the VxWorks kernel. - -2005-06-14 Robert Dewar - - * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb, - fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads, - a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads, - s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb, - a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb, - g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads, - i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb, - namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb, - sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads, - s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb, - s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb, - xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting. - -2005-06-14 Thomas Quinot - - * xeinfo.adb: Fix typo in comment - -2005-06-14 Javier Miranda - - * repinfo.ads: Fix typo in comment - -2005-06-14 Gary Dismukes - - * s-finimp.adb (Parent_Tag): Delete this imported function (function - Parent_Tag is now in the visible part of Ada.Tags). - (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of - using imported function. - -2005-06-14 Bernard Banner - - * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should - also apply for handling support for VxSim 653. - -2005-06-14 Eric Botcazou - - * xsnames.adb: Add automatic generation of snames.h. - -2005-06-14 Thomas Quinot - - * gen-soccon.c: Add IP_MULTICAST_IF constant - Minor reformatting and adjustments to prevent warnings. - -2005-06-14 Pascal Obry - - * seh_init.c: Do not include . This is not needed. - -2005-06-03 Andrew Pinski - - * trans.c (gnat_gimplify_expr): Call - recompute_tree_invarant_for_addr_expr when we change - the operand of the ADDR_EXPR. - -2005-05-31 Kaveh R. Ghazi - - * misc.c: Don't include errors.h. - -2005-05-29 Kaveh R. Ghazi - - * raise.c (db): Add ATTRIBUTE_PRINTF_2. - -2005-05-29 Kazu Hirata - - * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix - comment typos. - * gnat_rm.texi, gnat_ugn.texi: Fix typos. - -2005-05-16 Nathanael Nerode - - PR ada/20270 - * Makefile.in: Make TGT_LIB behave correctly. - -2005-04-23 DJ Delorie - - * misc.c: Adjust warning() callers. - -2005-04-16 Laurent Guerby - - PR ada/18847 - * a-nudira.adb (Value): Check for valid string. - * a-nuflra.adb (Value): Likewise. - -2005-04-11 Richard Sandiford - - * lang.opt: Refer to the GCC internals documentation instead of c.opt. - -2005-04-10 Kazu Hirata - - * adaint.c, init.c, tracebak.c: Fix comment typos. - * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos. - -2005-04-07 Laurent Guerby - John David Anglin - - * Makefile.in: Add make ifeq define for hppa linux tasking support. - * system-hpux.ads: Define Signed_Zeros to be True. - * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files. - -2005-04-01 Kazu Hirata - - * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c, - raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment - typos. - -2005-03-30 Tom Tromey - - * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE. - -2005-03-30 Aaron W. LaFramboise - - * adaint.c (_gnat_set_close_on_exec): Mark parameters unused. - -2005-03-29 Robert Dewar - - * sem_res.adb (Resolve_Real_Literal): Generate warning if static - fixed-point expression has value that is not a multiple of the Small - value. - - * opt.ads (Warn_On_Bad_Fixed_Value): New flag - - * s-taprop-tru64.adb (RT_Resolution): Return an integer number of - nanoseconds. - - * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB - -2005-03-29 Vincent Celier - - * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb - (Build_Dynamic_Library.Version_String): Return the empty string when - Lib_Version is empty or when the symbol policy is not Autonomous. - - * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when - a symbol is not in the reference symbol file, increase the Major ID - and set the Minor ID to 0. - Use gsmatch=lequal instead of gsmatch=equal - -2005-03-29 Doug Rupp - - * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical - name and translate. - -2005-03-29 Javier Miranda - - * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed. - (Inherit_DT): The first formal has been redefined as a Tag. - This allows us the removal of the subprogram Get_TSD. - (TSD): Replace the call to Get_TSD by the actual code. - - * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD. - (Make_DT): Upgrade the call to Inherit_TSD according to the - new interface: the first formal is now a Tag. - - * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been - redefined as a Tag. - This change allows us to remove the subprogram Get_TSD. - (CPP_Get_TSD): Subprogram removed. - (TSD): Replace the call to CPP_Get_TSD by the actual code. - - * rtsfind.ads: Remove support to call the run-time - subprogram Get_TSD - -2005-03-29 Robert Dewar - - * errutil.adb, errout.adb: - Minor comment updates on Line_Terminator references - - * par-ch10.adb: Add ??? comment about line terminator - - * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd - (check dos line terminator). - (Check_Line_Max_Length): New procedure, split off from the existing - Check_Line_Terminator routine. Separating this out allows -gnatyf to - be properly recognized. - - * styleg.adb: Add ??? comment for line terminator reference - - * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored - (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators) - - * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd - (check dos line terminator). - (Check_Line_Max_Length): New procedure, split off from the existing - Check_Line_Terminator routine. Separating this out allows -gnatyf to - be properly recognized. - - * stylesw.ads, stylesw.adb: - Add handling for new -gnatyd switch (check dos line terminator) - - * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator) - Recognize -gnatwb/-gnatwB switches - Include Warn_On_Bad_Fixed_Value for -gnatg - - * usage.adb: - Add line for new -gnatyd switch (check dos line terminator) - - * usage.adb: Add lines for -gnatwb/-gnatwB - - * vms_data.ads: Add entry for NOCRLF (-gnatyd) - - * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB - - * gnat_ugn.texi: Fix overlong lines - Document new -gnatyd switch - Document new -gnatwb/-gnatwB switches - -2005-03-29 Ed Schonberg - - * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in - order to retrieve the component list of the type, before examining - individual components. - - * sem_type.adb (Covers): Types are compatible if one is the base type - of the other, even though their base types might differ when private - views are involved. - -2005-03-29 Thomas Quinot - - * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any, - To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead - of using Set_Renaming_TSS. This ensures that the TSS bodies are not - analyzed if expansion is disabled (which could otherwise cause spurious - error messages if expansion has been disabled due to previous - (unrelated) errors). - - * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion - is disabled, the entity denoted by the argument is the access type - itself, not an underlying record type, so there is no need to go back - to the Corresponding_Remote_Type. - -2005-03-29 Gary Dismukes - Robert Dewar - - * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to - expand a call to an instance of - Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the - Constructor actual of the instance. A class-wide membership - check is also generated, to ensure that the tag passed to the instance - denotes a type in the class. - (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case - of Name_Generic_Dispatching_Constructor. - - * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada - 05 unit for AI-260-02). - - * a-tgdico.ads: New file. - - * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new - predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor. - - * snames.ads, snames.adb (Preset_Names): Add entry for - 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 - the case of renaming of stream attributes when the renaming denotes a - generic formal subprogram association for an abstract formal subprogram. - Check that the attribute is a primitive stream attribute (and not - a class-wide stream attribute) and then rewrite the attribute name - as the name of the appropriate compiler-generated stream primitive. - -2005-03-29 Robert Dewar - - * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to - recursive calls. - (Is_Possibly_Unaligned_Object): Correct typo that - resulted in inaccurate result for unaligned scalars within records. - -2005-03-29 Ed Schonberg - - * freeze.adb (Freeze_Record_Type): If the type of the component is an - itype whose parent is controlled and not yet frozen, do not create a - freeze node for the itype if expansion is disabled. - -2005-03-29 Vincent Celier - - * make.adb (Gnatmake): Don't fail if the main project file is declared - as having no Ada sources. Do not display message "no sources to - compile" in quiet output. - -2005-03-29 Doug Rupp - - * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as - extra tools. - -2005-03-29 Robert Dewar - - * par-ch12.adb (P_Generic): Give better msg for illegal private generic - child. - -2005-03-29 Robert Dewar - - * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after - missing TYPE Improve the error message generated when compiling a - limited interface in Ada83 or Ada95 mode. - -2005-03-29 Robert Dewar - - * par-ch4.adb (P_Name): When a bad attribute is returned, return error, - rather than proceed ahead using a junk attribute name. - -2005-03-29 Vincent Celier - - * prj.ads, prj.adb: (Project_Data): Add new component Display_Name - - * prj-part.adb (Parse_Single_Project): Set the location of a project - on its defining identifier, rather than on the reserved word "project". - - * prj-proc.adb (Expression): Adapt to the fact that default of external - references may be string expressions, not always literal strings. - (Recursive_Process): Set Display_Name equal to Name - when Location is No_Location, that is when there is no actual file. - Get the Display_Name of the project from the source, when it is not a - virtual project. - (Process): Use the Display_Name in error messages - - * prj-strt.adb (External_Reference): Allow default to be string - expressions, not only literal strings. - -2005-03-29 Vincent Celier - - * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol - file and the reference symbol file to be the same file. - -2005-03-29 Thomas Quinot - - * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to - forbid conversion of a local access-to-subprogram type to a remote one. - - * sem_util.adb (Wrong_Type): For a record type that is the expanded - equivalent type for a remote access-to-subprogram type, go back to the - original RAS entity when displaying an error message, so the casing is - the original source casing. - -2005-03-29 Robert Dewar - - * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning - on param update. - -2005-03-29 Ed Schonberg - - * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual - subtype if code is being pre-analyzed, to prevent un-expanded - references to protected formals, among others. - (Analyze_Explicit_Dereference): If the overloaded prefix includes some - interpretation that can be a call, include the result of the call as a - possible interpretation of the dereference. - - * sem_ch5.adb (Process_Bounds): Determine type of range by - pre-analyzing a copy of the original range, and then analyze the range - with the expected type. - - * sem_res.adb (Check_Parameterless_Call): For an explicit dereference - with an overloaded prefix where not all interpretations yield an - access to subprogram, do not rewrite node as a call. - (Resolve_Explicit_Dereference): Recognize the previous case and rewrite - the node as a call once the context identifies the interpretation of - the prefix whose call yields the context type. - (Valid_Conversion): For the case of a conversion between - local access-to-subprogram types, check subtype conformance using - Check_Subtype_Conformant instead of Subtype_Conformant, to have a more - detailed error message. - -2005-03-29 Ed Schonberg - - * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null - indicator, indicate that the formal can never be null. - (Process_Formals): If a formal has a non_null indicator, insert the - resulting subtype immediately before the enclosing subprogram decl, - and not at the beginning of the corresponding declarative part, to - prevent access before elaboration (Ada2005). - -2005-03-29 Richard Kenner - - PR ada/19956 - * utils.c (finish_record_type): Use variable_size when setting sizes. - -2005-03-29 Robert Dewar - - * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to - guarantee Unix style line terminators for the output files, even when - running on windows. - -2005-03-29 Robert Dewar - - * a-direct.ads, a-direct.adb (Start_Search): Free allocated search - buffer if an exception is raised. - -2005-03-29 Ed Falis - - * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with - VxWorks 653 1.4 - -2005-03-29 Robert Dewar - - * sem_util.ads: Minor reformatting - * gnat_rm.texi: Minor editing. - -2005-03-29 Eric Botcazou - - * decl.c (gnat_to_gnu_entity) : Rework comment. - * trans.c (tree_transform) : Use correct predicates. - -2005-03-24 Aaron W. LaFramboise - - * adaint.c (__gnat_portable_spawn): Adjust cast. - -2005-03-23 Joseph S. Myers - - * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove. - -2005-03-17 Pascal Obry - - * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is - used. - - * expect.c (__gnat_waitpid): Moved here from adaint.c. - Reimplement under Win32 using Win32 API. - - (__gnat_kill) [Win32]: Properly close the process handle before leaving - this routine. - -2005-03-17 Eric Botcazou - - * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate. - (DECL_RENAMED_OBJECT): New accessor macro. - (SET_DECL_RENAMED_OBJECT): New setter macro. - - * decl.c (gnat_to_gnu_entity) : Stabilize the renamed - object in all cases. Attach the renamed object to the VAR_DECL. - (gnat_to_gnu_field): Do not lift the record wrapper if the size of the - field is not prescribed. - - * misc.c (gnat_handle_option): Handle -gnatO separately. - (gnat_print_decl) : New case. - Print the DECL_RENAMED_OBJECT node. - - * lang.opt: Declare separate -gnatO option. - - * trans.c (tree_transform) : If the object is a renaming - pointer, replace it with the renamed object. - : Warn for a conversion to a fat - pointer type if the source is not a fat pointer type whose underlying - array has the same non-zero alias set as that of the destination array. - -2005-03-17 Javier Miranda - - * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed. - (Get_Inheritance_Depth): Removed. - (Set_Inheritance_Depth): Removed. - - * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the - subprogram Get_Expanded_Name because it is not referenced by the - frontend. - - * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed. - (CPP_Get_Inheritance_Depth): Removed. - (CPP_Set_Inheritance_Depth): Removed. - - * tbuild.ads, tbuild.adb (Make_DT_Component): Removed. - -2005-03-17 Robert Dewar - - * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC - 3, since we now expect GCC 3 to do all the work. - -2005-03-17 Javier Miranda - - * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition - of one barrier to avoid wrong usage of this attribute. - - * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute - First_Private_Entity. - - * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect - the subprogram against wrong usage. - Adapt the code to traverse the entities in the - scope of a record_type because in addition to its usage regarding - packages, this subprogram is also called by Expand_N_Freeze_Entity - to install the visible declarations of the enclosing scope of a - record_type_with_private to establish the proper visibility before - freezing the entity and related subprograms. - -2005-03-17 Ed Schonberg - - * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to - entry formals. - -2005-03-17 Thomas Quinot - - * exp_ch3.adb (Check_Attr): New subprogram. - (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement - into a new Check_Attr subprogram, in order to provide a more - explanatory error message (including the name of the missing attribute). - (Stream_Operation_OK): Renamed from Stream_Operations_OK. This - subprogram determines whether a default implementation exists for a - given stream attribute. - (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): - Determine whether to generate a default implementation for each stream - attribute separately, as this depends on the specific attribute. - - * exp_strm.adb (Make_Field_Attribute): For the case of an illegal - limited extension where a stream attribute is missing for a limited - component (which will have been flagged in Exp_Ch3.Sem_Attr), do not - generate a bogus reference to the missing attribute to prevent - cascaded errors. Instead, generate a null statement. - - * sem_attr.adb (Check_Stream_Attribute): A stream attribute is - available for a limited type if it has been specified for an ancestor - of the type. - -2005-03-17 Ed Schonberg - - * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed - entity is an operator. - -2005-03-17 Thomas Quinot - - * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist - spec, to make this predicate available to other units. - - * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of - reimplementing it. - - * sem_ch8.adb: Disable expansion of remote access-to-subprogram types - when no distribution runtime library is available. - - * sem_res.adb, sem_dist.adb: Disable expansion of remote - access-to-subprogram types when no distribution runtime library is - available. - (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this - predicate available to other units. - - * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist - spec, to make this predicate available to other units. - -2005-03-17 Vincent Celier - - * make.adb (Insert_Project_Sources): Make sure the Q is always - initialized. - - * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against - the default for the tree, not the global default naming. - - * prj-proc.adb (Recursive_Process): No need to put the default naming - in the project data, it's already there. - -2005-03-17 Doug Rupp - - * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads. - - * 5xcrtl.ads: Renamed to... - * s-crtl-vms64.ads: ...this new file - -2005-03-17 Robert Dewar - - 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-17 Robert Dewar - - * par.adb (Par): Improved msg for attempt to recompile predefined unit - -2005-03-17 Thomas Quinot - - * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a - tagged limited type, the TSS is a newly built renaming declaration: - insert it using Set_TSS, not Copy_TSS. - -2005-03-17 Javier Miranda - - * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and - Try_Object_Operation): Analyze the object that is accessible - through the prefix of the subprogram call before we apply - the transformation of the object-operation notation. - -2005-03-17 Jose Ruiz - - * s-taprob.adb (Initialize_Protection): Initialize the protected - object's owner to Null_Task. - (Lock): If pragma Detect_Blocking is in effect and the caller of this - procedure is already the protected object's owner then Program_Error - is raised. In addition the protected object's owner is updated. - (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller - of this procedure is already the protected object's owner then - Program_Error is raised. - In addition the protected object's owner is updated. - (Unlock): Remove the ownership of the protected object. - - * s-taprob.ads (Protection): Add the field Owner, used to store the - protected object's owner. - This component is needed for detecting one type of potentially blocking - operations (external calls on a protected subprogram with the same - target object as that of the protected action). Document the rest of - the components. - - * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries): - Initialize the protected object's owner to Null_Task. - (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the - caller of this procedure is already the protected object's owner then - Program_Error is raised. - Do not raise Program_Error when this procedure is called from a - protected action. - (Unlock_Entries): Remove the ownership of the protected object. - (Lock_Entries): If pragma Detect_Blocking is in effect and the caller - of this procedure is already the protected object's owner then - Program_Error is raised. - Do not raise Program_Error when this procedure is called from - a protected action. - - * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner, - used to store the protected object's owner. - - * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in - effect and this procedure (a potentially blocking operation) is called - from whithin a protected action, Program_Error is raised. - (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect - and this procedure (a potentially blocking operation) is called from - whithin a protected action, Program_Error is raised. - -2005-03-17 Vincent Celier - Nicolas Setton - - * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini" - switch, not supported by the linker on Darwin. Add '_' before - init, as this character is added unconditionally by the - compiler. - (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the - correct one ".dylib". This fixes detection of the archive files when - building library projects. - -2005-03-17 Vincent Celier - - * switch-m.adb (Normalize_Compiler_Switches): Recognize switches - -gnat83, -gnat95 and -gnat05. - -2005-03-17 Vasiliy Fofanov - - * gnat_ugn.texi: Document gnatmem restriction - -2005-03-17 Thomas Quinot - - * snames.adb: Document new TSS names introduced by exp_dist/exp_tss - cleanup - -2005-03-17 Robert Dewar - - * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb, - a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb, - s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting - - * casing.adb: Comment improvements - -2005-03-17 Pascal Obry - - * g-expect.adb: Minor reformatting. - -2005-03-15 Zack Weinberg - - * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info) - (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi - to dependencies. - -2005-03-15 Vincent Celier - - * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For): - Add new parameter In_Tree to specify the project tree: needed - by the project manager. Adapt to changes in project manager - using new parameter In_Tree. - -2005-03-15 Jakub Jelinek - - * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, - ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of - ada/bldtools to avoid make -jN failures. - -2005-03-15 Eric Botcazou - - * trans.c (gnat_to_gnu) : Set gnu_result - to NULL_TREE on entry. - -2005-03-15 Robert Dewar - - * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads, - system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads, - system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads, - system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads, - system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads, - system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads, - system-interix.ads, system-solaris-sparc.ads, - system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads, - system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads, - system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, - system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads, - system-linux-s390.ads, system-linux-s390x.ads: Add line defining - Compiler_System_Version to be False. - - * opt.ads: Add new flag Opt.Address_Is_Private - - * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private - Add new parameter Compiler_System_Version to avoid checking for - completeness of parameters when compiler is compiling itself. - Allows old versions of GNAT to be compiled with new compiler. - -2005-03-15 Eric Botcazou - - * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function - (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the - calling thread. - (Stack_Base_Available): New flag. - (Get_Page_Size): New overloaded functions imported from C. - (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL, - PROT_ON, PROT_OFF): New constants. - (mprotect): New function imported from C. - (pthread_teb_t): New record type. - - * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone. - (Create_Task): Account for the Yellow Zone and the guard page. - -2005-03-15 Vincent Celier - - * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, - mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb, - mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, - mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For, - Library_File_Name_For): Add new parameter In_Tree - to specify the project tree: needed by the project manager. - Adapt to changes in project manager using new parameter In_Tree. - Remove local imports, use functions in System.CRTL. - - * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed - to use the project manager. - - * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter - In_Tree to designate the project tree. Adapt to changes in the project - manager, using In_Tree. - - * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library, - Copy_Interface_Sources): Add new parameter In_Tree to specify the - project tree: needed by the project manager. - (Build_Library): Check that Arg'Length >= 6 before checking if it - contains "--RTS=...". - - * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For, - Library_File_Name_For): Add new parameter In_Tree to specify the - project tree: needed by the project manager. - - * prj.ads, prj.adb: Major modifications to allow several project trees - in memory at the same time. - Change tables to dynamic tables and hash tables to dynamic hash - tables. Move tables and hash tables from Prj.Com (in the visible part) - and Prj.Env (in the private part). Move some constants from the visible - part to the private part. Make other constants deferred. - (Project_Empty): Make it a variable, not a function - (Empty_Project): Add parameter Tree. Returns the data with the default - naming data of the project tree Tree. - (Initialize): After updating Std_Naming_Data, copy its value to the - component Naming of Project Empty. - (Register_Default_Naming_Scheme): Use and update the default naming - component of the project tree, instead of the global variable - Std_Naming_Data. - (Standard_Naming_Data): Add defaulted parameter Tree. If project tree - Tree is not defaulted, return the default naming data of the Tree. - (Initial_Buffer_Size): Constant moved from private part - (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new - variables initialized in procedure Initialize. - (Add_To_Buffer): Add two in out parameters to replace global variables - Buffer and Buffer_Last. - (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New - functions. - Adapt to changes to use new type Project_Tree_Ref and dynamic tables and - hash tables. - (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter - for the project tree. - (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and - constant at the beginning of the package spec, so that they cane be used - in subprograms before their full declarations. - (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref - (Empty_Project): Add parameter of type Project_Node_Ref - (Private_Project_Tree_Data): Add component Default_Naming of type - Naming_Data. - (Buffer, Buffer_Last): remove global variables - (Add_To_Buffer): Add two in out parameters to replace global variables - Buffer and Buffer_Last. - (Current_Packages_To_Check): Remove global variable - (Empty_Name): Move to private part - (No-Symbols): Make it a constant - (Private_Project_Tree_Data): New type for the private part of the - project tree data. - (Project_Tree_Data): New type for the data of a project tree - (Project_Tree_Ref): New type to designate a project tree - (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter - for the project tree. - - * prj-attr.ads: Add with Table; needed, as package Prj no longer - imports package Table. - - * prj-com.adb: Remove empty, no longer needed body - - * prj-com.ads: Move most of the content of this package to package Prj. - - * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to - designate the project node tree and Packages_To_Check to replace - global variable Current_Packages_To_Check. - Add new parameters In_Tree and Packages_To_Check to local subprograms, - when needed. Adapt to changes in project manager with project node tree - In_Tree. - - * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the - project tree to most subprograms. Move tables and hash tables to - private part of package Prj. - Adapt to changes in project manager using project tree In_Tree. - - * prj-makr.adb (Tree): New constant to designate the project node tree - Adapt to change in project manager using project node tree Tree - - * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly - display the Library_Src_Dir and the Library_Dir. - Add new parameter In_Tree to designate the project node tree to most - subprograms. Adapt to changes in the project manager, using project tree - In_Tree. - (Check_Naming_Scheme): Do not alter the casing on platforms where - the casing of file names is not significant. - (Check): Add new parameter In_Tree to designate the - - * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to - designate the project tree. - Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process - - * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables, - to replace those that were in the private part of package Prj. - Add new parameter In__Tree to designate the project node tree to most - subprograms. Adapt to change in Prj.Tree with project node tree In_Tree. - (Post_Parse_Context_Clause): When specifying the project node of a with - clause, indicate that it is a limited with only if there is "limited" - in the with clause, not necessarily when In_Limited is True. - (Parse): Add new parameter In_Tree to designate the project node tree - - * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to - designate the project node tree. Adapt to change in Prj.Tree with - project node tree In_Tree. - - * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project - tree In_Tree in the call to function Empty_Process to give its initial - value to the project data Processed_Data. - Add new parameters In_Tree to designate the project tree and - From_Project_Node_Tree to designate the project node tree to several - subprograms. Adapt to change in project manager with project tree - In_Tree and project node tree From_Project_Node_Tree. - - * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables, - to replace those that were in the private part of package Prj. - Add new parameter In_Tree to designate the project node tree to most - subprograms. Adapt to change in Prj.Tree with project node tree In_Tree. - - * prj-tree.ads, prj-tree.adb: Add new parameter of type - Project_Node_Tree_Ref to most subprograms. - Use this new parameter to store project nodes in the designated project - node tree. - (Project_Node_Tree_Ref): New type to designate a project node tree - (Tree_Private_Part): Change table to dynamic table and hash tables to - dynamic hash tables. - - * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate - the project tree to most subprograms. Adapt to changes in project - manager using project tree In_Tree. - - * makegpr.adb (Project_Tree): New constant needed to use project - manager. - -2005-03-15 Olivier Hainque - - * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler - for sigactions with SA_SIGINFO set. Call - __gnat_adjust_context_for_raise before raising, to perform the - potentially required adjustments to the machine context for the GCC - unwinder. - - * raise.h (__gnat_adjust_context_for_raise): New prototype. - - * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision. - Adjust PC by one in the provided machine context. - (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags, - so that the handler is passed the context structure to adjust prior to - the raise. - (__gnat_error_handler) HPUX: Adjust the signature to match what an - SA_SIGINFO sigaction should look like. Call - __gnat_adjust_context_for_raise before actually raising. - (__gnat_adjust_context_for_raise): Default noop to help PC - adjustments before raise from signal handlers. - (__gnat_error_handler): Indirectly call a predicate function to - determine if a condition should be resignaled or not. - (__gnat_set_resignal_predicate): User interface to modify the predicate. - (__gnat_default_resignal_p): Default GNAT predicate. - -2005-03-15 Doug Rupp - - * adaint.c: Prefix #include of VMS system header files with vms/ - [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS. - Do not define a dummy function "convert_addresses" under Darwin, - not needed. - - * tb-alvms.c, expect.c: Prefix #include of VMS system header files - with vms/ - -2005-03-15 Nicolas Setton - - * tracebak.c: Under Darwin, use the same unwinding mechanisms as under - PPC/AIX. - -2005-03-15 Robert Dewar - - * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for - AI-386. - - * a-retide.ads: Minor comment changes - -2005-03-15 Robert Dewar - - * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads, - a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move - Realloc_For_Chunk to private part of package. - New subprograms for AI-301 - - * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of - Get_Line procedure. - Avoid unnecessary use of Get/Set_Wide_String - -2005-03-15 Robert Dewar - - 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 - left this interface a bit broken. - - * a-suteio.adb: Avoid unnecessary use of Get/Set_String - - * g-spipat.ads, g-spipat.adb: New interface for Get_String - Minor reformatting (function specs) - - * g-spitbo.adb: New interface for Get_String - - * g-spitbo.ads: Minor reformatting - - * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String - - * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String - -2005-03-15 Javier Miranda - Robert Dewar - Thomas Quinot - Richard Kenner - - * atree.ads, atree.adb: Add support for Elist24 field - - * atree.h: Fix wrong definition of Field27 - Add support for Elist16 field - Add support for Elist24 field - - * einfo.ads, einfo.adb (Abstract_Interfaces, - Set_Abstract_Interfaces): New subprograms. - (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New - subprograms. - (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of - entities rather than a single node. - (Is_Interface, Set_Is_Interface): New subprogram - (First_Tag_Component): New syntesized attribute - (Next_Tag_Component): New synthesized attribute - (Write_Entity_Flags): Upgraded to write Is_Interface - (Write_Field24_Name): Upgraded to write Abstract_Interfaces - (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias - (Task_Body_Procedure): New subprogram to read this attribute. - (Set_Task_Body_Procedure): New subprogram to set this attribute. - (Has_Controlled_Component): Now applies to all entities. - This is only a documentation change, since it always worked to apply - this to other than composite types (yielding false), but now this is - official. - Update documentation on Must_Be_Byte_Aligned for new spec - - * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb, - exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the - uses of the Access_Disp_Table attribute to reference the first dispatch - table associated with a tagged type. As - part of the implementation of abstract interface types, - Access_Disp_Table has been redefined to contain a list of dispatch - tables (rather than a single dispatch table). - Similarly, upgrade all the references to Tag_Component by the - new attribute First_Tag_Component. - (Find_Inherited_TSS): Moved to exp_tss. - Clean up test in Expand_N_Object_Declaration for cases - where we need to do a separate assignment of the initial value. - (Expand_N_Object_Declaration): If the expression in the - declaration of a tagged type is an aggregate, no need to generate an - additional tag assignment. - (Freeze_Type): Now a function that returns True if the N_Freeze_Entity - is to be deleted. - Bit packed array ops are only called if operands are known to be - aligned. - (Component_Equality): When returning an N_Raise_Program_Error statement, - ensure that its Etype is set to Empty to avoid confusing GIGI (which - expects that only expressions have a bona fide type). - (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly - determine the amount of data to be copied. - - * par.adb (P_Interface_Type_Definition): New subprogram that parses the - new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345): - INTERFACE_TYPE_DEFINITION ::= - [limited | task | protected | synchronized] interface - [AND interface_list] - - * par-ch3.adb (P_Type_Declaration): Modified to give support to - interfaces. - (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to - interfaces. - (P_Interface_Type_Definition): New subprogram that parses the new - syntax rule of Ada 2005 interfaces - (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error - messages by the correct RENAMES (quotes removed). - - * sem_prag.adb: Upgrade all the references to Tag_Component by the new - attribute First_Tag_Component. - - * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed - (Interface_List, Set_Interface_List): New subprograms. - (Interface_Present, Set_Interface_Present): New subprograms. - (Limited_Present, Set_Limited_Present): Available also in derived - type definition nodes. - (Protected_Present, Set_Protected_Present): Available also in - record type definition and - derived type definition nodes. - (Synchronized_Present, Set_Synchronized_Present): New subprograms. - (Task_Present, Set_Task_Present): New subprogram. - (Task_Body_Procedure): Removed. - (Set_Task_Body_Procedure): Removed. - These subprogram have been removed because the attribute - Task_Body_Procedure has been moved to the corresponding task type - or task subtype entity to leave a field free to store the list - of interfaces implemented by a task (for AI-345) - Add Expression field to N_Raise_Statement node for Ada 2005 AI-361 - (Null_Exclusion_Present): Change to Flag11, to avoid conflict with - expression flag Do_Range_Check - (Exception_Junk): Change to Flag7 to accomodate above change - (Box_Present, Default_Name, Specification, Set_Box_Present, - Set_Default_Name, Set_Specification): Expand the expression - "X in N_Formal_Subprogram_Declaration" into the corresponding - two comparisons. Required to use the csinfo tool. - - * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where - "with string" given. - - * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string - expression given. - - * par-ch11.adb (P_Raise_Statement): Recognize with string expression - in 2005 mode - - * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity - attribute Task_Body_Procedure rather than the old semantic field that - was available in the task_type_declaration node. - - * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal - interface type definitions. - (P_Formal_Derived_Type_Definition): Modified to handle the list of - interfaces. - - * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a - task type declaration. - (P_Protected): Modified to handle the list of interfaces in a - protected type declaration. - -2005-03-15 Doug Rupp - Vincent Celier - - * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit - (Gen_Output_File_C): Likewise. - (Gen_Main_C): Issue #include to avoid warning - -2005-03-15 Thomas Quinot - - * checks.adb (Get_E_First_Or_Last): When the expression being retrieved - is an N_Raise_Constraint_Error node, create a new copy of it without - going through a call to Duplicate_Subexpr. - -2005-03-15 Eric Botcazou - Richard Kenner - Nicolas Setton - Ed Schonberg - - PR ada/19900 - 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. - (gnat_to_gnu_entity, case E_Component): Always look at - Original_Record_Component if Present and not the entity. - (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes - of tagged extension types by not making field for components that are - inside the parent. - (gnat_to_gnu_entity) : Fix typo in the alignment formula - (gnat_to_gnu_entity) : Do not convert again the - expression to the type of the object when the object is constant. - Reverse defer_debug_incomplete_list before traversing it, so that trees - are processed in the order at which they were added to the list. This - order is important when using the stabs debug format. - If we are deferring the output of debug information, also defer this - output for a function return type. - When adding fields to a record, prevent emitting debug information - for incomplete records, emit the information only when the record is - complete. - (components_to_record): New parameter defer_debug. - (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set. - (gnat_to_gnu_field_decl): New function. - (substitution_list, annotate_rep): Call it. - (gnat_to_gnu_entity, case E_Record_Subtype): Likewise. - (gnat_to_gnu_entity, case E_Record_Type): Likewise. - No longer update discriminants to not be a COMPONENT_REF. - (copy_alias_set): Strip padding from input type; also handle - unconstrained arrays properly. - - * gigi.h (write_record_type_debug_info): New function. - Convert to use ANSI-style prototypes. Remove unused - declarations for emit_stack_check, elab_all_gnat and - set_second_error_entity. - (gnat_to_gnu_field_decl): New decl. - - * utils.c (write_record_type_debug_info): New function. - (finish_record_type): Delegate generation of debug information to - write_record_type_debug_info. - (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation. - (update_pointer_to): Fix pasto. - (convert) : Accept slight type variations when - converting to an unchecked union type. - - * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True, - replace the N_Freeze_Entity with a null statement. - - * freeze.adb (Freeze_Expression): If the freeze nodes are generated - within a constrained subcomponent of an enclosing record, place the - freeze nodes in the scope stack entry for the enclosing record. - (Undelay_Type): New Subprogram. - (Set_Small_Size): Pass T, the type to modify; all callers changed. - (Freeze_Entity, Freeze_Record_Type): Change the way we handle types - within records; allow them to have freeze nodes if their base types - aren't frozen yet. - - * exp_util.adb (Remove_Side_Effects): Properly test for - Expansion_Delayed and handle case when it's inside an - N_Qualified_Expression. - - * sem_ch3.adb (Derived_Type_Declaration): New predicate - Comes_From_Generic, to recognize accurately that the parent type in a - derived type declaration can be traced back to a formal type, because - it is one or is derived from one, or because its completion is derived - from one. - (Constrain_Component_Type): If component comes from source and has no - explicit constraint, no need to constrain in in a subtype of the - enclosing record. - (Constrain_Access, Constrain_Array): Allow itypes to be delayed. - Minor change to propagate Is_Ada_2005 flag - - * trans.c (gnat_to_gnu, case N_Aggregate): Verify that - Expansion_Delayed is False. - (assoc_to_constructor): Ignore fields that have a - Corresponding_Discriminant. - (gnat_to_gnu) : Restructure. If the - function returns "by target", dereference the target pointer using the - type of the actual return value. - : Be prepared for a null gnu_result. - (processed_inline_subprograms): Check flag_really_no_inline - instead of flag_no_inline. - (set_second_error_entity): Remove unused function. - (gnat_to_gnu, case N_Selected_Component): Call - gnat_to_gnu_field_decl. - (assoc_to_constructor): Likewise. - -2005-03-15 Robert Dewar - Ed Schonberg - Richard Kenner - - * exp_pakd.adb (Create_Packed_Array_Type): Do not set - Must_Be_Byte_Aligned for cases where we do not need to use a - System.Pack_nn unit. - - * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well - as procedures. - Needed now that we do some processing for IN parameters as well. This - may well fix some unrelated errors. - (Expand_Call): Handle case of unaligned objects (in particular those - that come from packed arrays). - (Expand_Inlined_Call): If the subprogram is a renaming as body, and the - renamed entity is an inherited operation, re-expand the call using the - original operation, which is the one to call. - Detect attempt to inline parameterless recursive subprogram. - (Represented_As_Scalar): Fix to work properly with private types - (Is_Possibly_Unaligned_Object): Major rewrite to get a much more - accurate estimate. Yields True in far fewer cases than before, - improving the quality of code that depends on this test. - - * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate - over both visible and private declarations to remove them from tree, - and mark subprograms declared in package as eliminated, to prevent - spurious use in subsequent compilation of generic units in the context. - - * exp_util.ads: Minor cleanup in variable names - - * sem_eval.ads, sem_eval.adb: Minor reformatting - (Compile_Time_Known_Bounds): New function - -2005-03-15 Ed Schonberg - - * exp_ch7.adb (Convert_View): Use base types of underlying types when - determining whether an unchecked conversion is needed for the argument - of an initialization call. - -2005-03-15 Ed Schonberg - - * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type - that appears in the instantiation rather than the internal subtype - generated in the wrapper package, to avoid anomalies in gigi when the - target is derived from a private type whose full view is an access type. - -2005-03-15 Robert Dewar - - * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used, - not needed. - Add documentation to replace the use of this flag - Fix kludge for Maximum_Alignment on x86 so that it does not apply to - the x86_64. - -2005-03-15 Thomas Quinot - - * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved - here from exp_attr so it can be shared between exp_attr and exp_dist. - (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of - all TSS names, not a subset thereof, and the previous name introduced - an unnecessarily confusion that a distinction might exist between - "OK" TSS names and some "not OK" TSS names. - -2005-03-15 Doug Rupp - - * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style - Command_Name. - -2005-03-15 Pascal Obry - Eric Botcazou - - 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. - - * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler) - table and pass it to __gnat_install_SEH_handler(). - (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS. - - * lang.opt: Fix specification of -fRTS=. - -2005-03-15 Doug Rupp - Bernard Banner - Vincent Celier - Arnaud Charlet - - PR ada/6852 - This change works fine when gnatlib is built from the gcc directory, - but does not work when using the libada Makefile, since GCC_FOR_TARGET - is not passed to ada/Makefile.in, so more work is needed by a - Makefile/configure expert. - - * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library. - set GMEM_LIB on ia64 linux to add optional support for gnatmem. - Setup gnatlink switch -M for x86_64 linux, as it is already setup - for Linux x86. - (gnatlib-shared-default): Use GNATLIBCFLAGS as well. - Run ranlib on libgccprefix.a - Define PREFIX_OBJS for Darwin, to build libgccprefix. - (ADA_INCLUDE_SRCS): Split Ada packages. - -2005-03-15 Robert Dewar - - * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind - - * impunit.adb: Add GNAT.UTF_32 - - * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff - - * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng - now uses GNAT.UTF_32). - - * g-utf_32.ads, g-utf_32.adb: This is a new unit with full - capabilities for categorizing characters using Unicode categories - -2005-03-15 Ed Schonberg - - * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an - instantiation that has been rewritten as a package body, retrieve spec - to generate proper name for implicit_with_clause. - (Install_Parents): Recognize a parent that is an instantiation but has - been rewritten as a package declaration during analysis. - -2005-03-15 Javier Miranda - Ed Schonberg - - * sem_ch12.adb (Instantiate_Object): If the analysis of the actual - parameter reported some error we immediately return. This improves the - behaviour of the frontend in case of errors. - (Install_Parent, Remove_Parent): Introduce new flag - Parent_Unit_Visible, to preserve the proper visibility of the ultimate - ancestor of a generic child unit, when the child is being instantiated. - (Inline_Instance_Body): If we are compiling the private - part or the body of a child unit, restore the proper visibility of the - parents after compiling the instance body. - -2005-03-15 Ed Schonberg - Javier Miranda - - PR ada/15608 - * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion - of a private type, in which case it is underlying_type that denotes - the proper task. Also modified to use the new entity attribute - that is directly available in the task type and task subtype entities - (Build_Actual_Subtype_Of_Component): Handle properly multidimensional - arrays when other dimensions than the first are constrained by - discriminants of an enclosing record. - (Insert_Explicit_Dereference): If the prefix is an indexed component or - a combination of indexed and selected components, find ultimate entity - and generate the appropriate reference for it, to suppress spurious - warnings. - (Note_Possible_Modification): If an entity name has no entity, return. - (Is_Variable): A function call never denotes a variable. - (Requires_Transient_Scope): For record types, recurse only on - components, not on internal subtypes that may have been generated for - constrained components. - -2005-03-15 Ed Schonberg - - * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked - Eliminated as candidates for resolution. Both efficient, and avoids - anomalies with operators declared in deleted code. - (Process_Implicit_Dereference_Prefix): Use this procedure whenever - expansion is disabled (as when compiling a generic) to prevent spurious - warnings on prefixes of selected components. - -2005-03-15 Ed Schonberg - - * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is - attached to a list before checking whether it appears in the private - declarations of the current package. - (Make_Inequality_Operator): Insert declaration in proper declarative - list rather than just setting the Parent field, so that - Is_Private_Declaration can handle it properly. - -2005-03-15 Ed Schonberg - - * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is - a renaming a body, check that the renamed subprogram in not intrinsic. - (Find_Direct_Name): If several use_visible entities hide - each other, and the context is a predefined file compiled through - rtsfind, keep only the entity that comes from a predefined file. - -2005-03-15 Geert Bosch - - * s-fatgen.adb (Valid): Extend special exceptions to account for long - long float padding to also cover AMD64 and IA64. - -2005-03-15 Gary Dismukes - - * s-imgwch.adb: Add with and use of Interfaces. - (Img_Wide_Character): Change type of Val to Unsigned_16. - (Img_Wide_Wide_Character): Change type of Val to Unsigned_32. - -2005-03-15 Matthew Gingell - - * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX. - -2005-03-15 Robert Dewar - - * usage.adb: Add missing lines for -gnat95 and -gnat05 switches - - * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag - - * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95 - -2005-03-15 Robert Dewar - - * s-bitops.adb, s-bitops.ads, - s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads, - s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb, - tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads, - s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads, - s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads, - s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads, - s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, - s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor - reformatting. - -2005-03-15 Eric Botcazou - - * utils2.c (build_binary_op): Fix typo. - -2005-03-15 Doug Rupp - - * s-crtl.ads (popen,pclose): New imports. - -2005-03-15 Cyrille Comar - - * comperr.adb (Compiler_Abort): remove references to obsolete - procedures in the bug boxes for various GNAT builds. - -2005-03-15 Vincent Celier - - * snames.ads, snames.adb: Save as Unix text file, not as DOS text file - -2005-03-15 Geert Bosch - Arnaud Charlet - Robert Dewar - Cyrille Comar - Sergey Rybin - - * gnat_ugn.texi: Remove extended inline assembly example, as it was far - too specific and long-winded to be appropriate for the GNAT User's - Guide. - Warn about use of GCC switches not documented in the GNAT User's Guide, - as these may cause generated code to not conform to Ada semantics. - Remove mention of -gdwarf-2 for sparc64, since this is now the default. - Add documentation for -gnat95 and -gnat05 switches - Remove paragraph documenting obsolete way to refer to third party - libraries. - Add a few references to Ada_05 that were missing. - Update documentation on -gnatZ/-gnatL. - Document limitation when using -m64 under Solaris. - Change the "Name Casing" subsection of the pretty-printer section - according to the changes in the dictionary processing. - - * gnat_rm.texi: Document the Ada_05 pragma. - Section on record representation clauses describes the new more - relaxed rules about placement of large packed bit array components. - Add documentation of GNAT.UTF_32 - -2005-03-12 Daniel Berlin - - * misc.c (gnat_post_options): Turn off structural - aliasing for now. - -2005-03-08 Laurent Guerby - - * system-linux-sparc.ads: Fix typo in previous commit. - -2005-03-07 James A. Morrison - Laurent Guerby - - PR ada/20035 - * system-linux-sparc.ads: New. - * Makefile.in: Add sparc linux entry. - -2005-02-27 Danny Smith - - * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth - parameters as unused. - -2005-02-26 Nathanael Nerode - Partial merge from libada-gnattools-branch: - - 2004-12-02 Nathanael Nerode - * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags - into code in gnattools/Makefile.in. Remove direct dependencies on - stamp-tools by tools clauses. - 2004-12-02 Nathanael Nerode - * config-lang.in: Add gnattools to $lang_dirs. - -2005-02-13 Andrew Pinski - - PR ada/19942 - * utils.c (gnat_type_for_mode): Return null instead of ICE because - we asked for an unknown mode. - -2005-02-12 Richard Henderson - - * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes; - validate SCALAR_INT_MODE_P before calling gnat_type_for_size. - -2005-02-10 Andreas Jaeger - - * init.c (__gnat_initialize): Mark parameter as unused. - -2005-02-09 Doug Rupp - - * g-expect-vms.adb (Non_Blocking_Spawn): Separate out. - * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits. - -2005-02-09 Doug Rupp - - * gnatchop.adb (dup, dup2), - g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL. - - * gnatlbr.adb (mkdir), - mlib-tgt-vms-ia64.adb (popen, plose): Import with decc$ prefix. - - * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import. - -2005-02-09 Doug Rupp - - * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions. - -2005-02-09 Robert Dewar - Thomas Quinot - Javier Miranda - Pascal Obry - Ed Schonberg - Doug Rupp - Gary Dismukes - Richard Kenner - - * g-zstspl.ads: New file. - - * a-chahan.ads, a-chahan.adb: Add declarations from AI-285 - - * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in - Ada 95 mode - Add definition of Wide_Wide_Space for AI-285 - - * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new - interface (to support Ada 95 and Ada 2005 units). - Add Unbounded_IO files - Add entries for Wide_Wide packages for AI-285 - Add list of containers packages to Ada 2005 unit list - - * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to - support new Unbounded_IO package cleanly. - - * g-utf_32.ads, g-utf_32.adb: New files. - - * Makefile.rtl: Add entry for g-utf_32 - Add new files for Unbounded_IO - Adjust make file for new AI-285 wide wide packages - Add AI-302 containers to the run time. - - * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads, - a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New - subprograms for AI-301. - - * a-stwiun.adb, a-stwiun.ads: Minor reformatting. - - * a-stunau.ads: Minor comment correction - - * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes - etc. - Also extend Text_IO_Kludge to support Wide_Wide_Text_IO - (Check_RPC): Update to match changes in expanded code. - Clean up unused entity. - - * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String - was not taken into account. - This includes proper initialization with Normalize_Scalars. - (Get_Simple_Init_Val): Major rewrite for initialize scalars and - normalize scalars cases (particularly the latter) to do a better job - of finding invalid representations. - - * s-scaval.ads, s-scaval.adb: Add values for zero invalid values - - * s-strops.ads, s-strops.adb: Remove string normalize routines, never - used - - * exp_dist.adb: Add support for wide wide character type - (Expand_Receiving_Stubs_Bodies): For a package declaration that has a - private part, generate stub bodies at the end of the private part, - not the visible part. - (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for - PolyORB support. - (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and - generic wrapper to execute final processing after completing the - expansion of the RPC receiver for an RACW. - - * snames.h, snames.ads, snames.adb: Add definitions for wide_wide - packages and attributes. - (Preset_Names): Addition of the new reserved words of Ada 2005, - that is interface, overriding and synchronized. - (Get_Pragma_Id): Give support to the use of the new reserved word - "interface" as a pragma name. - (Is_Pragma_Name): Give support to the use of the new reserved word - "interface" as a pragma name. - (Preset_Names): Add stream_size string for the Stream_Size Ada2005 - attribute implementation. - - * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity - checks to entities that are output parameters of Asm operations. - Handle the Stream_Size attribute. - Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width - - * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type - - * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error - for second parameter being 0.0. - Add support for wide wide character type. - (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute. - - * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb, - s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads, - s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads, - s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support - for wide wide character cases. - - * cstand.adb: Create entities for Wide_Wide_Character and - Wide_Wide_String. - - * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in - accordance with AI-258. - Add new declarations for 16/32 bit C character types (Part of AI285) - - * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag - (Obsolescent_Warning): New field - (Rep_Clause): New local subprogram used to share code. Returns the rep - clause for which the name is given in parameter. - (Has_Stream_Size_Clause): New routine. - (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause. - (Address_Clause): Implementation is now using Rep_Clause. - (Alignment_Clause): Idem. - (Size_Clause): Idem. - - * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005 - entity in non-Ada 2005 mode and generate warning. - - * par-prag.adb: Add handling of one argument form for pragma Ada_05. - (Prag): Code cleanup. Remove old gnat pragma "overriding" - - * sem_prag.adb: Add handling of one argument form for pragma Ada_05 - (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings - on the named unit if the pragma is not in the current compilation unit, - so that elaboration calls in the current unit can set up an elaboration - dependency on the named unit, as needed. - (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library - subprogram as well as for subprograms declared within a package. - (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT - pragma overriding. - - * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched - to z) to avoid some instances of duplication for Wide_Wide packages. - - * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide - characters. - - * scn.adb: Char_Literal_Value field is now a Uint - - * scng.adb: Significant rewrite to handle new Ada 2005 features - allowing wide and wide wide characters in program text, e.g. for - identifiers, as described in AI-285. - (Set_Reserved): New procedure, makes setting up keywords cleaner. - (Initialize_Scanner): Register the new reserved words of Ada 2005. - (Scan): Give support to the new reserved words. - - * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a - warning notifying that interface, overriding, and synchronized are - new reserved words. - (P_Pragma): Allow the use of the new reserved word "interface" as - a pragma name. - - * gnatls.adb, gnatbind.adb, - ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename - identifiers named "interface" to "SAL_Interface". - - * bindgen.adb (Gen_Main_Ada): Add support for the new SEH - (Structured Exception handling). - (Gen_Main_C): Idem. - - * bindgen.adb: - (Gen_Main_Ada): Set the default exit code if specified. - (Gen_Main_C): Likewise. - Part of *DC20-006. - (Gen_Output_File_C): Remove redundant output of gnat_exit_status. - Code cleanup. Rename identifiers named "interface" to "SAL_Interface" - - * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of - new -Xnnn switch. - - * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that - has a collision with the new Ada 2005 "interface" reserved word. - - * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode, - generate a warning notifying that interface, overriding, and - synchronized are new reserved words. - - * scans.ads (Token_Type): Addition of the tokens corresponding to the - new reserved words of Ada 2005: Tok_Interface, Tok_Overriding - and Tok_Synchronized. - - * sem_res.adb (Resolve_Actuals): Change error messages to refer to - "dispatching" rather than "primitive" operations, since dispatching - calls are now allowed to abstract formal subprograms (which are not - primitive). - Char_Literal_Value field is now a Uint - (Resolve_Slice): If the prefix is an access to an unconstrained array, - compute the actual subtype of the designated object to impose the proper - index constraints. - (Resolve_Selected_Component): Do not insert an access check if the - prefix is an access type: such a node is expanded into an explicit - dereference, on which the access check is performed anyway. Removes - expensive duplicate checks. - (Resolve_Call): Use new flag Is_Obsolescent and field - Obsolescent_Warning so that pragma Obsolescent works on library - subprograms. - Add support for wide wide character type - (Resolve_Allocator): Replace the error message on wrong null-exclusion - value by a warning message. - (Resolve_Type_Conversion): If the mixed-mode expression is interpreted - as fixed-point, and one of the operands is non-static and universal, it - can only be an illegal exponentiation operation, in which case there is - no real value to retrieve. - - * exp_strm.adb: Add support for wide wide character type - (Build_Elementary_Input_Call): Compute the size of the stream element by - querying the rep chain to find the Stream_Attribute attribute value. - (Build_Elementary_Write_Call): Ditto. - - * sem_aggr.adb: Char_Literal_Value field is now a Uint - Add support for wide wide character type - Replace the error messages on wrong null-exclusion value by warnings - as described in Ada 2005. - (Resolve_Extension_Aggregate): Document the fact that the error - message on class-wide expressions in extensions aggregates. - - * sem_case.adb: Add support for wide wide character type - - * sem_ch13.adb: Add support for wide wide character type - (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute. - - * sem_ch3.adb: Add support for wide wide character type - (Process_Subtype): If constraint is illegal for the type, set Ekind of - now-useless Itype, to prevent cascaded errors on a compiler built - without -gnatp. - - * sem_ch8.adb: Add with and use of Sem_Disp. - (Analyze_Subprogram_Renaming): Replace unclean uses of - Corresponding_Spec with Corresponding_Formal_Spec (and delete setting - of Corresponding_Spec to Empty). - (Attribute_Renaming): Replace use of Corresponding_Spec with - Corresponding_ Formal_Spec and simplify condition. - (Use_One_Package): Check that scope of homonym of identifier is defined, - before checking whether it is a wrapper package. - Add support for wide wide character type - - * sem_eval.adb: Add support for wide wide character type. - (Eval_Arithmetic_Op): Check for compile time known signed integer - overflow in the non-static case. - (Subtypes_Statically_Match): A formal scalar type and its base type do - not statically match. - - * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to - "not in" for test of N_Formal_Subprogram_Declaration (which is now a - subtype). - (Unit_Declaration_Node): Ditto. - (Is_Variable_Prefix): For the case of an indexed component whose prefix - has a packed array type, the prefix has been rewritten into a type - conversion. Determine variable-ness from the converted expression. - Handle wide wide character cases. - - * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String - - * stringt.ads, stringt.adb: Handle full UTF-32 range. - Remove ["0A"] from comment, since it can look like a line terminator. - Currently we don't permit this, but this is under discussion by the - ARG, and it is easy enough to use a different example. - - * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for - handling UTF-32 encoding for wide wide character. - Implement new brackets coding ["hhhhhhhh"] - Add UTF-8 encodings for full UTF-32 range - - * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size - - * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31 - bit range Add full UTF-32 support. - (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to - notify that constraint error will be raised at run-time - because a null value is assigned to a null-excluding object. - Remove some obsolete declarations and make Char_Code - unsigned. - - * a-except.adb (Rcheck_30): New subprogram. Addition of the message - corresponding to CE_Null_Not_Allowed, and adjust the output of all the - Rcheck subprograms. - - * checks.adb (Check_Null_Not_Allowed): Replace the error message on - wrong null-exclusion value by a warning message. - (Enable_Range_Check): Do range check if the prefix is an - explicit dereference whose designated object is an unconstrained array. - Current algorithm for removing duplicate checks is over-eager in this - case. - - * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong - null-exclusion value by a warning message - - * atree.h, atree.ads, atree.adb: Remove Char_Code field support - completely. Add support for Uint2 field - - sem_ch2.adb, exp_ch11.adb, exp_dbug.adb, - exp_prag.adb: Char_Literal_Value field is now a Uint. - - * exp_util.adb (Insert_Actions): Replace - N_Formal_Subprogram_Declaration by - N_Formal_{Abstract|Concrete}_Subprogram_Declaration. - Char_Literal_Value field is now a Uint. - - * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function - defined for subprogram renaming declarations. When set, the field - indicates the defining entity of a corresponding formal subprogram - when the renaming corresponds to a formal subprogram association in an - instantiation. - (Set_Corresponding_Formal_Spec): New procedure to return - Corresponding_Formal_Spec field. - Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration - (which is now a subtype). - Char_Literal_Value field is now a Uint - - * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the - pointer to the base of the dispatch table. - Minor changes to comments. - (Controlling_Type): New function for determining the tagged type - associated with a tagged primitive subprogram. - (Expand_Dispatching_Call): Add support for a controlling actual that is - directly a value of type Ada.Tag rather than a tagged object. - - * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation - describing the new layout. - (Dispatch_Table): The expander computes the actual array size, allocates - the Dispatch_Table record accordingly, and generates code that displaces - the base of the record after the Typeinfo_Ptr component. The access to - these components is done by means of local functions. - (Offset_To_Top): New function. - (Typeinfo_Ptr): New function. - (Get_TSD): Modified to access the new position of the TSD. - (Set_TSD): Modified to save the TSD in its new position. - - * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the - case of formal abstract subprograms. Add check and message for -gnat05. - Update comments. - - * sem_ch12.adb: Add with and use for Sem_Disp. - (Analyze_Associations): Minor change from "=" to "in" for use of - N_Formal_Subtype_Declaration (which is now a subtype). - (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of - N_Formal_Subtype_Declaration (which is now a subtype). - (Analyze_Formal_Subprogram): Add handling for - N_Formal_Abstract_Subprogram, marking the formal as abstract and - dispatching, setting the controlling status of the formal parameters - and result, and issuing an error if there is no controlling type for - the formal subprogram. - (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec, - which is an unclean use of that field, we set the new field - Corresponding_Formal_Spec to make the formal subprogram available to - processing in Analyze_Subprogram_Declaration. - (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point, - Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type - Constrained, so that it is is does not statically match its anonymous - base type. - - * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for - abstract formal subprograms in error check for functions returning - abstract types. Set scope of new designator for - a parameterless subprogram, so that it is available when checking the - body for nested subprograms, before full analysis of said body. - (Analyze_Subprogram_Body): Warn on inlining bodies with nested - subprogram only if inner one comes from source. - (Analyze_Function_Call): If the call is given in object notation, the - analysis of the name rewrites the node and analyzes it with the proper - argument list. After analyzing the name, if the call has been rewritten - and the result type is set, no further analysis is needed. - (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype - mark in function specification, in a context where the formals are - visible and hide outer homographs. - - * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope - as the tagged type for the cases of abstract formal subprograms and - renamings of those. Clean up spec comments. - (Check_Dispatching_Context): Add error message to indicate "abstract - procedure", covering the case of a call to a formal abstract procedure - that has statically tagged operands. - (Check_Dispatching_Call): Check for the case of an actual given by - a tag-indeterminate function call whose type is an ancestor of the - containing call's associated tagged type. This situation can occur - for inherited primitives with function defaults. In this case we - use the tagged type's tag directly as the controlling argument for - the calls. - (Expand_Call): Name change on call to Expand_Dispatch_Call. - - * sprint.adb (Sprint_Node_Actual): Split - N_Formal_Subprogram_Declaration into two alternatives for the new - cases N_Formal_Abstract_Subprogram_Declaration and - N_Formal_Concrete_Subprogram_Declaration. - Char_Literal_Value field is now a Uint. - - * trans.c: Get rid of junk Uint2 reference. - Char_Literal_Value field is now a Uint. - (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P. - (gigi): Correct third arg to gimplify_body. - - * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag. - (TYPE_LANG_FLAG_0): Check for record or union. - - * treepr.adb: Char_Literal_Value field is now a Uint - - * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and - UI_From_CC. - - * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function - Add full UTF-32 support - Char_Code is now 32 bits - - * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with - wide character UTF_32 line terminators. - Initialize Main_Source_File to avoid error when no main - source is loaded. - - * errout.adb (Finalize): Do not check Num_SRef_Pragmas - (Main_Source_File) when no main source has been loaded, to avoid - potential crash. - -2005-02-09 Robert Dewar - - * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements - Fix name of Set routine - - * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to - fixed packages. - - * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb, - a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to - fixed packages - - * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function - forms of Get_Line subprograms for AI-301. - - * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, - a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb, - a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb, - a-stwima.ads: Minor reformatting. - -2005-02-09 Doug Rupp - Thomas Quinot - - * adaint.c, adaint.h - [VMS] (to_ptr32): New function. - (MAYBE_TO_PTR32): New macro. - (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv - for pointer size. - [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field. - [VMS] (#define fork()): Remove since unneccessary. - (__gnat_set_close_on_exec): New routine to support - GNAT.OS_Lib.Set_Close_On_Exec. - - * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for - the parent side as close-on-exec so that they are not inherited by the - child. - - * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to - set or clear the FD_CLOEXEC flag on a file descriptor. - -2005-02-09 Eric Botcazou - Richard Kenner - - 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). - (gnat_to_gnu_entity, case object): Do not treat a renaming that has - side-effects as if it were a constant; also make SAVE_EXPR to protect - side-effects. - (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a - UNION_TYPE. - (make_dummy_type): Set TYPE_UNCHECKED_UNION_P. - (components_to_record): Test it. - Fix improper usage of REFERENCE_CLASS_P. - - * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as - RECORD_TYPE. - - * utils2.c: Minor reformatting. - - * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION; - handle other cases like RECORD_TYPE. - - * utils.c (gnat_pushdecl): Set TREE_NO_WARNING. - -2005-02-09 Ed Schonberg - - * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a - component of an array of arrays in an assignment context, and the - aggregate has component associations that require sliding on - assignment, force reanalysis of the aggregate to generate a temporary - before the assignment. - (Must_Slide): Make global to the package, for use in Gen_Assign. - -2005-02-09 Ed Schonberg - - * exp_ch4.adb (Expand_Composite_Equality): If a component is an - unchecked union with no inferable discriminants, return a - Raise_Program_Error node, rather than inserting it at the point the - type is frozen. - (Expand_Record_Equality, Component_Equality): Handle properly the case - where some subcomponent is an unchecked union whose generated equality - code raises program error. - -2005-02-09 Doug Rupp - - * gnatbl.c: [VMS] (_POSIX_EXIT): Define. - [VMS] (#define exit hack): Remove. - -2005-02-09 Pascal Obry - Arnaud Charlet - - * init.c (__gnat_initialize): Add a new parameter eh which contains the - address of the exception registration. The Win32 version of this - routine calls __gnat_install_SEH_handler() to initialize the SEH - (Structured Exception Handling) handler. - (__gnat_error_handler) [Win32]: Removed. Not needed as we use - SEH (Structured Exception Handling) now. - (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH. - (__gnat_initialize for ppc-vxworks): Adjust comments and the - preprocessor condition protecting the call to the extra eh setup - subprogram, which is only available for the ppc target. - (__gnat_clear_exception_count): replaced reference to - variable taskIdCurrent by call to taskIdSelf(), cleaner. - - * seh_init.c: New file. - - * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o. - (GNATBIND_OBJS): Idem. - - * misc.c (gnat_parse_file): Update call to __gnat_initialize. This - routine takes a new parameter (a pointer to the exception registration - for the SEH (Structured Exception Handling) support. - - * raise.h: (__gnat_install_SEH_handler): New prototype. - Update copyright notice. - - * s-tassta.adb (Task_Wrapper): Declare the exception registration - record and initialize it by calling __gnat_install_SEH_handler. - -2005-02-09 Vincent Celier - - * make.adb (Gnatmake): Do not fail when the main project has no object - directory. - -2005-02-09 Doug Rupp - - * Makefile.in [VMS] (LN,LN_S): Define as cp -p - Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb. - [VMS]: Add translations for g-enblsp.adb. - - * s-asthan-vms.adb: Removed. - * s-asthan-vms-alpha.adb: Added. - -2005-02-09 Pascal Obry - - * Makefile.in (LIBGNAT_SRCS): Add seh_init.c. - (LIBGNAT_OBJS): Add seh_init.o. - -2005-02-09 Arnaud Charlet - - 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). - Remove references to Makefile.prolog/generic, no longer used. - -2005-02-09 Vincent Celier - - * prj-makr.adb (Process_Directory): Put file name in canonical case - before matching against the patterns. - If gnatname has been invoked as -gnatname - then invoke the compiler as -gcc, not just "gcc". - -2005-02-09 Ed Schonberg - - * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even - with expansion disabled. The actual subtype is needed among other - places when the selected component appears in the context of a loop - bound, and denotes a packed array. - (Operator_Check): Always use the first subtype in the - error message, to avoid the appearance of internal base types. - (Transform_Object_Operation): Copy each actual in full - to the parameter associations of the constructed call, rather than - using the shallow copy mechanism of New_Copy_List. This ensures that - the chaining of named associations is done properly. - (Complete_Object_Operation): Rewrite node, rather than - replacing it, so that we can trace back to the original selected - component. - - * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls, - and calls that use object notation, if the called function is not - declared in a withed unit, place the elaboration constraint on the - unit in the context that makes the function accessible. - (Check_Elab_Subtype_Declaration): Check whether a subtype declaration - imposes an elaboration constraint between two packages. - -2005-02-09 Ed Schonberg - - * sem_ch7.adb (Uninstall_Declarations): Exchange full and private - views of a private type after handling its private dependents, to - maintain proper stack discipline between entry and exit from the - package. - -2005-02-09 Cyrille Comar - - * s-finimp.adb: (Finalize_List): Optimize in the no-abort case. - Minor reformatting. - -2005-02-09 Arnaud Charlet - - * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len] - fields for foreign threads. - -2005-02-09 Doug Rupp - - * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite - recursion warnings when compiled with -gnatdm. - -2005-02-09 Robert Dewar - - * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions) - Slight fix to documentation of -gnaty with no parameters - - * xr_tabls.ads: Add ??? comment for missing overall comment - - * xsinfo.adb: Make default file name be sinfo.h, since this is what - we now use by default. - - * xsnames.adb: Adjust end of file test to look for five space followed - by '#' instead of six spaces. The format of xsnames.adb was modified - in the last update. - - * a-numeri.ads: Add reference to AI-388 for greek letter pi - identifier. - - * clean.adb: Minor reformatting. - - * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb, - gnatname.adb: Minor reformatting - Add 2005 to copyright output when utility is run - - * csets.adb: Eliminate obsolete comment - - * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout - Update comments. - - * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful. - -2005-02-09 Sergey Rybin - - * gnat_ugn.texi: Add to the gnatpp section the paragraph describing - the difference between compact and incompact layout and add the record - representation clause to the example illustrating different layouts. - Add the description of '-A5' gnatpp option ("align 'AT' keywords in - component clauses"). - -2005-02-09 Florian Villoing - - * gnat_ugn.texi: Fix typos. - Use @command to display 'gcc', 'gnatbind', etc. insted of @code or - @file. - Make proper use of @ref, @xref and @pxref to avoid duplication of "see" - in the generated documentation. - -2005-02-09 Arnaud Charlet - - * gnat_ugn.texi: Remove all mentions of FSU threads, which are no - longer supported. - Update linker wrapper when linking with non GNU C++. - -2005-02-09 Pascal Obry - - * gnat_ugn.texi: - Document the procedure to debug the DllMain routine on Windows. - Add note about -funwind-tables and mixed Ada and C/C++ programming in - ZCX mode. - Document new BIND qualifer /RETURN_CODES=VMS. - -2005-02-09 Ben Brosgol - - * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter - Edited gnatmetric chapter - -2005-02-09 Robert Dewar - - * gnat_rm.texi: - Changes to document new wide wide character support - For AI-285 - Update documentation on Normalize_Scalars and Initialize_Scalars - -2005-02-09 Pascal Obry - - * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting. - -2005-02-09 Jose Ruiz - - * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported - from the VxWorks kernel) that is needed for getting the active - priority of the different tasks. - - * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure. - Use a pragma Elaborate_Body in the spec file instead. - Noticed by code reading. - -2005-02-09 Thomas Quinot - - * exp_util.ads: Minor correction in comment. - -2005-02-09 Arnaud Charlet - - * s-taprop.ads (Initialize): Update comments. Remove pragma Inline, - since this procedure is now too complex to be worth inlining. - -2005-02-09 Richard Henderson - - * utils.c (gnat_define_builtin): Remove. - (gnat_install_builtins): Use build_common_builtin_nodes. - -2005-02-09 Arnaud Charlet - - * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads, - a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb, - a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb, - a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads, - a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb, - a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb, - a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb, - a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb, - a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, - a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, - a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads, - a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb, - a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb, - a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads, - a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, - a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads, - a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads, - a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, - a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads, - a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads, - a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, - a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads, - a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb, - a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads, - a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, - a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb, - a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb, - a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb, - a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb, - a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb, - a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb, - a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, - a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb, - a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005 - library. - -2005-01-27 Laurent Guerby - - * Makefile.in: Fix a-intnam.ads from previous commit, - add 2005 to copyright. - * a-intman-rtems.ads: Renamed to... - * a-intnam-rtems.ads: - -2005-01-27 Laurent Guerby - - * Makefile.in: Rename GNAT RTEMS specific files. - * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb, - 5rosinte.ads, 5rparame.adb: Replaced by files below. - * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb, - s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above. - -2005-01-27 Joel Sherrill - Laurent Guerby - - PR ada/19488 - * 5rosinte.ads: Add No_Key constant. - * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style. - * gsocket.h: Do not include with RTEMS either. - -2005-01-26 Laurent Guerby - - PR ada/19414 - * i-cobol.adb (Valid_Numeric): Handle zero length case. - -2005-01-20 Richard Henderson - - * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use - a-intnam-linux.ads and system-linux-alpha.ads. - * a-intnam-linux-alpha.ads: Remove file. - * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New. - * system-linux-alpha.ads: New file. - -2005-01-18 Jakub Jelinek - - PR ada/13470 - * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is - set to the new string. - -2005-01-18 Toon Moene - - * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support - to True. - -2005-01-18 Richard Henderson - - * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB, - THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize - for alpha-linux. - * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files. - -2005-01-14 Andrew Pinski - - * system-darwin-ppc.ads (ZCX_By_Default): Change to True. - (GCC_ZCX_Support): Likewise. - -2005-01-11 Bastian Blank - - * system-linux-s390.ads: Define Preallocated_Stacks. - * system-linux-s390x.ads: Likewise. - -2005-01-04 Arnaud Charlet - - * gnat_ugn.texi: Fix texi errors with null variables. - -2005-01-03 Thomas Quinot - - * gen-soccon.c: New utility program to generate g-soccon.ads - automatically. - - * socket.c, gsocket.h: Split inclusion of system header files into a - gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c. - - * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads, - g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads, - g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads, - g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files - should not be edited by hand anymore, but should be regenerated using - gen-soccon. - -2005-01-03 Robert Dewar - Ed Schonberg - Vincent Celier - - * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings - on/off, since this is an obsolescent feature, for which we now generate - a warning. - - * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if - warning mode is set and obsolescent usage of this attribute occurs. - (Resolve_Access, case 'Access): Note that GNAT uses the context type to - disambiguate overloaded prefixes, in accordance with AI-235. GNAT code - predates, and partly motivates, the adoption of the AI. - Implement new Ada 2005 attribute Mod - - * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005 - attribute Mod. - - * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod - - * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for - pragma restrictions. - New entry for Ada 2005 attribute Mod. - - * par-prag.adb: - Add recognition of new pragma Restrictions No_Dependence - Recognize restriction No_Obsolescent_Features at parse time - - * bcheck.adb: Add circuitry for checking for consistency of - No_Dependence restrictions. - - * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence - restrictions. - - * restrict.ads, restrict.adb: Add subprograms to deal with - No_Dependence restrictions. - - * rtsfind.adb: Check that implicit with's do not violate No_Dependence - restrictions. - - * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb, - sem_attr.adb: Add check for new restriction No_Obsolescent_Features - - * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new - dummy parameter to scng instantiation. - Needed for new restriction No_Obsolescent_Features - - * scn.adb: (Obsolescent_Check): New procedure - Needed for new restriction No_Obsolescent_Features - - * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as - specified by AI-285, needed for implementation of AI-388 (adding greek - pi to Ada.Numerics). - Add new generic formal to scng, needed for new restriction - No_Obsolescent_Features. - - * s-rident.ads: Add new restriction No_Obsolescent_Features. - - * ali.ads, ali.adb: Adjustments for reading new No_Dependence - restrictions lines. - (Scan_ALI): When finding an unexpected character on an R line, raise - exception Bad_R_Line, instead of calling Fatal_Error, so that, when - Ignore_Errors is True, default restrictions are set and scanning of the - ALI file continues with the next line. Also, when Bad_R_Line is raised - and Ignore_Errors is True, skip to the end of le line. - - * sem_ch10.adb: Check that explicit with's do not violate - No_Dependence restrictions. - (Install_Withed_Unit): Add code to implement AI-377 and diagnose - illegal context clauses containing child units of instance. - - * sem_prag.adb: Processing and checking for new No_Dependence - restrictions. - (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to - analyze and check the External argument. - - * a-numeri.ads: Add greek letter pi as alternative spelling of Pi - -2005-01-03 Robert Dewar - - * atree.adb: Add a fifth component to entities - This allows us to add 32 flags and four new fields - - * atree.ads: Add a fifth component to entities - This allows us to add 32 flags and four new fields - - * einfo.ads, einfo.adb: Document new fields and new flags now available - Add routines for printing new fields - - * treepr.adb: Call routines to print out additional fields if present - -2005-01-03 Arnaud Charlet - - * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb, - gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake. - - * Makefile.in: Add support to build shared Ada libraries on solaris x86 - Remove gpr2make, replaced by gprmake. - Remove references to gnatmem and libaddr2line. - Add indepsw.adb - - * checks.adb (Apply_Alignment_Check): Generate a warning if an object - address is incompatible with its base type alignment constraints when - this can be decided statically. - -2005-01-03 Olivier Hainque - - * decl.c (compatible_signatures_p): New function. The intended purpose - is to check if two function signatures for a call-site and a callee are - compatible enough for the call to be valid. The underlying purpose is - to check if a call to a mapped builtin is using the right interface. - The current code actually does not check antyhing - this a placeholder - for future refinements. - (gnat_to_gnu_entity) : Add preliminary bits to handle - builtin calls for convention Intrinsic. - - * gigi.h (builtin_decl_for): Declare (new function). - - * utils.c (gnat_install_builtins): Install the target specific builtins. - (builtin_decl_for): New function, provide a dummy body for now. - -2005-01-03 Geert Bosch - - * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used. - (Succ): Re-implement using Scaling, Exponent and Ceiling attributes. - (Pred): Implement in terms of Succ. - - * trans.c (convert_with_check): Reimplement conversion of float to - integer. - -2005-01-03 Ed Schonberg - Vincent Celier - - * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the - bounds can be negative, and must be declared Int, not Nat. - - * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an - array is checked after using the index in the array. - - * makegpr.adb (Add_Switches): Check if there is a package for the - processor. If there is no package, do not look for switches. - -2005-01-03 Ed Schonberg - - * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the - generation of predefined stream operations (specs and bodies) should - proceed. Under various restrictions these subprograms must not be - generated. - -2005-01-03 Thomas Quinot - - * exp_dist.adb: - Declare subprogram index in Build_RPC_Receiver_Body, to reduce the - amount of PCS-specific code in RACW stubs generation. - (Copy_Specification): Set Etype on copied formal parameter entities, as - this information is needed for PolyORB stubs generation. - (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused - variable Dynamic_Async. - (Build_Subprogram_Receiving_Stubs): Make PCS-specific - (Build_RPC_Receiver_Specification): Make generic again, as recent - changes have allowed RPC receivers to have the same profile for both - variants of the PCS. - Reorganise RPC receiver generation to reduce differences between the - structure of GARLIC and PolyORB RPC receivers. - (Add_Receiving_Stubs_To_Declarations): Make this subprogram - PCS-specific. - Simplify elaboration code for RCI packages. - - * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver - generation to reduce differences between the structure of GARLIC and - PolyORB RPC receivers. - - * s-stratt.adb: Fix typo in comment. - -2005-01-03 Thomas Quinot - - * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly - copied from Make_Init_Call). - - * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component - reads and assignments on a temporary variable declared with appropriate - discriminants. - -2005-01-03 Robert Dewar - - * i-c.adb (To_C): Raise CE if string is null and Append_Null - -2005-01-03 Robert Dewar - - * i-cstrin.adb (Update): Do not append a null in form called with a - String. This avoids unintended behavior. - -2005-01-03 Arnaud Charlet - - PR ada/17527 - * init.c: Fix warnings on Free BSD section. - -2005-01-03 Arnaud Charlet - - PR ada/16949 - * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by - xsinfo.adb). - -2005-01-03 Vincent Celier - - * make.adb (Collect_Arguments_And_Compile): Do not attempt to build - libraries when Unique_Compile is True (-u switch). - (Gnatmake): ditto. - -2005-01-03 Robert Dewar - - * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing - upper case letter or underscore after W, as allowed by spec. - -2005-01-03 Arnaud Charlet - - * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up - darwin port by using proper type definitions from header files. - Use SIGTERM instead of SIGABRT for SIGADAABORT. - -2005-01-03 Robert Dewar - - * par.adb: Enhance error message handling for configuration file - pragmas. - -2005-01-03 Robert Dewar - - * s-arit64.adb (Double_Divide): Put back changes that got accidentally - removed during the previous update (test properly for case of dividing - largest negative number by -1, which generates overflow). - -2005-01-03 Ed Schonberg - Sergey Rybin - - * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node - to use as the defining identifier for a formal package. - (Remove_Parent): If the instance takes place within (an instance of) - a sibling, preserve private declarations of common parent. - -2005-01-03 Ed Schonberg - - * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair, - to determine whether one of the operands is a fixed-point type for - which a user-defined multiplication or division operation might be - defined. - - * sem_res.adb (Valid_Conversion): The legality rules for conversions - of access types are symmetric in Ada 2005: either designated type can - be unconstrained. - -2005-01-03 Vincent Celier - - * s-fileio.adb (Temp_File_Record): Change length of string component - Name from L_tmpnam + 1 to max_path_len + 1. - -2005-01-03 Arnaud Charlet - - * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of - Self_Id.Deferral_Level = 0. - (Do_Pending_Action): Move this function to the spec. - - * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call - Do_Pending_Action explicitely when needed, in case we're using - No_Abort restrictions. - - * s-tassta.adb (Create_Task): If Abort is not allowed, reset the - deferral level since it will not get changed by the generated code. - Keeping a default value of 1 would prevent some operations (e.g. - select or delay) to proceed successfully. - -2005-01-03 Ben Brosgol - Robert Dewar - Cyrille Comar - - * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to - porting guide chapter (vms version). - Revised doc title (removed "for native platforms") and subtitle. - Add discussion on warning flag for obsolescent features. First we - note that it applies to obsolete GNAT features, which was previously - omitted. Second we contrast the behavior with that of the new - Ada 2005 AI-368 restriction No_Obsolescent_Features. - Preliminary rewriting of GNAT & libraries chapter in order to take - into account default project locations & new project manager - capabilities. - -2005-01-03 Robert Dewar - - * cstand.adb (Create_Operators): Clean up format and documentation of - unary and binary operator result tables. No change in code, just - reformatting and addition of comments. - - * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb, - sem_ch2.adb: Minor reformatting - - * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads, - sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to - comments for Tree_Read and Tree_Write. - -2005-01-03 Pascal Obry - - * exp_attr.ads: Minor reformatting. - -2005-01-03 Romain Berrendonner - - * comperr.adb (Compiler_Abort): Add specialized message for GAP - versions. - -2005-01-03 Ed Schonberg - - * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check - whether the ancestor type is private, as may be the case with nested - instantiations. - -2004-12-30 Sohail Somani - - PR ada/19128 - * trans.c (gnat_to_gnu): Fix typo: Use correct return variable. - -2004-12-23 Eric Botcazou - - * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference. - * utils2.c (build_unary_op): Likewise. - -2004-12-22 Richard Kenner - - * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED. - -2004-12-19 Richard Henderson - - * trans.c (gigi): Update gimplify_body call. - -2004-12-09 Nathan Sidwell - - * decl.c (gnat_substitute_in_type): Remove SET_TYPE case. - -2004-12-07 Ed Falis - - * s-intman-vxworks.adb (Notify_Exception): removed useless check for - current task being suspended. - - * init.c (__gnat_clear_exception): added to reset VxWorks exception - count. - (__gnat_map_signal): removed test for current task being suspended. - -2004-12-07 Gary Dismukes - - * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values - from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit - targets (such as AAMP). - -2004-12-07 Ed Schonberg - - * atree.adb (Visit_Itype): Create a new name for the generated itype, - because the back-end may otherwise treat it as a redefinition of the - old symbol. - -2004-12-07 Eric Botcazou - - * back_end.adb (Scan_Back_End_Switches): Accept --param. - - * lang-specs.h: Accept --param. - -2004-12-07 Vincent Celier - - * make.adb (Check_Mains, Switches_Of): Adapt to name changes in - package Prj (Current_Spec_Suffix => Ada_Spec_Suffix, - Current_Body_Suffix => Ada_Body_Suffix). - Take into account Externally_Built attribute. - - * clean.adb (In_Extension_Chain): Always return False when one of the - parameter is No_Project. - (Clean_Project): Adapt to changes in package Prj (Lang_Ada => - Ada_Language_Index). - (Gnatclean): Adapt to change in package Prj.Pars (no parameter - Process_Languages for procedure Parse). - - * gnatcmd.adb (Carg_Switches): New table. - (GNATCmd): Put all switches following -cargs in the Carg_Switches table. - Adapt to name changes in package Prj (Current_Spec_Suffix => - Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix). - - * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type - Header_Num and function Hash are now declared in package Prj, - not Prj.Com. - - * prj.adb (Suffix_Of): New function. - (Set (Suffix)): New procedure. - (Hash): One function moved from Prj.Com - (Is_Present, Language_Processing_Data_Of): New functions - (Set): Two new procedures - (Add_Language_Name, Display_Language_Name): New procedures - - * prj.ads: (Suffix_Of): New function - (Set (Suffix)): New procedure - Add several types and tables for multi-language support. - (Header_Num): Type moved from Prj.Com - (Hash): Two functions moved from Prj.Com - (Is_Present, Language_Processing_Data_Of): New functions - (Set): Two new procedures - (Add_Language_Name, Display_Language_Name): New procedures - (Naming): Component name changes: - Current_Spec_Suffix => Ada_Spec_Suffix, - Current_Body_Suffix => Ada_Body_Suffix. Add new components: - Impl_Suffixes, Supp_Suffixes. - (Project_Data): New components: Externally_Built, Supp_Languages, - First_Language_Processing, Supp_Language_Processing, Default_Linker, - Default_Linker_Path. - - * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and - new package Language_Processing with its attributes (Compiler_Driver, - Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option, - Binder_Driver, Default_Linker). - - * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj. - (Header_Num): Type moved to package Prj - - * prj-env.adb: Adapt to name changes in package Prj - (Current_Spec_Suffix => Ada_Spec_Suffix, - Current_Body_Suffix => Ada_Body_Suffix). - - * prj-ext.adb: Add the default project dir (/log/gnat) by - default to the project path, except the "-" is one of the directories - in env var ADA_PROJECT_PATH. - (Current_Project_Path): Global variable, replacing Project_Path - that was in the body of Prj.Part. - (Project_Path): New function - (Set_Project_Path): New procedure - Initialize Current_Project_Path during elaboration of the package - Remove dependency on Prj.Com, no longer needed - - * prj-ext.ads (Project_Path): New function - (Set_Project_Path): New procedure - - * prj-nmsc.adb (Body_Suffix_Of): New function. Returns . when no - suffix is defined for language . - (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of - accessing directly the components of Naming. - (Look_For_Sources): Use Set (Suffix) to set the suffix of a language. - Reorganise of this package. - Break procedure Check in several procedures. - - * prj-nmsc.ads: Replace all procedures (Ada_Check, - Other_Languages_Check and Language_Independent_Check) with a single - procedure Check. - - * prj-pars.ads, prj-pars.adb (Parse): Remove parameter - Process_Languages, no longer needed. - - * prj-part.adb (Project_Path): Move to the body of Prj.Ext as - Current_Project_Path. - Remove elaboration code, moved to the body of Prj.Ext - Use new function Prj.Ext.Project_Path instead of old variable - Project_Path. - (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path. - When comparing with project paths on the stack, first put the resolved - path in canonical case. - (Parse_Single_Project): Set the path name of the project file in the - tree to the normalized path. - - * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove - parameter Process_Languages, no longer needed. - (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and - Other_Languages_Check. - - * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path - to store the resolved canonical path of the project file. - Remove dependency to Prj.Com, no longer needed - - * prj-util.adb: Adapt to name changes in package Prj - (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix => - Ada_Body_Suffix). - - * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver, - Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker, - Externally_Built, Include_Option, Language_Processing. - - * makegpr.adb: Numerous changes due to changes in packages - Prj and Prj.Nmsc. - - * gnatls.adb: Add the default project dir (/log/gnat) by - default to the project path, except whe "-" is one of the directories - in env var ADA_PROJECT_PATH. - (Gnatls): In verbose mode, add the new section "Project Search Path:" - -2004-12-07 Robert Dewar - - * debug.adb: Document that -gnatdA automatically sets -gnatR3m - - * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically - set -gnatR3m mode. - - * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA - flag. No longer needed now that we handle this in gnat1drv.adb. - - * repinfo.ads: Minor reformatting - -2004-12-07 Richard Kenner - Olivier Hainque - Eric Botcazou - - * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for - TYPE_SIZE_UNIT of result type if SIZE is not specified. - (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation - of a bitfield, which we know is useless and causes trouble because of - alignment implications. - - * utils.c (create_var_decl): Set DECL_COMMON again on targets without - BSS sections. - (process_attributes): Clear DECL_COMMON again when a section attribute - is present. - (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or - SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT. - (create_field_decl): Special case ADDRESSABLE negative to mean - "no bitfield creation", to be used by make_aligning_type. Don't - restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode - fields claimed addressable still have to be bitfields. Use - value_factor_p instead of a raw binop construction to check for the - position's alignment. - -2004-12-07 Geert Bosch - - * eval_fat.adb: Revert previous change. - -2004-12-07 Thomas Quinot - Ed Schonberg - - * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component - with an implicit dereference as its prefix, use - Insert_Explicit_Dereference instead of merely rewriting the prefix into - an explicit dereference. This ensures that a reference to the original - prefix is generated, if appropriate. - - * sem_util.adb (Insert_Explicit_Dereference): When an implicit - dereference is rewritten to an explicit one, generate a reference to - the entity denoted by its prefix using the original prefix node, so - the dereference can be properly recorded as a read of the denoted - access value, if appropriate. - - * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from - emitting 'assigned but never read' warning on a variable on the basis - that it has an access type. - (Check_References): Emit unreferenced warning when the scope is a - subprogram body. - -2004-12-07 Robert Dewar - Ed Schonberg - - * exp_ch6.adb (Expand_Call): Add comment on handling of back end - intrinsic - - * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic, - leaving call unchanged. - This deals with the case where the pragma Import specified - an external name, to be handled by the back end. - - * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of - subprogram which is Imported with convention Intrinsic if an - External_Name argument is specified. - (Process_Import_Or_Interface): Properly diagnose link name argument. - (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion - with Sem_Ch6.Cannot_Inline. - (Process_Inline): Provide separate warning for inapplicable inline - pragma. - (Cannot_Inline): Reject subprograms that have an at_end handler, so that - treatment is uniform on different targets. - -2004-12-07 Ed Schonberg - - * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of - construct is rewritten, preserve end label to permit source navigation. - -2004-12-07 Thomas Quinot - - * exp_dist.adb (Specific_Build_General_Calling_Stubs, - Specific_Build_Stub_Target): New subprograms. - (Build_Subprogram_Calling_Stubs): Make this procedure independent from - the PCS implementation used, using the above PCS-customized subprograms. - Minor reformatting. - (PolyORB_Support.Helpers): New subunit containing supporting subprograms - for generation of DSA code targeted to the PolyORB PCS. - (Add_Stub_Type): Rewrite to isolate the parts that are specific to one - implementation of the partition communication subsystem in ancillary - subprograms. - (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type, - PolyORB_Support.Build_Stub_Type): New subrograms containing the - PCS-specific part of Add_Stub_Type. - (Insert_Partition_Check): Use runtime library function to perform - E.4(19) check. - - * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref - (RE_Same_Partition): New entity, from s-parint. - - * s-parint.ads, s-parint.adb (Same_Partition): New subprogram. - -2004-12-07 Gary Dismukes - - * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb: - Output the copyright message on a separate line from the version - message. - -2004-12-07 Joel Brobecker - - * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a - compile-time warning. - -2004-12-07 Robert Dewar - - * g-regpat.adb: (Match): Change a misuse of or to or else - -2004-12-07 Ed Schonberg - - * lib-xref.adb: - (Generate_Reference): Handle properly a reference to an entry formal, - when an accept statement has a pragma Unreferenced for it. - - * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag - and the Has_Pragma_Unreferenced flag for each formal before analyzing - the body, to ensure that warnings are properly emitted for each accept - statement of a given task entry. - -2004-12-07 Vasiliy Fofanov - - * Makefile.in: Add support for foreign threads on VMS. - -2004-12-07 Richard Kenner - - * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P): - Remove. - (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New. - - * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls. - - * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed - exception. - (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it. - -2004-12-07 Robert Dewar - - * nlists.adb (Prepend_Debug): Remove parameters and nest within - Prepend. - (Remove_Next_Debug): Same fix - - * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do - maintain back pointers now, though we did not used to, and comments - were out of date). - (Prepend): Remove pragma Inline. - (Remove_Next): Same cleanup - -2004-12-07 Thomas Quinot - - * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram - used to record an implicit dereference as a read operation on its - prefix when operating under -gnatc. Necessary to avoid spurious - 'variable assigned but never read' warnings in that mode. - (Process_Indexed_Component, Analyze_Selected_Component): When the prefix - is a non-overloaded implicit dereference, call the above subprogram to - ensure proper recording of references. - -2004-12-07 Gary Dismukes - - * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs - to be resolved later as part of Analyze_Iteration_Scheme's call to - Make_Index. - -2004-12-07 Ed Schonberg - - * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the - prefix is not a scalar type, place error message on prefix, not on - type entity. - -2004-12-07 Bernard Banner - - * vxaddr2line.adb: Add support for x86 vxworks - -2004-12-07 Thomas Quinot - - * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify - documentation of the behaviour of these functions when passed an IP - address that has no record in the system hosts database and no reverse - record in the DNS. - - * cstand.adb, a-tags.ads: Fix typos in comment. - -2004-12-07 Robert Dewar - - * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb, - exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb, - sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb, - s-poosiz.ads: Minor reformatting - - * make.adb: Minor reformatting - Add some ??? comments asking for more comments - - * s-poosiz.adb: Minor reformatting - Add comments on alignment requirement - - * sinfo.ads: Remove obsolete comment and fix typo. - -2004-12-07 Vincent Celier - Sergey Rybin - - * gnat_ugn.texi: Update the section "The GNAT Driver and Project - Files" with the new tool and package names. - Reformatting to suppress most of the warnings for line too long - Document the new section "Project Search Path:" in the output of - gnatls -v. - Add gnatmetric section - -2004-12-07 Vincent Celier - - * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and - -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps - and -eit to -ept. Added qualifier - /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec. - -2004-11-27 Andreas Schwab - - * Make-lang.in (ada/trans.o): Depend on $(EXPR_H). - -2004-11-25 Arnaud Charlet - - * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from - internal implementation unit GNAT.Sockets.Thin, - as their usage for sockets is non-portable (using the read and write - functions from the system runtime library is fine on UNIX but won't - work under Windows). - - * mingw32.h: Update copyright notice. - -2004-11-25 Arnaud Charlet - - * ada-tree.h: Minor reformatting of previous change to avoid lines - longer than 79 characters. - -2004-11-25 Olivier Hainque - - * tb-gcc.c: GCC infrastructure based implementation of - __gnat_backtrace. - -2004-11-24 Steven Bosscher - - * misc.c (gnat_post_options): Don't clear - flag_inline_functions. - -2004-11-22 Andrew Pinski - - PR ada/17986 - * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the - tree. - -2004-11-21 Andreas Jaeger - - * stylesw.adb: Change Style_Check_Subprogram_Order to - Style_Check_Order_Subprograms. - -2004-11-18 Arnaud Charlet - - * adaint.h, adaint.c - (__gnat_portable_spawn): Fix cast of spawnvp third parameter - to avoid warnings. - Add also a cast to kill another warning. - (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags - parameter with the priority class of the parent process instead of - always using the NORMAL_PRIORITY_CLASS. - (__gnat_dup): New function. - (__gnat_dup2): New function. - (__gnat_is_symbolic_link): Enable the effective body of this - function when __APPLE__ is defined. - - * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures. - Update comments. - -2004-11-18 Olivier Hainque - - * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the - address of which may be used to represent "others" and "all others" - choices in exception tables, instead of the current harcoded - (void *)0 and (void *)1. - (Setup_Exception): Do nothing in the GNAT SJLJ case. - - * gigi.h (others_decl, all_others_decl): New decls representing the - new Others_Value and All_Others_Value objects. - (struct attrib): Rename "arg" component as "args", since GCC expects a - list of arguments in there. - - * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the - corresponding objects exported by a-exexpr, instead of hardcoded dummy - addresses. - - * trans.c (Exception_Handler_to_gnu_zcx): Use the address of - others_decl and all_others_decl instead of hardcoded dummy addresses - to represent "others" and "all others" choices, which is cleaner and - more flexible with respect to the possible eh pointer encoding policies. - - * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl. - (process_attributes): Account for the naming change of the "args" - attribute list entry component. - - * decl.c (build_attr_list): Rename into prepend_attributes to allow - cumulating attributes for different entities into a single list. - (gnat_to_gnu_entity): Use prepend_attributes to build the list of - attributes for the current entity and propagate first subtype - attributes to other subtypes. - : Attribute arguments are attr->args and not - attr->arg any more. - (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an - argument provided, as this is what GCC expects. Use NULL_TREE instead - of 0 for trees. - -2004-11-18 Robert Dewar - - * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb: - Minor reformatting througout (including new function specs) - Add ??? comments asking for clarification. - -2004-11-18 Thomas Quinot - - * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove - incomplete duplicate implementation of this subprogram from butil. - -2004-11-18 Thomas Quinot - - * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This - procedures factors the common processing for building an RPC receiver - for an RCI package or an RACW type. - Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of - Build_Remote_Subprogram_Proxy_Type into proper alphabetical order. - (Get_PCS_Name): New subprogram. Returns the name of the PCS currently - in use. - (Specific_Add_RACW_Features): New subprogram. PCS-specific part of - Add_RACW_Features. - (Specific_Add_RAST_Features): New subprogram. PCS-specific part of - Add_RAST_Features. - (Assign_Subprogram_Identifier): New subprogram. Provision for assigning - distribution subprogram identifiers that are either subprogram numbers - or strings. - (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and - string distribution identifiers assigned to a given subprogram. - (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids. - (Add_RAS_Dereference_TSS): Add comments. - (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter - is not referenced yet because it will be used by the PolyORB DSA - implementation. - (Insert_Partition_Check): Remove fossile code. - (First_RCI_Subprogram_Id): Document this constant. - (Add_RAS_Access_TSS): Correct the setting of the Etype of the - RAS_Access TSS. - (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are - replaced with calls to Get_Library_Unit_Name_String. Previously there - were several instances of the same code in different locations in the - compiler; this checkin completes the replacement of all of these - instances with calls to a common subprogram. - Minor reformatting. - - * sem_dist.adb: Remove comment noting that RPC receiver generation - should be disabled for RACWs that implement RASs. - (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String. - - * sem_util.ads, sem_util.adb (Has_Stream): New function - (Get_Library_Unit_Name_String): New subprogram to retrieve the fully - qualified name of a library unit into the name buffer. - (Note_Possible_Modification): Generate a reference only - if the context comes from source. - - * snames.ads (PCS_Names): New subtype corresponding to names of - supported implementations of the Partition Communication Subsystem - (PCS) (i.e. the runtime library support modules for the distributed - systems annex). - -2004-11-18 Robert Dewar - Ed Schonberg - - * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used - (Has_Rep_Pragma): New function - (Has_Attribute_Definition_Clause): New function - (Record_Rep_Pragma): Moved here from sem_ch13.adb - (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma - - * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb - - * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure - (Expand_Pragma_Psect_Object): New procedure - These procedures contain the revised and cleaned up processing for - these two pragmas. This processing was formerly in Sem_Prag, but - is more appropriately moved here. The cleanup involves making sure - that the pragmas are properly attached to the tree, and that no - nodes are improperly shared. - - * sem_prag.adb: Move expansion of Common_Object and Psect_Object - pragmas to Exp_Prag, which is more appropriate. - Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to - check for duplicates Remove use of Is_Psected flag, no longer needed. - Use new Make_String_Literal function with string. - - * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes - that are functions return universal values, that have to be converted - to the context type. - Use new Make_String_Literal function with string. - (Get_Stream_Convert_Pragma): New function, replaces the use of - Get_Rep_Pragma, which had to be kludged to work in this case. - - * freeze.adb: Use new Has_Rep_Pragma function - - * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal - function with string. - Use new Has_Rep_Pragma function. - - * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes - string argument. - -2004-11-18 Robert Dewar - - * errout.ads, errout.adb: (First_Sloc): New function - - * par-ch5.adb (P_Condition): Check for redundant parens is now a style - check (-gnatyx) instead of being included as a redundant construct - warning. - - * sem_ch6.adb: Change name Style_Check_Subprogram_Order to - Style_Check_Order_Subprograms. - - * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads, - stylesw.adb: Add Style_Check_Xtra_Parens - - * usage.adb: Add line for -gnatyx (check extra parens) - - * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx - -2004-11-18 Ed Schonberg - Robert Dewar - - * exp_ch4.adb (Expand_N_Selected_Component): If the component is the - discriminant of a constrained subtype, analyze the copy of the - corresponding constraint, because in some cases it may be only - partially analyzed. - Removes long-lived ??? comments. - - * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that - handled controlled or secondary-stack expressions within the - iteration_scheme of a loop. - - * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate - bounds that may contain functions calls, to prevent memory leaks when - the bound contains a call to a function that uses the secondary stack. - (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to - generate temporaries for loop bounds that might contain function calls - that require secondary stack and/or finalization actions. - - * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a - selected component and the selector is overloadable (not just a - function) treat as function call, Analyze_Call will disambiguate if - necessary. - (Analyze_Selected_Component): Do not generate an actual subtype for the - selected component if expansion is disabled. The actual subtype is only - needed for constraint checks. - (Analyze_Allocator): If restriction No_Streams is set, then do - not permit objects to be declared of a stream type, or of a - composite type containing a stream. - - * restrict.ads: Remove the a-stream entry from Unit_Array, since - No_Streams no longer prohibits with'ing this package. - - * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has - discriminants, but the parent base has unknown discriminants, there is - no discriminant constraint to inherit. Such a discrepancy can arise - when the actual for a formal type with unknown discriminants is a - similar private type whose full view has discriminants. - (Analyze_Object_Declaration): If restriction No_Streams is set, then - do not permit objects to be declared of a stream type, or of a - composite type containing a stream. - -2004-11-18 Ed Schonberg - - * exp_dbug.ads: Update documentation to reflect simpler encoding for - protected operations. - - * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in - generated name, it complicates decoding in gdb and hinders debugging - of protected operations. - (Build_Barrier_Function_Specification): Set the Needs_Debug_Info - flag for the protected entry barrier function. - (Build_Protected_Entry_Specification): Set the Needs_Debug_Info - flag for the protected entry function. - -2004-11-18 Nicolas Setton - - * expect.c: Define __unix__ when __APPLE__ is defined. - - * Makefile.in: Inform the value of the variable GMEM_LIB in the - Darwin-specific section. - - * lang-specs.h: Change the placement of the %1 marker. - Works around the fact that gcc adds -fPIC by default under Darwin. - -2004-11-18 Ed Schonberg - - * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original - type of the object with the packed array type, set the Analyzed flag - on the object if it is an entity or simple indexed component, to avoid - spurious type errors. - -2004-11-18 Gary Dismukes - - * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb, - gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a - separate line from the version message. - -2004-11-18 Ed Falis - - * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653 - vthreads. - (init_float): Eliminate initialization of floating point status for - AE653. The instructions have no effect for vThreads. - -2004-11-18 Vincent Celier - - * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when - gnatbind is invoked with -shared. - -2004-11-18 Jose Ruiz - - * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error - for Detect_Blocking which is redundant with the check done within the - procedure Protected_Single_Entry_Call. - (Lock_Read_Only_Entry): Remove the code for raising Program_Error for - Detect_Blocking which is redundant with the check done within the - procedure Protected_Single_Entry_Call. - -2004-11-18 Vincent Celier - - * makegpr.adb (Compile): Put the compiling switches (in package - Compiler and on the command line) immediately after "-c", instead of - at the end of the command line invocation of the compiler, when - compiling a non-Ada file. - (Build_Global_Archive): When there is no need to rebuild the archive, - set Global_Archive_Exists, so that the archive is passed to the linker - if one is needed. - -2004-11-18 Robert Dewar - Sergey Rybin - - * gnat_ugn.texi: - Remove extra paren check from list of checks for redundant constructs - Add documentation of new -gnatyx style check (check extra parens) - Remove paragraph about gnatelim debug options. - - * gnat_rm.texi: Document that Ada.Streams now forbids creating stream - objects rather than forbidding dependencies on the package Ada.Streams. - - * sinfo.ads: Add ??? note that we should document pragmas passed to - back end. - - * g-expect.ads: Fix a few typos in the comments. - -2004-11-09 Joseph S. Myers - - * misc.c (gnat_handle_option): Use %< and %> for quoting in - warning message. - -2004-11-08 Rainer Orth - - * a-numaux-x86.adb (Tan): Fix fdivp syntax. - -2004-11-07 Andreas Schwab - - * Makefile.in (install-gnatlib): Remove spurious hyphen. - -2004-11-02 Andrew Pinski - - PR ada/18228 - * Makefile.in (darwin): Set soext to .dylib. - -2004-10-26 Vincent Celier - Thomas Quinot - - * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads: - (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as - there is no use of GNAT.Sockets.Constants. - Remove remaining pragma Import for C_Write - Remove C_Read and C_Write from internal implementation unit - GNAT.Sockets.Thin, as their usage for sockets is non-portable (using - the read and write functions from the system runtime library is fine - on UNIX but won't work under Windows). - - * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write. - (Check_Selector): Use C_Recv instead of C_Read. - Selectors are the GNAT.Sockets abstraction to perform a select() - call on a set of descriptors. To allow abortion of an ongoing - select operation, some data is written to a dedicated socket that - is always monitored. - Under Windows, the write and read library functions cannot operate - on sockets, so we need to use send and recv instead, which is portable - across all supported platforms. - - * g-socthi.ads: Remove C_Read and C_Write from internal implementation - unit GNAT.Sockets.Thin, as their usage for sockets is non-portable - (using the read and write functions from the system runtime library is - fine on UNIX but won't work under Windows). - -2004-10-26 Nicolas Setton - - * mlib-tgt-darwin.adb: New file. - - * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, - mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb, - mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, - mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New - subprogram body. - - * Makefile.in: Add support for building shared libraries under Darwin. - (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing - the low level EH init subprogram to be called from __gnat_initialize. - - * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram, - indicates which options to pass to the archive indexer. - - * mlib-utl.adb: Add support for calling ranlib with additional - options. This is needed for instance under Mac OS X. - (Ranlib_Options): New global variable, used to store the potential - options to pass to ranlib. - (Ar): Use Ranlib_Options when spawning ranlib. - (Initialize): Set the value of ranlib option. - -2004-10-26 Olivier Hainque - - * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K - instead of 8K, to reflect the real potential needs for stack-checking - in the ZCX case. - -2004-10-26 Pascal Obry - - * s-parame-mingw.adb (Default_Stack_Size): Add some comments. - - * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On - Windows only the initial thread stack size can be set so it is good to - start we a low stack size. - The OS will adjust the size as needed. - -2004-10-26 Olivier Hainque - Nicolas Setton - - * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with - "__unix__" instead of "unix". - The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the - sections were just mistakenly ignored. The former is - implicitely defined by gcc2.8, gcc3.2 and gcc3.4. - Update #ifdef preprocessor macro to detect the symbol __hpux__ instead - of hpux. This prevents an unwanted definition of the symbol - convert_addresses in adaint.o. - -2004-10-26 Gary Dismukes - - * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for - compatibility with type Unwind_Word on 16-bit targets such as AAMP. - -2004-10-26 Cyrille Comar - - * a-filico.ads, a-filico.adb: fix incorrect header. - -2004-10-26 Javier Miranda - - * a-ststio.ads: Fix typo in identifier - -2004-10-26 Thomas Quinot - - * sem_ch4.adb: Minor reformatting. - -2004-10-26 Ed Schonberg - - * checks.adb (Expr_Known_Valid): If floating-point validity checks are - enabled, check the result of unary and binary operations when the - expression is the right-hand side of an assignment. - -2004-10-26 Vincent Celier - - * clean.adb (Delete): Do not output warnings when in quiet output and - not in verbose mode. - (Force_Deletions): New Boolean flag, defaulted to False - (Delete): Only delete a file if it is writable, and when - Force_Deletions is True. - (Parse_Cmd_Line): New switch -f: set Force_Deletions to True - (Usage): Line for new switch -f - (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our - own. - -2004-10-26 Eric Botcazou - - * decl.c (gnat_to_gnu_field): Use the type of the inner object for a - JM type only if its size matches that of the wrapper. When a size is - prescribed and the field is not aliased, remove the wrapper of a JM - type only if the size is not greater than that of the packed array. - (gnat_to_gnu_entity): Change the extension of packed array wrappers - from LJM to JM. - -2004-10-26 Geert Bosch - - * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used. - (Succ): Re-implement using Scaling, Exponent and Ceiling attributes. - (Pred): Implement in terms of Succ. - -2004-10-26 Ed Schonberg - - * exp_aggr.adb (Safe_Component): An aggregate component that is an - unchecked conversion is safe for in-place use if the expression of the - conversion is safe. - (Expand_Array_Aggregate): An aggregate that initializes an allocator may - be expandable in place even if the aggregate does not come from source. - (Convert_Array_Aggr_In_Allocator): New procedure to initialize the - designated object of an allocator in place, rather than building it - first on the stack. The previous scheme forces a full copy of the array, - and may be altogether unsusable if the size of the array is too large - for stack allocation. - -2004-10-26 Robert Dewar - - * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array - compares if the component is atomic. - - * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for - array assignment if the component type is atomic. - -2004-10-26 Ed Schonberg - Eric Botcazou - - * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter - is aliased and is a by_reference type, do not pass by copy. - (Expand_N_Function_Call) : New function to - detect whether the call is in the right side of an assignment or - the expression of an object declaration. Recurse on component - association within aggregates. - Call it in the condition that determines whether the temporary is - necessary for correct stack-checking. - -2004-10-26 Thomas Quinot - - * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter - RACW_Type, used in the PolyORB version. - Rename RCI_Info to RCI_Locator, for consistency between the PolyORB - version and the GARLIC version. - - * snames.ads, snames.adb, s-parint.ads, s-parint.adb: - Rename RCI_Info to RCI_Locator for better consistency between the - GARLIC and PolyORB versions of the distributed systems annex. - (DSA_Implementation_Name): This enumeration lists the possible - implementations of the Partition Communication Subsystem for the - Distributed Systems Annex (DSA). The three available implementations - are the dummy stub implementation (No_DSA), and two versions based on - two different distribution runtime libraries: GARLIC and PolyORB. Both - the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution - technology. - Change the literal GLADE_DSA to GARLIC_DSA to accurately describe - that organization. - - * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency - between the GARLIC and PolyORB versions of the distributed systems - annex. - Remove RE_Unbounded_Reclaim_Pool since it is unused. - -2004-10-26 Gary Dismukes - - * gnat1drv.adb: Suppress calling the back end when - Frontend_Layout_On_Target is true. - -2004-10-26 Thomas Quinot - - * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable, - Set_Read_Only): New subprograms. - These new routines allow the user to set or unset the Owner execute - and Owner write permission flags on a file. - - * makegpr.adb, mlib.adb, mlib-prj.adb: Use - GNAT.OS_Lib.Set_Executable instead of rolling our own. - -2004-10-26 Matthew Gingell - - * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI. - -2004-10-26 Pascal Obry - - * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the - memory before the faulting page we properly test the process read - access for this address using appropriate Win32 routine. - (HPUX sections): guard with "__hpux__" instead of "hpux". - -2004-10-26 Robert Dewar - - * lib-xref.adb (Generate_Reference): Don't complain about reference to - entry parameter if pragma Unreferenced set, since we do not properly - handle the case of multiple parameters. - -2004-10-26 Vincent Celier - - * prj-env.adb: (Contains_ALI_Files): New Boolean function - (Ada_Objects_Path.Add): For a library project, add to the object path - the library directory only if there is no object directory or if the - library directory contains ALI files. - (Set_Ada_Paths.Add.Recursive_Add): Ditto - -2004-10-26 Vincent Celier - - * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual - extension of library projects. - - * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project - path defaults to ".:/lib/gnat". - (Parse): For an extending all project, allow direct import of a project - that is virtually extended. - - * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with - the specified name is directly imported, return its ID. Otherwise, if - an extension of this project is imported, return the ID of the - extension. - -2004-10-26 Robert Dewar - - * s-arit64.adb: (Le3): New function, used by Scaled_Divide - (Sub3): New procedure, used by Scaled_Divide - (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also - correct more than one instance of failure to propagate carries - correctly. - (Double_Divide): Handle overflow case of largest negative number - divided by minus one. - - * s-arit64.ads (Double_Divide): Document that overflow can occur in - the case of a quotient value out of range. - Fix comments. - -2004-10-26 Robert Dewar - - * s-bitops.adb (Bit_Eq): Remove redundant check. - - * s-bitops.ads: Minor comment updates - Change some occurrences of Address to System.Address - - * s-carsi8.ads: Fix minor cut-and-paste error in comments - -2004-10-26 Ed Schonberg - - * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper - accessibility check to prefix that is a protected operation. - -2004-10-26 Ed Schonberg - - * sem_ch10.adb (Optional_Subunit): If file of expected subunit is - empty, post message on stub. - -2004-10-26 Ed Schonberg - Javier Miranda - - * sem_ch12.adb (In_Main_Context): Predicate to determine whether the - current instance appears within a unit that is directly in the context - of the main unit. - Used to determine whether the body of the instance should be analyzed - immediately after its spec, to make its subprogram bodies available - for front-end inlining. - (Analyze_Formal_Array_Type): Cleanup condition that checks that range - constraint is not allowed on the component type (AARM 12.5.3(3)) - -2004-10-26 Cyrille Comar - - * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case - 'Storage_Pool): enhance, document & limit detection of non-sharable - internal pools. - - * impunit.adb: Make System.Pool_Global and System.Pool_Local visible. - - * s-pooglo.ads: Add more documentation now that this pool is properly - documented. - -2004-10-26 Ed Schonberg - - * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task - or protected type with discriminants, do not constrain the - corresponding record type if the subtype declaration has no - discriminant constraints. This can be the case in source code, or in - the subtype declaration created to rename an actual type within an - instantiation. - -2004-10-26 Ed Schonberg - - * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a - different kind of stub (possibly wrong name for file), do not check - for conformance. - (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body - includes call to some function that returns an unconstrained type, do - not inline. - -2004-10-26 Ed Schonberg - - * sem_elab.adb (Check_Elab_Call): Do not check a call that does not - appear in the code for the main unit. Dependencies among units in the - context of the main unit are established when those other units are - compiled. Otherwise spurious elaboration constraints can generate - incorrect elaboration circularities. - -2004-10-26 Thomas Quinot - Ed Schonberg - - * sem_util.adb (Is_Aliased_View): Defend against the case where this - subprogram is called with a parameter that is not an object name. This - situation arises for some cases of illegal code, which is diagnosed - later, and in this case it is wrong to call Is_Aliased, as that might - cause a compiler crash. - (Explain_Limited_Type): Refine previous fix to include - inherited components of derived types, to provide complete information. - - * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that - is the prival for a protected object. - It is necessary to mark this entity as a variable, in addition to - flagging it as Aliased, because Sem_Util.Is_Aliased_View has been - modified to avoid checking the Aliased flag on entities that are not - objects. (Checking that flag for non-objects is erroneous and could - lead to a compiler crash). - -2004-10-26 Robert Dewar - - * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if - X_Frac = 0.5, then we know that the number X must be positive. - (Succ): Remove the same redundant test, and also fix the primary test - to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong. - Minor reformatting - (Decompose): Add fuller comments to spec - -2004-10-26 Pascal Obry - - * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr - validity (process must have read access). Set to 0 in all other cases. - (STOP_FRAME): Now check for ptr validity to avoid a segmentation - violation on Win32. - (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a - segmentation violation. - -2004-10-26 Eric Botcazou - - * trans.c (call_to_gnu): For an (in-)out parameter passed by reference - whose type is a constructed subtype of an aliased object with an - unconstrained nominal subtype, convert the actual to the constructed - subtype before taking its address. - -2004-10-26 Vincent Celier - - * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb - (Is_Path_Name_Case_Sensitive): New function - - * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure - (Base_Name, Simple_Name, Current_Directory, Compose, - Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on - the result. - -2004-10-26 Cyrille Comar - Vasiliy Fofanov - Vincent Celier - - * gnat_ugn.texi: Generalize "finding memory problems" section into a - "memory management issues" section and document some of the useful - memory pools provided as part of the GNAT library. - Remove "virtual" from declaration of A::method2 in - the simple example of Ada/C++ mixed system. - Library Projects may be virtually extended: their virtual extensions - are not Library Projects. - Added section on extending project hierarchies. - -2004-10-19 Aaron W. LaFramboise - - * adaint.c (__gnat_get_libraries_from_registry): Cast value - to LPBYTE. - (__gnat_portable_spawn): Remove const. - - * mingw32.h (MAXPATHLEN): Check for previous definition. - -2004-10-17 Matthias Klose - - * gnatvsn.ads: Set gnat library version to 4.0. - -2004-10-05 Vincent Celier - - * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2 - -2004-10-04 Laurent Guerby - - PR ada/15156 - * Makefile.in: Define and use RANLIB_FLAGS. - -2004-10-04 Pascal Obry - - * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all - other x86 platforms). - -2004-10-04 Olivier Hainque - - * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense - in general and triggers stack alignment adjustment for thread entry - points on targets where this is necessary. - -2004-10-04 Bernard Banner - - PR ada/13897 - * Makefile.in: Add section for powerpc linux - Add variant i-vxwork-x86.ads - - * i-vxwork-x86.ads, system-linux-ppc.ads: New files. - -2004-10-04 Olivier Hainque - - * init.c (__gnat_initialize): Call an Ada subprogram to perform the - table registration calls when need be. Ensures no reference to the crt - ctors symbol are issued in the SJLJ case, which avoids possible - undefined symbol errors in the case of modules to be statically linked - with the kernel. - -2004-10-04 Javier Miranda - - * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand - in-line the code corresponding to subprogram Analyze_Actuals. In - addition, analyze the actuals only in case of subprogram call. - -2004-10-04 Ed Falis - - * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size - -2004-10-04 Sergey Rybin - - * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter - in the documentation. - -2004-10-04 Robert Dewar - - * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as - IF and CASE. - (Analyze_Block_Statement): Add circuitry to detect following dead code - (Check_Unreachable_Code): Handle case of block exit - -2004-10-04 Robert Dewar - - * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call - (XMatchD): Avoid warning for Logic_Error call - -2004-10-04 Robert Dewar - - * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not - consider expressions buried within a procedure actual to be an actual. - This caused some blowups with uses of packed slices within a procedure - actual. - -2004-10-04 Robert Dewar - - * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no - longer need to be initialized to zero. - (Get_Simple_Init_Val): Modular packed arrays no longer need to be - initialized to zero. - - * checks.adb (Expr_Known_Valid): Packed arrays are now always - considered valid, even if the representation is modular. That's correct - now that we no longer initialize packed modular arrays to zero. - - * exp_dbug.ads: Clarify documentation on handling of PAD and JM - suffixes. These are now documented as the only cases in which the - debugger ignores outer records. - Previously, the spec allowed arbitrary suffixes for this purpose. - Change name of LJM to JM for packed array pad records - Create separate section on packed array handling, and add a whole new - set of comments to this section describing the situation with packed - modular types and justification requirements depending on endianness. - -2004-10-04 Robert Dewar - - * a-except.adb: Add a comment for last change - - * einfo.ads: Minor spelling correction in comment - - * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting - - * sem_ch11.adb: Fix a case of using | instead of \ for continuation - messages. - - * sem_util.ads: Minor comment update - -2004-10-04 Ed Schonberg - - * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as - Inline_Always when in Configurable_Run_Time mode. - - * sem_prag.adb (Process_Convention): If entity is an inherited - subprogram, apply convention to parent subprogram if in same scope. - (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always - when in Configurable_Run_Time mode. - -2004-10-04 Ed Schonberg - - * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of - class_wide type after component list has been inherited. - -2004-10-04 Ed Schonberg - - * sem_ch12.adb (Check_Generic_Actuals): New predicate - Denotes_Previous_Actual, to handle properly the case of a private - actual that is also the component type of a subsequent array actual. - The visibility status of the first actual is not affected when the - second is installed. - (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to - make fully recursive the treatment of formals of packages declared - with a box. - (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo - the above on exit from an instantiation. - (Denotes_Formal_Package): When called from Restore_Private_Views, ignore - current instantiation which is now complete. - (Analyze_Package_Instantiation): No instantiated body is needed if the - main unit is generic. Efficient, and avoid anomalies when a instance - appears in a package accessed through rtsfind. - -2004-10-04 Ed Schonberg - - * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled, - do not generate a declaration for a temporary if the call is part of a - library-level instantiation. - -2004-10-04 Ed Schonberg - - * sem_util.adb (Explain_Limited_Type): Ignore internal components when - searching for a limited component to flag. - - * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to - expansion of Input, to account for the fact that the implicit call - generated by the attribute reference must freeze the user-defined - stream subprogram. This is only relevant to 'Input, because it can - appear in an object declaration, prior to the body of the subprogram. - - * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that - expansion can proceed and further errors uncovered. - (Minor clean up): Fix cases of using | instead of \ for continuation - messages. - -2004-10-04 Richard Kenner - - * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable. - - * trans.c (assoc_to_constructor): Fix unused var warning if no checking. - (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change. - Use gcc_assert and gcc_unreachable. - - * decl.c (gnat_to_gnu_entity, case object): Check and process a - specified alignment before validating size. - (gnat_to_gnu_entity) : Create a - stripped-down declaration for the type of the inner field when making - a JM type. - - * utils.c (finish_record_type): Do not compute the size in units - incrementally. Instead compute it once for the rep clause case. - Use gcc_assert and gcc_unreachable. - -2004-10-04 Vincent Celier - - * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character - in file name. - (Is_Valid_Path_Name): Take '/' as a directory separator. - -2004-10-04 Vincent Celier - - * prj-part.adb (Parse_Single_Project): Call Is_Extending_All - (Extended_Project) only if Extended_Project is defined, to avoid - assertion error. - (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a - resolved path. - (Parse_Single_Project): Ditto. - - * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call - Add_To_Project_Path for virtual projects. - -2004-10-04 Vincent Celier - - * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, - mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb, - mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, - mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New - parameter Options_2. - - * mlib-prj.ads, mlib-prj.adb (Build_Library): Call - Build_Dynamic_Library with an empty Options_2. - - * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no - default anymore. - - * makegpr.adb (Get_Imported_Directories.add): Remove trailing - directory separator, if any. - (Gprmake): Do not allow mains on the command line for library projects. - Do not attempt to link when the project is a library project. - (Library_Opts): New table to store Library_Options. - (Build_Library): If Library_Options is specified, pass these options - when building a shared library. - -2004-10-04 Jose Ruiz - - * s-tposen.adb (Service_Entry): The object must be always unlocked at - the end of this procedure now that the unlock operation was inserted - by the expander. - -2004-10-04 Jose Ruiz - - * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value - corresponding to the Preallocated_Stacks flags in System. - (Get_Target_Parameters): Including the processing for - Preallocated_Stacks. - - * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads, - system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads, - system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads, - system-linux-x86_64.ads, system-tru64.ads, system-aix.ads, - system-vxworks-sparcv9.ads, system-vxworks-xscale.ads, - system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads, - system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads, - system-vxworks-mips.ads, system-os2.ads, system-interix.ads, - system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, - system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, - system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is - used to signal whether the compiler creates the required stacks and - descriptors for the different tasks (when True) or it is done by the - underlying operating system at run time (when False). - It is initially set to False in all targets. - - * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack - if it is supported by the target. - (Make_Task_Create_Call): Pass the stack address if it has been - previously created. Otherwise pass a Null_Address. - - * snames.adb: Add _stack. - - * snames.ads: Add Name_uStack. Required to allow the expander to - statically allocated task stacks. - - * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add - Stack_Address argument. - Check that its value is equal to Null_Address because this target does - not support the static stack allocation. - -2004-10-04 Thomas Quinot - - * usage.adb: Change "pragma inline" to "pragma Inline" in information - and error messages - -2004-10-04 Thomas Quinot - - * exp_dist.adb: Split declaration of asynchronous flag out of - Add_RACW_Read_Attribute. - Minor reformatting for better alignment with PolyORB version. - Store the entity for the asynchronous flag of an RACW, rather than the - expression, in the asynchronous flags table. This will allow this flag - to be used in other subprograms beside Add_RACW_Read_Attribute. - -2004-10-04 Thomas Quinot - - * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c, - g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads, - g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb, - g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads, - g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads: Add new - sockets constant MSG_NOSIGNAL (Linux-specific). - Add new sockets constant MSG_Forced_Flags, list of flags to be set on - all Send operations. - For Linux, set MSG_NOSIGNAL on all send operations to prevent them - from trigerring SIGPIPE. - Rename components to avoid clash with Ada 2005 possible reserved - word 'interface'. - (Check_Selector): When the select system call returns with an error - condition, propagate Socket_Error to the caller. - -2004-10-01 Jan Hubicka - - * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation. - -2004-09-23 Robert Dewar - - PR ada/17540 - * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here, - instead do this at freeze time (we won't do it if there is an address - clause). - Change "pragma inline" to "pragma Inline" in information and error - messages. - Minor reformatting. - - * freeze.adb (Check_Address_Clause): Remove previous change, not the - right way of doing things after all. - (Freeze_Entity): For object, set Is_Public for imported entities - unless there is an address clause present. - -2004-09-21 Olivier Hainque - - * decl.c (gnat_to_gnu_entity) : Check for a - dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This - ensures proper handling of types with rep clauses, which might have - their TYPE_SIZE set already. - -2004-09-21 Robert Dewar - - * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular - packed array types in both little- and big-endian cases. This change - ensures that we no longer count on the unused bits being initialized - for such types (and in particular ensures that equality testing will - only read the relevant bits). - Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P - These changes mean that we no longer need to initialize small packed - arrays. - (gnat_to_gnu_entity) : Apply the same - optimization to an LJM field as to its parent field. - - * ada-tree.h, trans.c, utils.c, utils2.c: - Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P - -2004-09-20 Jan Hubicka - - * utils.c (gnat_finalize): Remove. - (end_subprog_body): Directly call cgraph_finalize_function; - do not lower the nested functions. - -2004-09-20 Robert Dewar - - PR ada/17540 - * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public - if an address clause is present, since that means that the Import - should be ignored. - -2004-09-20 Arnaud Charlet - - * 5tsystem.ads: Removed, no longer used. - -2004-09-17 Jeffrey D. Oldham - Zack Weinberg - - * ada-tree.def: Use tree_code_class enumeration constants - instead of code letters. - * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c: - Update for new tree-class enumeration constants. - -2004-09-17 Vincent Celier - - * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private - capabilities of the general project manager. - -2004-09-09 Vincent Celier - - * a-direct.ads: Add pragma Ada_05 - (Directory_Entry_Type): Give default value to component Kind to avoid - not initialized warnings. - - * a-direct.adb (Current_Directory): Remove directory separator at the - end. - (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not - an existing directory. - (Fetch_Next_Entry): Give default value to variable Kind to avoid warning - (Size (String)): Function C_Size returns Long_Integer, not File_Size. - Convert the result to File_Size. - - * prj.ads: (Project_Error): New exception - - * prj-attr.adb: Except in procedure Initialize, Fail comes from - Prj.Com, not from Osint. - (Attrs, Package_Attributes): Tables moved to private part of spec - (Add_Attribute, Add_Unknown_Package): Moved to new child package - Prj.Attr.PM. - (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise - Prj.Project_Error after call to Fail. - (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling - Fail. Check that package name is not already in use. - - * prj-attr.ads: Comment updates to indicate that all subprograms may be - used by tools, not only by the project manager, and to indicate that - exception Prj.Prj_Error may be raised in case of problem. - (Add_Unknown_Package, Add_Attribute): Moved to new child package - Prj.Attr.PM. - (Attrs, Package_Attributes): Table instantiations moved from the body to - the private part to be accessible from Prj.Attr.PM body. - - * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package - from new package Prj.Attr.PM. - (Parse_Attribute_Declaration): Call Add_Attribute from new package - Prj.Attr.PM. - - * Makefile.in: Add prj-attr-pm.o to gnatmake object list - - * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check - instead of Elaboration_Checks). - - * a-calend.adb: Minor reformatting - -2004-09-09 Richard Kenner - - * gigi.h (maybe_pad_type): New declaration. - (create_subprog_type): New arg RETURNS_BY_TARGET_PTR. - - * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro. - - * cuintp.c: Convert to use buildN. - - * decl.c (maybe_pad_type): No longer static. - (gnat_to_gnu_entity, case E_Function): Handle case of returning by - target pointer. - Convert to use buildN. - - * trans.c (call_to_gnu): Add arg GNU_TARGET; support - TYPE_RETURNS_BY_TARGET_PTR_P. All callers changed. - (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on - RHS. - (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P. - (gnat_gimplify_expr, case ADDR_EXPR): New case. - Convert to use buildN. - - * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and - TREE_READONLY for const. - Convert to use buildN. - - * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR. - (create_var_decl): Refine when TREE_STATIC is set. - Convert to use buildN. - -2004-09-09 Gary Dismukes - - * gnat_ugn.texi: Delete text relating to checking of ali and object - consistency. - - * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these - routines. - -2004-09-09 Jose Ruiz - - * gnat_ugn.texi: Add Detect_Blocking to the list of configuration - pragmas recognized by GNAT. - - * gnat_rm.texi: Document pragma Detect_Blocking. - - * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active, - raise Program_Error if called from a protected operation. - - * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase - the protected action nesting level. - (Lock_Read_Only): When pragma Detect_Blocking is active increase the - protected action nesting level. - (Unlock): When pragma Detect_Blocking is active decrease the protected - action nesting level. - - * s-taskin.adb (Initialize_ATCB): Initialize to 0 the - Protected_Action_Nesting. - - * s-taskin.ads: Adding the field Protected_Action_Nesting to the - Common_ATCB record. It contains the dynamic level of protected action - nesting for each task. It is needed for checking whether potentially - blocking operations are called from protected operations. - (Detect_Blocking): Adding a Boolean constant reflecting whether pragma - Detect_Blocking is active or not in the partition. - - * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active, - raise Program_Error if called from a protected operation. - (Task_Entry_Call): When pragma Detect_Blocking is active, raise - Program_Error if called from a protected operation. - (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise - Program_Error if called from a protected operation. - - * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active, - raise Program_Error if called from a protected operation. - - * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active, - raise Program_Error if called from a protected operation, and increase - the protected action nesting level. - (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise - Program_Error if called from a protected operation, and increase the - protected action nesting level. - (Unlock_Entries): When pragma Detect_Blocking is active decrease the - protected action nesting level. - - * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active, - raise Program_Error if called from a protected operation, and increase - the protected action nesting level. - (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise - Program_Error if called from a protected operation, and increase the - protected action nesting level. - (Protected_Single_Entry_Call): When pragma Detect_Blocking is active, - raise Program_Error if called from a protected operation. - (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is - active, raise Program_Error if called from a protected operation. - (Unlock_Entry): When pragma Detect_Blocking is active decrease the - protected action nesting level. - - * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the - insertion of the statement raising Program_Error. The run time - contains the required machinery for handling that. - - * sem_util.ads: Change comment associated to procedure - Check_Potentially_Blocking_Operation. - This procedure does not insert a call for raising the exception because - that is currently done by the run time. - - * raise.h (__gnat_set_globals): Pass the detect_blocking parameter. - - * init.c: Add the global variable __gl_detect_blocking that indicates - whether pragma Detect_Blocking is active (1) or not (0). Needed for - making the pragma available at run time. - (__gnat_set_globals): Pass and update the detect_blocking parameter. - - * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if - pragma Detect_Blocking is active. - - * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files. - - * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag - DB is found in the ali file. Any unit compiled with pragma - Detect_Blocking active forces its effect in the whole partition. - - * a-retide.adb (Delay_Until): Raise Program_Error if pragma - Detect_Blocking is active and delay is called from a protected - operation. - - * bindgen.adb (Gen_Adainit_Ada): When generating the call to - __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma - Detect_Blocking is active (0 otherwise). - (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1 - as Detect_Blocking parameter if pragma Detect_Blocking is active (0 - otherwise). - -2004-09-09 Thomas Quinot - - * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to - GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash - package. - - * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram. - (Register_Receiving_Stub): Add Subp_Info formal parameter. - Update API in placeholder implemetation of s-parint to reflect changes - in distribution runtime library. - - * sem_ch3.adb (Expand_Derived_Record): Rename to - Expand_Record_Extension. - - * sem_disp.adb (Check_Controlling_Formals): Improve error message for - primitive operations of potentially distributed object types that have - non-controlling anonymous access formals. - - * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New - subprogram. - New implementation of expansion for remote access-to-subprogram types, - based on the RACW infrastructure. - This version of sem_dist is compatible with PolyORB/DSA as well as - GLADE. - - * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma - Asynchrronous that applies to a remote access-to-subprogram type, mark - the underlying RACW type as asynchronous. - - * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and - __gnat_using_gnu_linker to 1. - - * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads, - g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to - GNAT.Perfect_Hash_Generators, and remove the empty - GNAT.Perfect_Hash package. - - * atree.adb: Minor reformatting - - * exp_ch3.adb (Expand_Derived_Record): Rename to - Expand_Record_Extension. - (Build_Record_Init_Proc.Build_Assignment): The default expression in - a component declaration must remain attached at that point in the - tree so New_Copy_Tree copies it if the enclosing record type is derived. - It is therefore necessary to take a copy of the expression when building - the corresponding assignment statement in the init proc. - As a side effect, in the case of a derived record type, we now see the - original expression, without any rewriting that could have occurred - during expansion of the ancestor type's init proc, and we do not need - to go back to Original_Node. - - * exp_ch3.ads (Expand_Derived_Record): Rename to - Expand_Record_Extension. - - * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram. - Returns the RACW type used to implement a remote access-to-subprogram - type. - (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type): - New subprograms. Used to create a proxy tagged object for a remote - subprogram. The proxy object is used as the designated object - for RAS values on the same partition (unless All_Calls_Remote applies). - (Build_Get_Unique_RP_Call): New subprogram. Build a call to - System.Partition_Interface.Get_Unique_Remote_Pointer. - (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS): - Renamed from Add_RAS_*_Attribute. - (Add_Receiving_Stubs_To_Declarations): Generate a table of local - subprograms. - New implementation of expansion for remote access-to-subprogram types, - based on the RACW infrastructure. - - * exp_dist.ads (Copy_Specification): Update comment to note that this - function can copy the specification from either a subprogram - specification or an access-to-subprogram type definition. - -2004-09-09 Ed Schonberg - - * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity - in an instance, between an explicit subprogram an one inherited from a - type derived from an actual. - - * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not - add a polling call if the subprogram is to be inlined by the back-end, - to avoid repeated calls with multiple inlinings. - - * checks.adb (Apply_Alignment_Check): If the expression in the address - clause is a call whose name is not a static entity (e.g. a dispatching - call), treat as dynamic. - -2004-09-09 Robert Dewar - - * g-trasym.ads: Minor reformatting - - * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except - packed arrays, since unused bits are expected to be zero for a - comparison. - -2004-09-09 Eric Botcazou - - * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head - comment. - -2004-09-09 Pascal Obry - - * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to - enable map file generation. Add the right option to generate the map - file if Map_File is set to True. - - * gnatdll.adb (Gen_Map_File): New variable. - (Syntax): Add info about new -m (Map_File) option. - (Parse_Command_Line): Add support for -m option. - (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls. - Minor reformatting. - -2004-09-09 Laurent Pautet - - * gnatls.adb: Add a very verbose mode -V. Such mode is required by the - new gnatdist implementation. - Define a subpackage isolating the output routines specific to this - verbose mode. - -2004-09-09 Joel Brobecker - - * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta. - - * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted. - -2004-09-09 Cyrille Comar - - * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile - internal unit. - - * opt.ads: Add Ada_Version_Runtime constant used to decide which - version of the language is used to compile the run time. - -2004-09-09 Arnaud Charlet - - * sem_util.adb (Requires_Transient_Scope): Re-enable handling - of variable length temporaries for function return now that the - back-end and gigi support it. - -2004-09-01 Richard Kenner - - * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM. - - * trans.c (struct stmt_group): Delete field GLOBAL. - (gnat_init_stmt_group): Do not initialize it. - (call_to_gnu): Use save_expr, not protect_multiple_eval. - (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2 - (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise. - (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group. - (start_stmt_group): Likewise. - (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs. - - * utils2.c (ggc.h): Include. - (build_call_raise): Call build_int_cst, not build_int_2. - - * utils.c (gnat_init_decl_processing): Fix arg to - build_common_tree_nodes. - (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST. - (gnat_define_builtin): Set built_in_decls. - (init_gigi_decls): Call build_int_cst, not build_int_2. - - * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree. - (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros. - (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise. - (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE, - SET_TYPE_MODULE): Use them. - (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise. - (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise. - (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE, - SET_TYPE_ADA_SIZE): Likewise. - (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise. - (DECL_CONST_CORRESPONDING_VAR, - SET_DECL_CONST_CORRESPONDING_VAR): Likewise. - (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise. - (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted. - (TYPE_RM_SIZE_NUM): New macro. - (TYPE_RM_SIZE): Modified to use above. - - * cuintp.c: (build_cst_from_int): New function. - (UI_To_gnu): Use it. - - * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM. - (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type. - (gnat_substitute_in_type, case ARRAY_TYPE): If old had a - MIN_EXPR for the size, copy it into new. - -2004-09-01 Robert Dewar - - * exp_ch6.adb (Expand_Call): Properly handle validity checks for - packed indexed component where array is an IN OUT formal. This - generated garbage code previously. - - * gnat_ugn.texi: Document -fverbose-asm - - * gnat-style.texi: Minor updates (note that boolean constants and - variables are joined with AND/OR rather than short circuit forms). - -2004-09-01 Ed Schonberg - - * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if - it is an upward conversion of an untagged type with no representation - change. - -2004-09-01 Thomas Quinot - - * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to - System.Partition_Interface. - - * checks.adb (Apply_Access_Checks): Do not generate checks when - expander is not active (but check for unset reference to prefix of - dereference). - - * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite - pragma Debug as an if statement with a constant condition, for - consistent treatment of entity references contained within the - enclosed procedure call. - -2004-09-01 Vincent Celier - - * bindgen.adb: (Set_EA_Last): New procedure - (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure - Set_EA_Last. - (Gen_Adafinal_Ada): If no finalization, adafinal does nothing - (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be - linked without errors. - (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays - ST and EA. - (Gen_Exception_Table_C): Correct same bugs - - * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches - - * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty, - on Windows, make sure that the drive letter is in upper case. - - * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on - Windows, when the drive letter is added and Case_Sensitive is True, the - drive letter is forced to upper case. - - * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options - to Options_2 for the call to MLib.Utl.Gcc. - - * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as - directory separator when defining BASE_DIR. - -2004-09-01 Pascal Obry - - * gprcmd.adb (Extend): Do not output trailing directory separator. This - is not needed and it confuses Windows GNU/make which does not report - directory terminated by a slash as a directory. - (gprcmd): Idem for "pwd" internal command. - - * Makefile.generic: Use __GPRCOLON__ instead of pipe character in - target names rewrite to fix regressions with recent version of - GNU/make. Starting with GNU/make 3.80 the pipe character was not - handled properly anymore. - -2004-09-01 Andreas Schwab - - * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change. - * raise.c [!IN_RTS]: Undef abort. - -2004-08-27 Nathan Sidwell - - * utils2.c (build_allocator): Use ssize_int. - - * utils.c (gnat_init_decl_processing): Ada has a signed sizetype. - -2004-08-27 Andreas Schwab - - * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o. - -2004-08-25 Nathan Sidwell - Richard Kenner - - * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1. - -2004-08-25 Nathan Sidwell - - * cuintp.c (UI_To_gnu): Adjust build_int_cst calls. - * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise. - * utils.c (init_gigi_decls): Likewise. - * utils2.c (build_call_raise, build_allocator): Likewise. - -2004-08-24 Nathan Sidwell - - * utils.c (gnat_init_decl_processing): Adjust - build_common_tree_nodes call. - -2004-08-20 Nathan Sidwell - - * utils2.c (build_allocator): Use build_int_cst for negative - size types. - -2004-08-18 Richard Henderson - - * misc.c (LANG_HOOKS_HONOR_READONLY): Remove. - -2004-08-16 Nathan Sidwell - - * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst - call.s - * trans.c (Exception_Handler_to_gnu_sjlj): Likewise. - (gnat_to_gnu): Likewise. - -2004-08-16 Pascal Obry - - * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC - backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared - option and not mdll anymore. Update comment. - -2004-08-16 Pascal Obry - - * bld.adb (Put_Include_Project): Properly handle directory separators - on Windows. - -2004-08-16 Ed Schonberg - - * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by - decreasing the number of allocated junk nodes while searching for the - appropriate subprogram. - -2004-08-15 Nathan Sidwell - - * cuintp.c (UI_To_gnu): Use build_int_cst.. - * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise. - * utils.c (init_gigi_decls): Likewise. - * utils2.c (build_call_raise): Likewise. - -2004-08-13 Olivier Hainque - - * decl.c (gnat_to_gnu_entity) : When building an allocator - for a global aliased object with a variable size and an unconstrained - nominal subtype, pretend there is no initializer if the one we have is - incomplete, and avoid referencing an inexistant component in there. The - part we have will be rebuilt anyway and the reference may confuse - further operations. - -2004-08-13 Thomas Quinot - - * einfo.ads: Minor reformatting - - * lib-writ.adb (Output_Main_Program_Line): Do not set parameter - restrictions in the ALI if we only want to warn about violations. - -2004-08-13 Vincent Celier - - * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False - when creating a new Unit_Record in table Units. - - * gnatls.adb (Output_Unit): In verbose mode, output the restrictions - that are violated, if any. - - * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not - add directory separator if path already ends with a directory separator. - -2004-08-13 Ed Schonberg - - * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined - unit, this is an attempt to inline a construct that is not available in - the current restricted mode, so abort rather than trying to continue. - - * sem_ch3.adb (Build_Underlying_Full_View): If the new type has - discriminants that rename those of the parent, recover names of - original discriminants for the constraint on the full view of the - parent. - (Complete_Private_Subtype): Do not create a subtype declaration if the - subtype is an itype. - - * gnat_rm.texi: Added section on implementation of discriminated - records with default values for discriminants. - -2004-08-13 Ed Schonberg - - PR ada/15601 - * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where - the second operand is overloaded. - -2004-08-10 Richard Henderson - - * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc, - add __builtin_alloca. - -2004-08-10 Richard Henderson - - * config-lang.in (boot_language): Yes. - -2004-08-09 Thomas Quinot - - * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind - from complaining on potential uninitialized reference. - Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for - new specification and test explicitly for non-zero return value. - - * g-socthi.ads (Is_Socket_In_Set): Declare imported function as - returning C.int, to avoid using a derived boolean type. - - * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use - Duplicate_Subexpr_No_Checks in preference to direct use of - Remove_Side_Effects and New_Copy_Tree. - Clear Comes_From_Source on prefix of 'Size attribute reference. - - * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb, - g-socthi-vxworks.adb: Change calls to - GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification - and test explicitly for non-zero return value. - - * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads: - (Is_Socket_In_Set): Declare imported function as returning C.int, to - avoid using a derived boolean type. - -2004-08-09 Albert Lee - - * system-irix-n32.ads: Refine tasking priority constants for IRIX. - -2004-08-09 Pascal Obry - - * gnat_ugn.texi: Document new way to build DLLs on Windows using - GCC's -shared option. - - * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into - Options_2 parameter (options put after object files). - -2004-08-09 Olivier Hainque - - * decl.c (gnat_to_gnu_entity) : Adjust condition to - ignore overflows on low and high bounds of an index to also account for - differences in signedness between sizetype and gnu_index_subtype. - These are as legitimate as the ones caused by a lower TYPE_PRECISION - on sizetype. - -2004-08-09 Robert Dewar - - * s-solita.ads, s-solita.adb: Minor reformatting - - * gnat_rm.texi: Add documentation for pragma Profile (Restricted) - Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new - obsolescent section - Add note that No_Implicit_Conditionals does not suppress - run time constraint checks. - - * vms_conv.ads: Minor reformatting - - * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup - and necessary for following change). - (Mark): Return new format Mark_Id containing sec stack address - (Release): Use sec stack address from Mark_Id avoiding Self call - - * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack - pointer (cleanup and necessary for following change). - Define Mark_Id as record containing address of secondary stack, that way - Release does not need to find the stack again, decreasing the number of - calls to Self and improving efficiency. - - * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference - - * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of - case variable into the individual case branches when possible. - - * sem_ch11.adb: Minor reformatting - - * prj.ads: Correct spelling of suffixs - - * prj-nmsc.adb: Minor reformatting - Correct spelling suffixs throughout (also in identifiers) - - * freeze.adb: Minor spelling correction - - * exp_ch2.adb: Cleanups to handling of Current_Value - (no functional effect). - - * bld.adb: Correct spelling of suffixs - - * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument - -2004-08-09 Ed Schonberg - - PR ada/15408 - * sem_ch7.adb (Install_Private_Declarations): In the body of the - package or of a child, private entities are both immediately_visible - and not hidden. - -2004-08-09 Ed Schonberg - - * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer, - there are no range checks on the value of the literal. - - * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being - wrapped is the triggering alternative of an asynchronous select, action - statements mustbe inserted before the select itself. - - * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the - case where the prefix is a protected function call. - (Resolve_Attribute, case 'Access): The attribute reference on a - subprogram is legal in a generic body if the subprogram is declared - elsewhere. - -2004-08-09 Vincent Celier - - * makegpr.adb (Build_Library): Link with g++ if C++ is one of the - languages, otherwise building the library may fail with unresolved - symbols. - (Compile_Sources): Do not build libraries if -c switch is used - - * gnatlink.adb (Process_Args): New switches -M and -Mmap - (Write_Usage): If map file creation is supported, output new switches - -M and -Mmap. - (Gnatlink): When -M is specified, add the necessary switch(es) to the - gcc call, when supported. - - * Makefile.in: Added indepsw.o to the object list for gnatlink - Specified the AIX, GNU/Linux and Windows versions of indepsw.adb - - * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb, - indepsw.adb, indepsw.ads: New files. - -2004-08-09 Bernard Banner - - * system-vxworks-x86.ads, s-vxwork-x86.ads: New files. - - * Makefile.in: add section for vxworks x86 - -2004-08-09 Hristian Kirtchev - - * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with - per-object constrained components where the discriminant is of an - Access type. - (Build_Record_Init_Proc): Add condition to prevent the inheritance of - the parent initialization procedure for derived Unchecked_Unions. - Instead, derived Unchecked_Unions build their own initialization - procedure. - (Build_Variant_Record_Equality): Implement Unchecked_Union equality. - Check the body of the subprogram for details. - (Freeze_Record_Type): Prevent the inheritance of discriminant checking - functions for derived Unchecked_Union types by introducing a condition. - Allow the creation of TSS equality functions for Unchecked_Unions. - (Make_Eq_Case): Rename formal parameter Node to E in function signature. - Add formal parameter Discr to function signature. Discr is used to - control the generated case statement for Unchecked_Union types. - (Make_Eq_If): Rename formal parameter Node to E in function signature. - - * exp_ch4.adb (Build_Equality_Call): Implement equality calls for - Unchecked_Unions. - Check the body of the subprogram for details. - (Expand_Composite_Equality): Augment composite type equality to include - correct handling of Unchecked_Union components. - (Expand_N_In): Add condition to detect illegal membership tests when the - subtype mark is a constrained Unchecked_Union and the expression lacks - inferable discriminants, and build a Raise_Program_Error node. - (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used - to detect types that contain components of unconstrained Unchecked_Union - subtype. Add condition to detect equality between types that have an - unconstrained Unchecked_Union component, and build a Raise_Program_Error - node. Add condition to detect equality between Unchecked_Union types - that lack inferable discriminants, and build a Raise_Program_Error node. - Otherwise build a TSS equality function call. - (Expand_N_Type_Conversion): Add condition to detect illegal conversions - from a derived Unchecked_Union to an unconstrained non-Unchecked_Union - with the operand lacking inferable discriminants, and build a Raise_ - Program_Error node. - (Expand_Record_Equality): Remove guard that prevents Unchecked_Union - composite equality. - (Has_Inferable_Discriminants): Implement new predicate for objects and - expressions of Unchecked_Union type. Check the body of subprogram for - details. - (Has_Unconstrained_UU_Components): Add function - Component_Is_Unconstrained_UU. It is used to detect whether a single - component is of an unconstrained Unchecked_Union subtype. Add function - Variant_Is_Unconstrained_UU. It is used to detect whether a single - component inside a variant is of an unconstrained Unchecked_Union type. - - * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the - inferred discriminant values. Add condition to generate a case - statement with an inferred discriminant as the switch. - (Make_Component_List_Assign): Introduce a Boolean flag that determines - the behaviour of the subprogram in the presence of an Unchecked_Union. - Add condition to trigger the usage of the inferred discriminant value - as the generated case statement switch. - (Make_Field_Assign): Introduce a Boolean flag that determines the - behaviour of the subprogram in the presence of an Unchecked_Union. Add - condition to trigger the usage of the inferred discriminant value as - the right-hand side of the generated assignment. - - * exp_ch6.adb (Expand_Call): Add condition to skip extra actual - parameter generation when dealing with Unchecked_Unions. - - * checks.adb (Apply_Discriminant_Check): Do not apply discriminant - checks for Unchecked_Unions. - - * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint - - * exp_attr.adb (Expand_N_Attribute_Reference): Produce - Raise_Program_Error nodes for the execution of Read and Write - attributes of Unchecked_Union types and the execution of Input and - Output attributes of Unchecked_Union types that lack default - discriminant values. - - * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma - Unchecked_Union. Add procedure Check_Component. It is used to inspect - per-object constrained components of Unchecked_Unions for being - Unchecked_Unions themselves. Add procedure Check_Variant. It is used to - check individual components withing a variant. - - * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents - comparison of Unchecked_Unions. - (Resolve_Equality_OP): Remove guard that prevents equality between - Unchecked_Unions. - - * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation - of component subtypes for Unchecked_Union components. - (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type - since it is the actual subtype. - - * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct - pass of Unchecked_Union subtypes as generic actuals to formal types - that lack known_discriminant_parts or that are derived Unchecked_Union - types, and do nothing. In any other case, produce an error message. - - * sem_ch3.adb (Analyze_Component_Declaration): Add function - Contains_POC. It determines whether a constraint uses the discriminant - of an enclosing record type. - Add condition to detect per-object constrained component and set the - appropriate flag. - (Derived_Type_Declaration): Remove guard that prevents derivation from - Unchecked_Union types. - (Process_Subtype): Remove quard that prevents the creation of Unchecked_ - Union subtypes. - - * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of - references to Unchecked_Union discriminants. - - * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra - formal generation when dealing with Unchecked_Unions. - (Set_Actual_Subtypes): Add condition to prevent generation of actual - subtypes for Unchecked_Unions. - - * sem_ch7.adb (Analyze_Package_Specification): Add procedure - Inspect_Unchecked_Union_Completion. It is used to detect incorrect - completions of discriminated partial views by Unchecked_Unions and - produce an error message. - -2004-08-09 Richard Kenner - - * trans.c (struct stmt_group): New field, GLOBAL. - (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted. - (struct elab_info): New struct. - (elab_info_list, gnu_elab_proc_stack): New variables. - (Compilation_Unit_to_gnu): New procedure. - (gigi): Call it and also handle elaboration procs we've saved. - (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize - global field from parent. - (gnat_to_gnu): Get decl from gnu_elab_proc_stack. - (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu. - (start_stmt_group): Initialize global field from parent. - (add_decl_expr): Set to global for current statement group. - (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not - post. - - * utils.c (global_bindings_p): True when no current_function_decl; no - longer check current_binding_level. - -2004-08-09 Ben Brosgol - - * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition - choice. - - * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic. - -2004-08-06 Andreas Schwab - - * utils.c (gnat_define_builtin): Remove second parameter of - make_decl_rtl. - (begin_subprog_body): Likewise. - -2004-07-26 Arnaud Charlet - - * sem_util.adb (Requires_Transient_Scope): Temporarily disable - optimization, not supported by the tree-ssa back-end. - -2004-07-26 Olivier Hainque - - * s-mastop-irix.adb: Update comments. - - * a-except.adb (Exception_Information): Raise Constraint_Error if - exception Id is Null_Id. - This is required behavior, which is more reliably and clearly checked - at the top level interface level. - -2004-07-26 Javier Miranda - - * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization - call if a component has no default_expression and the box is used. - - * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no - default_expression and you use box, it behaves as if you had declared a - stand-alone object. - (Resolve_Record_Aggregate): If a component has no default_expression and - you use box, it behaves as if you had declared a stand-alone object. - - * sem_ch10.adb (Install_Siblings): Do not make visible the private - entities of private-with siblings. - -2004-07-26 Ed Schonberg - - * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view - for a component of an itype, set the parent pointer for analysis, - there is no list in which to insert it. - - * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for - bona-fide renamings, not for inherited operations. - - * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an - actual for a formal that is an access parameter, create local - finalization list even if the expression is not an aggregate. - -2004-07-26 Ed Schonberg - - PR ada/16213 - * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming): - Diagnose properly illegal subprogram renamings that are library units. - -2004-07-26 Ed Schonberg - - PR ada/15588 - * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type - conversion rewritten as an unchecked conversion, check that original - expression is a variable. - - * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an - unchecked_conversion, create new node rather than rewriting in place, - to preserve original construct. - -2004-07-26 Richard Kenner - - * gigi.h (gnat_expand_body): Deleted. - - * Make-lang.in: (trans.o): Depends on function.h. - - * misc.c: (gnat_expand_body): Moved to here. - - * trans.c (gnat_expand_body_1): Deleted. - (gnat_expand_body): Moved from here. - (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc. - (add_stmt): Check for marked visited with global_bindings_p. - (gnat_gimplify_expr, case COMPONENT_REF): New case. - (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp. - - * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a - VIEW_CONVERT_EXPR if not operation type. - - * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for - fat pointer. - - * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor - changes: reformatting of negation operators, removing unneeded - inequality comparison with zero, converting equality comparisons with - zero to negations, changing int/0/1 to bool/false/true, replace calls - to gigi_abort with abort, and various other similar changes. - -2004-07-26 Vincent Celier - - * gnatcmd.adb (GNATCmd): Add processing for new built-in command - "setup". - - * make.adb (Gnatmake): Fail when a library is not present and there is - no object directory. - - * mlib-prj.adb (Check_Library): No need to check if the library needs - to be rebuilt if there is no object directory, hence no object files - to build the library. - - * opt.ads (Setup_Projects): New Boolean flag. - - * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and - Location. - Create directory when Kind /= "" and in "gnat setup". Report error if - directory cannot be created. - (Ada_Check): Create library interface copy dir if it does not exist - and we are in "gnat setup". - (Find_Sources): No error if in "gnat setup" and no Ada sources were - found. - (Language_Independent_Check): Create object directory, exec directory - and/or library directory if they do not exist and we are in - "gnat setup". - - * vms_conv.ads: (Command_Type): New command Setup. - - * vms_conv.adb (Initialize): Add Setup component of Cammand_List. - - * vms_data.ads: Add qualifiers/switches for new built-in command - "setup". - -2004-07-25 Richard Henderson - - * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and - DECL_IGNORED_P on RESULT_DECL. - -2004-07-20 Olivier Hainque - - * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic - allocation and potentially overflowing update with - Tailored_Exception_Information. Use the sec-stack free procedural - interface to output Exception_Information instead. - - * a-except.adb (To_Stderr): New subprogram for character, and string - version moved from a-exextr to be visible from other separate units. - (Tailored_Exception_Information): Remove the procedural version, - previously used by the default Last_Chance_Handler and not any more. - Adjust various comments. - - * a-exexda.adb: Generalize the exception information procedural - interface, to minimize the use of secondary stack and the need for - local buffers when the info is to be output to stderr: - (Address_Image): Removed. - (Append_Info_Character): New subprogram, checking for overflows and - outputing to stderr if buffer to fill is of length 0. - (Append_Info_String): Output to stderr if buffer to fill is of length 0. - (Append_Info_Address, Append_Info_Exception_Name, - Append_Info_Exception_Message, Append_Info_Basic_Exception_Information, - Append_Info_Basic_Exception_Traceback, - Append_Info_Exception_Information): New subprograms. - (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character. - (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength, - Exception_Info_Maxlength, Exception_Name_Length, - Exception_Message_Length): New subprograms. - (Exception_Information): Use Append_Info_Exception_Information. - (Tailored_Exception_Information): Use - Append_Info_Basic_Exception_Information. - Export services for the default Last_Chance_Handler. - - * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by - other separate units. - -2004-07-20 Vincent Celier - - * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting. - -2004-07-20 Ed Schonberg - - * freeze.adb (Freeze_Entity): If entity is a discriminated record type, - emit itype references for the designated types of component types that - are declared outside of the full record declaration, and that may - denote a partial view of that record type. - -2004-07-20 Ed Schonberg - - PR ada/15607 - * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype - which is the designated type in an access component declaration, to the - list of incomplete dependents of the parent type, to avoid elaboration - issues with out-of-scope subtypes. - (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the - full view of the parent. - -2004-07-20 Ed Schonberg - - PR ada/15610 - * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject - entities that are hidden, such as references to generic actuals - outside an instance. - -2004-07-20 Javier Miranda - - * sem_ch4.adb (Try_Object_Operation): New subprogram that gives - support to the new notation. - (Analyze_Selected_Component): Add call to Try_Object_Operation. - -2004-07-20 Jose Ruiz - - * s-taprob.adb: Adding the elaboration code required for initializing - the tasking soft links that are common to the full and the restricted - run times. - - * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the - restricted run time has been moved to the package - System.Soft_Links.Tasking. - - * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the - restricted run time has been moved to the package - System.Soft_Links.Tasking. - - * Makefile.rtl: Add entry for s-solita.o in run-time library list. - - * s-solita.ads, s-solita.adb: New files. - -2004-07-20 Richard Kenner - - * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu, - Case_Statement_to_gnu): Split off from gnat_to_gnu. - (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu, - Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj, - Exception_Handler_to_gnu_zcx): Likewise. - -2004-07-17 Joseph S. Myers - - * gigi.h (builtin_function): Declare. - -2004-07-15 Robert Dewar - - * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor - reformatting - - * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with - access values as an example of a warning. - - * gnat_rm.texi: Document new attribute Has_Access_Values - - * gnat-style.texi: Document that box comments belong on nested - subprograms - - * sem_util.ads (Has_Access_Values): Improved documentation - - * s-finimp.ads, s-finimp.adb: Fix spelling error in comment - - * sem_prag.adb (Check_Duplicated_Export_Name): New procedure - (Process_Interface_Name): Call to this new procedure - (Set_Extended_Import_Export_External_Name): Call to this new procedure - - * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment - - * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values - - * einfo.ads: Minor comment typo fixed - -2004-07-15 Jose Ruiz - - * snames.adb: Add _atcb. - - * snames.ads: Add Name_uATCB. - - * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated - (in the expanded code) when using the restricted run time. - - * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into - a in parameter in order to allow ATCBs to be preallocated (in the - expanded code). - - * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in - order to allow ATCBs to be preallocated. In case of error, the ATCB is - deallocated in System.Tasking.Stages. - - * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in - order to allow ATCBs to be preallocated. - - * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated - here. It was previously done in Initialize_ATCB. - - * rtsfind.ads: Make the Ada_Task_Control_Block visible. - - * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the - Restricted run time. - - * exp_ch3.adb: When using the Restricted run time, pass the - preallocated Ada_Task_Control_Block when creating a task. - -2004-07-15 Ed Schonberg - - * sem_util.adb (Normalize_Actuals): If there are no actuals on a - function call that is itself an actual in an enclosing call, diagnose - problem here rather than assuming that resolution will catch it. - - * sem_ch7.adb (Analyze_Package_Specification): If the specification is - the local copy of a generic unit for a formal package, and the generic - is a child unit, install private part of ancestors before compiling - private part of spec. - - * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to - use scope entities rather than tree structures, to handle properly - parent units that are instances rewritten as bodies for inlining - purposes. - - * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent, - Remove_Parents): Handle properly a parent unit that is an - instantiation, when the unit has been rewritten as a body for inlining - purposes. - - * par.adb (Goto_List): Global variable to collect goto statements in a - given unit, for use in detecting natural loops. - - * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for - use in detecting natural loops. - - * par-labl.adb (Find_Natural_Loops): Recognize loops create by - backwards goto's, and rewrite as a infinite loop, to improve locality - of temporaries. - - * exp_util.adb (Force_Evaluation): Recognize a left-hand side - subcomponent that includes an indexed reference, to prevent the - generation of copies that would miscompile the desired assignment - statement. - (Build_Task_Image_Decls): Add a numeric suffix to - generated name for string variable, to avoid spurious conflicts with - the name of the type of a single protected object. - - * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a - loop with an explicit exit statement, to avoid generating an - out-of-range value with 'Succ leading to spurious constraint_errors - when compiling with -gnatVo. - -2004-07-15 Thomas Quinot - - * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it - might not be analyzed yet, even if its Etype is already set (case of an - unchecked conversion built using Unchecked_Convert_To, for example). - If the prefix has already been analyzed, this will be a nop anyway. - - * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a - controller type, or an assignment of a record type with controlled - components, copy only user data, and leave the finalization chain - pointers untouched. - -2004-07-15 Vincent Celier - - * make.adb (Collect_Arguments): Improve error message when attempting - to compile a source not part of any project, when -x is not used. - - * prj.ads: (Defined_Variable_Kind): New subtype - - * prj-attr.adb (Register_New_Package): Two new procedures to register - a package with or without its attributes. - (Register_New_Attribute): Mew procedure to register a new attribute in a - package. - New attribute oriented subprograms: Attribute_Node_Id_Of, - Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of, - Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of, - Next_Attribute. - New package oriented subprograms: Package_Node_Id_Of, - Add_Unknown_Package, First_Attribute_Of, Add_Attribute. - - * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized - type. - (Package_Node_Id): Now a private, self initialized type - (Register_New_Package): New procedure to register a package with its - attributes. - New attribute oriented subprograms: Attribute_Node_Id_Of, - Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of, - Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of, - Next_Attribute. - New package oriented subprograms: Package_Node_Id_Of, - Add_Unknown_Package, First_Attribute_Of, Add_Attribute. - - * prj-dect.adb (Parse_Attribute_Declaration, - Parse_Package_Declaration): Adapt to new spec of Prj.Attr. - - * prj-makr.adb (Make): Parse existing project file before creating - other files. Fail if there was an error during parsing. - - * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to - new spec of Prj.Attr. - - * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt - to new spec of Prj.Attr. - -2004-07-15 Richard Kenner - - * utils2.c: Fix typo in comment. - -2004-07-14 Richard Kenner - - * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL. - * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs. - -2004-07-14 Andreas Schwab - - * trans.c (gnat_init_stmt_group): Remove duplicate definition. - -2004-07-13 Richard Kenner - - * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to - object type. - (gnat_to_gnu_entity, case E_Record_Subtype): Properly set - TYPE_STUB_DECL. - - * misc.c (gnat_types_compatible_p): New function. - (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it. - (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New. - - * trans.c (gigi): Move processing of main N_Compilation_Unit here. - (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here. - (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR. - (mark_visited): Don't mark dummy type. - (tree_transform ): Unless this is an In - parameter, we must remove any LJM building from GNU_NAME. - (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR. - (pos_to_constructor): Use int_const_binop. - (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of - PARM_DECL. - - * utils.c (gnat_init_decl_processing): Don't make two "void" decls. - (gnat_pushlevel): Set TREE_USE on BLOCK node. - (gnat_install_builtins): Add __builtin_memset. - -2004-07-13 Olivier Hainque - - * decl.c (gnat_to_gnu_entity ): If we are making a pointer - for a renaming, stabilize the initialization expression if we are at a - local level. At the local level, uses of the renaming may be performed - by a direct dereference of the initializing expression, and we don't - want possible variables there to be evaluated for every use. - - * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1): - Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing - them on the way. Account for the fact that we may introduce side - effects in the process. - -2004-07-13 Richard Henderson - - * misc.c (default_pass_by_ref): Use pass_by_reference. - -2004-07-11 Joseph S. Myers - - * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL, - LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove. - -2004-07-08 Richard Henderson - - * trans.c (gnat_to_gnu ): Update - commentary. - -2004-07-06 Vincent Celier - - * vms_conv.ads: Minor reformatting. - Alphabetical order for enumerated values of type Command_Type, to have - the command in alphabetical order for the usage. - - * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for - the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters). - - * gnat_ugn.texi: Document new switch -dn for the GNAT driver. - - * makegpr.adb (Global_Archive_Exists): New global Boolean variable - (Add_Archive_Path): Only add the global archive if there is one. - (Build_Global_Archive): Set Global_Archive_Exists depending if there is - or not any object file to put in the global archive, and don't build - a global archive if there is none. - (X_Switches): New table - (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored - in the X_Switches table, if any. - (Initialize): Make sure the X_Switches table is empty - (Scan_Arg): Record -X switches in table X_Switches - - * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False. - - * make.adb: Minor comment fix - - * gnatname.adb (Gnatname): When not on VMS, and gnatname has been - invoked with directory information, add the directory in front of the - path. - - * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been - invoked with directory information, add the directory in front of the - path. - - * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files - when Keep_Temporary_Files is False. - (GNATCmd): When not on VMS, and the GNAT driver has been invoked with - directory information, add the directory in front of the path. - When not on VMS, handle new switch -dn before the command to set - Keep_Temporary_Files to True. - (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid - everywhere. - - * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been - invoked with directory information, add the directory in front of the - path. - -2004-07-06 Thomas Quinot - - * snames.ads, snames.adb (Name_Stub): New name for the distributed - systems annex. - - * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB. - New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA. - - * g-socket.adb (To_Timeval): Fix incorrect conversion of - Selector_Duration to Timeval for the case of 0.0. - - * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of - documentation from Evolve_And_Then. - -2004-07-06 Jose Ruiz - - * s-taprop-tru64.adb, s-taprop-os2.adb, - s-taprop-mingw.adb, s-taprop-posix.adb: Update comment. - -2004-07-06 Robert Dewar - - * s-osinte-hpux.ads, s-osinte-freebsd.ads, - s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads, - s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb, - s-interr-sigaction.adb, s-taprop-irix-athread.adb, - s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb, - s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb, - s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb, - s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb, - a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb, - a-tags.ads, bindgen.ads, checks.adb, checks.adb, - csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb, - exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb, - g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb, - i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb, - sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb, - sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb, - sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads, - s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads, - s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb, - s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb, - vms_data.ads: Minor reformatting, - Fix bad box comment format. - - * gnat_rm.texi: Fix minor grammatical error - - * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values - - * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many - more cases of discriminated records to be recognized as not needing a - secondary stack. - (Has_Access_Values): New function. - - * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values - - * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name - Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence - with LRM terminology). - Change terminology in comments primitive type => elementary type. - -2004-07-06 Ed Schonberg - - PR ada/15602 - * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal - parameters do not impose any requirements on the presence of a body. - -2004-07-06 Ed Schonberg - - PR ada/15593 - * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a - compilation unit and is in an open scope at the point of instantiation, - assume that a body may be present later. - -2004-07-06 Ed Schonberg - - * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size): - Improve error message when specified size is not supported. - - * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram - is never a primitive operation. - -2004-07-05 Andreas Schwab - - * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use - RECORD_OR_UNION_CHECK. - (TYPE_CONTAINS_TEMPLATE_P): Likewise. - -2004-07-04 Kelley Cook - - * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit - dependency on xgnatugn, instead build it via a submake. - (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi. - -2004-07-04 Richard Henderson - - * utils2.c (gnat_mark_addressable): Don't put_var_into_stack. - -2004-07-01 Richard Henderson - - * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR. - * utils.c (max_size): Likewise. - -2004-06-28 Richard Kenner - - * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation, - and rest_of_type_compilation; add arg to create_*_decl. - (annotate_decl_with_node): Deleted. - (gnat_to_gnu_entity, case E_Array_Type): Set location of fields. - * gigi.h (get_decls, block_has_vars, pushdecl): Deleted. - (get_current_block_context, gnat_pushdecl): New declarations. - (gnat_init_stmt_group): Likewise. - (create_var_decl, create_type_decl, create_subprog_decl): Add new arg. - * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted. - (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted. - (gnat_init): Call gnat_init_stmt_group. - * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables. - (gnu_pending_elaboration_list): Deleted. - (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions. - (gigi): Rearrange initialization calls and move some to last above. - (gnat_to_gnu): If statement and not in procedure, go into elab proc. - Delete calls to add_decl_expr; add arg to create_*_decl. - (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR. - (gnat_to_gnu, case N_Subprogram_Body): Move some code to - begin_subprog_body and call it. - Don't push and pop ggc context. - (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc. - (add_stmt): Remove handling of DECL_EXPR from here. - If not in function, mark visited. - (add_decl_expr): Put global at top level. - Check for cases of DECL_INITIAL we have to handle here. - (process_type): Add extra arg to create_type_decl. - (build_unit_elab): Rework to just gimplify. - * utils.c (pending_elaborations, elist_stack, getdecls): Deleted. - (block_has_vars, mark_visited, add_pending_elaborations): Likewise. - (get_pending_elaborations, pending_elaborations_p): Likewise. - (push_pending_elaborations, pop_pending_elaborations): Likewise. - (get_elaboration_location, insert_elaboration_list): Likewise. - (gnat_binding_level): Renamed from ada_binding_level. - (init_gnat_to_gnu): Don't clear pending_elaborations. - (global_bindings_p): Treat as global if no current_binding_level. - (set_current_block_context): New function. - (gnat_pushdecl): Renamed from pushdecl; major rework. - All callers changed. - (create_type_decl, create_var_decl, create_subprog_decl): Add new arg. - (finish_record_type): Call call pushdecl for stub decl. - (function_nesting_depth): Deleted. - (begin_subprog_body): Delete obsolete code. - * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl. - -2004-06-28 Robert Dewar - - * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, - mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb, - mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb, - mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, - a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting - - * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to - deal with problem of inefficient slices on machines with strict - alignment, when the slice is a component of a composite. - - * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit - machines, we need the check there as well. - -2004-06-28 Ed Schonberg - - * exp_ch5.adb (Expand_Assign_Array): Use correct condition to - determine safe copying direction for overlapping slice assignments - when component is controlled. - - * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a - formal derived type in the actual for a formal package are visible in - the enclosing instance. - -2004-06-28 Ed Schonberg - - PR ada/15600 - * sem_util.adb (Trace_Components): Diagnose properly an illegal - circularity involving a private type whose completion includes a - self-referential component. - (Enter_Name): Use Is_Inherited_Operation to distinguish a source - renaming or an instantiation from an implicit derived operation. - -2004-06-28 Pascal Obry - - * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from - DLL. - (Library_File_Name_For): Idem. - -2004-06-28 Matthew Gingell - - * g-traceb.ads: Add explanatory note on the format of addresses - expected by addr2line. - -2004-06-28 Jerome Guitton - - * Makefile.in: Force debugging information on s-tasdeb.adb, - a-except.adb and s-assert.adb needed by the debugger. - -2004-06-28 Vincent Celier - - * make.adb (Collect_Arguments_And_Compile): Change Flag1 to - Need_To_Build_Lib. - (Gnatmake): Ditto. - - * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib - - * prj.adb: Minor reformatting - (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2. - - * prj.ads: Comment updates - Minor reformatting - (Project_Data): Change Flag1 to Need_To_Build_Lib. - Remove Flag2: not used. - - * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a - declaration. - - * gnat_ugn.texi: Put a "null;" declaration in one project file example - - * gnat_rm.texi: Document Empty declarations "null;". - - * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in - front of the linker options. - (Link_Foreign): Put the global archives and the libraries in front of - the linker options. - -2004-06-28 Javier Miranda - - * rtsfind.adb: (Get_Unit_Name): Fix typo in comment - (RTU_Loaded): Code cleanup - (Set_RTU_Loaded): New procedure to register as *loaded* explicitly - withed predefined units. - - * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded* - explicitly withed predefined units. - Fix typo in comment - - * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded* - explicitly withed predefined units. - -2004-06-26 Richard Kenner - - * ada-tree.def (DECL_STMT): Deleted. - * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT. - (DECL_STMT_VAR): Deleted. - * decl.c: add_decl_stmt now add_decl_expr. - * gigi.h: Likewise. - * trans.c: Likewise. - (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted. - (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus. - (add_stmt): Only handle padded type here. - (add_stmt_with_node): Allow gnat_node to not be present. - (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null. - (gnat_gimplify_stmt, case DECL_STMT): Deleted. - (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer, - make a SAVE_EXPR for the entire fat pointer. - * utils.c (pushdecl): Walk a DECL_EXPR in global case. - (create_index_type): Make a DECL_EXPR. - (end_subprog_body): Don't call allocate_struct_function here but - do clear cfun. - -2004-06-25 Pascal Obry - - * makegpr.adb (Build_Library): Remove parameter Lib_Address and - Relocatable from Build_Dynamic_Library call. - - * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and - Relocatable are now synonym. - - * Makefile.in: Use s-parame-mingw.adb on MingW platform. - - * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition. - Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library - call. - - * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter - Lib_Address and Relocatable. - (Default_DLL_Address): Removed. - - * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, - mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb, - mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb: - (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable. - (Default_DLL_Address): Removed. - - * mlib-tgt-mingw.adb: Ditto. - (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name. - - * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute - the initial thread stack size. - - * a-strmap.ads: Move package L to private part as it is not used in - the spec. Found while reading code. - -2004-06-25 Olivier Hainque - - * tracebak.c: Introduce support for a GCC infrastructure based - implementation of __gnat_backtrace. - - * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record - any more. Use accessors instead. This eases maintenance and relaxes - some alignment constraints. - (_GNAT_Exception structure): Remove the Ada specific fields - (EID_For, Adjust_N_Cleanups_For): New accessors, exported by - a-exexpr.adb. - (is_handled_by, __gnat_eh_personality): Replace component references to - exception structure by use of the new accessors. - - * init.c (__gnat_initialize): Adjust comments to match the just - reverted meaning of the -static link-time option. - - * adaint.c (convert_addresses): Arrange not to define a stub for - mips-irix any more, as we now want to rely on a real version from a - recent libaddr2line. - - * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that - the personality routine can use them and not have to rely on a C - counterpart of the record anymore. This simplifies maintenance and - relaxes the constraint of having Standard'Maximum_Alignment match - BIGGEST_ALIGNMENT. - Update comments, and add a section on the common header alignment issue. - -2004-06-25 Geert Bosch - - * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in - polynomial approximation. Fixes inconsistency with Cody/Waite algorithm. - -2004-06-25 Robert Dewar - - * gnat_rm.texi: Fix section on component clauses to indicate that the - restriction on byte boundary placement still applies for bit packed - arrays. - Add comment on stack usage from Initialize_Scalars - - * gnat_ugn.texi: Add documentation for -gnatyLnnn - - * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for - limiting nesting level. - - * usage.adb: Add line for -gnatyLnnn switch - - * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads, - sem_ch13.adb, exp_aggr.adb: Minor reformatting - - * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base - type as well as on the subtype. This corrects a problem in freeze in - setting alignments of atomic types. - - * sem_eval.ads: Minor comment typo fixed - - * par-util.adb (Push_Scope_Stack): Check for violation of max nesting - level. Minor reformatting. - - * fname.adb (Is_Predefined_File_Name): Require a letter after the - minus sign. This means that file names like a--b.adb will not be - considered predefined. - - * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing - record Test new flag and give diagnostic for bad component clause. - (Freeze_Entity): Set alignment of array from component alignment in - cases where this is safe to do. - - * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed - arrays. - - * cstand.adb: (Create_Standard): Set alignment of String to 1 - - * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary - - * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated - code in the common constrained array cases. - - * a-storio.adb: Change implementation to avoid possible alignment - problems on machines requiring strict alignment (data should be moved - as type Buffer, not type Elmt). - - * checks.adb (Apply_Array_Size_Check): Improve these checks by - killing the overflow checks which we really do not need (64-bits is - enough). - -2004-06-25 Vincent Celier - - * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function - (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path - inconditionally for the main project. - (Recursive_Add_Archives.Add_Archive_Path): New procedure - (Link_Executables.Check_Time_Stamps): New procedure - (Link_Executables.Link_Foreign): New procedure - Changes made to reduce nesting level of this package - (Check): New procedure - (Add_Switches): When not in quiet output, check that a switch is not - the concatenation of several valid switches. If it is, issue a warning. - (Build_Global_Archive): If the global archive is rebuilt, linking need - to be done. - (Compile_Sources): Rebuilding a library archive does not imply - rebuilding the global archive. - (Build_Global_Archive): New procedure - (Build_Library): New name for Build_Archive, now only for library - project - (Check_Archive_Builder): New procedure - (Create_Global_Archive_Dependency_File): New procedure - (Gprmake): Call Build_Global_Archive before linking - * makegpr.adb: Use Other_Sources_Present instead of Sources_Present - throughout. - (Scan_Arg): Display the Copyright notice when -v is used - - * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=) - for gnatls. - - * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT - COMPILE. - Add new GNAT LIST qualifier /FILES= - Added qualifier /DIRECTORY= to GNAT METRIC - Added qualifier /FILES= to GNAT METRIC - Added qualifier /FILES to GNAT PRETTY - - * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS, - to take into account both versions of the switch. - - * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should - always be the last switch to the gcc driver. Disable switch storing so - that switches automatically added by the gcc driver are not put in the - ALI file. - - * prj.adb (Project_Empty): Take into account changes in components of - Project_Data. - - * prj.ads (Languages_Processed): New enumaration value All_Languages. - - * prj.ads (Project_Data): Remove component Lib_Elaboration: never - used. Split Boolean component Ada_Sources_Present in two Boolean - components Ada_Sources_Present and Other_Sources_Present. - Minor reformatting - - * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present - instead of Sources_Present. - (Set_Ada_Paths.Add.Recursive_Add): Ditto - - * prj-nmsc.adb: Minor reformatting - (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme - (Check_Ada_Naming_Scheme_Validity): New name of previous procedure - Check_Ada_Naming_Scheme. - Change Sources_Present to Ada_Sources_Present or Other_Sources_Present - throughout. - - * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter - In_Limited. - Make sure that all cycles where there is at least one "limited with" - are detected. - (Parse_Single_Project): New Boolean parameter In_Limited - - * prj-proc.adb (Recursive_Check): When Process_Languages is - All_Languages, call first Prj.Nmsc.Ada_Check, then - Prj.Nmsc.Other_Languages_Check. - - * prj-proc.adb (Process): Use Ada_Sources_Present or - Other_Sources_Present (instead of Sources_Present) depending on - Process_Languages. - - * lang-specs.h: Keep -g and -m switches in the same order, and as the - last switches. - - * lib.adb (Switch_Storing_Enabled): New global Boolean flag - (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to - False. - (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is - False. - - * lib.ads (Disable_Switch_Storing): New procedure. - - * make.adb: Modifications to reduce nesting level of this package. - (Check_Standard_Library): New procedure - (Gnatmake.Check_Mains): New procedure - (Gnatmake.Create_Binder_Mapping_File): New procedure - (Compile_Sources.Compile): Add switch -gnatez as the last option - (Display): Never display -gnatez - - * Makefile.generic: - When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT) - - * gnatcmd.adb (Check_Project): New function - (Process_Link): New procedure to reduce nesting depth - (Check_Files): New procedure to reduce the nesting depth. - For GNAT METRIC, include the inherited sources in extending projects. - (GNATCmd): When GNAT LS is invoked with a project file and no files, - add the list of files from the sources of the project file. If this list - is too long, put it in a temp text files and use switch -files= - (Delete_Temp_Config_Files): Delete the temp text file that contains - a list of source for gnatpp or gnatmetric, if one has been created. - (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources - in the project file is too large, create a temporary text file that - list them and pass it to the tool with "-files=". - (GNATCmd): For GNAT METRIC add "-d=" as the first switch - - * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the - generated file is in not in Ada. - - * gnatls.adb: Remove all parameters And_Save that are no longer used. - (Scan_Ls_Arg): Add processing for -files= - (Usage): Add line for -files= - - * g-os_lib.adb (On_Windows): New global constant Boolean flag - (Normalize_Pathname): When on Windows and the path starts with a - directory separator, make sure that the resulting path will start with - a drive letter. - - * clean.adb (Clean_Archive): New procedure - (Clean_Project): When there is non-Ada code, delete the global archive, - the archive dependency files, the object files and their dependency - files, if they exist. - (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only. - -2004-06-25 Thomas Quinot - - * sinfo.ads: Fix typo in comment. - - * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses - the TSS for remote access-to-subprogram types, since these TSS are - always present once the type has been analyzed. - (RAS_E_Dereference): Same. - - * sem_attr.adb (Analyze_Attribute): When analysis of an attribute - reference raises Bad_Attribute, mark the reference as analyzed so the - node (and any children resulting from rewrites that could have occurred - during the analysis that ultimately failed) is not analyzed again. - - * exp_ch7.ads (Find_Final_List): Fix misaligned comment. - - * exp_dist.adb: Minor comment fix. - - * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected - type is an anonymous access type, no unchecked deallocation of the - allocated object can occur. If the object is controlled, attach it with - a count of 1. This allows attachment to the Global_Final_List, if - no other relevant list is available. - (Get_Allocator_Final_List): For an anonymous access type that is - the type of a discriminant or record component, the corresponding - finalisation list is the one of the scope of the type. - -2004-06-25 Ed Schonberg - - * sem_ch3.adb (Replace_Type): When computing the signature of an - inherited subprogram, use the first subtype if the derived type - declaration has no constraint. - - * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array - before applying previous optimization. Minor code cleanup. - - * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is - placed at the beginning of an unpacked record without explicit - alignment, a slice of it will be aligned and does not need a copy when - used as an actual. - -2004-06-25 Ed Schonberg - - PR ada/15591 - PR ada/15592 - * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute - reference is written with expressions mimicking parameters. - -2004-06-25 Hristian Kirtchev - - PR ada/15589 - * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to - STEP 2a. The constraints of a full type declaration of a derived record - type are checked for conformance with those declared in the - corresponding private extension declaration. The message - "not conformant with previous declaration" is emitted if an error is - detected. - -2004-06-25 Vasiliy Fofanov - - * g-traceb.ads: Document the need for -E binder switch in the spec. - - * g-trasym.ads: Document the need for -E binder switch in the spec. - -2004-06-25 Jose Ruiz - - * sem_prag.adb: Add handling of pragma Detect_Blocking. - - * snames.h, snames.ads, snames.adb: Add entry for pragma - Detect_Blocking. - - * s-rident.ads: Change reference to pragma Detect_Blocking. - - * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in - system.ads. - - * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False) - to indicate whether pragma Detect_Blocking is active. - - * par-prag.adb: Add entry for pragma Detect_Blocking. - - * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug - of not handling WITH. - Note that this replaces the previous update which was incorrect. - -2004-06-25 Javier Miranda - - * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the - use-clauses to have a clean environment. - - * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force - the installation of the use-clauses to stablish a clean environment in - case of compilation of a separate unit; otherwise the call to - use_one_package is protected by the barrier Applicable_Use. - - * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force - the installation of the use-clauses to stablish a clean environment in - case of compilation of a separate unit. - (End_Use_Clauses): Minor comment cleanup. - -2004-06-25 Sergey Rybin - - * gnat_ugn.texi: Add description of the gnatpp 'files' switch - -2004-06-23 Richard Henderson - - * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call. - -2004-06-20 Richard Kenner - - * decl.c (elaborate_expression, elaborate_expression_1): Arguments - now bool instead of int. - (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF. - * trans.c (gnu_switch_label_stack): New function. - (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the - elaboration of renamed entity returns. - (gnat_to_gnu, case N_Case_Statement): Add branches to end label. - (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE. - (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt. - (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and - DECL_SIZE_UNIT and simplify variable-sized case. - (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted. - Callers changes to call gimplify_type_sizes and gimplify_one_sizepos. - (gnat_stabilize_reference): Add arg to COMPONENT_REF. - (build_unit_elab): Disable for now. - * utils.c (mark_visited): New function. - (pushdecl): Walk tree to call it for global decl. - (update_pointer_to): Update all variants of pointer and ref types. - Add arg to COMPONENT_REF. - (convert): Likewise. - Move check for converting between variants lower down. - * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF. - (build_allocator): Don't force type of MODIFY_EXPR. - (gnat_mark_addressable, case VAR_DECL): Unconditionally call - put_var_into_stack. - -2004-06-14 Richard Kenner - - * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation. - * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP. - * decl.c (gnat_to_gnu_entity): Also set force_global for imported - subprograms. - * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack; - all callers changed. - (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change - the way that EXIT_STMT finds the loop label. - (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise. - (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here. - (add_stmt): Use annotate_with_locus insted of setting directly. - (pos_to_construct): Set TREE_PURPOSE of each entry to index. - (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF. - * utils.c (gnat_install_builtins): Install __builtin_memcmp. - (build_vms_descriptor): Add extra args to ARRAY_REF. - (convert): Use VIEW_CONVERT_EXPR between aggregate types. - * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST): - New cases. - (build_binary_op): Don't make explicit CONVERT_EXPR. - Add extra rgs to ARRAY_REF. - -2004-06-14 Pascal Obry - - * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on - Windows. Fix minor typo. - - * mlib-tgt-mingw.adb: New implementation using the GCC -shared option - which is now supported on Windows. With this implementation using the - Library Project feature is no different on Windows than on UNIX. - -2004-06-14 Vincent Celier - - * makegpr.adb (Compile_Sources): Nothing to do when there are no - non-Ada sources. - - * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment - - * prj-part.adb (Parse_Single_Project): When a duplicate project name is - found, show the project name and the path of the previously parsed - project file. - -2004-06-14 Ed Schonberg - - * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an - array, avoid copying the actual before the call. - -2004-06-14 Thomas Quinot - - * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools. - Instead, allocate memory on worst-case alignment assumptions, and then - return an aligned address within the allocated zone. - -2004-06-14 Robert Dewar - - * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to - elab entities in predefined units in No_Run_Time_Mode. - (Gen_Adainit_C): Same fix - (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined - units in No_Run_Time_Mode - (Gen_Elab_Calls_C): Same fix - - * symbols-vms-alpha.adb: Minor reformatting - - * g-debpoo.ads: Minor reformatting - - * lib.adb (In_Same_Extended_Unit): Version working on node id's - - * lib.ads (In_Same_Extended_Unit): Version working on node id's - - * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit - working on nodes. - - * make.adb: Minor reformatting - - * par-ch12.adb: Minor reformatting - - * par-prag.adb: Add dummy entry for pragma Profile_Warnings - - * prj-strt.adb: Minor reformatting - - * restrict.ads, restrict.adb: Redo handling of profile restrictions to - be more general. - - * sem_attr.adb: Minor reformatting - - * sem_ch7.adb: Minor reformatting - - * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc - for type in the same unit as the object declaration. - - * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows - static string expressions and not just string literals. - Minor reformatting - (Set_Warning): Reset restriction warning flag for restriction pragma - Implement pragma Profile_Warnings - Implement pragma Profile (Restricted) - Give obolescent messages for old restrictions and pragmas - - * snames.h, snames.ads, snames.adb: Add new entry for pragma - Profile_Warnings. - - * s-rident.ads: Add declarations for restrictions required by profile - Restricted and profile Ravenscar. - - * targparm.ads, targparm.adb: Allow pragma Profile in system.ads - - * gnat_ugn.texi: Correct some missing entries in the list of GNAT - configuration pragmas. - -2004-06-11 Vincent Celier - - * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to - gnatsym, when symbol policy is Restricted. - - * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to - gnatsym, when symbol policy is Restricted. - - * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted, - read the symbol file. - (Finalize): Fail in symbol policy Restricted if a symbol in the original - symbol file is not in the object files. Do not create a new symbol file - when symbol policy is Restricted. - - * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used - in Scng. - - * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy - Restricted. - (Usage): Line for new switch -R - - * make.adb (Initialize): When the platform is not VMS, add the - directory where gnatmake is invoked in the front of the path, if - gnatmake is invoked with directory information. Change the Scan_Args - while loop to a for loop. - (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency: - if Depth is equal or greater than the proposed depth, there is nothing - to do. - (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1 - instead of 0. - - * prj.ads: Add new symbol policy Restricted. - - * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction - with the new parameters Check_All_Labels and Case_Location. - - * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted - (Library_Symbol_File needs to be defined). - - * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels - and Case_Location If Check_All_Labels is True, check that all values of - the string type are used, and output warning(s) if they are not. - - * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels - and Case_Location. - - * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc" - - * gnat_ugn.texi: Update documentation about the library directory in - Library Projects. - - * makegpr.adb (Display_Command): In verbose mode, also display the - value of the CPATH env var, when the compiler is gcc. - (Initialize): Change the Scan_Args while loop to a for loop - (Compile_Individual_Sources): Change directory to object directory - before compilations. - - * symbols.ads: New symbol policy Restricted. - -2004-06-11 Olivier Hainque - - * a-except.adb (Raise_After_Setup family): Remove. The responsibility - is now taken care of internally in the Exception_Propagation package - and does not require clients assistance any more. - - * a-exexpr.adb (Is_Setup_And_Not_Propagated, - Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New - functions. Helpers to maintain a predicate required in the handling of - occurrence transfer between tasks. - This is now handled internally and does not require clients assistance - for the setup/propagate separation anymore. - (Setup_Exception, Propagate_Exception): Simplify the Private_Data - allocation strategy, handle the Setup_And_Not_Propagated predicate and - document. - - * s-taenca.adb (Check_Exception): Use raise_with_msg instead of - raise_after_setup, now that everything is handled internally within the - setup/propagation engine. - -2004-06-11 Hristian Kirtchev - - * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once. - Add additional conditions for the case of an actual being a simple - name or literal. Improve inlining by preventing the generation - of temporaries with a short lifetime (one use). - -2004-06-11 Hristian Kirtchev - - PR ada/15587 - * einfo.ads: Minor comment updates for Has_Completion and - E_Constant list of flags. - - * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations - and constant redeclarations now set the Has_Completion flag of their - defining identifiers. - - * sem_ch7.adb (Analyze_Package_Spec): Add procedure - Inspect_Deferred_Constant_Completion. - Used to detect private deferred constants that have not been completed - either by a constant redeclaration or pragma Import. Emits error message - "constant declaration requires initialization expression". - - * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now - completes a deferred constant. - -2004-06-11 Geert Bosch - - * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers. - - * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in - calculating exponent for scaling denormal numbers. - (Leading_Part): Properly raise Constraint_Error for zero or negative - Adjustment. - (Remainder): Properly raise Constraint_Error for zero divisor. - -2004-06-11 Thomas Quinot - - * sem_util.adb: Minor reformatting. - - * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit - dereference when accessing the entry parameter record. - (Check_Array_Type): Always check for possible implicit dereference. - (maybe_implicit_dereference): Rename to check_no_implicit_derefence. - Abort if a pointer is still present (denoting that an implicit - dereference was left in the tree by the front-end). - - * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit - dereference when accessing the entry parameter record. - (Check_Array_Type): Always check for possible implicit dereference. - (maybe_implicit_dereference): Rename to check_no_implicit_derefence. - Abort if a pointer is still present (denoting that an implicit - dereference was left in the tree by the front-end). - -2004-06-11 Emmanuel Briot - - * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error - message, like the compiler itself does. Easier to parse the output. - - * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments. - - * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should - be base names, and not includes directories. - -2004-06-11 Arnaud Charlet - - * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES), - so that dependencies are properly taken into account by make. - -2004-06-11 Arnaud Charlet - - PR ada/15622 - * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads, - exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic - -2004-06-11 Jerome Guitton - - * Makefile.in (install-gnatlib): install target-specific run-time files. - - * Make-lang.in: Remove obsolete targets. - -2004-06-11 Ed Schonberg - - * par-ch12.adb (P_Generic): Add scope before analyzing subprogram - specification, to catch misuses of program unit names. - - * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on - superfluous conversions in an instance. - -2004-06-11 Ed Schonberg - - PR ada/15403 - * sem_ch12.adb (Save_References): If operator node has been folded to - enumeration literal, associated_node must be discarded. - -2004-06-11 Jose Ruiz - - * s-stchop-vxworks.adb: Add required pragma Convention to - Task_Descriptor because it is updated by a C function. - -2004-06-08 Arnaud Charlet - - PR ada/15568 - * Makefile.in: Remove target specific SO_OPT on IRIX - -2004-06-07 Richard Kenner - - * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted. - (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise. - (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise. - (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise. - (STMT_STMT, USE_STMT): New statement codes. - (LOOP_STMT, EXIT_STMT): Make slight semantic changes. - * ada-tree.h: Reflect above changes. - (struct tree_loop_id): Deleted. - (union lang_tree_node, struct lang_decl, struct lang_type): - Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC - and DECL_LANGUAGE_SPECIFIC to reflect these changes. - (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted. - (IS_ADA_STMT): New macro. - * decl.c (annotate_decl_with_node): New function. - (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno. - (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR. - Call add_stmt_with_node to do needed assignments. - Add call to update setjmp buffer directly, not via EXPR_STMT. - (maybe_variable): Argment GNAT_NODE deleted. - * gigi.h (maybe_variable): Likewise. - (make_transform, add_stmt_with_node, set_block_for_group): New. - (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise. - (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise. - (discard_file_names, gnu_block_stack, gnat_to_code): Deleted. - (set_lineno, set_lineno_from_sloc): Likewise. - (record_code_position, insert_code_for): Likewise. - (gnat_poplevel): Now returns void. - (end_subprog_body): Now takes argument. - * misc.c (cgraph.h, tree-inline.h): New includes. - (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted. - (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New. - (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise. - (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise. - (gnat_parse_file): Don't set immediate_size_expand. - Call cgraph functions. - (gnat_expand_expr): Remove most cases. - (record_code_position, insert_code_for): Remove from here. - * trans.c (toplev.h, tree-gimple.h): Now included. - (discard_file_names): Deleted. - (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del. - (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise. - (struct stmt_group, current_stmt_group, stmt_group_free_list): New. - (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise. - (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise. - (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise. - (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise. - (set_block_for_group, add_stmt_list): Likewise. - (start_stmt_group): Renamed from start_block_stmt. - (end_stmt_group): Likewise, from end_block_stmt. - (build_stmt_group): Likewise, from build_block_stmt, also add arg. - (gigi): Don't set discard_file_names or call set_lineno. - Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code. - (tree_transform): Deleted, now renamed to be gnat_to_gnu. - Numerous changes throughout to reflect new names and complete - function-at-a-time implementation. - (gnat_expand_stmt): Delete or comment out all cases. - (process_inlined_subprograms): Use add_stmt. - (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't - call set_lineno; also remove unneeded block handling. - (process_type): Remove unneeded block handling. - (build_unit_elab): Remove calls to deleted functions. - * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include. - (tree-dump.h): Likewise. - (struct ada_binding_level): Add field jmpbuf_decl. - (gnat_define_builtin, gnat_install_builtins): New. - (gnat_gimplify_function, gnat_finalize): Likewise. - (gnat_poplevel): No longer return BLOCK, set it instead. - Remove code dealing with nested functions. - (gnat_init_decl_processing): Also set size_type_node. - Call gnat_install_builtins. - (create_var_decl): Don't set DECL_INIT_BY_ASSIGN. - (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC. - Remove special-case for "main". - (end_subprog_body): Add arg and rework for tree-ssa. - (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR. - Add case for BOOLEAN_TYPE. - * utils2.c (rtl.h): Now include. - (build_call_raise): Test Debug_Flag_NN directly. - (build_call_alloc_dealloc): Don't use local stack allocation for now. - (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted. - (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases. - -2004-06-07 Robert Dewar - - * a-direct.ads, einfo.ads: Minor comment updates - - * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb, - s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, - s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb, - s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb, - s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting. - - * s-interr-sigaction.adb: Remove unreferenced variable - (Attached_Interrupts). Minor reformatting. - Avoid use of variable I (replace by J). - - * par-ch10.adb: Fix text of one error message - - * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads, - exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb, - exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb, - opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb, - par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb, - par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb, - sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb, - sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, - sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb, - sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb, - snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada - 2005 support. - -2004-06-07 Doug Rupp - - * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb - - * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb - - * mlib-tgt-vms-ia64.adb: New file. - - * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb - Add mlib-tgt-vms-ia64.adb - Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb. - Move to alpha specific ifeq section. - Add VMS specific versions of symbols.adb - Renaming of 5q vms files. - - * 5qsystem.ads renamed to system-vms_64.ads. - -2004-06-07 Vincent Celier - - * a-calend.ads: Add a GNAT Note comment after function Time_Of to - explain that when a time of day corresponding to the non existing hour - on the day switching to DST is specified, Split may return a different - value for Seconds. - - * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar - to GNAT PRETTY. - - * g-os_lib.adb (OpenVMS): New Boolean value imported from System. - (Normalize_Pathname): Only resolve VMS logical names when on VMS. - - * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize - to False. - If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to - the linking options. - (Build_Library.Check_Libs): On VMS, if there is a dependency on - g-trasym.ads, set Gtrasymobj_Needed to True. - - * prj-attr.adb: Add new package Metrics for gnatmetric - - * prj-nmsc.adb (Record_Other_Sources): Put source file names in - canonical case to take into account files with upper case characters on - Windows. - (Ada_Check): Load the reference symbol file name in the name buffer to - check it, not the symbol file name. - - * snames.ads, snames.adb: Add standard name Metrics (name of project - file package for gnatmetric). - - * vms_conv.ads: Add Metric to Comment_Type - - * vms_conv.adb (Initialize): Add component dor Metric in Command_List - - * vms_data.ads: Add qualifiers for GNAT METRIC - - * makegpr.adb (Link_Executables): Take into account the switches - specified in package Linker of the main project. - -2004-06-07 Thomas Quinot - - * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so - the index of the last element is Units.Last, not Units.Table'Last - (which is usually not a valid index within the actually allocated - storage for the table). - - * exp_ch4.adb (Insert_Dereference_Action): Change predicate that - determines whether to generate a call to a checked storage pool - Dereference action. - Generate such a call only for a dereference that either comes from - source, or is the result of rewriting a dereference that comes from - source. - -2004-06-07 Romain Berrendonner - - * bindgen.adb (Gen_Output_File): Add support for GAP builds. - -2004-06-07 Eric Botcazou - - (gnat_to_gnu_entity) : For multi-dimensional arrays at - file level, elaborate the stride for inner dimensions in alignment - units, not bytes. - - * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned - in a comment. - -2004-06-07 Javier Miranda - - * exp_ch6.adb: Correct wrong modification in previous patch - -2004-06-07 Vasiliy Fofanov - - * g-trasym.ads: Corrected comment to properly reflect level of support - on VMS. - -2004-06-07 Hristian Kirtchev - - * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It - includes case of a variable referenced on the left hand side of an - assignment, therefore remove redundant code. Variables and prefixes of - indexed or selected components are now marked as referenced on left - hand side. Warnings are now properly emitted when variables or prefixes - are assigned but not read. - - * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to - left hand side referenced variables. Private access types do not - produce the warning "variable ... is assigned but never read". - Add also additional checks to left hand side referenced variables. - Aliased, renamed objects and access types do not produce the warning - "variable ... is assigned but never read" since other entities may read - the memory location. - -2004-06-07 Jerome Guitton - - * Makefile.in: In the powerpc/vxworks-specific section, restore - EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed - by mistake). - -2004-06-07 Ed Schonberg - - * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of - predefined operators. - Removes spurious type errors from g-trasym-vms.adb. - - * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is - distinct from the operator appearing in the source, call appropriate - routine to insert conversions when needed, and complete resolution of - node. - (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of - interpretations for rewritten right operand. - (Set_Mixed_Mode_Operand): Handle properly a universal real operand when - the other operand is overloaded and the context is a type conversion. - -2004-06-07 Richard Kenner - - * ada-tree.def (BLOCK_STMT): Now has two operands. - (BREAK_STMT): New. - - * ada-tree.h: (BLOCK_STMT_BLOCK): New macro. - - * gigi.h: (gnat_poplevel): Now returns a tree. - - * trans.c (end_block_stmt): Add arg; all callers changed. - (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN. - (start_block_stmt): Clear BLOCK_STMT_BLOCK. - (add_stmt): Set TREE_TYPE. - (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK. - (gnat_expand_stmt, case BREAK_STMT): New case. - - * utils.c (gnat_poplevel): Return a BLOCK, if we made one. - -2004-06-07 Jose Ruiz - - * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the - procedure Set_Stack_Size that is not needed. - -2004-06-07 Sergey Rybin - - * gnat_ugn.texi: Clarify the case when non-standard naming scheme is - used for gnatpp input file and for the files upon which it depends - -2004-06-07 Ben Brosgol - - * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter - -2004-06-07 Arnaud Charlet - - * gnatvsn.ads: Bump version numbers appropriately. - Add new build type. - -2004-06-07 Pascal Obry - - * gnat_ugn.texi: Improve comments about imported names and link names - on Windows. Add a note about the requirement to use -k gnatdll's option - when working with a DLL which has stripped stdcall symbols (no @nn - suffix). - -2004-05-27 Vincent Celier - - * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and - COMMENTS_LAYOUT=UNTOUCHED - - * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to - symbols-vms-alpha.adb - -2004-05-27 Thomas Quinot - - * sem.ads: Clarify documentation on checks suppression. - - * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing. - -2004-05-27 Ed Schonberg - - * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in - the case of multiple derivations. - (Is_Object_Reference): For a selected component, verify that the prefix - is itself an object and not a value. - - * sem_ch12.adb (Same_Instantiated_Constant): New name for - Same_Instantiated_Entity. - (Same_Instantiated_Variable): Subsidiary to - Check_Formal_Package_Instance, to recognize actuals for in-out generic - formals that are obtained from a previous formal package. - (Instantiate_Subprogram_Body): Emit proper error when - generating code and the proper body of a stub is missing. - - * sem_ch4.adb (Remove_Address_Interpretations): If the operation still - has a universal interpretation, do the disambiguation here. - - * exp_ch4.adb (Expand_N_Type_Conversion, - Expand_N_Unchecked_Type_Conversion): Special handling when target type - is Address, to avoid typing anomalies when Address is a visible integer - type. - - * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address - to determine whether a subprogram should not be marked Pure, even when - declared in a pure package. - -2004-05-27 Jose Ruiz - - * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile. - - * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length - Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts. - Update the documentation about the Ravenscar profile, following the - definition found in AI-249. - - * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when - setting the Profile (Ravenscar). This must be done in addition to - setting the required restrictions. - - * rtsfind.ads: Add the set of operations defined in package - Ada.Interrupts. - - * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment - restriction. - -2004-05-27 Eric Botcazou - - lang-specs.h: Always require -c or -S and always redirect to /dev/null - if -gnatc or -gnats is passed. - -2004-05-27 Hristian Kirtchev - - * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as - a significant reference. Warnings are now properly emitted when a - discriminated type is not referenced. - - * lib-xref.adb (Generate_Reference): A deferred constant completion, - record representation clause or record type discriminant does not - produce a reference to its corresponding entity. Warnings are now - properly emitted when deferred constants and record types are not - referenced. - -2004-05-27 Geert Bosch - - * Makefile.in: Use long version of libm routines on ia64 gnu/linux. - Fixes ACATS Annex G tests. - -2004-05-27 Robert Dewar - - * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not - handling WITH - -2004-05-27 Arnaud Charlet - - * s-interr.adb (Server_Task): Take into account case of early return - from sigwait under e.g. linux. - -2004-05-27 Sergey Rybin - - * gnat_ugn.texi: Add description for the new gnatpp options: - -rnb - replace the original source without creating its backup copy - -c0 - do not format comments - -2004-05-24 Geert Bosch - - * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi - with 192 bits of precision, sufficient to reduce a double-extended - arguments X with a maximum relative error of T'Machine_Epsilon, for X - in -2.0**32 .. 2.0**32. - (Cos, Sin): Always reduce arguments of 1/4 Pi or larger, to prevent - reduction by the processor, which only uses a 68-bit approximation of - Pi. - (Tan): Always reduce arguments and compute function either using - the processor's fptan instruction, or by dividing sin and cos as needed. - -2004-05-24 Doug Rupp - - * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid - gcc error on 32/64 bit VMS. - -2004-05-24 Olivier Hainque - - * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs, - since this is what we get for stack overflows although not documented - as such. - Document the issues which may require adjustments to our signal - handlers. - -2004-05-24 Ed Schonberg - - * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the - enclosing dynamic scope if the instantiation is within a generic unit. - -2004-05-24 Arnaud Charlet - - * exp_dbug.ads: Fix typo. - - * Makefile.in: s-osinte-linux-ia64.ads was misnamed. - Rename it to its proper name: system-linux-ia64.ads - (stamp-gnatlib1): Remove extra target specific run time files when - setting up the rts directory. - -2004-05-24 Javier Miranda - - * einfo.ads, einfo.adb (Limited_Views): Removed. - (Limited_View): New attribute that replaces the previous one. It is - now a bona fide package with the limited-view list through the - first_entity and first_private attributes. - - * sem_ch10.adb (Install_Private_With_Clauses): Give support to - limited-private-with clause. - (Install_Limited_Withed_Unit): Install the private declarations of a - limited-private-withed package. Update the installation of the shadow - entities according to the new structure (see Build_Limited_Views) - (Build_Limited_Views): Replace the previous implementation of the - limited view by a package entity that references the first shadow - entity plus the first shadow private entity (required for limited- - private-with clause) - (New_Internal_Shadow_Entity): Code cleanup. - (Remove_Limited_With_Clause): Update the implementation to undo the - new work carried out by Build_Limited_Views. - (Build_Chain): Complete documentation. - Replace Ada0Y by Ada 0Y in comments - Minor reformating - - * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access - types the level of accessibility depends on the enclosing type - declaration. - - * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow - entities. Complete documentation of previous change. - -2004-05-24 Robert Dewar - - * namet.adb: Minor reformatting - Avoid use of name I (replace by J) - Minor code restructuring - - * sem_ch6.adb: Minor reformatting - - * lib-writ.adb: Do not set restriction as active if this is a - Restriction_Warning case. - - * sem_prag.adb: Reset restriction warning flag if real pragma - restriction encountered. - - * s-htable.adb: Minor reformatting - Change rotate count to 3 in Hash (improves hash for small strings) - - * 5qsystem.ads: Add comments for type Address (no literals allowed). - - * gnat_ugn.texi: Add new section of documentation "Code Generation - Control", which describes the use of -m switches. - -2004-05-24 Eric Botcazou - - trans.c (tree_transform) : Do the dereference directly - through the DECL_INITIAL for renamed variables. - -2004-05-24 Arnaud Charlet - - * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads - -2004-05-19 Joel Brobecker - - * exp_dbug.ads: Correct comments concerning handling of overloading, - since we no longer use $ anymore. - -2004-05-19 Sergey Rybin - - * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not - ignore errors if ASIS_Mode is set. This prevents creating ASIS trees - with illegal subunits. - -2004-05-19 Ed Schonberg - - * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram - body with front-end inlining enabled, check whether an inline pragma - appears immediately after the body and applies to it. - - * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is - enabled and the pragma appears after the body of the subprogram. - -2004-05-17 Richard Kenner - - Part of function-at-a-time conversion - - * misc.c (adjust_decl_rtl): Deleted. - (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): - Define. - - * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted. - (add_decl_stmt, add_stmt, block_has_vars): New functions. - (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel. - - * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt - when making a decl. - (gnat_to_gnu_entity): Likewise. - Use add_stmt to update setjmp buffer. - Set TREE_ADDRESSABLE instead of calling put_var_into_stack and - flush_addressof. - No longer call adjust_decl_rtl. - (DECL_INIT_BY_ASSIGN_P): New macro. - (DECL_STMT_VAR): Likewise. - - * trans.c (gigi): Call start_block_stmt to make the outermost - BLOCK_STMT. - (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type): - Call start_block_stmt and end_block_stmt temporarily. - Use gnat_expand_stmt instead of expand_expr_stmt. - (add_decl_stmt): New function. - (tree_transform): Call it. - (add_stmt): Also emit initializing assignment for DECL_STMT if needed. - (end_block_stmt): Set type and NULL_STMT. - (gnat_expand_stmt): Make recursize call instead of calling - expand_expr_stmt. - (gnat_expand_stmt, case DECL_STMT): New case. - (set_lineno_from_sloc): Do nothing if global. - (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables. - (start_block_stmt, add_stmt, end_block_stmt): New functions. - (build_block_stmt): Call them. - (gnat_to_code): Don't expand NULL_STMT. - (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change - args. - (tree_transform): Likewise. - (tree_transform, case N_Null_Statement): Return NULL_STMT. - (gnat_expand_stmt, case NULL_STMT): New case. - (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no - IF_STMT_TRUE. - - * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set - TREE_ADDRESSABLE. - - * utils.c (create_var_decl): Do not call expand_decl or - expand_decl_init. - Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable. - Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR - here. - (struct e_stack): Add chain_next to GTY. - (struct binding_level): Deleted. - (struct ada_binding_level): New struct. - (free_block_chain): New. - (global_binding_level, clear_binding_level): Deleted. - (global_bindings_p): Rework to see if no chain. - (kept_level_p, set_block): Deleted. - (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use - new data structure and work directly on BLOCK node. - (gnat_poplevel): Similarly. - (get_decls): Look at BLOCK_VARS. - (insert_block): Work directly on BLOCK node. - (block_has_var): New function. - (pushdecl): Rework for new binding structures. - (gnat_init_decl_processing): Rename and rework calls to pushlevel and - poplevel. - (build_subprog_body): Likewise. - (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL. - - * ada-tree.def (DECL_STMT, NULL_STMT): New codes. - - * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro. - (DECL_STMT_VAR): Likewise. - -2004-05-17 Robert Dewar - - * restrict.ads, restrict.adb (Process_Restriction_Synonym): New - procedure - - * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling - of restriction synonyums by using - Restrict.Process_Restriction_Synonyms. - - * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym - - * s-restri.ads (Tasking_Allowed): Correct missing comment - - * s-rident.ads: Add entries for restriction synonyms - - * ali.adb: Fix some problems with badly formatted ALI files that can - result in infinite loops. - - * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb, - s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb, - s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, - s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb, - s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb, - s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb, - s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb, - s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb, - s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb, - a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb, - exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb, - s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb, - s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads, - s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, - s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads, - s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads, - s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads, - s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads, - s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb, - s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID - to Task_Id (minor cleanup). - -2004-05-17 Vincent Celier - - * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing - directory separator. - - * prj-proc.adb (Recursive_Process): Inherit attribute Languages from - project being extended, if Languages is not declared in extending - project. - -2004-05-17 Javier Miranda - - * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the - limited view of a visible sibling. - -2004-05-14 Robert Dewar - - * gnat_ugn.texi: Minor change to -gnatS documentation - - * sprint.adb: Remove some instances of Assert (False) and for this - purpose replace them by output of a ??? string. - - * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma - Assert (False). - - * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit - flag processing. This was suppressing required dependencies in - No_Run_Time mode and is not needed since the binder does not generate - references for things in libgnat anyway. - - * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC - warning. - -2004-05-14 Thomas Quinot - - * gnat_ugn.texi: Document AIX-specific issue with initialization of - resolver library. - - * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference - action for the case of an actual parameter in an init proc call. - -2004-05-14 Ed Schonberg - - * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected - subtype, check visible entities in base type. - - * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup - actions if the object is a renaming. - - * sem_ch12.adb (Same_Instantiated_Entity): Predicate for - Check_Formal_Package_Instance, to determine more precisely when the - formal and the actual denote the same entity. - -2004-05-14 Javier Miranda - - * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262 - - * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity - corresponding to a private_with must be removed from visibility; it - will be made visible later, just before we analyze the private part of - the package. - (Check_Private_Child_Unit): Allow private_with clauses in public - siblings. - (Install_Siblings): Make visible the private entities of private-withed - siblings. - (Install_Withed_Unit): Do not install the private withed unit if we - are compiling a package declaration and the Private_With_OK flag was - not set by the caller. These declarations will be installed later, - just before we analyze the private part of the package. - - * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected - during the evaluation of the expression that initializes the object, - decorate it with the expected type to avoid cascade errors. - Code cleanup. - - * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library - subprogram we have to install the private_with clauses after its - specification has been analyzed (as documented in AI-262.TXT). - - * sem_ch8.adb (Has_Private_With): New function. Determines if the - current compilation unit has a private with on a given entity. - (Find_Direct_Name): Detect the Beaujolais problem described in - AI-262.TXT - - * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It - provides the functionality of the function Is_Ancestor that was - previously available in sem_ch10. It has been renamed to avoid - overloading. - - * sprint.adb (Sprint_Node_Actual): Print limited_with clauses - -2004-05-14 Richard Kenner - - * utils.c (build_vms_descriptor): Use SImode pointers. - -2004-05-14 Vasiliy Fofanov - - * gnat_ugn.texi: Revised chapter "GNAT and Libraries". - -2004-05-14 GNAT Script - - * Make-lang.in: Makefile automatically updated - -2004-05-14 Arnaud Charlet - - Renaming of target specific files for clarity - - * Makefile.in: Rename GNAT target specific files. - - * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads, - 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads, - 3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb, - 3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, - 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads, - 3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads, - 42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads, - 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads, - 4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads, - 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads, - 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads, - 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads, - 51osinte.adb, 51osinte.ads, 51system.ads, - 52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads, - 55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb, - 56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads, - 56tpopsp.adb, 57system.ads, 58system.ads, - 5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads, - 5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads, - 5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb, - 5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads, - 5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb, - 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads, - 5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb, - 5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads, - 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb, - 5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads, - 5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb, - 5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads, - 5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads, - 5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads, - 5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads, - 5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb, - 5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb, - 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads, - 5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb, - 5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb, - 5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb, - 5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads, - 5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb, - 5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads, - 5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads, - 5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb, - 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb, - 5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb, - 5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb, - 5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads, - 5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads, - 5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb, - 5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb, - 5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb, - 5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb, - 5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, - 7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb, - 7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb, - 7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads, - 7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below. - - * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb, - a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb, - a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads, - a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads, - a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads, - a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads, - a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads, - a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads, - a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads, - a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb, - g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads, - g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads, - g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads, - g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads, - g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb, - g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads, - g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads, - g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb, - interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb, - mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb, - mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb, - mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb, - s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb, - s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb, - s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb, - s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb, - s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads, - s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb, - s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb, - s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads, - s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb, - s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads, - s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads, - s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads, - s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads, - s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb, - s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb, - s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb, - s-osinte-solaris.ads, s-osinte-solaris-fsu.ads, - s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads, - s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb, - s-osinte-vms.ads, s-osinte-vxworks.adb, - s-osinte-vxworks.ads, s-osprim-mingw.adb, - s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb, - s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads, - s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads, - s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb, - s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads, - s-proinf-irix-athread.adb, s-proinf-irix-athread.ads, - s-stchop-vxworks.adb, s-taprop-dummy.adb, - s-taprop-hpux-dce.adb, s-taprop-irix.adb, - s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb, - s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb, - s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb, - s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb, - s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads, - s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads, - s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads, - s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads, - s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads, - s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb, - s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb, - s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb, - s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb, - s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb, - s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb, - s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads, - s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads, - symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads, - system-hpux.ads, system-interix.ads, system-irix-n32.ads, - system-irix-o32.ads, system-linux-x86_64.ads, - system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads, - system-mingw.ads, system-os2.ads, system-solaris-sparc.ads, - system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads, - system-unixware.ads, system-vms.ads, system-vms-zcx.ads, - system-vxworks-alpha.ads, system-vxworks-m68k.ads, - system-vxworks-mips.ads, system-vxworks-ppc.ads, - system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files - above. - -2004-05-13 Zack Weinberg - - * trans.c (gnat_stabilize_reference_1): Remove case 'b'. - -2004-05-13 Diego Novillo - - Merge from tree-ssa-20020619-branch. - - * config-lang.in (boot_language, build_by_default): Set - to no. - * utils.c (unchecked_convert): Use OEP_ONLY_CONST. - (max_size): Add static chain op for call_expr. - -2004-05-12 Richard Sandiford - - PR target/15331 - * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '. - -2004-05-11 Roger Sayle - - * utils.c (max_size): Use MIN_EXPR to find the minimum value of a - COND_EXPR. - -2004-05-10 Doug Rupp - - * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to - system.aux_dec. - - * s-auxdec.ads: Add Short_Address subtype (moved here from System). - - * Makefile.in: [VMS]: Add translation for 5qauxdec.ads. - - * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha. - Fixes undefined symbols in IA64 gnatlib. - - * 5vinmaop.adb: Reference s-auxdec for Short_Address. - - * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype - Short_Address). This will be moved to system.auxdec. - -2004-05-10 Thomas Quinot - - * sem_util.adb: Replace test for presence of a node that is always - present with a call to Discard_Node. - - * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to - Analyze on the library unit node after generation of distribution stub - constructs. The call was a no-op because Unit_Node has already been - Analyzed, and the tree fragments for the distribution stubs are - analyzed as they are inserted in Exp_Dist. - Update comment regarding to distribution stubs to reflect that we - do not generate stub in separate files anymore. - - * einfo.ads: Clarify the fact that a tagged private type has the - E_Record_Type_With_Private Ekind. - - * erroutc.adb: Minor reformatting - - * erroutc.ads (Max_Msg_Length): Increase to cover possible larger - values if line length is increased using -gnatyM (noticed during code - reading). - - * eval_fat.adb: Minor reformatting - Put spaces around exponentiation operator - -2004-05-10 Ed Schonberg - - PR ada/15005 - * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix - has been rewritten as an explicit dereference, retrieve type of - original node to check for possibly unconstrained record type. - -2004-05-10 Ed Schonberg - - * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not - overriding, use the operation of the parent unconditionally. - - * sem_ch4.adb (Remove_Address_Interpretations): Remove address - operation when either operand is a literal, to avoid further - ambiguities. - - * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and - overridden by a previous explicit declaration, mark the previous entity - as overriding. - - * sem_disp.adb (Check_Dispatching_Operation): New predicate - Is_Visibly_Controlled, to determine whether a declaration of a - primitive control operation for a derived type overrides an inherited - one. Add warning if the explicit declaration does not override. - -2004-05-10 Vincent Celier - - * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in - some cases when the sources are no longer present. - - * make.adb (Collect_Arguments): Fail if an external source, not part - of any project need to be compiled, when switch -x has not been - specified. - - * makeusg.adb: Document new switch -x - - * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag, - defaulted to False. - - * switch-m.adb (Scan_Make_Switches): New switch -x - - * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for - gnatmake switch -x. - - * gnat_ugn.texi: Document new gnatmake switch -x - -2004-05-10 Eric Botcazou - - * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0. - - * utils.c (create_var_decl): Do not modify the DECL_COMMON flag. - (process_attributes): Likewise. - -2004-05-10 Joel Brobecker - - * s-inmaop.ads: Fix spelling mistake in one of the comments. - -2004-05-10 Robert Dewar - - * gnat_ugn.texi: Document that for config pragma files, the maximum - line length is always 32767. - - * gnat_rm.texi: For pragma Eliminate, note that concatenation of string - literals is now allowed. - - * gnat-style.texi: Remove statement about splitting long lines before - an operator rather than after, since we do not follow this rule at all. - Clarify rule (really lack of rule) for spaces around exponentiation - - * sem_elim.adb: Allow concatenation of string literals as well as a - single string literal for pragma arguments. - - * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function - - * a-textio.adb (Terminate_Line): Do not add line feed if nothing - written for append case. - - * frontend.adb: Changes to avoid checking max line length in config - pragma files. - - * g-os_lib.ads: Minor reformatting - - * mlib-utl.adb: Do not define Max_Line_Length locally (definition was - wrong in any case. Instead use standard value. Noticed during code - reading. - - * opt.ads (Max_Line_Length): New field, used to implement removal of - limitation on length of lines when scanning config pragma files. - - * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb, - makeutl.ads, makeutl.adb: Minor reformatting - - * scn.adb: Do not check line length while scanning config pragma files - Do not check line length while scanning out license information - - * scng.adb: Changes to avoid line length checks while parsing config - pragma files. - -2004-05-10 GNAT Script - - * Make-lang.in: Makefile automatically updated - -2004-05-05 Arnaud Charlet - - * osint.adb (Find_Program_Name): Fix handling of VMS version - number. - -2004-05-05 Emmanuel Briot - - * g-os_lib.ads (Invalid_Time): New constant - - * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now - return OS_Time instead of time_t to match what is imported by Ada. - Now return -1 if the file doesn't exist, instead of a random value - -2004-05-05 Robert Dewar - - * usage.adb: Add line for -gnatR?s switch - - * sem_ch13.adb, exp_ch2.adb: Minor reformatting - - * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size - and for Match (Data_First, Data_last) - - * lib-writ.adb (Write_With_Lines): Ensure that correct index number is - written when we are dealing with multi-unit files. - -2004-05-05 Jerome Guitton - - * Makefile.in: Remove unused targets and variables. - -2004-05-05 Vincent Celier - - * switch-m.adb: New gnatmake switch -eI - - * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and - of new gnatmake switch -eInnn. - - * makegpr.adb: Take into account new parameters Index and Src_Index in - Prj.Util. - - * clean.adb: Implement support for multi-unit sources, including new - switch -i. - - * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter - Src_Index. - - * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0 - (Extract_From_Q): New out parameter Index - (Mark, Is_Marked): Subprograms moved to Makeutl - (Switches_Of): New parameter Source_Index - (Add_Switch): New parameter Index - (Check): New parameter Source_Index - (Collect_Arguments): New parameter Source_Index - (Collect_Arguments_And_Compile): New parameter Source_Index - (Compile): New parameter Source_Index - Put subprograms in alphabetical order - Add support for multi-source sources, including in project files. - - * makeutl.ads, makeutl.adb (Unit_Index_Of): New function - (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from - Make. - - * makeusg.adb: New gnatmake switch -eInnn - - * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to - Prj.Util.Value_Of. - - * opt.ads (Main_Index): New variable, defaulted to 0. - - * osint.ads, osinte.adb (Add_File): New parameter Index - (Current_Source_Index): New function - - * prj.adb: Take into account new components Index and Src_Index - - * prj.ads (String_Element): New component Index - (Variable_Value): New component Index - (Array_Element): New component Src_Index - - * prj-attr.adb: Indicate that optional index may be specified for - attributes Main, Executable, Spec, Body and some of Switches. - - * prj-attr.ads (Attribute_Kind): New values for optional indexes - (Attribute_Record): New component Optional_Index - - * prj-com.ads (File_Name_Data): New component Index - - * prj-dect.adb (Parse_Attribute_Declaration): Process optional index - - * prj-env.adb (Put): Output optional index - - * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and - attributes Spec and Body. - - * prj-nmsc.adb: Process optional indexes - - * prj-pp.adb: Ouput "at" for optional indexes - - * prj-proc.adb: Take into account optional indexes - - * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter - Optional_Index. For string literal, - process optional index when Optional_Index is True. - (Parse_Expresion): New Boolean parameter Optional_Index - - * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function - (Set_Source_Index_Of): New procedure - - * prj-util.adb (Executable_Of, Value_Of): Take into account optional - index. - - * prj-util.ads (Executable_Of): New parameter Index - (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value): - New parameter Src_Index, defaulted to 0. - -2004-05-05 Ed Schonberg - - PR ada/15257 - * sem_ch3.adb (Access_Definition): If this is an access parameter - whose designated type is imported through a limited_with clause, do - not add the enclosing subprogram to the list of private dependents of - the type. - -2004-05-05 Ed Schonberg - - PR ada/15258 - * sem_ch6.adb (Base_Types_Match): True if one type is imported through - a limited_with clause, and the other is its non-limited view. - -2004-05-05 Thomas Quinot - - * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals. - - * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb, - exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use - Stand.Boolean_Literals to produce references to entities - Standard_False and Standard_True from compile-time computed boolean - values. - - * stand.ads (Boolean_Literals): New variable, provides the entity - values for False and True, for use by the expander. - -2004-05-05 Doug Rupp - - * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype - 5vinmaop.adb: Unchecked convert Short_Address vice Address - - * adaint.c, raise.c: Caste CRTL function return value - to avoid gcc error on 32/64 bit IVMS. - - * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and - target = IA64/VMS. - - * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS. - - * 5qsystem.ads (Address): Declare as Long_Integer - (Short_Address): Declare as 32 bit subtype of Address - Declare abstract address operations to avoid gratuitous ambiguities. - -2004-05-05 Jose Ruiz - - * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249) - instead of the old Boolean_Entry_Barriers. - Ditto for No_Task_Attributes_Package instead of No_Task_Attributes. - -2004-05-05 GNAT Script - - * Make-lang.in: Makefile automatically updated - -2004-05-03 Arnaud Charlet - - * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used. - -2004-05-03 Olivier Hainque - - 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-05-03 Arnaud Charlet - - * a-exexpr.adb: Add comments - -2004-05-03 Joel Brobecker - - * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to - declare the Ancestor_Tags array in Type_Specific_Data with a small size - without risking a bounds check error when accessing one of its - components. - (Type_Specific_Data): Define Ancestor_Tags as a small array. - This prevents us from hitting a limitation during the debug info - generation when using stabs. - - * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a - small array. - This prevents us from hitting a limitation during the debug info - generation when using stabs. - -2004-05-03 Eric Botcazou - - lang-specs.h: Remove -gnatz* from specs. - -2004-05-03 Vincent Celier - - * gprmake.adb, makegpr.ads, makegpr.adb: New files. - - * Make-lang.in, Makefile.in: Add gprmake - -2004-05-03 Thomas Quinot - - * sem_aggr.adb: Fix typo in comment. - -2004-05-03 Robert Dewar - - * make.adb: Minor reformatting - - * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function - - * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address - so that it works when address is not a private type. - - * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal - properly with rewritten unchecked conversions. This prevents - order-of-elaboration issues that can otherwise arise. - (Minimum_Size): Don't check size of access types under VMS - - * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove - interpretations of integer literals as type System.Address. - - * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function - (Is_Descendent_Of): New function - -2004-05-03 Jose Ruiz - - * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers. - Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length. - No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment. - - * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead - of the old Max_Entry_Queue_Depth. - - * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers. - Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length - No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment - - * snames.ads: New entry for proper handling of Boolean_Entry_Barriers. - New entry for proper handling of Max_Entry_Queue_Depth. - New entry for proper handling of No_Dynamic_Interrupts. - - * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that - supersedes the GNAT specific restriction Boolean_Entry_Barriers. - Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes - the GNAT specific restriction Max_Entry_Queue_Depth. - Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes - the GNAT specific restriction No_Dynamic_Interrupts. - - * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers - instead of the old Boolean_Entry_Barriers. - Use the new restriction No_Dynamic_Attachment instead of the old - No_Dynamic_Interrupts. - - * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that - supersedes the GNAT specific restriction Boolean_Entry_Barriers. - - * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead - of the old Max_Entry_Queue_Depth. - -2004-05-03 GNAT Script - - * Make-lang.in: Makefile automatically updated - -2004-04-29 Ed Schonberg - - * checks.adb (Enable_Range_Check): If the prefix of an index component - is an access to an unconstrained array, perform check unconditionally. - -2004-04-29 Richard Kenner - - * decl.c (gnat_to_gnu_field): Also call make_packable_type if - Component_Clause. - -2004-04-29 Olivier Hainque - - * init.c (__gnat_install_handler, __gnat_error_handler): Remove - alternate stack setting. There was no support for the tasking cases - and the changes eventually caused a number of side-effect failures in - the non-tasking case too. - -2004-04-29 Eric Botcazou - - lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or - -gnats is passed. - -2004-04-29 Vincent Celier - - * make.adb (Gnatmake): Increase max size of argument array for - gnatbind for the potential addition of -F. - If there are Stand-Alone Library projects, invoke gnatbind with -F to - be sure that elaboration flags will be checked. - - * switch-c.adb: Correct call to Scan_Pos for -gnateI - -2004-04-29 Thomas Quinot - - * sem_warn.adb (Check_References): Move ' may be - null' warning out of under Warn_On_No_Value_Assigned. - -2004-04-29 Ed Falis - - * gnat_ugn.texi: Fixed texi error - -2004-04-29 Robert Dewar - - * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove - abstract operations if they come from predefined files. - - * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be - Dynamic, not RM). - - * s-addope.adb: Correct obvious error in mod function - -2004-04-28 Andrew W. Reynolds - - * Makefile.in: Add target pairs for powerpc darwin* - tasking support. - - * a-intnam-darwin.ads, s-osinte-darwin.adb, - s-osinte-darwin.ads, system-darwin-ppc.ads: New files. - -2004-04-28 Ulrich Weigand - - * Makefile.in: Add target macro definitions for s390*-linux*. - * system-linux-s390.ads: New file. - * system-linux-s390x.ads: New file. - -2004-04-28 Joseph S. Myers - - * gnat_ugn.texi: Correct argument to @setfilename. - -2004-04-28 Ulrich Weigand - - * a-exexpr.adb (Unwind_Word): New data type. - (Unwind_Exception): Use it as type of Private1 and Private2. - - * raise.c (db_action_for): Fix debug printf. - -2004-04-27 Ed Schonberg - - * a-wtmoio.ads: Formal type must be a modular type, not a signed - integer type. - -2004-04-27 Richard Kenner - - * decl.c (gnat_to_gnu_entity, case object): Call - __builtin_update_setjmp_buf. - - * gigi.h (update_setjmp_buf): Deleted. - (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New. - - * misc.c: (update_setjmp_buf): Deleted. - - * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue - around block of RTL. - - * utils.c (init_gigi_decls): Initialize update_setjmp_buf. - -2004-04-26 Thomas Quinot - - * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local - subprogram for which no pragma All_Calls_Remote applies, store the - address of the real subprogram in the underlying record type, so local - dereferences do not go through the PCS. - -2004-04-26 Robert Dewar - - * i-c.ads: Add some type qualifications to avoid ambiguities when - compiling with s-auxdec.ads and a non-private address type. - -2004-04-26 Arnaud Charlet - - * Makefile.rtl: Fix error in previous check-in: - Add s-addope.o to non tasking object list (rather than tasking object - list). - -2004-04-26 Javier Miranda - - * sem_aggr.adb: Fix typo in comments - (Resolve_Aggr_Expr): Propagate the type to the nested aggregate. - Required to check the null-exclusion attribute. - - * sem_attr.adb (Resolve_Attribute): Check the accessibility level in - case of anonymous access types in record and array components. For a - component definition the level is the same of the enclosing composite - type. - - * sem_ch3.adb (Analyze_Component_Declaration): In case of components - that are anonymous access types the level of accessibility depends on - the enclosing type declaration. In order to have this information, set - the scope of the anonymous access type to the enclosing record type - declaration. - (Array_Type_Declaration): In case of components that are anonymous - access types the level of accessibility depends on the enclosing type - declaration. In order to have this information, set the scope of the - anonymous access type to the enclosing array type declaration. - - * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous - access type. - - * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that - renaming of anonymous access-to-constant types allowed if and only if - the renamed object is access-to-constant. - - * sem_util.adb (Type_Access_Level): In case of anonymous access types - that are component_definition or discriminants of a nonlimited type, - the level is the same as that of the enclosing component type. - -2004-04-26 Sergey Rybin - - * sem_elim.adb: Some minor code reorganization from code reading. Fix - misprint in the function name (File_Name_Match). - -2004-04-23 Laurent Guerby - - * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after - install. - -2004-04-23 Rainer Orth - - * Make-lang.in (GNATBIND_OBJS): Add s-addope.o. - -2004-04-23 Emmanuel Briot - - * adaint.c (__gnat_try_lock): No longer requires that the parent - directory be writable, the directory itself is enough. - (gnat_is_absolute_path): Change profile, so that the call from - GNAT.OS_Lib can be made more efficient. - - * adaint.h (gnat_is_absolute_path): Change profile, so that the call - from GNAT.OS_Lib can be made more efficient. - - * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid - one copy of the file name. Found by code reading. - -2004-04-23 Vincent Celier - - * gnat_ugn.texi: Add documentation for gnatmake switch -eL - Correct documentation on gnatmake switches transmitted to the compiler - - * ali.ads: Minor comment fix - -2004-04-23 Javier Miranda - - * sem_ch6.adb: (Confirming Types): Code cleanup - - * decl.c (gnat_to_gnu_entity): Give support to anonymous access to - subprogram types: E_Anonymous_Access_Subprogram_Type and - E_Anonymous_Access_Protected_Subprogram_Type. - -2004-04-23 Thomas Quinot - - * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating - whether a pragma All_Calls_Remote applies to the subprogram on which - 'Access is taken. - No functional change is introduced by this revision; the new parameter - will be used to allow calls to local RCI subprograms to be optimized - to not use the PCS in the case where no pragma All_Calls_Remote applies, - as is already done in the PolyORB implementation of the DSA. - - * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating - whether a pragma All_Calls_Remote applies to the subprogram on which - 'Access is taken. - No functional change is introduced by this revision; the new parameter - will be used to allow calls to local RCI subprograms to be optimized - to not use the PCS in the case where no pragma All_Calls_Remote applies, - as is already done in the PolyORB implementation of the DSA. - -2004-04-23 Robert Dewar - - * Makefile.rtl: Add entry for s-addope.o in run time library list - * Make-lang.in: Add entry for s-addope.o to GNAT1 objects - * s-addope.ads, s-addope.adb: New files. - - * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb, - s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb, - s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow - System.Address to be non-private and signed. - - * sem_elim.adb: Minor reformatting (fairly extensive) - Some minor code reorganization from code reading - Add a couple of ??? comments - -2004-04-23 Richard Kenner - - * trans.c (tree_transform, build_unit_elab): Don't call getdecls. - (tree_transform, case N_If_Statement): Remove non-determinism. - - * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL. - -2004-04-23 Sergey Rybin - - * gnat_rm.texi: Small fixes in the changes made in the 'pragma - Eliminate' section. - - * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is - no longer used as a parameter name for Eliminate pragma). - -2004-04-22 Laurent Guerby - - PR optimization/14984 - PR optimization/14985 - * trans.c (gigi): Fix non determinism leading to bootstrap - comparison failures. - -2004-04-21 Pascal Obry - - * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0]) - passed to spawnvp() to properly handle program pathname with spaces on - Win32. - -2004-04-21 Emmanuel Briot - - * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False. - (Allocate, Deallocate, Free_Physically): Make sure the tasks are - unlocked in case of exceptions. - -2004-04-21 Joel Brobecker - - * gigi.h (get_target_no_dollar_in_label): Remove extern declaration. - This function does not exist anymore. - -2004-04-21 Thomas Quinot - - * gnatbind.adb, gnatlink.adb: Update name of imported C symbol. - - * link.c: Move variables to the __gnat name space. - - * Makefile.in: list link.o explicitly when needed. - - * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib. - -2004-04-21 Javier Miranda - - * einfo.adb (Original_Access_Type): New subprogram - (Set_Original_Access_Type): New subprogram - (Write_Field21_Name): Write the name of the new field - - * einfo.ads (Original_Access_Type): New field present in access to - subprogram types. - Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and - E_Anonymous_Access_Protected_Subprogram_Type. - - * lib-xref.adb (Output_One_Ref): Give support to anonymous access to - subprogram types. - - * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding - to anonymous access to subprogram types. - - * sem_attr.adb (Resolve_Attribute): Give support to anonymous access - to subprogram types. - - * sem_ch3.adb (Access_Definition): Complete decoration of entities - corresponding to anonymous access to subprogram types. - (Analyze_Component_Declaration): Add new actual to the call to - subprogram replace_anonymous_access_to_protected_subprogram. - (Array_Type_Declaration): Add new actual to the call to subprogram - replace_anonymous_access_to_protected_subprogram. - (Process_Discriminants): Add new actual to the call to subprogram - replace_anonymous_access_to_protected_subprogram. - (Replace_Anonymous_Access_To_Protected_Subprogram): New formal. - - * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New - formal. - - * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous - access to subprogram types. - - * sem_util.adb (Has_Declarations): Addition of package_specification - nodes. - -2004-04-21 Ed Schonberg - - * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate - inlined flags to renamed entity only if in current unit. - -2004-04-21 Thomas Quinot - - * s-parint.ads: Add DSA implementation marker. - - * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the - value of System.Partition_Interface.DSA_Implementation to determine - what version of the distributed systems annex is available (no - implementation, GLADE, or PolyORB). - -2004-04-21 Joel Brobecker - - * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used. - -2004-04-21 Richard Kenner - - * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node - with new type if alias sets differ. - Fixes ACATS c41103b. - -2004-04-21 Vincent Celier - - * prj.ads: Remove FORTRAN as an accepted language: not tested yet. - Add array Lang_Args for the language specific compiling argument - switches. - - * gnat_ugn.texi: Explain in more details when a library is rebuilt. - -2004-04-21 Sergey Rybin - - * gnat_rm.texi: Update the descripton of the Eliminate pragma - according to the recent changes in the format of the parameters of the - pragma (replacing Homonym_Number with Source_Location). - -2004-04-19 Arnaud Charlet - - * 5isystem.ads: Removed, unused. - - * gnat_rm.texi: Redo 1.13 change. - -2004-04-19 Robert Dewar - - * s-stoele.ads: Clean up definition of Storage_Offset (the new - definition is cleaner, avoids the kludge of explicit Standard operator - references, and also is consistent with a visible System.Address with - no visible operations. - - * s-geveop.adb: Add declarations to avoid assumption of visible - operations on type System.Address (since these might not be available - if Address is a non-private type for which the operations - are made abstract). - - * sem_eval.adb: Minor reformatting - - * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads, - s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor - reformatting (new function spec format). - - * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb, - s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, - s-caun64.adb: Add declarations to avoid assumption of visible - operations on type System.Address (since these might not be available - if Address is a non-private type for which the operations are made - abstract). - - * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure. - - * exp_intr.adb: Minor comment update - - * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting. - - * 5omastop.adb: Add declarations to avoid assumption of visible - operations on type System.Address (since these might not be available - if Address is a non-private type for which the operations - are made abstract). - -2004-04-19 Vincent Celier - - * switch-m.adb: (Scan_Make_Switches): Process new switch -eL - - * prj-pars.ads (Parse): New Boolean parameter Process_Languages, - defaulted to Ada. - - * prj-proc.adb (Process): New Boolean parameter Process_Languages, - defaulted to Ada. - Call Check with Process_Languages. - (Check): New Boolean parameter Process_Languages. Call Recursive_Check - with Process_Languages. - (Recursive_Check): New Boolean parameter Process_Languages. Call - Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to - Process_Languages. - - * prj-proc.ads (Process): New Boolean parameter Process_Languages, - - * prj-util.ads, prj-util.adb (Executable_Of): New Boolean - parameter Ada_Main, defaulted to True. - Check for Ada specific characteristics only when Ada_Main is True. - - * opt.ads: (Follow_Links): New Boolean flag for gnatmake - - * prj.adb: (Project_Empty): Add new Project_Data components. - - * prj.ads: New types and tables for non Ada languages. - (Project_Data): New components Languages, Impl_Suffixes, - First_Other_Source, Last_Other_Source, Imported_Directories_Switches, - Include_Path, Include_Data_Set. - - * prj-env.ads, prj-env.adb: Minor reformatting - - * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure - Put subprograms in alphabetical order - - * prj-pars.adb (Parse): New Boolean parameter Process_Languages, - defaulted to Ada; Call Prj.Proc.Process with Process_Languages and - Opt.Follow_Links. - - * mlib-prj.adb: Back out modification in last version, as they are - incorrect. - (Build_Library.Check_Libs): Remove useless pragma Warnings (Off) - - * make.adb: (Mains): Moved to package Makeutl - (Linker_Opts): Moved to package Makeutl - (Is_External_Assignment): Moved to package Makeutl - (Test_If_Relative_Path): Moved to package Makeutl - (Gnatmake): Move sorting of linker options to function - Makeutl.Linker_Options_Switches. - - * makeutl.ads, makeutl.adb: New files. - - * Makefile.in: Add makeutl.o to the object files for gnatmake - - * makeusg.adb: Add line for new switch -eL. - - * gnatls.adb (Image): New function. - (Output_Unit): If in verbose mode, output the list of restrictions - specified by pragmas Restrictions. - - * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use - Text_IO. - - * a-calend.adb (Split): Shift the date by multiple of 56 years, if - needed, to put it in the range 1970 (included) - 2026 (excluded). - (Time_Of): Do not shift Unix_Min_Year (1970). - Shift the date by multiple of 56 years, if needed, to put it in the - range 1970 (included) - 2026 (excluded). - - * adaint.h, adaint.c (__gnat_set_executable): New function. - -2004-04-19 Richard Kenner - - * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push - and pop GC context. - (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE. - (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH. - (tree_transform, case N_Procedure_Call_Statement): Build a tree. - (tree_transform, case N_Code_Statement): Likewise. - (gnat_expand_stmt, case LABEL_STMT): Don't look at - LABEL_STMT_FIRST_IN_EH. - (gnat_expand_stmt, case ASM_STMT): New case. - - * utils2.c (build_unary_op): Properly set TREE_READONLY of - UNCONSTRAINED_ARRAY_REF. - - * utils.c (poplevel): Temporarily push/pop GC context around inline - function expansion. - - * decl.c (maybe_variable): Properly set TREE_READONLY of - UNCONSTRAINED_ARRAY_REF. - (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE. - - * ada-tree.def: (ASM_STMT): New. - - * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted. - (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT, - ASM_STMT_INPUT): New. - (ASM_STMT_CLOBBER): Likewise. - -2004-04-19 Thomas Quinot - - * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use - general rcheck mechanism to raise Program_Error for E.4(18), instead - of a custom raiser in System.Partition_Interface. - Part of general cleanup work before PolyORB integration. - - * snames.ads, snames.adb: Add new runtime library entities and names - for PolyORB DSA. - - * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to - exp_dist. - (Build_Subprogram_Id): New subprogram provided by exp_dist - Code reorganisation in preparation for PolyORB integration. - - * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to - exp_dist. - (Build_Subprogram_Id): New subprogram provided by exp_dist - - * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in - actual parameter types for call to dereference of an - access-to-subprogram type. - - * rtsfind.ads: Add new runtime library entities and names for PolyORB - DSA. - - * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value - instead, which has the same behaviour here since we never pass it a - NULL pointer. - - * link.c (run_path_option, Solaris case): Use -Wl, as for other - platforms. - - * Makefile.in: adjust object file lists for gnatlink and gnatmake - to account for new dependency upon Interfaces.C.Strings + link.o - For x86 FreeBSD, use 86numaux. - - * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up - from Mlib.Tgt to Mlib. - - * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now - target-independent. - - * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove - target-specific versions of this subprogram, now implemented as a - target-independent function in Mlib. - - * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb, - 5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb - (Linker_Library_Path_Option): Remove target-specific versions of this - subprogram, now implemented as a target-independent function in Mlib. - - * atree.adb: (Allocate_Initialize_Node): New subprogram. - Factors out node table slots allocation. - (Fix_Parents): New subprogram. - Encapsulate the pattern of fixing up parent pointers for syntactic - children of a rewritten node. - (New_Copy_Tree): Use New_Copy to copy non-entity nodes. - (Rewrite): Use New_Copy when creating saved copy of original node. - (Replace): Use Copy_Node to copy nodes. - -2004-04-19 Javier Miranda - - * sprint.adb (Sprint_Node_Actual): Give support to the new - Access_To_Subprogram node available in Access_Definition nodes. In - addition, give support to the AI-231 node fields: null-exclusion, - all-present, constant-present. - - * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram - - * sinfo.ads, sinfo.adb: - New field Access_To_Subprogram_Definition in Access_Definition nodes - - * sem_ch6.adb (Process_Formals): Move here the code that creates and - decorates internal subtype declaration corresponding to the - null-excluding formal. This code was previously in Set_Actual_Subtypes. - In addition, carry out some code cleanup on this code. In case of - access to protected subprogram call - Replace_Anonymous_Access_To_Protected_Subprogram. - (Set_Actual_Subtypes): Code cleanup. - - * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to - Find_Type in case of anonymous access renamings. Add warning in case of - null-excluding attribute used in anonymous access renaming. - - * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New - subprogram - - * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New - subprogram. - (Access_Definition): In case of anonymous access to subprograms call - the corresponding semantic routine to decorate the node. - (Access_Subprogram_Declaration): Addition of some comments indicating - some code that probably should be added here. Detected by comparison - with the access_definition subprogram. - (Analyze_Component_Declaration): In case of access to protected - subprogram call Replace_Anonymous_Access_To_Protected. - (Array_Type_Declaration): In case of access to protected subprogram call - Replace_Anonymous_Access_To_Protected_Subprogram. - (Process_Discriminants): In case of access to protected subprogram call - Replace_Anonymous_Access_To_Protected_Subprogram. - - * par.adb (P_Access_Definition): New formal that indicates if the - null-exclusion part was present. - (P_Access_Type_Definition): New formal that indicates if the caller has - already parsed the null-excluding part. - - * par-ch3.adb (P_Subtype_Declaration): Code cleanup. - (P_Identifier_Declarations): Code cleanup and give support to renamings - of anonymous access to subprogram types. - (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup. - (P_Array_Type_Definition): Give support to AI-254. - (P_Component_Items): Give support to AI-254. - (P_Access_Definition): New formal that indicates if the header was - already parsed by the caller. - (P_Access_Type_Definition): New formal that indicates if the caller has - already parsed the null-excluding part. - - * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the - call to P_Access_Definition. - -2004-04-19 Geert Bosch - - * checks.adb (Apply_Float_Conversion_Check): New procedure to implement - the delicate semantics of floating-point to integer conversion. - (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check. - - * eval_fat.adb (Machine_Mantissa): Moved to spec. - (Machine_Radix): New function. - - * eval_fat.ads (Machine_Mantissa): Moved from body for use in - conversion checks. - (Machine_Radix): New function also for use in conversion checks. - -2004-04-19 Ed Schonberg - - * par-prag.adb (Source_File_Name_Project): Fix typo in error message. - - * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze - to decorate the access-to-protected subprogram and the equivalent type. - - * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support - to anonymous access to subprogram types. - - * exp_ch4.adb (Expand_N_In): Preserve Static flag before - constant-folding, for legality checks in contexts that require an RM - static expression. - - * exp_ch6.adb (Expand_N_Function_Call): If call may generate large - temporary but stack checking is not enabled, increment serial number - to so that symbol generation is consistent with and without stack - checking. - - * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is - independent on whether stack checking is enabled, caller must check - the corresponding flag. - - * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need - range checks. - (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from - parent if it has discriminants. - (Build_Derived_Private_Type): Constructed full view does - not come from source. - (Process_Discriminants): Default discriminants on a tagged type are - legal if this is the internal completion of a private untagged - derivation. - - * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs - no constraint checks, because it corresponds to an existing object. - - * sem_prag.adb (Process_Convention): Pragma applies - only to subprograms in the same declarative part, i.e. the same unit, - not the same scope. - - * sem_res.adb (Valid_Conversion): In an instance or inlined body, - ignore type mismatch on a numeric conversion if expression comes from - expansion. - -2004-04-19 Sergey Rybin - - * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for - Homonym_Number parameter, add processing for Source_Location parameter - corresponding. - (Check_Eliminated): Remove the check for homonym numbers, add the check - for source location traces. - - * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number - with Arg_Source_Location corresponding to the changes in the format of - the pragma. - - * sem_prag.adb: (Analyze_Pragma): Changes in the processing of - Eliminate pragma corresponding to the changes in the format of the - pragma: Homonym_Number is replaced with Source_Location, two ways of - distinguishing homonyms are mutially-exclusive. - -2004-04-19 Joel Brobecker - - * get_targ.ads (Get_No_Dollar_In_Label): Remove. - - * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of - No_Dollar_In_Label, no longer necessary, as it is always True. - (Strip_Suffixes): Likewise. - -2004-04-19 Gary Dismukes - - * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of - modulus for compatibility with size clause on targets with 16-bit - Integer. - - * layout.adb (Discrimify): In the case of private types, set Vtyp to - full type to fix type mismatches on calls to size functions for - discriminant-dependent array components. - -2004-04-19 Jerome Guitton - - * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time - lib. - -2004-04-19 Pascal Obry - - * mdll-utl.adb (Locate): New version is idempotent. - -2004-04-17 Laurent Guerby - - PR ada/14988 (partial) - * impunit.adb: Fix typo. - -2004-04-14 Nathanael Nerode - - * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none, - and install-rts-cert targets. Remove all gnatlib and gnattools - targets and all other rts-* targets (moved to libada). Remove (now) - unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND, - TRACE, GNATLIBFLAGS, GNATLIBCFLAGS. - -2004-04-08 Richard Kenner - - * trans.c (tree_transform): Shortcut returning error_mark_node for - statements in annotate_only_mode. - (tree_transform, case N_Label, case N_Return_Statement, - N_Goto_Statement): Make statement tree instead of generating code. - (tree_transform, case N_Assignment_Statement): No longer check - type_annotate_only. - (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case - RETURN_STMT): New. - (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl): - New fcns. - (gnat_to_gnu): Collect any RTL generated and deal with it. - (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR. - (tree_transform case N_If_Statement): Rewrite to make IF_STMT. - (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases. - - * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes. - - * ada-tree.def (EXPR_STMT): Fix typo in name. - (BLOCK_STMT, IF_STMT): New nodes. - - * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL, - LABEL_STMT_FIRST_IN_EH): New macros. - (RETURN_STMT_EXPR): Likewise. - - * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE, - IF_STMT_ELSEIF, IF_STMT_ELSE): New macros. - -2004-04-08 Thomas Quinot - - * atree.ads: Correct documentation on extended nodes. - - * link.c: Set run_path_option for FreeBSD. - -2004-04-08 Vincent Celier - - * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is - one of the ALI file, do not link with DEC lib. - - * par.adb Remove the last two characters ("%s" or "%b") when checking - if a language defined unit may be recompiled. - -2004-04-08 Ed Schonberg - - * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when - removal of abstract operation leaves no possible interpretation for - expression. - - * sem_eval.adb (Eval_Qualified_Expression): Use - Set_Raises_Constraint_Error on node when needed, so that it does not - get optimized away by subsequent optimizations. - - * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of - operands even when they are not wrapped in a type conversion. - -2004-04-08 Olivier Hainque - - * sem_prag.adb (Set_Exported): Warn about making static as result of - export only when the export is coming from source. This may be not - be true e.g. on VMS where we expand export pragmas for exception codes - together with imported or exported exceptions, and we don't want the - user to be warned about something he didn't write. - -2004-04-08 Thomas Quinot - - * sem_util.adb (Note_Possible_Modification): Reorganize to remove code - duplication between normal entities and those declared as renamings. - No functional change. - - * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently - inline functions returning an unconstrained result. - -2004-04-08 Eric Botcazou - - * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to - conform to what other front-ends do. - -2004-04-08 Doug Rupp - - * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared - libraries. - -2004-04-06 Pascal Obry - - * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32. - - * osint.adb (Program_Name): Do not look past a directory separator. - -2004-04-06 Thomas Quinot - - * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists). - - * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of - requirement for preserving a copy of the original assignment node. - - * sinfo.ads: Update comment (Original_Tree -> Original_Node). - -2004-04-06 Olivier Hainque - - (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits - when supported. - -2004-04-06 Ed Schonberg - - * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to - operator calls in functional notation, and apply - Universal_Interpretation to operands, not to their type. - -2004-04-06 Robert Dewar - - * 5wdirval.adb: Minor reformatting - -2004-04-06 Ed Falis - - * gnat_rm.texi: Improve a reference to the GCC manual - -2004-04-05 Vincent Celier - - * adaint.h, adaint.c: Add function __gnat_named_file_length - - * impunit.adb: Add Ada.Directories to the list - - * Makefile.in: Add VMS and Windows versions of - Ada.Directories.Validity package body. - - * Makefile.rtl: Add a-direct and a-dirval - - * mlib-tgt.ads: Minor comment update. - - * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb, - a-direct.ads, a-direct.adb: New files. - -2004-04-05 Vincent Celier - - PR ada/13620 - * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not - just to the compiler. - -2004-04-05 Robert Dewar - - * a-except.adb (Exception_Name_Simple): Make sure lower bound of - returned string is 1. - - * ali-util.adb: Use proper specific form for Warnings (Off, entity) - - * eval_fat.ads: Minor reformatting - - * g-curexc.ads: Document that lower bound of returned string values - is always one. - - * gnatlink.adb: Add ??? comment for previous change - (need to document why this is VMS specific) - - * s-stoele.ads: Minor reformatting - - * tbuild.ads: Minor reformatting throughout (new function specs) - - * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon - after WITH. - - * scng.adb: Minor reformatting - -2004-04-05 Geert Bosch - - * eval_fat.adb (Machine): Remove unnecessary suppression of warning. - (Leading_Part): Still perform truncation to machine number if the - specified radix_digits is greater or equal to machine_mantissa. - -2004-04-05 Javier Miranda - - * par-ch3.adb: Complete documentation of previous change - Correct wrong syntax documentation of the OBJECT_DECLARATION rule - (aliased must appear before constant). - - * par-ch4.adb: Complete documentation of previous change. - - * par-ch6.adb: Complete documentation of previous change. - - * sinfo.ads: Fix typo in commment. - -2004-04-05 Ed Schonberg - - * sem_ch3.adb (Inherit_Components): If derived type is private and has - stored discriminants, use its discriminants to constrain parent type, - as is done for non-private derived record types. - - * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement - Ada 2005 AI-310: an abstract non-dispatching operation is not a - candidate interpretation in an overloaded call. - - * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if - expression is Null and target type is not an access type (e.g. a - non-private address type). - -2004-04-05 Thomas Quinot - - * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment - statement whose right-hand side is an inlined call, save a copy of the - original assignment subtree to preserve enough consistency for - Analyze_Assignment to proceed. - - * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the - complete assignment subtree which is now unnecessary, as the expansion - of inlined call has been improved to preserve a consistent assignment - tree. Note_Possible_Modification must be called only - after checks have been applied, or else unnecessary checks will - be generated. - - * sem_util.adb (Note_Possible_Modification): Reorganise the handling - of explicit dereferences that do not Come_From_Source: - - be selective on cases where we must go back to the dereferenced - pointer (an assignment to an implicit dereference must not be - recorded as modifying the pointer); - - do not rely on Original_Node being present (Analyze_Assignment - calls Note_Possible_Modification on a copied tree). - - * sem_warn.adb (Check_References): When an unset reference to a pointer - that is never assigned is encountered, prefer ' may be null' - warning over ' is never assigned a value'. - -2004-04-05 Ramon Fernandez - - * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with - the ABI. - -2004-04-05 Olivier Hainque - - * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for - libexc. We currently don't reference anything in this library and - linking it in triggers linker warnings we don't want to see. - - * init.c: Update comments. - -2004-04-05 Richard Kenner - - * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY. - * utils.c (create_field_decl): Likewise. - * utils2.c (build_unary_op, gnat_build_constructor): Likewise. - -2004-04-02 Arnaud Charlet - - * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags. - Replace ifinfo by ifnottex, to make makeinfo --html happy again. - Add info directory entry and category. - -2004-04-02 Jan Hubicka - - * utils.c: Include function.h - (end_subprog_body): Clear DECL_STRUCT_FUNCTION. - -2004-04-01 Arnaud Charlet - - PR ada/14150 - * Make-lang.in: Clean up generation of documentation - - * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version - - * xgnatug.adb: Removed, replaced by xgnatugn.adb - - * xgnatugn.adb: Replaces xgnatug.adb - - * gnat_ug.texi: Removed, replaced by gnat_ugn.texi - - * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version - - * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi, - gnat_ug_wnt.texi: Removed. - -2004-04-01 Arnaud Charlet - - * utils2.c: Update copyright notice. - -2004-04-01 Robert Dewar - - * checks.adb: Minor reformatting throughout - Note that prev checkin added RM reference to alignment warning - -2004-04-01 Ed Schonberg - - * exp_aggr.adb (Get_Component_Val): Treat a string literal as - non-static when building aggregate for bit-packed array. - - * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a - function call that is itself the actual in a procedure call, build - temporary for it. - - * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is - a string literal, create a temporary for it, constant folding only - handles scalars here. - -2004-04-01 Vincent Celier - - * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC, - Error_Msg_SP): New empty procedures to instantiate the Scanner. - (Style, Scanner): Instantiations of Styleg and Scng to be able to scan - tokens. - (Accumulate_Checksum, Initialize_Checksum): Remove procedures. - (Get_File_Checksum): Use the instantiated scanner to scan all the tokens - and get the checksum. - - * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is - already in the Q. - Increase the Marking_Label at the end of the Multiple_Main_Loop, - instead of at the beginning. - - * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~' - directly. - (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if - on VMS. - - * osint.ads (Multi_Unit_Index_Character): New Character global variable - - * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character, - not '~' directly. - - * par.adb: Remove test on file name to detect language defined units. - Add test on unit name, after parsing, to detect language defined units - that are not compiled with -gnatg (except System.RPC and its children) - - * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the - following units without style checking. - - * switch-c.adb: Change -gnatC to -gnateI - - * usage.adb: Document new switch -gnateInnn - - * scng.adb (Accumulate_Token_Checksum): New procedure - (Scan): Call Accumulate_Token_Checksum after each identifier, reserved - word or literal number. - (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral - numbers. - -2004-04-01 Thomas Quinot - - * a-tasatt.adb, - g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb, - switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb, - 5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, - 5vtpopde.adb: Add missing 'constant' keywords. - -2004-04-01 Javier Miranda - - * par-ch4.adb: (P_Allocator): Code cleanup - - * sem_ch3.adb (Access_Definition): Properly set the null-excluding - attribute. - - * sinfo.ads: Complete documentation of previous change - -2004-04-01 Pascal Obry - - * gnatlink.adb (Process_Binder_File): Remove duplicate linker options - only on VMS. This special handling was done because an old GNU/ld bug - on Windows which has been fixed. - -2004-04-01 GNAT Script - - * Make-lang.in: Makefile automatically updated - -2004-03-31 Richard Kenner - - * decl.c (gnat_to_gnu_entity, make_type_from_size): - Use TYPE_UNSIGNED, not TREE_UNSIGNED. - * trans.c (tree_transform, convert_with_check): Likewise. - * utils.c (gnat_signed_or_unsigned_type): Likewise. - (build_vms_descriptor, unchecked_convert): Likewise. - * utils2.c (nonbinary_modular_operation): Likewise. - -2004-03-29 Javier Miranda - - * checks.adb (Null_Exclusion_Static_Checks): New subprogram - (Install_Null_Excluding_Check): Local subprogram that determines whether - an access node requires a runtime access check and if so inserts the - appropriate run-time check. - (Apply_Access_Check): Call Install_Null_Excluding check if required - (Apply_Constraint_Check): Call Install_Null_Excluding check if required - - * checks.ads: (Null_Exclusion_Static_Checks): New subprogram - - * einfo.ads: Fix typo in comment - - * exp_ch3.adb (Build_Assignment): Generate conversion to the - null-excluding type to force the corresponding run-time check. - (Expand_N_Object_Declaration): Generate conversion to the null-excluding - type to force the corresponding run-time check. - - * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to - the null-excluding type to force the corresponding run-time check. - - * exp_ch6.adb (Expand_Call): Do not generate the run-time check in - case of access types unless they have the null-excluding attribute. - - * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing - part. - - * exp_util.ads: Fix typo in comment - - * par.adb (P_Null_Exclusion): New subprogram - (P_Subtype_Indication): New formal that indicates if the null-excluding - part has been scanned-out and it was present - - * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231 - - * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram - (Aggregate_Constraint_Checks): Generate conversion to the null-excluding - type to force the corresponding run-time check - (Resolve_Aggregate): Propagate the null-excluding attribute to the array - components - (Resolve_Array_Aggregate): Carry out some static checks - (Resolve_Record_Aggregate.Get_Value): Carry out some static check - - * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null - attribute must be set only if specified by means of the null-excluding - part. In addition, we must also propagate the access-constant attribute - if present. - (Access_Subprogram_Declaration, Access_Type_Declaration, - Analyze_Component_Declaration, Analyze_Object_Declaration, - Array_Type_Declaration, Process_Discriminants, - Analyze_Subtype_Declaration): Propagate the null-excluding attribute - and carry out some static checks. - (Build_Derived_Access_Type): Set the null-excluding attribute - (Derived_Type_Declaration, Process_Subtype): Carry out some static - checks. - - * sem_ch4.adb (Analyze_Allocator): Carry out some static checks - - * sem_ch5.adb (Analyze_Assignment): Carry out some static checks - - * sem_ch6.adb (Process_Formals): Carry out some static checks. - (Set_Actual_Subtypes): Generate null-excluding subtype if the - null-excluding part was present; it is not required to be done here in - case of anonymous access types. - (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null - value. - - * sem_res.adb (Resolve_Actuals): Carry out some static check - (Resolve_Null): Allow null in anonymous access - - * sinfo.adb: New subprogram Null_Exclusion_Present - All_Present and Constant_Present available on access_definition nodes - - * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration, - object_declaration, derived_type_definition, component_definition, - discriminant_specification, access_to_object_definition, - access_function_definition, allocator, access_procedure_definition, - access_definition, parameter_specification, All_Present and - Constant_Present flags available on access_definition nodes. - -2004-03-29 Robert Dewar - - * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads, - gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb, - opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb, - par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb, - sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb, - sem_prag.adb: Updates to handle multiple units/file - - * par.adb: Change test for s-rpc to s-rp for detecting rpc and children - - * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb, - sem_util.adb: Minor reformatting - - * sem_ch12.adb: Add comment for previous change - -2004-03-29 Laurent Pautet - - * osint.adb (Executable_Prefix): Set Exec_Name to the current - executable name when not initialized. Otherwise, use its current value. - - * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to - initialize it to another executable name than the current one. This - allows to configure paths for an executable name (gnatmake) different - from the current one (gnatdist). - -2004-03-29 Ed Schonberg - - * exp_ch6.adb (Expand_Call): A call to a function declared in the - current unit cannot be inlined if it appears in the body of a withed - unit, to avoid order of elaboration problems in gigi. - - * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging - information for protected (wrapper) operation as well, to simplify gdb - use. - - * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a - protected body, indicate that the entity for the generated spec comes - from source, to ensure that references are properly generated for it. - (Build_Body_To_Inline): Do not inline a function that returns a - controlled type. - - * sem_prag.adb (Process_Convention): If subprogram is overloaded, only - apply convention to homonyms that are declared explicitly. - - * sem_res.adb (Make_Call_Into_Operator): If the operation is a function - that renames an equality operator and the operands are overloaded, - resolve them with the declared formal types, before rewriting as an - operator. - -2004-03-29 GNAT Script - - * Make-lang.in: Makefile automatically updated - -2004-03-25 Vasiliy Fofanov - - * memtrack.adb: Log realloc calls, which are treated as free followed - by alloc. - -2004-03-25 Vincent Celier - - * prj-makr.adb (Process_Directories): Detect when a file contains - several units. Do not include such files in the config pragmas or - in the naming scheme. - - * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode. - Resolve links only when not in Trusted_Mode. - (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory): - Do not resolve links for the display names. - - * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not - resolve links when computing the display names. - -2004-03-25 Thomas Quinot - - * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag - attribute reference does not denote a subtype, it can be any - expression that has a classwide type, potentially after an implicit - dereference. In particular, the prefix can be a view conversion for - a classwide type (for which Is_Object_Reference holds), but it can - also be a value conversion for an access-to-classwide type. In the - latter case, there is an implicit dereference, and the original node - for the prefix does not verify Is_Object_Reference. - - * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view - conversion of a discriminant-dependent component of a mutable object - is one itself. - -2004-03-25 Ed Schonberg - - * freeze.adb (Freeze_Entity): When an inherited subprogram is - inherited, has convention C, and has unconstrained array parameters, - place the corresponding warning on the derived type declaration rather - than the original subprogram. - - * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default - indication on renaming declaration, if formal has a box and actual - is absent. - - * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to - determine whether to generate an implicit or explicit reference to - the renamed entity. - - * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a - subprogram renaming comes from a defaulted formal subprogram in an - instance. - -2004-03-25 Gary Dismukes - - * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default - value expressions to ensure that calls within a component definition - will be checked (since those are evaluated during the record type's - elaboration). - -2004-03-25 Arnaud Charlet - - * s-tpobop.adb: Code clean up: - (Requeue_Call): Extract from PO_Service_Entries to remove duplicated - code. - (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call. - -2004-03-25 Jose Ruiz - - * Makefile.in: Clean up in the ravenscar run time. - -2004-03-23 Richard Kenner - - * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value - of No_Strict_Aliasing to build_pointer_type_for_mode. - * utils.c (update_pointer_to): Walk pointer and ref chains. - -2004-03-22 Cyrille Comar - - * ali.ads: Fix Comment about Dynamic_Elab. - - * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab, - Has_RACW, Is_Generic, etc.) - (Output_Object, Gnatls): Take into account ALI files not attached to - an object. - -2004-03-22 Vincent Celier - - * gprep.adb: Change all String_Access to Name_Id - (Is_ASCII_Letter): new function - (Double_File_Name_Buffer): New procedure - (Preprocess_Infile_Name): New procedure - (Process_Files): New procedure - (Gnatprep): Check if output and input are existing directories. - Call Process_Files to do the real job. - -2004-03-22 Robert Dewar - - * prj-env.adb, prj-nmsc.ads, prj-proc.ads, - s-stache.ads, s-stache.adb: Comment updates. Minor reformatting. - -2004-03-22 Sergey Rybin - - * scn.adb (Contains): Add check for EOF, is needed for a degenerated - case when the source contains only comments. - -2004-03-22 Ed Schonberg - - * sem_ch10.adb (Analyze_Compilation_Unit): When generating a - declaration for a child subprogram body that acts as a spec, indicate - that the entity in the declaration needs debugging information. - - * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying - full view if the subtype is created for a constrained record component; - gigi has enough information to construct the record, and there is no - place in the tree for the declaration. - - * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without - serial number for the dummy body that is built for analysis, to avoid - inconsistencies in the generation of internal names when compiling - with -gnatN. - -2004-03-22 Thomas Quinot - - * sem_util.adb (Is_Object_Reference): A view conversion denotes an - object. - -2004-03-22 GNAT Script - - * Make-lang.in: Makefile automatically updated - -2004-03-21 Richard Kenner - - * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR. - * trans.c (tree_transform, emit_index_check): Likewise. - * utils.c (build_template): Likewise. - (max_size, convert): Remove handling of WITH_RECORD_EXPR. - (maybe_unconstrained_array, unchecked_convert): Likewise. - * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise. - (build_unary_op): Likewise. - (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR. - (fill_vms_descriptor): Likewise. - (build_call_alloc_dealloc): Likewise. - ALIGN is unsigned. - * gigi.h (build_call_alloc_dealloc): Alignment is unsigned. - -2004-03-20 Joseph S. Myers - - PR other/14630 - * gnat_ug.texi: Add info directory category and entry. - * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi, - gnat_ug_wnt.texi: Regenerate. - -2004-03-19 Arnaud Charlet - - * ada-tree.h: Update copyright notice. - Minor reformatting. - -2004-03-19 Olivier Hainque - - * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions - as regular exception objects and not as mere integers representing the - condition code. The latter approach required some dynamics to mask off - severity bits, which did not fit well into the GCC table based model. - (gnat_to_gnu_entity, objects): Don't supply an external name for VMS - exception data objects. We don't it and it would conflict with the other - external symbol we have to generate for such exceptions. - - * trans.c (tree_transform, case N_Exception_Handler): Remove part of - the special code for VMS exceptions, since these are now represented - as regular exceptions objects. - -2004-03-19 Richard Kenner - - * decl.c (debug_no_type_hash): Remove. - (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it. - * misc.c (LANG_HOOK_HASH_TYPE): Redefine. - -2004-03-19 Laurent Guerby - - * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of - aggregate, allows bootstrap from 3.3 on powerpc-darwin. - -2004-03-18 Richard Kenner - - * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking. - (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise. - (TYPE_RM_SIZE_INT): Directly use type.values. - (TREE_LOOP_ID): Clean up check. - * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use - TYPE_VALUES, not TYPE_FIELDS. - * trans.c (convert_with_check): Delay access of bounds of basetype - until sure is numeric. - -2004-03-18 Arnaud Charlet - - * 5atpopsp.adb: Remove RTEMS from list of platforms using this file. - - Code clean up: - * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb, - 5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use - Specific.Set instead of direct call to e.g pthread_setspecific. - -2004-03-18 Thomas Quinot - - * adaint.c: Update comments. - - * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and - GNATLIB_SHARED for FreeBSD. - -2004-03-18 Jose Ruiz - - * init.c [VxWorks]: Do not fix the stack size for the environment task. - When needed (stack checking) the stack size is retrieved - from the VxWorks kernel. - - * Makefile.in: Flag -nostdinc is required when building the run time - for avoiding looking for files in the base compiler. - Add the VxWorks specific version of the package body for - System.Stack_checking.Operations (5zstchop.adb). - - * Make-lang.in: Add the object file for - System.Stack_Checking.Operations. - - * Makefile.rtl: Add object file for the package - System.Stack_Checking.Operations. - - * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files. - - * s-stache.ads, s-stache.adb: Move the operations related to stack - checking from this package to package System.Stack_Checking.Operations. - This way, stack checking operations are only linked in the final - executable when using the -fstack-check flag. - -2004-03-18 Doug Rupp - - * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads). - Reorganize ifeq's. - - * 5qsystem.ads, 5xcrtl.ads: New files. - -2004-03-18 Vincent Celier - - * prj.adb (Reset): Reset hash table Files_Htable - - * prj-env.adb (Source_Paths, Object_Paths): New tables. - (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace - the procedures Add_To_Path_File. - (Set_Ada_Paths): Accumulate source and object dirs in the tables, - making sure that each directory is present only once and, for object - dirs, when a directory already present is added, the duplicate is - removed and the directory is always put as the last in the table. - Write the path files at the end of these accumulations. - - * prj-nmsc.adb (Record_Source): Add source file name in hash table - Files_Htable for all sources. - - * prj-proc.adb (Process): Remove restrictions between not directly - related extending projects. - -2004-03-18 Emmanuel Briot - - * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode. - (Find_Sources): Minor speed optimization. - - * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New - parameter Trusted_Mode. - -2004-03-18 Sergey Rybin - - * scn.adb (Determine_License): Take into account a degenerated case - when the source contains only comments. - -2004-03-18 Ed Schonberg - - * sem_warn.adb (Check_References): For a warning on a selected - component that does not come from source, locate an uninitialized - component of the record type to produce a more precise error message. - -2004-03-15 Jerome Guitton - - * 3zsoccon.ads: Fix multicast options. - - * s-thread.ads: Move unchecked conversion from ATSD_Access to Address - in the spec. - -2004-03-15 Robert Dewar - - * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when - pragma used for a private type. - - * lib-xref.adb (Generate_Reference): Do not generate warning if - reference is in a different unit from the pragma Unreferenced. - - * 5vtpopde.adb: Minor reformatting - Fix casing of To_Task_ID - - * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing - flag if we have an unchecked conversion to an access type in the same - unit. - -2004-03-15 Geert Bosch - - * a-ngcoty.adb (Modulus): In alternate formula for large real or - imaginary parts, use Double precision throughout. - - * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only - we want to be able to compile run-time with -gnata for testing, but - this may also be instantiated in user code that is compiled with -gnata. - -2004-03-15 Olivier Hainque - - * s-stalib.ads (Exception_Code): New type, to represent Import/Export - codes. Having a separate type for this is useful to enforce consistency - throughout the various run-time units. - (Exception_Data): Use Exception_Code for Import_Code. - - * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of - Natural and Integer in various places. - (Register_VMS_Exception): Use Base_Code_In to compute the exception code - with the severity bits masked off. - (Register_VMS_Exception): Handle the additional exception data pointer - argument. - - * raise.c (_GNAT_Exception structure): Remove the handled_by_others - component, now reflected by an exported accessor. - (is_handled_by): New routine to compute whether the propagated - occurrence matches some handler choice specification. Extracted out of - get_action_description_for, and expanded to take care of the VMS - specifities. - (get_action_description_for): Use is_handled_by instead of an explicit - complex condition to decide if the current choice at hand catches the - propagated occurrence. - - * raise.h (Exception_Code): New type for C. - - * rtsfind.ads (RE_Id, RE_Unit_Table): Add - System.Standard_Library.Exception_Code, to allow references from the - pragma import/export expander. - - * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For): - New accessors to allow easy access to GNAT exception data - characteristics. - (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the - redundant Handled_By_Others component, helper for the personality - routine which will now be able to call the appropriate exception data - accessor instead. - - * cstand.adb (Create_Standard): Adjust the type of the Import_Code - component of Standard_Exception_Type to be the closest possible to - Exception_Code in System.Standard_Library, that we cannot get at this - point. Expand a ??? comment to notify that this type node should - probably be rewritten later on. - - * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the - registration call to include a pointer to the exception object in the - arguments. - - * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In - instead of int and explicit bitmasks. - -2004-03-15 Vincent Celier - - * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED - equivalent to /STATIC and /NOSTATIC equivalent to /SHARED. - - * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no - longer needed now that it is in the spec of - System.Tasking.Task_Attributes. - - * adaint.h, adaint.c: (__gnat_create_output_file): New function - - * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of = - - * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function. - - * make.adb (Gnatmake): Do not check the executable suffix; it is being - taken care of in Scan_Make_Arg. - (Scan_Make_Arg): Add the executable suffix only if the argument - following -o, in canonical case, does not end with the executable - suffix. When in verbose mode and executable file name does not end - with executable suffix, output the executable name, in canonical case. - - * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing - to avoid warnings when instantiating Ada.Task_Attributes. - Minor reformating. - - * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries - in the correct order. - - * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but - redirect standard output and error to a file for the invocation of the - compiler, then read the file. - - * prj-nmsc.adb (Find_Sources): Use the Display_Value for each - directory, instead of the Value. - (Find_Source_Dirs): Remove useless code & comments. - -2004-03-15 Ed Schonberg - - * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a - tagged type is inherited, and the parent operation is not frozen yet, - force generation of a freeze node for the inherited operation, so the - corresponding dispatch entry is properly initialized. - (Make_Predefined_Primitive_Specs): Check that return type is Boolean - when looking for user-defined equality operation. - - * exp_ch4.adb (Expand_Composite_Equality): Check that return type is - boolean when locating primitive equality of tagged component. - - * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a - bit-aligned field and the right-hand side a string literal, introduce - a temporary before expanding assignment into a loop. - - * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for - priority in full, to ensure that any expanded subepxressions of it are - elaborated in the scope of the init_proc. - - * exp_prag.adb (Expand_Pragma_Import): Search for initialization call - after object declaration, skipping over code that may have been - generated for validity checks. - - * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown - discriminants, ignore the known discriminants of its full view, if - any, to check legality. - - * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained - component if type has unknown discriminants. - (Analyze_Private_Extension_Declaration): Discriminant constraint is - null if type has unknown discriminants. - - * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference - for end label when present. - - * s-fileio.adb (Open): When called with a C_Stream, use given name for - temporary file, rather than an empty string. - -2004-03-15 Ed Falis - - * s-thread.adb: Removed, no longer used. - -2004-03-15 Richard Kenner - - * decl.c (target.h): Now include. - (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE - in new build_pointer_from_mode calls for non-fat/non-thin pointer. - (validate_size): For POINTER_TYPE, get smallest size permitted on - machine. - - * fe.h: Sort Einfo decls and add Set_Mechanism. - - * Makefile.in: (LIBGNAT_SRCS): Remove types.h. - (ada/decl.o): Depends on target.h. - - * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use - FUNCTION_BOUNDARY; always use TYPE_ALIGN. - -2004-03-15 Thomas Quinot - - * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID. - - * exp_ch4.adb (Expand_N_Indexed_Component): Do not call - Insert_Dereference_Action when rewriting an implicit dereference into - an explicit one, this will be taken care of during expansion of the - explicit dereference. - (Expand_N_Slice): Same. Always do the rewriting, even for the case - of non-packed slices, since the dereference action generated by - expansion of the explicit dereference is needed in any case. - (Expand_N_Selected_Component): When rewriting an implicit dereference, - analyze and resolve the rewritten explicit dereference so it is seen - by the expander. - (Insert_Dereference_Action): This procedure is now called only for the - expansion of an N_Explcit_Dereference_Node. Do insert a check even for - dereferences that do not come from source (including explicit - dereferences resulting from rewriting implicit ones), but do not - recursively insert a check for the dereference nodes contained within - the check. - (Insert_Dereference_Action): Clarify and correct comment. - -2004-03-08 Paolo Bonzini - - PR ada/14131 - Move language detection to the top level. - * config-lang.in: Build by default. - -2004-03-05 Robert Dewar - - * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions - - * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads, - i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads, - 5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb, - 5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move - unchecked conversion to spec to avoid warnings. - - * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id - to Task_ID - - * 7stpopsp.adb: Correct casing in To_Task_ID call - - * a-strsea.ads, a-strsea.adb: Minor reformatting - - * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing - - * errout.ads: Switch for VMS is now NO_STRICT_ALIASING. - Adjust Max_Msg_Length to be clearly large enough. - - * fe.h: Define In_Same_Source_Unit - - * osint.adb: Add pragma Warnings Off to suppress warnings - * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill - aliasing warnings. - - * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing - - * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma - - * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc. - - * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set. - - * sem_prag.adb: Implement pragma No_Strict_Aliasing. - - * sinfo.ads: Remove obsolete comment on validate unchecked conversion - node. We now do generate them for gcc back end. - - * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing - warning. - - * sinput-c.adb: Fix bad name in header. - Add pragma Warnings Off to suppress aliasing warning. - - * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning. - - * snames.h, snames.ads, snames.adb: Add entry for pragma - No_Strict_Aliasing. - -2004-03-05 Vincent Celier - - * prj-com.ads: Add hash table Files_Htable to check when a file name - is already a source of another project. - - * prj-nmsc.adb (Record_Source): Before recording a new source, check - if its file name is not already a source of another project. Report an - error if it is. - - * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no - source file name, call gnatpp with all the sources of the main project. - - * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number - of file names. - - * vms_data.ads: Correct documentation of new /OPTIMIZE keyword - NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY: - /RUNTIME_SYSTEM=, converted to --RTS= - /NOTABS, converted to -notabs - -2004-03-05 Pascal Obry - - * make.adb: Minor reformatting. - -2004-03-05 Ed Schonberg - - Part of implemention of AI-262. - * par-ch10.adb (P_Context_Clause): Recognize private with_clauses. - - * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New - procedure. - - * sem_ch3.adb (Analyze_Component_Declaration): Improve error message - when component type is a partially constrained class-wide subtype. - (Constrain_Discriminated_Type): If parent type has unknown - discriminants, a constraint is illegal, even if full view has - discriminants. - (Build_Derived_Record_Type): Inherit discriminants when deriving a type - with unknown discriminants whose full view is a discriminated record. - - * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants - flag, to handle properly derivations of tagged types with unknown - discriminants. - (Analyze_Package_Spec, Analyze_Package_Body): Install - Private_With_Clauses before analyzing private part or body. - - * einfo.ads: Indicate that both Has_Unknown_Discriminants and - Has_Discriminants can be true for a given type (documentation). - -2004-03-05 Arnaud Charlet - - * s-restri.ads: Fix license (GPL->GMGPL). - - * s-tassta.adb: Minor reformatting. - - * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level - by calls to Exit_One_ATC_Level, since additional clean up is performed - by this function. - - * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level - by calls to Exit_One_ATC_Level, since additional clean up is performed - by this function. - -2004-03-05 Richard Kenner - - * trans.c: Reflect GCC changes to fix bootstrap problem. - Add warning for suspicious aliasing unchecked conversion. - -2004-03-05 GNAT Script - - * Make-lang.in: Makefile automatically updated - -2004-03-02 Emmanuel Briot - - * ali.adb (Read_Instantiation_Instance): Do not modify the - current_file_num when reading information about instantiations, since - this corrupts files in later references. - -2004-03-02 Vincent Celier - - * bcheck.adb (Check_Consistency): Get the full path of an ALI file - before checking if it is read-only. - - * bld.adb (Recursive_Process): Concatenate .src_dirs in front - of SRC_DIRS and eliminate duplicates. - - * gprcmd.adb: Replace command "path" with command "path_sep" to return - the path separator. - (Usage): Document path_sep - - * Makefile.generic: For Ada and GNU C++ cases, link directly with the - C++ compiler. No need for a script. - Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH. - Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function - subst. - - * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project - where there are Ada sources. - (Set_Ada_Paths): Only add to the include path the source dirs of project - with Ada sources. - (Add_To_Path): Add the Display_Values of the directories, not their - Values. - - * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project - data. - - * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value - is not No_Name. - (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only - Value is canonicalized. - (Language_Independent_Check): Do not copy Value to Display_Value when - canonicalizing Value. - - * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased - path to find limited with cycles. - (Parse_Single_Project): Use canonical cased path to find the end of a - with cycle. - -2004-03-02 Ed Schonberg - - * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit - and not a child unit. - - * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can - appear in a with_clause. - - * decl.c (gnat_to_gnu_type): If entity is a generic type, which can - only happen in type_annotate mode, do not try to elaborate it. - - * exp_util.adb (Force_Evaluation): If expression is a selected - component on the left of an assignment, use a renaming rather than a - temporary to remove side effects. - - * freeze.adb (Freeze_Entity): Do not freeze a global entity within an - inlined instance body, which is analyzed before the end of the - enclosing scope. - -2004-03-02 Robert Dewar - - * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb, - sem_ch4.adb: Use new feature for substitution of keywords in VMS - - * errout.ads, errout.adb: Implement new circuit for substitution of - keywords in VMS. - - * sem_case.adb (Analyze_Choices): Place message properly when case is - a subtype reference rather than an explicit range. - - * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting - -2004-03-02 Doug Rupp - - * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF. - -2004-03-02 Thomas Quinot - - * s-tporft.adb: Add missing locking around call to Initialize_ATCB. - -2004-03-02 Richard Kenner - - * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a - BLKmode bitfield. - -2004-02-25 Robert Dewar - - * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads, - 55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads, - 5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads, - 5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads, - 5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads, - 5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to - the defining instance of the type to avoid aliasing problems. - Fix copyright header. Fix bad comments in package header. - - * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting - -2004-02-25 Ed Schonberg - - * exp_ch2.adb (Param_Entity): Handle properly formals that have been - rewritten as references when aliased through an address clause. - - * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking - whether call can be interpreted as an indirect call to the result of a - parameterless function call returning an access subprogram. - -2004-02-25 Arnaud Charlet - - Code clean up: - * exp_ch7.adb (Make_Clean): Remove generation of calls to - Unlock[_Entries], since this is now done by Service_Entries directly. - - * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto. - - * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure - Requeue_Call for better code readability. Change spec and update calls: - PO_Service_Entries now unlock the PO on exit. - (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to - PO_Service_Entries. - - * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit. - - * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries. - -2004-02-25 Sergey Rybin - - * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the - protected subprogram call and analyzing the result of such expanding - in case when the called protected subprogram is eliminated. - - * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope - names. - -2004-02-25 Jerome Guitton - - * Makefile.in: Clean ups. - -2004-02-23 Ed Schonberg - - * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create - protected operations if original subprogram is flagged as eliminated. - (Expand_N_Subprogram_Body): For a protected operation, create - discriminals for next operation before checking whether the operation - is eliminated. - - * exp_ch9.adb (Expand_N_Protected_Body, - Expand_N_Protected_Type_Declaration): Do not generate specs and bodies - for internal protected operations if the original subprogram is - eliminated. - - * sem_elim.adb (Check_Eliminated): Handle properly protected operations - declared in a single protected object. - -2004-02-23 Vincent Celier - - * prj-attr.adb: Make attribute Builder'Executable an associative array, - case insensitive if file names are case insensitive, instead of a - standard associative array. - - * prj-attr.adb (Initialize): For 'b' associative arrays, do not set - them as case insensitive on platforms where the file names are case - sensitive. - - * prj-part.adb (Parse_Single_Project): Make sure, when checking if - project file has already been parsed that canonical path are compared. - -2004-02-23 Robert Dewar - - * sinput-c.ads: Correct bad unit title in header - - * freeze.adb: Minor reformatting - -2004-02-23 Richard Kenner - - * trans.c (tree_transform, case N_Procedure_Call_Statement): For - nonaddressable COMPONENT_REF that is removing padding that we are - taking the address of, take the address of the padded record instead - if item is variable size. - -2004-02-20 Robert Dewar - - * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting - -2004-02-20 Ed Schonberg - - * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates - itype references for the constrained designated type of a component - whose base type is already frozen. - -2004-02-20 Arnaud Charlet - - * init.c (__gnat_error_handler [tru64]): Rewrite previous change to - avoid GCC warnings. - -2004-02-20 Sergey Rybin - - * sem_ch12.adb (Analyze_Formal_Package): Create a new defining - identifier for a phantom package that rewrites the formal package - declaration with a box. The Add semantic decorations for the defining - identifier from the original node (that represents the formal package). - -2004-02-19 Matt Kraai - - * Make-lang.in (ada/stamp-sdefault): Use the top level - move-if-change. - -2004-02-19 Richard Henderson - - * misc.c (record_code_position): Add third build arg for RTL_EXPR. - -2004-02-18 Emmanuel Briot - - * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that - Scan_ALI can be used for multiple ALI files without reinitializing - between calls. - -2004-02-18 Robert Dewar - - * debug.adb: Minor reformatting. - -2004-02-18 Richard Kenner - - * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET - to zero if there is an address clause. - -2004-02-18 Thomas Quinot - - * exp_util.adb (Side_Effect_Free): Any literal is side effects free. - -2004-02-18 Gary Dismukes - - * layout.adb (Layout_Component_List): Revise generation of call to - discriminant-checking function to pass selections of all of the type's - discriminants rather than just the variant-controlling discriminant. - -2004-02-18 Olivier Hainque - - * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to - fail in the current setup and triggers spurious system error messages. - Pretend it occurred and failed instead. - -2004-02-18 Vincent Celier - - * bld.adb: Mark FLDFLAGS as saved - (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when - it is not the root project. Put each directory to be - extended between double quotes to prevent it to be expanded on Windows. - (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing - the project file. Set them back to their initial values if they have not - been set in the project file. - - * gprcmd.adb: (Gprdebug, Debug): New global variables - (Display_Command): New procedure - (Usage): Document new command "linkopts" - Call Display_Command when env var GPRDEBUG has the value "TRUE" - Implement new command "linkopts" - Remove quotes that may be around arguments for "extend" - Always call Normalize_Pathname with arguments formatted for the platform - - * Makefile.generic: Link C/C++ mains with $(FLDFLAGS) - Change @echo to @$(display) in target clean to be able to clean silently - - * Makefile.prolog: Save FLDFLAGS and give it an initial empty value - - * prj-part.adb (Project_Path_Name_Of): Do not put final result in - canonical case. - - * prj-part.adb (Parse_Single_Project): Always call with From_Extended - = Extending_All when current project is an extending all project. - - * vms_conv.adb (Output_File_Expected): New Boolean global variable, - set to True only for LINK command, after Unix switch -o. - (Process_Arguments): Set Output_File_Expected to True for LINK command - after Unix switch -o. When Output_File_Expected is True, never add an - extension to a file name. - - * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the - option file name, only to the --for-linker= switch. - (Option_File_Name): If option file name do not end with ".opt", append - "/OPTIONS". - -2004-02-18 GNAT Script - - * Make-lang.in: Makefile automatically updated - -2004-02-17 Matt Kraai - - * Make-lang.in (stamp-sdefault): Do not depend on - move-if-change. - -2004-02-12 Zack Weinberg - - * config-lang.in: Disable Ada by default until probe logic for - a bootstrap Ada compiler can be moved to the top level configure - script. - -2004-02-12 Olivier Hainque - - * decl.c (components_to_record): Don't claim that the internal fields - we make to hold the variant parts are semantically addressable, because - they are not. - - * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and - adjust the comment describing the modular type form when we can use it. - (Install_PAT): Account for the Esiz renaming. - - * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the - sc_onstack context indication before raising the exception to which - the signal is mapped. Allows better handling of later signals possibly - triggered by the resumed user code if the exception is handled. - -2004-02-12 Arnaud Charlet - - * 5zinit.adb: Removed, no longer used. - -2004-02-12 Robert Dewar - - * ali.adb: Remove separating space between parameters on R line. Makes - format consistent with format used by the binder for Set_Globals call. - - * atree.ads, atree.adb: Minor reformatting (new function header format) - - * bindgen.adb: Add Run-Time Globals documentation section containing - detailed documentation of the globals passed from the binder file to - the run time. - - * gnatls.adb: Minor reformatting - - * init.c (__gnat_set_globals): Add note pointing to documentation in - bindgen. - - * lib-writ.ads, lib-writ.adb: Remove separating space between - parameters on R line. - Makes format consistent with format used by the binder for Set_Globals - call. - - * osint.ads: Add 2004 to copyright notice - Minor reformatting - - * snames.ads: Correct capitalization of FIFO_Within_Priorities - Noticed during code reading, documentation issue only - - * usage.adb: Remove junk line for obsolete C switch - Noticed during code reading - -2004-02-12 Vincent Celier - - * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd - extend for each directory, so that multiple /** directories are - extended individually. - (Recursive_Process): Set the default for LANGUAGES to ada - - * gprcmd.adb: Define new command "ignore", to do nothing. - Implement new comment "path". - - * Makefile.generic: Suppress output when SILENT is set - Make sure that when compiler for C/C++ is gcc, the correct -x switch is - used, so that the correct compiler is invoked. - When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/ - CXX_INCLUDE_PATH, to avoid failure with too long command lines. - -2004-02-12 Jerome Guitton - - * Makefile.in: Clean ups and remove obsolete targets. - -2004-02-12 Ed Schonberg - - * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar - predicate declared in exp_util. - - * exp_util.adb: Add comments. - - * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from - visibility before compiling context of the subunit. - - * sem_res.adb (Check_Parameterless_Call): If the context expects a - value but the name is a procedure, do not attempt to analyze as a call, - in order to obtain more telling diagnostics. - - * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing - 'Access on parameterless function calls. - (Normalize_Actuals): For a parameterless function call with missing - actuals, defer diagnostic until resolution of enclosing call. - - * sem_util.adb (Wrong_Type): If the context type is an access to - subprogram and the expression is a procedure name, suggest a missing - 'attribute. - -2004-02-10 Arnaud Charlet , - Nathanael Nerode - - PR ada/6637 - PR ada/5911 - Merge with libada-branch: - * config-lang.in: Build libada only when ada is built. - -2004-02-09 Ed Schonberg - - * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality - for a tagged type, verify that both formals have the same type. - - * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the - temporary when the formal is an in-parameter and the actual a possibly - unaligned slice. - - * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even - when expansion is disabled, to ensure proper name capture with - overloaded literals. Condition can be of any boolean type, resolve - accordingly. - - * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the - renaming is for a formal subprogram with a default operator name, and - there is a usable operator that is visible at the point of - instantiation. - -2004-02-09 Robert Dewar - - * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major - rewrite to ignore errors in ali files, intended to allow tools downward - compatibility with new versions of ali files. - - * ali.ads: Add new parameter Ignore_Errors - - * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes - duplicating the error message giving the file with restrictions. - - * debug.adb: Add debug flag I for gnatbind - - * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around - operators for the case where the operator is a defining operator. - - * exp_ch3.adb: Minor reformatting (new function spec format). - - * exp_ch4.adb: Add comment for previous change, and make minor - adjustment to loop to always check for improper loop termination. - Minor reformatting throughout (new function spec format). - - * gnatbind.adb: Implement -di debug flag for gnatbind - - * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True - - * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True - - * lib-load.adb: Fix bad assertion. - Found by testing and code reading. - Minor reformatting. - - * lib-load.ads: Minor reformatting. - - * lib-writ.adb: There is only one R line now. - - * lib-writ.ads: Add documentation on making downward compatible changes - to ali files so old tools work with new ali files. - There is only one R line now. - Add documentation on format incompatibilities (with special GPS note) - - * namet.ads, namet.adb: (Is_Operator_Name): New procedure - - * par-load.adb: Minor reformatting - - * sem_ch8.adb: Fix to error message from last update - Minor reformatting and restructuring of code from last update - - * par-prag.adb, snames.adb, snames.ads, snames.h, - sem_prag.adb: Implement pragma Profile. - - * stylesw.adb: Implement -gnatyN switch to turn off all style check - options. - - * usage.adb: Add line for -gnatyN switch - - * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN - -2004-02-09 Albert Lee - - * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX - -2004-02-09 Ed Schonberg - - * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null - slices. - - * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram - is nested in an instance that is not frozen yet, to avoid - order-of-elaboration problems in gigi. - - * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined - body the attribute is legal. - -2004-02-09 Robert Dewar - - * s-rident.ads: Minor comment correction - - * targparm.adb: Remove dependence on uintp completely. There was - always a bug in Make in that it called Targparm before initializing - the Uint package. The old code appeared to get away with this, but - the new code did not! This caused an assertion error in gnatmake. - - * targparm.ads: Fix bad comment, restriction pragmas with parameters - are indeed fully supported. - -2004-02-06 Alan Modra - - * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call. - -2004-02-05 Kazu Hirata - - * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES - with targetm.calls.promote_prototypes. - -2004-02-04 Robert Dewar - - * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb, - ali.ads, gprcmd.adb: Minor reformatting - - * bindgen.adb: Output restrictions string for new style restrictions - handling - - * impunit.adb: Add s-rident.ads (System.Rident) and - s-restri (System.Restrictions) - - * lib-writ.adb: Fix bug in writing restrictions string (last few - entries wrong) - - * s-restri.ads, s-restri.adb: Change name Restrictions to - Run_Time_Restrictions to avoid conflict with package name. - Add circuit to read and acquire run time restrictions. - -2004-02-04 Jose Ruiz - - * restrict.ads, restrict.adb: Use the new restriction - No_Task_Attributes_Package instead of the old No_Task_Attributes. - - * sem_prag.adb: No_Task_Attributes is a synonym of - No_Task_Attributes_Package. - - * snames.ads, snames.adb: New entry for proper handling of - No_Task_Attributes. - - * s-rident.ads: Adding restriction No_Task_Attributes_Package - (AI-00249) that supersedes the GNAT specific restriction - No_Task_Attributes. - -2004-02-04 Ed Schonberg - - * sem_prag.adb: - (Analyze_Pragma, case Warnings): In an inlined body, as in an instance - body, an identifier may be wrapped in an unchecked conversion. - -2004-02-04 Vincent Celier - - * lib-writ.ads: Comment update for the W lines - - * bld.adb: (Expression): An empty string list is static - - * fname-uf.adb: Minor comment update - - * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail - - * gnatbind.adb: Initialize Cumulative_Restrictions with the - restrictions on the target. - -2004-02-03 Kazu Hirata - - * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of - gen_rtx. - -2004-02-02 Arnaud Charlet - - * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded. - -2004-02-02 Vincent Celier - - * gprcmd.adb (Check_Args): If condition is false, print the invoked - comment before the usage. - Gprcmd: Fail when command is not recognized. - (Usage): Document command "prefix" - - * g-md5.adb (Digest): Process last block. - (Update): Do not process last block. Store remaining characters and - length in Context. - - * g-md5.ads (Update): Document that several call to update are - equivalent to one call with the concatenated string. - (Context): Add fields to allow new Update behaviour. - - * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail, - defaulted to False. - When May_Fail is True and no existing file can be found, return No_File. - - * 6vcstrea.adb: Inlined functions are now wrappers to implementation - functions. - - * lib-writ.adb (Write_With_Lines): When body file does not exist, use - spec file name instead on the W line. - -2004-02-02 Robert Dewar - - * ali.adb: Read and acquire info from new format restrictions lines - - * bcheck.adb: Add circuits for checking restrictions with parameters - - * bindgen.adb: Output dummy restrictions data - To be changed later - - * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb, - exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb, - freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb, - sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb, - sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling. - - * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses - the warning message on access to possibly uninitialized variable S) - Minor changes for new restrictions handling. - - * gnatbind.adb: Minor reformatting - Minor changes for new restrictions handling - Move circuit for -r processing here from bcheck (cleaner) - - * gnatcmd.adb, gnatlink.adb: Minor reformatting - - * lib-writ.adb: Output new format restrictions lines - - * lib-writ.ads: Document new R format lines for new restrictions - handling. - - * s-restri.ads/adb: New files - - * Makefile.rtl: Add entry for s-restri.ads/adb - - * par-ch3.adb: Fix bad error messages starting with upper case letter - Minor reformatting - - * restrict.adb: Major rewrite throughout for new restrictions handling - Major point is to handle restrictions with parameters - - * restrict.ads: Major changes in interface to handle restrictions with - parameters. Also generally simplifies setting of restrictions. - - * snames.ads/adb: New entry for proper handling of No_Requeue - - * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks - restriction counting. - Other minor changes for new restrictions handling - - * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements. - Restriction_Warnings now allows full parameter notation - Major rewrite of Restrictions for new restrictions handling - -2004-02-02 Javier Miranda - - * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y - syntax rule for object renaming declarations. - (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for - component definitions. - - * sem_ch3.adb (Analyze_Component_Declaration): Give support to access - components. - (Array_Type_Declaration): Give support to access components. In addition - it was also modified to reflect the name of the object in anonymous - array types. The old code did not take into account that it is possible - to have an unconstrained anonymous array with an initial value. - (Check_Or_Process_Discriminants): Allow access discriminant in - non-limited types. - (Process_Discriminants): Allow access discriminant in non-limited types - Initialize the new Access_Definition field in N_Object_Renaming_Decl - node. Change Ada0Y to Ada 0Y in comments - - * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in - equality operators. - Change Ada0Y to Ada 0Y in comments - - * sem_ch8.adb (Analyze_Object_Renaming): Give support to access - renamings Change Ada0Y to Ada 0Y in comments - - * sem_type.adb (Find_Unique_Type): Give support to the equality - operators for universal access types - Change Ada0Y to Ada 0Y in comments - - * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms - - * sinfo.ads (N_Component_Definition): Addition of Access_Definition - field. - (N_Object_Renaming_Declaration): Addition of Access_Definition field - Change Ada0Y to Ada 0Y in comments - - * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for - component definition and object renaming nodes - Change Ada0Y to Ada 0Y in comments - -2004-02-02 Jose Ruiz - - * restrict.adb: Use the new restriction identifier - No_Requeue_Statements instead of the old No_Requeue for defining the - restricted profile. - - * sem_ch9.adb (Analyze_Requeue): Check the new restriction - No_Requeue_Statements. - - * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249) - that supersedes the GNAT specific restriction No_Requeue. The later is - kept for backward compatibility. - -2004-02-02 Ed Schonberg - - * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads, - 5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant - pragma and fix incorrect ones. - - * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a - warning if the pragma is redundant. - -2004-02-02 Thomas Quinot - - * 5staprop.adb: Add missing 'constant' keywords. - - * Makefile.in: use consistent value for SYMLIB on - platforms where libaddr2line is supported. - -2004-02-02 Richard Kenner - - * utils.c (end_subprog_body): Do not call rest_of_compilation if just - annotating types. - -2004-02-02 Olivier Hainque - - * init.c (__gnat_install_handler): Setup an alternate stack for signal - handlers in the environment thread. This allows proper propagation of - an exception on stack overflows in this thread even when the builtin - ABI stack-checking scheme is used without support for a stack reserve - region. - - * utils.c (create_field_decl): Augment the head comment about bitfield - creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P - here, because the former is not accurate enough at this point. - Let finish_record_type decide instead. - Don't make a bitfield if the field is to be addressable. - Always set a size for the field if the record is packed, to ensure the - checks for bitfield creation are triggered. - (finish_record_type): During last pass over the fields, clear - DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is - not covered by the calls to layout_decl. Adjust DECL_NONADDRESSABLE_P - from DECL_BIT_FIELD. - -2004-01-30 Kelley Cook - - * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir). - (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise. - (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise. - -2004-01-26 Rainer Orth - - * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB. - - * 5fsystem.ads (Functions_Return_By_DSP): Set to False. - (ZCX_By_Default): Likewise. - (Front_End_ZCX_Support): Likewise. - - * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced. - (Initialize_Lock): Mark Level unreferenced. - (Sleep): Mark Reason unreferenced. - (Timed_Sleep): Likewise. - (Wakeup): Likewise. - (Exit_Task): Use Result. - (Check_No_Locks): Mark Self_ID unreferenced. - - * 5gtasinf.adb (New_Sproc): Make Attr constant. - (Bound_Thread_Attributes): Make Sproc constant. - (New_Bound_Thread_Attributes): Likewise. - -2004-01-26 Ed Schonberg - - * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for - one-dimensional array an slice assignments, when component type is - controlled. - - * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional, - component type is controlled, and control_actions are in effect, use - TSS procedure rather than generating inline code. - - * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional - arrays with controlled components. - -2004-01-26 Vincent Celier - - * gnatcmd.adb (GNATCmd): Add specification of argument file on the - command line for the non VMS case. - - * gnatlink.adb (Process_Binder_File): When building object file, if - GNU linker is used, put all object paths between quotes, to prevent ld - error when there are unusual characters (such as '!') in the paths. - - * Makefile.generic: When there are sources in Ada and the main is in - C/C++, invoke gnatmake with -B, instead of -z. - - * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted - from VMS_Conversion. - (Process_Argument): New procedure, extracted from VMS_Conversion. Add - specification of argument file on the command line. - -2004-01-26 Bernard Banner - - * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64 - -2004-01-26 Ed Schonberg - - * snames.adb: Update copyright notice. - Add info on slice assignment for controlled arrays. - -2004-01-23 Robert Dewar - - * exp_aggr.adb: Minor reformatting - - * exp_ch9.adb: Minor code clean up - Minor reformatting - Fix bad character in comment - - PR ada/13471 - * targparm.adb (Get_Target_Parameters): Give clean abort error on - unexpected end of file, along with more detailed message. - -2004-01-23 Richard Kenner - - * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of - PAT. - - * decl.c (copy_alias_set): New function. - (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it. - -2004-01-23 Doug Rupp - - * Makefile.in (install-gnatlib): Change occurrences of lib$$file to - lib$${file} in case subsequent character is not a separator. - -2004-01-23 Vincent Celier - - * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc - when the GCC version is at least 3. - - * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches - Remove all "Opt.", to prepare for opt split - - * prj-part.adb (Parse_Single_Project): New Boolean out parameter - Extends_All. Set to True when the project parsed is an extending all - project. Fails for importing an extending all project only when the - imported project is an extending all project. - (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause, - depending on the value of Extends_All returned. - - * prj-proc.adb (Process): Check that no project shares its object - directory with a project that extends it, directly or indirectly, - including a virtual project. - Check that no project extended by another project shares its object - directory with another also extended project. - - * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for - Kind = N_With_Clause - - * prj-tree.ads: Minor reformatting - Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All). - -2004-01-23 Ed Schonberg - - * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute - applies to a type with an incomplete view, use full view in Name of - clause, for consistency with uses of Get_Attribute_Definition_Clause. - -2004-01-23 Arnaud Charlet - - * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using - SCHED_RR, since other values are not supported by this policy. - (Initialize): Move initialization of mutex attribute to package - elaboration, to prevent early access to this variable. - - * Makefile.in: Remove mention of Makefile.adalib, unused. - - * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb, - 1ssecsta.ads: Removed, unused. - -2004-01-21 Javier Miranda - - * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master - entity if already built in the current scope. - - * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity - reminder in internal scopes. Required for nested limited aggregates. - -2004-01-21 Doug Rupp - - * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on - VMS. Replace all occurences of libgnat- and libgnarl- with - libgnat$(hyphen) and libgnarl$(hyphen). - Fixed shared library build problem on VMS. - -2004-01-21 Robert Dewar - - * mlib-prj.adb: Minor reformatting - -2004-01-21 Thomas Quinot - - * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing - 'constant' keywords for declaration of pointers that are not modified. - - * exp_pakd.adb: Fix English in comment. - -2004-01-21 Ed Schonberg - - PR ada/10889 - * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype, - copy all attributes of the parent, including the foreign language - convention. - -2004-01-21 Sergey Rybin - - PR ada/10565 - * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check - for 'delay until' statement. - -2004-01-20 Kelley Cook - - * Make-lang.in: Replace $(docdir) with doc. - (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info - doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update - to use consistent MAKEINFO rule. - (ada.man, ada.srcman): Dummy entry. - (ADA_INFOFILES): Define. - (ada.info, ada.srcinfo): New rules. - -2004-01-19 Arnaud Charlet - - * utils.c: Update copyright notice, missed in previous change. - -2004-01-19 Vincent Celier - - * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the - args if Bind is True. Set First_ALI, if not already done. - (Build_Library): For Stand Alone Libraries, extract from one ALI file - an eventual --RTS switch, for gnatbind, and all backend switches + - --RTS, for linking. - -2004-01-19 Robert Dewar - - * sem_attr.adb, memtrack.adb: Minor reformatting - -2004-01-19 Ed Schonberg - - * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions - that rename enumeration literals. This is properly done in sem_eval. - - * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls - to functions that rename enumeration literals. - - * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to - functions that rename enumeration literals. - -2004-01-16 Kazu Hirata - - * Make-lang.in (utils.o): Depend on target.h. - * utils.c: Include target.h. - (process_attributes): Use targetm.have_named_sections instead - of ASM_OUTPUT_SECTION_NAME. - -2004-01-16 Andreas Jaeger - - * Makefile.in: Add $(DESTDIR). - -2004-01-15 Olivier Hainque - - * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size - also when not defining if a Size clause applies. That information is - not to be ignored. - -2004-01-15 Arnaud Charlet - - * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up - symbolic links for the shared gnat run time when needed. - -2004-01-15 Vasiliy Fofanov - - * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened - for writing, and terminate with an error message if not. - -2004-01-15 Ed Schonberg - - * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious - warning on an access to subprogram in an instance, when the target - type is declared in the same generic unit. - (Eval_Attribute): If 'access is known to fail accessibility check, - rewrite as a raise statement. - -2004-01-15 GNAT Script - - * Make-lang.in: Makefile automatically updated - -2004-01-15 Kelley Cook - - * Make-lang.in (ada.srcextra): Dummy entry. - -2004-01-14 Kelley Cook - - * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode. - -2004-01-13 Ed Schonberg - - * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled - components that are initialized with aggregates. - -2004-01-13 Vincent Celier - - * gnatlink.adb (Process_Binder_File): To find directory of shared - libgcc, if "gcc-lib" is not a subdirectory, look for the last - subdirectory "lib" in the path of the shared libgnat or libgnarl. - - * make.adb (Gnatmake): If GCC version is at least 3, link with - -shared-libgcc, when there is at least one shared library project. - - * opt.ads (GCC_Version): New integer constant. - - * adaint.c (get_gcc_version): New function. - -2004-01-13 Robert Dewar - - * sem_dist.adb, sem_res.adb, sem_util.adb, - sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb, - exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting - -2004-01-13 Thomas Quinot - - * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb, - g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object - declarations. - -2004-01-12 Arnaud Charlet - - * misc.c: Remove trailing spaces. - Update copyright notice missed in previous change. - - PR ada/13572 - * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of - prefix/share/make - - * Makefile.generic: Update copyright. - Add license notice. - - * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead - of prefix/share/make. - - * Makefile.prolog: Update copyright. - Add license notice. - -2004-01-12 Laurent Pautet - - * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb, - 3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb, - g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr - instead of String. - - * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message - signature. - -2004-01-12 Javier Miranda - - * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb, - exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb, - sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb, - sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of - Component_Definition node. - -2004-01-12 Ed Falis - - * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit - -2004-01-12 Thomas Quinot - - * link.c: Change default libgnat kind to STATIC for FreeBSD. - -2004-01-12 Bernard Banner - - * Makefile.in: map 86numaux to a-numaux for x86_64 - -2004-01-12 Ed Schonberg - - * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity - generated to rename a generic actual, go to the actual itself, the - subtype is not a user-visible entity. - - * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible - part is a private subtype, reset the visibility of its full view, if - any, to be consistent. - - PR ada/13417 - * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt - to use a generic package G as a formal package for another generic - declared within G. - -2004-01-12 Robert Dewar - - * trans.c (Eliminate_Error_Msg): New procedure called to generate msg - - * usage.adb: Remove mention of obsolete -gnatwb switch - Noticed during code reading - -2004-01-12 Jerome Guitton - - * 1ssecsta.adb: Minor changes for -gnatwa warnings - -2004-01-12 GNAT Script - - * Make-lang.in: Makefile automatically updated - -2004-01-09 Mark Mitchell - - * misc.c (gnat_expand_expr): Add alt_rtl parameter. - -2004-01-07 Rainer Orth - - * link.c [sgi] (shared_libgnat_default): Change to STATIC. - -2004-01-05 Kelley Cook - - * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18. - Update comment and copyright date. - * stamp-xgnatug: Delete. - -2004-01-05 Robert Dewar - - * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may - be modified by the binder generated main program if the -D switch is - used. - - * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all - imported functions (since now we expect this to be done for imported - functions) - - * 5vtaprop.adb: Add several ??? for sections requiring more comments - Minor reformatting throughout - - * 5zinit.adb: Minor reformatting - Add 2004 to copyright date - Minor changes to avoid -gnatwa warnings - Correct some instances of using OR instead of OR ELSE (noted while - doing reformatting) - - * sprint.adb: Minor updates to avoid -gnatwa warnings - - * s-secsta.ads, s-secsta.adb: - (SS_Get_Max): New function to obtain high water mark for ss stack - Default_Secondary_Stack is not a constant since it may be modified by - the binder generated main program if the -D switch is used. - - * switch-b.adb: New -Dnnn switch for binder - - * switch-c.adb: - Make -gnatg imply all warnings currently in -gnatwa - - * vms_conv.adb: Minor reformatting - Add 2004 to copyright notice - Add 2004 to printed copyright notice - - * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb, - 3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb, - 5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb, - 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb, - 5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb, - 5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb, - 5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb, - 5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb, - 5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb, - 5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb, - 6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb, - vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb, - xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads, - sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb, - checks.adb, clean.adb, cstand.adb, einfo.ads, - einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb, - exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb, - prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb, - sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb, - g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb, - lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb: - Minor reformatting and code clean ups. - Minor changes to prevent -gnatwa warnings - - * ali.adb: Minor reformatting and cleanup of code - Acquire new SS indication of secondary stack use from ali files - - * a-numaux.ads: Add Pure_Function pragmas for all imported functions - (since now we expect this to be done for imported functions) - - * bindgen.adb: Generate call to modify default secondary stack size if - -Dnnn switch given - - * bindusg.adb: Add line for new -D switch - - * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate - replacement name for Type_May_Have_Non_Bit_Aligned_Components! - Add circuitry for both records and arrays to avoid gigi - processing if the type involved has non-bit-aligned components - - * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that - N_String_Literal node always references an E_String_Literal_Subtype - entity. This may not be true in the future. - (Possible_Bit_Aligned_Component): Move processing of - Component_May_Be_Bit_Aligned from exp_ch5 to exp_util - - * exp_ch6.adb (Expand_Thread_Body): Pick up - Default_Secondary_Stack_Size as variable so that we get value modified - by possible -Dnnn binder parameter. - - * exp_util.adb (Component_May_Be_Bit_Aligned): New function. - (Type_May_Have_Bit_Aligned_Components): New function. - - * exp_util.ads (Component_May_Be_Bit_Aligned): New function. - (Type_May_Have_Bit_Aligned_Components): New function. - - * fe.h: (Set_Identifier_Casing): Fix prototype. - Add declaration for Sem_Elim.Eliminate_Error_Msg. - Minor reformatting. - - * freeze.adb (Freeze_Entity): Add RM reference to error message about - importing constant atomic/volatile objects. - (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram - unless explicit Pure_Function pragma given, to avoid insidious bug of - call to non-pure imported function getting eliminated. - - * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, - gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb, - gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting - Add 2004 to printed copyright notice - - * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary - stack used. - - * Makefile.rtl: Add entry for g-sestin.o - g-sestin.ads: New file. - - * mdll.adb: Minor changes to avoid -gnatwa warnings - - * mlib-tgt.adb: Minor reformatting - - * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND) - New switch Sec_Stack_Used (GNAT, GNATBIND) - Make Default_Secondary_Stack_Size a variable instead of a constant, - so that it can be modified by the new -Dnnn bind switch. - - * rtsfind.adb (Load_Fail): Give full error message in configurable - run-time mode if all_errors mode is set. This was not done in the case - of a file not found, which was an oversight. - Note if secondary stack unit is used by compiler. - - * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put - ineffective elaborate all pragmas on non-visible packages (this - happened when a renamed subprogram was called). Now the elaborate all - always goes on the package containing the renaming rather than the one - containing the renamed subprogram. - - * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure - (Process_Eliminate_Pragma): Add parameter to capture pragma location. - - * sem_eval.adb (Eval_String_Literal): Do not assume that string literal - has an Etype that references an E_String_Literal. - (Eval_String_Literal): Avoid assumption that N_String_Literal node - always references an E_String_Literal_Subtype entity. This may not - be true in the future. - - * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture - pragma location. - - * sem_res.adb (Resolve): Specialize msg for function name used in proc - call. - -2004-01-05 Ed Falis - - * g-debuti.adb: Replaced direct boolean operator with short-circuit - form. - -2004-01-05 Vincent Celier - - * bld.adb: Minor comment updates - (Process_Declarative_Items): Correct incorrect name (Index_Name instead - of Item_Name). - - * make.adb (Gnatmake): Special process for files to compile/check when - -B is specified. Fail when there are only foreign mains in attribute - Main of the project file and -B is not specified. Do not skip bind/link - steps when -B is specified. - - * makeusg.adb: Document new switch -B - - * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag - - * switch-m.adb: (Scan_Make_Switches): Process -B switch - - * vms_data.ads: Add new GNAT PRETTY qualifier - /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff - -2004-01-05 Richard Kenner - - * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer - case. - - * misc.c (gnat_printable_name): If VERBOSITY is 2, call - Set_Identifier_Casing. - - * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type - has size that overflows. - -2004-01-05 Gary Dismukes - - * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid - -gnatwa warning on static condition. - -2004-01-05 Doug Rupp - - * link.c: (shared_libgnat_default) [VMS]: Change to STATIC. - -2004-01-05 Arnaud Charlet - - * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve - all attributes, including read-only attribute. - -2004-01-05 Pascal Obry - - * bindgen.adb (Gen_Object_Files_Options): Generate the new shared - library naming scheme. - - * mlib-prj.adb (Build_Library): Generate different names for the static - or dynamic version of the GNAT runtime. This is needed to support the - new shared library naming scheme. - (Process_Binder_File): Add detection of shared library in binder file - based on the new naming scheme. - - * gnatlink.adb (Process_Binder_File): Properly detect the new naming - scheme for the shared runtime libraries. - - * Makefile.in: - (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming - scheme. - (install-gnatlib): Do not create symlinks for shared libraries. - (gnatlib-shared-default): Idem. - (gnatlib-shared-dual-win32): New target. Not used for now as the - auto-import feature does not support arrays/records. - (gnatlib-shared-win32): Do not create copy for the shared libraries. - (gnatlib-shared-vms): Fix shared runtime libraries names. - - * osint.ads, osint.adb (Shared_Lib): New routine, returns the target - dependent runtime shared library name. - -2004-01-05 Vasiliy Fofanov - - * osint.adb (Read_Library_Info): Remove bogus check if ALI is older - than the object. - -2004-01-05 Ed Schonberg - - * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic - protected objects when allocator has a subtype indication, not a - qualified expression. Note that qualified expressions may have to be - checked when limited aggregates are implemented. - - * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is - pure, emit warning. - (Analyze_Pragma, case Pure_Function): If enclosing package is pure and - subprogram is imported, remove warning. - -2004-01-05 Geert Bosch - - * s-poosiz.adb: Update copyright notice. - (Allocate): Use Task_Lock to protect against concurrent access. - (Deallocate): Likewise. - -2004-01-05 Joel Brobecker - - * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ??? - comment. - -2003-12-23 Kelley Cook - - * gnat_ug.texi: Force a CVS commit by updating copyright. - * gnat_ug_vxw.texi: Regenerate. - * gnat_ug_wnt.texi: Regenerate. - * gnat_ug_vms.texi: Regenerate. - * gnat_ug_unx.texi: Regenerate. - -2003-12-20 Kazu Hirata - - * trans.c: Remove uses of "register" specifier in - declarations of local variables. - -2003-12-18 Kelley Cook - - * stamp-xgnatug: New stamp file. - * Make-lang.in (stamp-xgnatug): New stamp file and comment. - (ada/doctools/xgnatug): Add $(build_exeext). - (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi - ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug. - -2003-12-17 Ed Falis - - * a-elchha.adb (Tailored_Exception_Information): made Info constant to - eliminate warning. - - * a-exextr.adb: Add context clause for - Ada.Exceptions.Last_Chance_Handler. - -2003-12-17 Sergey Rybin - - * cstand.adb (Create_Standard): Change the way how the declaration of - the Duration type is created (making it the same way as it is for all - the other standard types). - -2003-12-17 Robert Dewar - - * s-crtl.ads: Fix header format - Change Pure to Preelaborate - -2003-12-17 Ed Schonberg - - * checks.adb (Selected_Length_Checks): Generate an Itype reference for - the expression type only if it is declared in the current unit. - - * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds - are universal and already analyzed, as can occur in constrained - subcomponents that depend on discriminants, when one constraint is a - subtype mark. - - * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of - type Any_Fixed is legal as the argument of a conversion, if only one - fixed-point type is in context. - -2003-12-17 GNAT Script - - * Make-lang.in: Makefile automatically updated - -2003-12-15 Robert Dewar - - * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default - sec stack size. - -2003-12-15 Vincent Celier - - * gnatchop.adb: (Error_Msg): Do not exit on error for a warning - (Gnatchop): Do not set failure status when reporting the number of - warnings. - -2003-12-15 Doug Rupp - - * s-ctrl.ads: New file. - - * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext). - - * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o. - (GNATBIND_OBJS): Add ada/s-crtl.o. - - * Makefile.in [VMS]: Clean up ifeq rules. - - * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb, - a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb, - g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb, - s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb, - s-tasdeb.adb: Update copyright. - Import System.CRTL. - Make minor modifications to use System.CRTL declared functions instead - of importing locally. - -2003-12-15 GNAT Script - - * Make-lang.in: Makefile automatically updated - -2003-12-11 Ed Falis - - * 5zinit.adb: Clean up. - - * 5zintman.adb (Notify_Exception): replaced case statement with a call - to __gnat_map_signal, imported from init.c to support - signal -> exception mappings that depend on the vxWorks version. - - * init.c: - Created and exported __gnat_map_signal to support signal -> exception - mapping that is dependent on the VxWorks version. - Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks - -2003-12-11 Vasiliy Fofanv - - * 5wosinte.ads: Link with -mthreads switch. - -2003-12-11 Arnaud Charlet - - * init.c (__gnat_install_handler [NetBSD]): Set - __gnat_handler_installed, as done on all other platforms. - Remove duplicated code. - -2003-12-11 Jerome Guitton - - * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a. - -2003-12-11 Thomas Quinot - - * sinfo.ads: Fix inconsistent example code in comment. - -2003-12-11 Robert Dewar - - * a-tiinau.adb: Add a couple of comments - - * sem_ch3.adb: Minor reformatting - - * sem_prag.adb: - Fix bad prototype of Same_Base_Type in body (code reading cleanup) - Minor reformatting throughout - -2003-12-11 Ed Schonberg - - * exp_ch7.adb (Establish_Transient_Scope): If the call is within the - bounds of a loop, create a separate block in order to generate proper - cleanup actions to prevent memory leaks. - - * sem_res.adb (Resolve_Call): After a call to - Establish_Transient_Scope, the call may be rewritten and relocated, in - which case no further processing is needed. - - * sem_util.adb: (Wrong_Type): Refine previous fix. - Fixes ACATS regressions. - - PR ada/13353 - * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always - be inlined. - -2003-12-08 Jerome Guitton - - * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb, - i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of - obsolete files. - - * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a. - (rts-zfp): Ditto. - -2003-12-08 Robert Dewar - - * 7sintman.adb: Minor reformatting - - * bindgen.adb: Configurable_Run_Time mode no longer suppresses the - standard linker options to get standard libraries linked. We now plan - to provide dummy versions of these libraries to match the appropriate - configurable run-time (e.g. if a library is not needed at all, provide - a dummy empty library). - - * targparm.ads: Configurable_Run_Time mode no longer affects linker - options (-L parameters and standard libraries). What we plan to do is - to provide dummy libraries where the libraries are not required. - - * gnatbind.adb: Minor comment improvement - -2003-12-08 Javier Miranda - - * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded - aggregate in the parent. Otherwise constants with limited aggregates - are not supported. Add new formal to pass the component type (Ctype). - It is required to call the corresponding IP subprogram in case of - default initialized components. - (Gen_Assign): In case of default-initialized component, generate a - call to the IP subprogram associated with the component. - (Build_Record_Aggr_Code): Remove the aggregate from the parent in case - of aggregate with default initialized components. - (Has_Default_Init_Comps): Improve implementation to recursively check - all the present expressions. - - * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal - to indicate that the initialization call corresponds to a - default-initialized component of an aggregate. - In case of default initialized aggregate with tasks this parameter is - used to generate a null string (this is just a workaround that must be - improved later). In case of discriminants, this parameter is used to - generate a selected component node that gives access to the discriminant - value. - - * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New - subprogram, based on Build_Task_Allocate_Block, but adapted to expand - allocated aggregates with default-initialized components. - - * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if - the box notation is used in positional aggregates. - -2003-12-08 Samuel Tardieu - - * lib.ads: Fix typo in comment - -2003-12-08 Vincent Celier - - * prj.adb (Project_Empty): New component Unkept_Comments - (Scan): Remove procedure; moved to Prj.Err. - - * prj.ads (Project_Data): New Boolean component Unkept_Comments - (Scan): Remove procedure; moved to Prj.Err. - - * prj-dect.adb: Manage comments for the different declarations. - - * prj-part.adb (With_Record): New component Node - (Parse): New Boolean parameter Store_Comments, defaulted to False. - Set the scanner to return ends of line and comments as tokens, if - Store_Comments is True. - (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that - comments are associated with these nodes. Store the node IDs in the - With_Records. - (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the - With_Records. - (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating - the N_Project node. Call Tree.Save and Tree.Reset before scanning the - current project. Call Tree.Restore afterwards. Set the various nodes - for comment storage (Next_End, End_Of_Line, Previous_Line, - Previous_End). - - * prj-part.ads (Parse): New Boolean parameter Store_Comments, - defaulted to False. - - * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted - to False. When Truncated is True, truncate the string, never go to the - next line. - (Write_End_Of_Line_Comment): New procedure - (Print): Process comments for nodes N_With_Clause, - N_Package_Declaration, N_String_Type_Declaration, - N_Attribute_Declaration, N_Typed_Variable_Declaration, - N_Variable_Declaration, N_Case_Construction, N_Case_Item. - Process nodes N_Comment. - - * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node - without comments and there are some comments, set the flag - Unkept_Comments to True. - (Scan): If there are comments, set the flag Unkept_Comments to True and - clear the comments. - (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment - (Next_End_Nodes: New table - (Comment_Zones_Of): New function - (Scan): New procedure; moved from Prj. Accumulate comments in the - Comments table and set end of line comments, comments after, after end - and before end. - (Add_Comments): New procedure - (Save, Restore, Seset_State): New procedures - (There_Are_Unkept_Comments): New function - (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures - (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New - procedures. - (First_Comment_After, First_Comment_After_End): New functions - (First_Comment_Before, First_Comment_Before_End): New functions - (Next_Comment): New function - (End_Of_Line_Comment, Follows_Empty_Line, - Is_Followed_By_Empty_Line): New functions - (Set_First_Comment_After, Set_First_Comment_After_End): New procedures - (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures - (Set_Next_Comment): New procedure - (Default_Project_Node): Associate comment before if the node can store - comments. - - * scans.ads (Token_Type): New enumeration value Tok_Comment - (Comment_Id): New global variable - - * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable, - defaulted to False. - (Scan): Store position of start of comment. If comments are tokens, set - Comment_Id and set Token to Tok_Comment when scanning a comment. - (Set_Comment_As_Token): New procedure - - * sinput-p.adb: Update Copyright notice - (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan - that no longer exists. - -2003-12-08 Javier Miranda - - * sem_aggr.adb: Add dependence on Exp_Tss package - Correct typo in comment - (Resolve_Aggregate): In case of array aggregates set the estimated - type of the aggregate before calling resolve. This is needed to know - the name of the corresponding IP in case of limited array aggregates. - (Resolve_Array_Aggregate): Delay the resolution to the expansion phase - in case of default initialized array components. - - * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited - types. Required to give support to limited aggregates in generic - formals. - -2003-12-08 Ed Schonberg - - * sem_ch3.adb (Check_Initialization): For legality purposes, an - inlined body functions like an instantiation. - (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype - until bounds are analyzed, to diagnose premature use of type. - - * sem_util.adb (Wrong_Type): Improve error message when the type of - the expression is used prematurely. - -2003-12-08 GNAT Script - - * Make-lang.in: Makefile automatically updated - -2003-12-08 Arnaud Charlet - - * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since - they are automatically generated by Make-lang.in and cause nothing but - maintenance troubles. - -2003-12-05 Thomas Quinot - - * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare, - version of this unit). - -2003-12-05 Olivier Hainque - - * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads, - 5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads, - 5tosinte.ads: Define the SA_SIGINFO constant, to allow references from - the body of System.Interrupt_Management common to several targets. - Update copyright notice when appropriate. - - * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO - constant. - - * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags, - to ensure that the kernel fills in the interrupted context structure - before calling a signal handler, which is necessary to be able to - unwind past it. Update the copyright notice. - -2003-12-05 Jerome Guitton - - * a-elchha.ads: New file. - - * a-elchha.adb: New default last chance handler. Contents taken from - Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate. - - * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine - is moved to a-elchha.adb to provide a target-independent default last - chance handler. - - * Makefile.rtl: Add a-elchha.o - - * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o. - -2003-12-05 Ed Schonberg - - * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is - declared in an instance, do not inline the call if the instance is not - frozen yet, to prevent order of elaboration problems. - - * sem_prag.adb: Add comments for previous fix. - -2003-12-05 Samuel Tardieu - - * g-table.adb: Use the right variable in Set_Item. - Update copyright notice. - -2003-12-05 Arnaud Charlet - - * Makefile.in: Remove unused rules. - -2003-12-05 Vincent Celier - - * switch-c.adb (Scan_Front_End_Switches): Remove processing of - -nostdlib. Not needed here after all. - -2003-12-03 Thomas Quinot - - 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. - Introduce a __gnat_lseek wrapper in adaint.c to allow for portability. - -2003-12-03 Arnaud Charlet - - * gnatvsn.ads (Library_Version): Now contain only the relevant - version info. - (Verbose_Library_Version): New constant. - - * g-spipat.adb, g-awk.adb, g-debpoo.adb, - g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb, - s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa. - - * gnatlbr.adb: Clean up: replace Library_Version by - Verbose_Library_Version. - - * make.adb, lib-writ.adb, exp_attr.adb: - Clean up: replace Library_Version by Verbose_Library_Version. - - * 5lintman.adb: Removed. - - * Makefile.in: - Update and simplify computation of LIBRARY_VERSION. - Fix computation of GSMATCH_VERSION. - 5lintman.adb is no longer used: replaced by 7sintman.adb. - -2003-12-03 Robert Dewar - - * exp_ch5.adb: - (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new - name. Modified to consider small non-bit-packed arrays as troublesome - and in need of component-by-component assigment expansion. - -2003-12-03 Vincent Celier - - * lang-specs.h: Process nostdlib as nostdinc - - * back_end.adb: Update Copyright notice - (Scan_Compiler_Arguments): Process -nostdlib directly. - -2003-12-03 Jose Ruiz - - * Makefile.in: - When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the - redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always - included in HIE_NONE_TARGET_PAIRS. - -2003-12-03 Ed Schonberg - - * sem_attr.adb: - (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it - is legal in an instance, because legality is cheched in the template. - - * sem_prag.adb: - (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be - appplied to an unchecked conversion of a formal parameter. - - * sem_warn.adb: - (Output_Unreferenced_Messages): Suppress "not read" warnings on imported - variables. - -2003-12-03 Olivier Hainque - - * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New - routines. The second one is new functionality to deal with backtracing - through signal handlers. - (unwind): Split into the two separate subroutines above. - Update the documentation, and deal properly with sizeof (REG) different - from sizeof (void*). - -2003-12-01 Nicolas Setton - - * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point, - so that the debugger can reliably access the value of the parameter, - and therefore is able to display the exception name when an exception - breakpoint is reached. - -2003-12-01 Thomas Quinot - - * fmap.adb: Fix typo in warning message. - - * g-socket.ads, g-socket.adb: Make Free a visible instance of - Ada.Unchecked_Deallocation (no need to wrap it in a subprogram). - -2003-12-01 Vincent Celier - - * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if - ther is no Afile. - (Build_Library): Get the switches only if Default_Switches is declared - in package Binder. - -2003-12-01 Ed Schonberg - - * exp_ch6.adb (Expand_Actuals): When applying validity checks to - actuals that are indexed components, reanalyze actual to ensure that - packed array references are properly expanded. - - * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for - attempted assignment to a discriminant. - -2003-12-01 Robert Dewar - - * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor - reformatting. - - * switch-c.adb: Minor reformatting of comments - -2003-12-01 Arnaud Charlet - - * Makefile.in: Clean ups. - -2003-12-01 GNAT Script - - * Make-lang.in: Makefile automatically updated - -2003-12-01 Arnaud Charlet - - * 5wsystem.ads: Disable zero cost exception, not ready yet. - -2003-11-29 Ulrich Weigand - - * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb - to force serialization. - -2003-11-26 Thomas Quinot - - * g-socket.ads, g-socket.adb: - Clarify documentation of function Stream. Introduce a Free procedure - to release the returned Stream once it becomes unused. - - * 5asystem.ads: For Alpha Tru64, enable ZCX by default. - -2003-11-26 Arnaud Charlet - - (Cond_Timed_Wait): Introduce new constant Time_Out_Max, - since NT 4 cannot handle timeout values that are too large, - e.g. DWORD'Last - 1. - -2003-11-26 Ed Schonberg - - * exp_ch4.adb: - (Expand_N_Slice): Recognize all cases of slices that appear as actuals - in procedure calls and whose expansion must be deferred. - - * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix - is in exp_ch4. - - * sem_ch3.adb: - (Build_Derived_Array_Type): Create operator for unconstrained type - if ancestor is unconstrained. - -2003-11-26 Vincent Celier - - * make.adb (Project_Object_Directory): New global variable - (Change_To_Object_Directory): New procedure - (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead - of Change_Dir directly. Do not change working directory to object - directory of main project after each compilation. - (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir - directly. - Change to object directory of main project before binding step. - (Initialize): Initialize Project_Object_Directory to No_Project - - * mlib-prj.adb: - (Build_Library): Take into account Builder'Default_Switches ("Ada") when - binding a Stand-Alone Library. - - * output.adb: Update Copyright notice - (Write_Char): Output buffer when full - -2003-11-26 Robert Dewar - - * sem_ch13.adb: (Check_Size): Reset size if size is too small - - * sem_ch13.ads: - (Check_Size): Fix documentation to include bit-packed array case - - * sem_res.adb: Implement restriction No_Direct_Boolean_Operators - - * s-rident.ads: Put No_Direct_Boolean_Operators in proper order - - * s-rident.ads: Add new restriction No_Direct_Boolean_Operators - -2003-11-24 Arnaud Charlet - - PR ada/13142 - * utils.c (init_gigi_decls): Change name of built-in setjmp to - __builtin_setjmp, since this is apparently needed by recent - non Ada changes. - -2003-11-24 Rainer Orth - - * adadecode.c: Only include ctype.h if not IN_GCC. - (__gnat_decode): Use ISDIGIT from safe-ctype.h. - -2003-11-24 Jose Ruiz - - * Makefile.in: - Use 5zintman.ads for VxWorks targets. This file avoid confusion between - signals and interrupts. - - * 5zintman.ads: New File. - - * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and - add exception signals to the set of unmasked signals. - - * 5ztaprop.adb: - Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion - between signals and interrupts. - Add to Unblocked_Signal_Mask the set of signals that are in - Keep_Unmasked. - - * 7sinmaop.adb: - Adding a check to see whether the Interrupt_ID we want to unmask is in - the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The - reason is that the index type of the Keep_Unmasked array is not always - Interrupt_ID; it may be a subtype of Interrupt_ID. - -2003-11-24 Gary Dismukes - - * exp_util.adb: - (Remove_Side_Effects): Condition constantness of object created for a - an unchecked type conversion on the constantness of the expression - to ensure the correct value for 'Constrained when passing components - of view-converted class-wide objects. - -2003-11-24 Robert Dewar - - * par-load.adb (Load): Improve handling of misspelled and missing units - Removes several cases of compilation abandoned messages - - * lib.adb: (Remove_Unit): New procedure - - * lib.ads: (Remove_Unit): New procedure - - * lib-load.adb: Minor reformatting - -2003-11-24 Vincent Celier - - * make.adb: - (Gnatmake, Initialize): Call Usage instead of Makeusg directly - (Marking_Label): Label to mark processed source files. Incremented for - each executable. - (Gnatmake): Increase Marking_Labet for each executable - (Is_Marked): Compare against marking label - (Mark): Mark with marking label - -2003-11-24 Jerome Guitton - - * s-thread.ads: - Move the declaration of the TSD for System.Threads to System.Soft_Links. - Add some comments. - - * Makefile.in: Added target pair for s-thread.adb for cert runtime. - (rts-cert): build a single relocatable object for the run-time lib. - Fix perms. - -2003-11-24 Vasiliy Fofanov - - * Make-lang.in: - Use gnatls rather than gcc to obtain the location of GNAT RTL for - crosstools build. - -2003-11-24 Sergey Rybin - - * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we - can not use it as before (that is, as a variable) when dumping it into - the tree file. Add a local variable to store the result of this - function and to be used as the string to be written into the tree. - - * scn.adb (Initialize_Scanner): Add comments explaining the recent - changes. - - * sinput.adb (Source_First, Source_Last): In case of - Internal_Source_File, replace returning attributes of - Internal_Source_Ptr (which is wrong) with returning attributes of - Internal_Source. - -2003-11-24 Ed Schonberg - - * sem_ch3.adb: - (New_Concatenation_Op): Proper name for New_Binary_Operator, only - used for implicit concatenation operators. - Code cleanup. - - * sem_elab.adb: - (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in - task bodies that are in the scope of a Suppress pragma. - (Check_A Call): Use the flag to prevent spurious elaboration checks. - - * sinfo.ads, sinfo.adb: - New flag No_Elaboration_Check on function/procedure calls, to properly - suppress checks on calls in task bodies that are within a local suppress - pragma. - - * exp_ch4.adb: - (Expand_Concatenate_Other): Use the proper integer type for the - expression for the upper bound, to avoid universal_integer computations - when possible. - -2003-11-21 Kelley Cook - - * .cvsignore: Delete. - -2003-11-21 Andreas Schwab - - * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True. - -2003-11-21 Vasiliy Fofanov - - * 5wsystem.ads: Enable zero cost exception. - -2003-11-21 Jerome Guitton - - * 5ztiitho.adb: Remove an unreferenced variable. - -2003-11-21 Thomas Quinot - - * adaint.c: For FreeBSD, use mkstemp. - -2003-11-21 Arnaud Charlet - - * gnatlbr.adb: Now reference Gnat_Static_Version_String. - -2003-11-21 Robert Dewar - - * bld.adb: Remove useless USE of gnatvsn - - * gnatchop.adb: Minor reformatting - Clean up version handling to be more consistent - - * gnatxref.adb: Minor reformatting - - * gprcmd.adb: Minor reformatting - Fix output of copyright to be more consistent with other tools - -2003-11-21 Vincent Celier - - * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink - -2003-11-21 Sergey Rybin - - * atree.adb (Initialize): Add initializations for global variables - used in New_Copy_Tree. - - * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with - Internal_Source_File as the actual). - Put the set of statements creating Any_Character before the set of - statements creating Any_Array to have Any_Character fully initialized - when it is used in creating Any_Array. - - * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do - not call Scan in case if the actual is Internal_Source_File - Add 2003 to copyright note. - - * sinput.adb (Source_First, Source_Last, Source_Text): Add code for - processing Internal_Source_File. - - * types.ads: Add the constant Internal_Source_File representing the - source buffer for artificial source-code-like strings created within - the compiler (the definition of Source_File_Index is changed). - -2003-11-20 Arnaud Charlet - - * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads, - 56system.ads: New file, FreeBSD version. - -2003-11-20 Joseph S. Myers - - * Make-lang.in (ada.extraclean): Delete. - -2003-11-19 Arnaud Charlet - - * gnatmem.adb: Clean up verbose output. - - * gprcmd.adb: Change copyright to FSF. - -2003-11-19 Vincent Celier - - * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy - and Version (ignored). - - * symbols.ads: (Policy): New type - (Initialize): New parameter Reference, Symbol_Policy and - Library_Version. - Remove parameter Force. - Minor reformatting. - - * snames.ads, snames.adbadb: New standard names - Library_Reference_Symbol_File and Library_Symbol_Policy - - * mlib-prj.adb: - (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the - project. - - * mlib-tgt.adb: - (Build_Dynamic_Library): New parameter Symbol_Data (ignored) - - * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data - - * prj.adb: (Project_Empty): New component Symbol_Data - - * prj.ads: (Policy, Symbol_Record): New types - (Project_Data): New component Symbol_Data - - * prj-attr.adb: - New attributes Library_Symbol_File, Library_Symbol_Policy and - Library_Reference_Symbol_File. - - * prj-nmsc.adb: - (Ada_Check): When project is a Stand-Alone library project, process - attribute Library_Symbol_File, Library_Symbol_Policy and - Library_Reference_Symbol_File. - - * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, - 5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb, - 5sml-tgt.adb (Build_Dynamic_Library): New parameter - Symbol_Data (ignored). - - * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0 - (Build_Dynamic_Library): New parameter Symbol_Data. New internal - functions Option_File_Name and Version_String. Set new options of - gnatsym related to symbol file, symbol policy and reference symbol - file. - - * 5vsymbol.adb: - Extensive modifications to take into account the reference symbol file, - the symbol policy, the library version and to put in the symbol file the - minor and major IDs. - - * bld.adb (Process_Declarative_Items): Put second argument of - gprcmd to_absolute between single quotes, to avoid problems with - Windows. - - * bld-io.adb: Update Copyright notice. - (Flush): Remove last character of a line, if it is a back slash, to - avoid make problems. - - * gnatsym.adb: - Implement new scheme with reference symbol file and symbol policy. - - * g-os_lib.ads: (Is_Directory): Clarify comment - -2003-11-19 Robert Dewar - - * atree.adb: Move New_Copy_Tree global variables to head of package - - * errout.adb: Minor reformatting - -2003-11-19 Javier Miranda - - * sem_ch4.adb: (Diagnose_Call): Improve error message. - Add reference to Ada0Y (AI-50217) - - * sem_ch6.adb, sem_ch8.adb, sem_type.adb, - sem_util.adb: Add reference to AI-50217 - - * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217 - - * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287) - - * sem_aggr.adb: Complete documentation of AI-287 changes - - * par-ch4.adb: Document previous changes. - - * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb, - sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to - Ada0Y (AI-50217) - - * exp_aggr.adb: Add references to AI-287 in previous changes - -2003-11-19 Ed Schonberg - - * exp_ch6.adb: - (Add_Call_By_Copy_Node): Do not original node of rewritten expression - in the rewriting is the result of an inlined call. - - * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out - parameter is a type conversion, use original node to construct the - post-call assignment, because expression may have been rewritten, e.g. - if it is a packed array. - - * sem_attr.adb: - (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined - body, just as it is in an instance. - Categorization routines - - * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram, - Instantiate_Object): Set proper sloc reference for message on missing - actual. - -2003-11-19 Thomas Quinot - - * Makefile.in: Add FreeBSD libgnat pairs. - - * usage.adb: Fix typo in usage message. - -2003-11-19 Jerome Guitton - - * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?, - s-thrini.ad? and s-tiitho.adb to the full runtime, to support the - pragma Thread_Body. - Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore. - - * s-thread.adb: This file is now a dummy implementation of - System.Thread. - -2003-11-19 Sergey Rybin - - * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available - -2003-11-19 Emmanuel Briot - - * xref_lib.adb (Parse_Identifier_Info): Add handling of generic - instanciation references in the parent type description. - -2003-11-18 Richard Kenner - - * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s". - - * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set - TYPE_PRECISION directly from esize. - -2003-11-18 Thomas Quinot - - * cstreams.c: - Use realpath(3) on FreeBSD. Fix typo in comment while we are at it. - - * init.c: Initialization routines for FreeBSD - - * link.c: Link info for FreeBSD - - * sysdep.c: Add the case of FreeBSD - -2003-11-17 Jerome Guitton - - * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is - already called in System.Threads. - - * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the - environment task, as it has been moved to System.Threads.Initialization. - -2003-11-17 Arnaud Charlet - - * adaint.c (__gnatlib_install_locks): Only reference - __gnat_install_locks on VMS, since other platforms can avoid using - --enable-threads=gnat - -2003-11-17 Richard Kenner - - * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro. - - * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set - TYPE_PACKED_ARRAY_TYPE_P. - (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P. - - Part of PR ada/12806 - * utils.c (float_type_for_precision): Renamed from float_type_for_size. - Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE. - -2003-11-17 Vincent Celier - - * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted - to False. - Do not set exit status to Failure when Warning is True. - (Gnatchop): Make errors "no compilation units found" and - "no source files written" warnings only. - - * make.adb (Gnatmake): When using a project file, set - Look_In_Primary_Dir to False. - (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas - and Local_Configuration_Pragmas in the project where they are declared - not an extending project which might have inherited them. - - * osint.adb (Locate_File): If Name is already an absolute path, do not - look for a directory. - - * par-ch10.adb (P_Compilation_Unit): If source contains no token, and - -gnats (Check_Syntax) is used, issue only a warning, not an error. - - * prj.adb (Register_Default_Naming_Scheme): Add new component Project - in objects of type Variable_Value. - - * prj.ads: (Variable_Value): New component Project - - * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source - is in a project extended by Project. - - * prj-proc.adb (Add_Attributes): New parameter Project. Set component - Project of Variable_Values to this new parameter value. - (Expression): Set component Project of Variable_Values. - (Process_Declarative_Items): Call Add_Attributes with parameter Project. - Set the component Project in array elements. - -2003-11-17 Sergey Rybin - - * errout.adb: (Initialize): Add initialization for error nodes. - - * sem_ch12.adb (Initialize): Add missing initializations for - Exchanged_Views and Hidden_Entities. - -2003-11-17 Ed Schonberg - - * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an - already instantiated tree for use in subsequent inlining. - (Analyze_Associations, Instantiate_Formal_Subprogram, - Instantiate_Object): improve error message for mismatch in - instantiations. - - * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle - instantiations of subprograms declared in instances. - -2003-11-17 Javier Miranda - - * sem_ch4.adb (Analyze_Allocator): Previous modification must be - executed only under the Extensions_Allowed flag. - -2003-11-17 Robert Dewar - - * a-exexda.adb (Address_Image): Fix documentation to indicate leading - zeroes suppressed. - (Address_Image): Fix bug of returning 0x instead of 0x0 - Minor reformatting (function specs). - - * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array - (missed case of 33-63) - - * freeze.adb, sem_ch13.adb: Properly check size of packed bit array - - * s-thread.adb: Add comments for pragma Restriction - - * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb, - sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting - -2003-11-17 Ed Falis - - * s-thread.adb: Added No_Tasking restriction for this implementation. - -2003-11-17 Emmanuel Briot - - * xref_lib.adb (Parse_Identifier_Info): Add handling of generic - instanciation references in the parent type description. - -2003-11-17 GNAT Script - - * Make-lang.in: Makefile automatically updated - -2003-11-16 Jason Merrill - - * Make-lang.in (ada.tags): Create TAGS.sub files in each directory - and TAGS files that include them for each front end. - -2003-11-14 Andreas Jaeger - - * lang.opt: Change -Wno-long-long to -Wlong-long since the latter - is the canonical version. - * misc.c (gnat_handle_option): Likewise. - - * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux. - - * 5nsystem.ads: New file for x86_64-linux-gnu. - -2003-11-14 Arnaud Charlet - - * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated. - - * comperr.adb: Fix logic in previous change. - -2003-11-13 Vincent Celier - - * 5bml-tgt.adb (Build_Dynamic_Library): Use - Osint.Include_Dir_Default_Prefix instead of - Sdefault.Include_Dir_Default_Name. - - * gnatlbr.adb: Update Copyright notice - (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of - Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix - instead of Sdefault.Object_Dir_Default_Name - - * gnatlink.adb: - (Process_Binder_File): Never suppress the option following -Xlinker - - * mdll-utl.adb: - (Gcc): Use Osint.Object_Dir_Default_Prefix instead of - Sdefault.Object_Dir_Default_Name. - - * osint.ads, osint.adb: - (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions - Minor reformatting. - - * vms_conv.ads: Minor reformating - Remove GNAT STANDARD and GNAT PSTA - - * vms_conv.adb: - Allow GNAT MAKE to have several files on the command line. - (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of - Sdefault.Object_Dir_Default_Name. - Minor Reformating - Remove data for GNAT STANDARD - - * vms_data.ads: - Add new compiler qualifier /PRINT_STANDARD (-gnatS) - Remove data for GNAT STANDARD - Remove options and documentation for -gnatwb/-gnatwB: these warning - options no longer exist. - -2003-11-13 Ed Falis - - * 5zthrini.adb: (Init_RTS): Made visible - - * 5zthrini.adb: - (Register): Removed unnecessary call to taskVarGet that checked whether - an ATSD was already set as a task var for the argument thread. - - * s-thread.adb: - Updated comment to reflect that this is a VxWorks version - Added context clause for System.Threads.Initialization - Added call to System.Threads.Initialization.Init_RTS - -2003-11-13 Jerome Guitton - - * 5zthrini.adb: - (Init_RTS): New procedure, for the initialization of the run-time lib. - - * s-thread.adb: - Remove dependancy on System.Init, so that this file can be used in the - AE653 sequential run-time lib. - -2003-11-13 Robert Dewar - - * bindgen.adb: Minor reformatting - -2003-11-13 Ed Schonberg - - * checks.adb: - (Apply_Discriminant_Check): Do no apply check if target type is derived - from source type with no applicable constraint. - - * lib-writ.adb: - (Ensure_System_Dependency): Do not apply the style checks that may have - been specified for the main unit. - - * sem_ch8.adb: - (Find_Selected_Component): Further improvement in error message, with - RM reference. - - * sem_res.adb: - (Resolve): Handle properly the case of an illegal overloaded protected - procedure. - -2003-11-13 Javier Miranda - - * exp_aggr.adb: - (Has_Default_Init_Comps): New function to check the presence of - default initialization in an aggregate. - (Build_Record_Aggr_Code): Recursively expand the ancestor in case of - extension aggregate of a limited record. In addition, a new formal - was added to do not initialize the record controller (if any) during - this recursive expansion of ancestors. - (Init_Controller): Add support for limited record components. - (Expand_Record_Aggregate): In case of default initialized components - convert the aggregate into a set of assignments. - - * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment - describing the new syntax. - Nothing else needed to be done because this subprogram delegates part of - its work to P_Precord_Or_Array_Component_Association. - (P_Record_Or_Array_Component_Association): Give support to the new - syntax for default initialization of components. - - * sem_aggr.adb: - (Resolve_Aggregate): Relax the strictness of the frontend in case of - limited aggregates. - (Resolve_Record_Aggregate): Give support to default initialized - components. - (Get_Value): In case of default initialized components, duplicate - the corresponding default expression (from the record type - declaration). In case of default initialization in the *others* - choice, do not check that all components have the same type. - (Resolve_Extension_Aggregate): Give support to limited extension - aggregates. - - * sem_ch3.adb: - (Check_Initialization): Relax the strictness of the front-end in case - of aggregate and extension aggregates. This test is now done in - Get_Value in a per-component manner. - - * sem_ch4.adb (Analyze_Allocator): Don't post an error if the - expression corresponds to a limited aggregate. This test is now done - in Get_Value. - - * sinfo.ads, sinfo.adb (N_Component_Association): Addition of - Box_Present flag. - - * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if - present in an N_Component_Association node - -2003-11-13 Thomas Quinot - - * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a - type-conformant entry only if they are homographs. - -2003-11-13 GNAT Script - - * Make-lang.in: Makefile automatically updated - -2003-11-12 Rainer Orth - - * adadecode.c: Use <> form of include for ctype.h. - * sysdep.c [IN_RTS]: Use <> form of include for time.h. - -2003-11-12 Rainer Orth - - * 5gsystem.ads (Functions_Return_By_DSP): Set to False. - Works around PR middle-end/6552. - -2003-11-10 Ed Falis - - * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted - - * 5zinit.adb: (Install_Handler): Moved back to spec - (Install_Signal_Handlers): Deleted - - * 5zthrini.adb: Added context clause for System.Storage_Elements - (Register): Only handles creation of taskVar; initialization moved to - Thread_Body_Enter. - (Reset_TSD): Deleted; replaced by Thread_Body_Enter - Added declaration of environment task secondary stack and - initialization. - - * s-thread.adb: Implement bodies for thread body processing - - * s-thread.ads: - Added comment identifying supported targets for pragma Thread_Body. - -2003-11-10 Pascal Obry - - * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than - GNAT_MAX_PATH_LEN. - - * s-fileio.adb: - (Open): Properly check for string length before copying into the buffer. - Raises Name_Error if buffer is too small. Note that this was a potential - buffer overflow. - -2003-11-10 Romain Berrendonner - - * bindgen.adb, comperr.adb: Code clean ups. - * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function. - -2003-11-10 Sergey Rybin - - * gnat1drv.adb: Add call to Sem_Elim.Initialize. - -2003-11-10 Vincent Celier - - * gprcmd.adb: - (Gprcmd): Add new command "prefix" to get the prefix of the GNAT - installation. - - * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler - - * prj.adb: (Project_Empty): Add new boolean component Virtual - - * prj.ads: (Virtual_Prefix): New constant string - (Project_Data): New boolean component Virtual - - * prj-nmsc.adb (Language_Independent_Check): Adjust error message when - a library project is extended by a virtual extending project. - - * prj-part.adb: - Modifications throughout to implement extending-all project, including: - (Virtual_Hash, Processed_Hash): New hash tables - (Create_Virtual_Extending_Project): New procedure - (Look_For_Virtual_Projects_For): New procedure - - * prj-proc.adb: - (Process): After checking the projects, if main project is an - extending-all project, set the object directory of all virtual extending - project to the object directory of the main project. - Adjust error message when a virtual extending project has the same - object directory as an project being extended. - (Recursive_Process): If name starts with the virtual prefix, set Virtual - to True in the project data. - - * prj-tree.adb: - (Default_Project_Node): Add new boolean component Extending_All - (Is_Extending_All): New function - (Set_Is_Extending_All): New procedure - - * prj-tree.ads: (Is_Extending_All): New function - (Set_Is_Extending_All): New procedure - (Project_Node_Record): New boolean component Extending_All - - * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib - - * vms_data.ads: - Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler - - * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call - "gprcmd prefix" to define it. - -2003-11-10 Thomas Quinot - - * einfo.ads: Fix a typo and remove an extraneous word in comments. - - * lib-load.adb: - (Create_Dummy_Package_Unit): Set the scope of the entity for the - created dummy package to Standard_Standard, not to itself, to - defend other parts of the front-end against encoutering a cycle in - the scope chain. - - * sem_ch10.adb: - (Analyze_With_Clause): When setting the entities for the successive - N_Expanded_Names that constitute the name of a child unit, do not - attempt to go further than Standard_Standard in the chain of scopes. - This case arises from the placeholder units created by - Create_Dummy_Package_Unit in the case of a with_clause for a - nonexistent child unit. - -2003-11-10 Ed Schonberg - - * exp_ch6.adb: - (Expand_Thread_Body): Place subprogram on scope stack, so that new - declarations are given the proper scope. - - * sem_ch13.adb: - (Check_Expr_Constants): Reject an expression that contains a constant - created during expansion, and that appears after the object to which - the address clause applies. - - * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of - Analyze_Iteration_Scheme, to rewrite a loop parameter specification - that uses 'Range of a function call with controlled components, so - that the function result can be finalized before starting the loop. - - * sem_ch8.adb: - (Find_Selected_Component): Improve error message when prefix is - an implicit dereference of an incomplete type. - -2003-11-10 Robert Dewar - - * opt.ads: New Print_Standard flag for -gnatS switch - - * sem_ch13.adb: Remove some additional checks for unaligned arrays - - * cstand.adb (Create_Standard): Print out package standard if -gnatS - switch set - - * debug.adb: Update doc for -gnatds to discuss relationship with new - -gnatS flag - - * sinfo.adb: Add new field Entity_Or_Associated_Node - - * sinfo.ads: Add new field Entity_Or_Associated_Node - Update documentation for Associated_Node and Entity fields to clarify - relationship and usage. - - * sprint.adb: - (Write_Id): Properly process Associated_Node field in generic template - - * switch-c.adb: - Recognize new -gnatS switch for printing package Standard - This replaces gnatpsta - - * usage.adb: - Add line for new -gnatS switch for printing package Standard - This replaces gnatpsta - -2003-11-10 Andreas Jaeger - - * 7sosprim.adb: tv_usec of struct_timeval and time_t are long - integer. - -2003-11-10 Arnaud Charlet - - * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed - by gnat1. - -2003-11-10 Arnaud Charlet - - * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta, - no longer needed. - - * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed. - - * sysdep.c: Add handling of cygwin. - -2003-11-10 GNAT Script - - * Make-lang.in: Makefile automatically updated - -2003-11-10 Arnaud Charlet - - PR 12950 - * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New - functions. Used to handle dynamic prefix relocation, via set_std_prefix. - Replace GNAT_ROOT by GCC_ROOT. - - * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb - -2003-11-06 Zack Weinberg - - * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION - and update for changed meaning of GET_MODE_BITSIZE. - -2003-11-04 Doug Rupp - - * sysdep.c: Problem discovered during IA64 VMS port. - [VMS] #include to get proper prototypes. - - * adaint.c: - Issues discovered/problems fixed during IA64 VMS port. - [VMS] #define _POSIX_EXIT for proper semantics. - [VMS] #include for proper prototypes. - [VMS] (fork): #define IA64 version. - (__gnat_os_exit): Remove unnecessary VMS specific code. - -2003-11-04 Richard Kenner - - Part of PR ada/12806 - * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as - tree, not integer. - - * decl.c: - (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree, - not integer. - - * targtyps.c, decl.c, misc.c, - gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary - routines to work around change in FP sizing semantics in GCC. - - * utils.c: - (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer. - - * gigi.h: (enumerate_modes): New function. - - * Make-lang.in: (ada/misc.o): Add real.h. - - * misc.c: (enumerate_modes): New function. - -2003-11-04 Robert Dewar - - * 3vtrasym.adb: Minor reformatting - Use terminology encoded/decoded name, rather than C++ specific notion - of mangling (this is the terminology used throughout GNAT). - - * einfo.h: Regenerated - - * einfo.ads, einfo.adb: Add new flag Is_Thread_Body - - * exp_ch6.adb: - (Expand_N_Subprogram_Body): Handle expansion of thread body procedure - - * par-prag.adb: Add dummy entry for Thread_Body pragma - - * rtsfind.ads: - Add entries for System.Threads entities for thread body processing - - * sem_attr.adb: - (Analyze_Pragma, Access attributes): Check these are not applied to a - thread body, since this is not permitted - - * sem_prag.adb: Add processing for Thread_Body pragma. - Minor comment fix. - - * sem_res.adb: - (Resolve_Call): Check for incorrect attempt to call a thread body - procedure with a direct call. - - * snames.ads, snames.adb: Add entry for Thread_Body pragma - Add names associated with thread body expansion - - * snames.h: Add entry for Thread_Body pragma - - * s-thread.adb: Add entries for thread body processing - These are dummy bodies so far - - * s-thread.ads: Add documentation on thread body handling. - Add entries for thread body processing. - -2003-11-04 Javier Miranda - - * sem_ch10.adb: - (Build_Limited_Views): Return after posting an error in case of limited - with_clause on subprograms, generics, instances or generic renamings - (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause - on subprograms, generics, instances or generic renamings - -2003-11-04 Arnaud Charlet - - * raise.c (setup_to_install): Correct mistake in last revision; two - arguments out of order. - - * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c, - gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright - notice, missed in previous change. - Remove trailing blanks and other style errors introduced in previous - change. - -2003-11-04 Olivier Hainque - - * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get - rid of the wrapper for a LJM type, ensuring we don't do that if the - field is addressable. This avoids potential low level type view - mismatches later on, for instance in a by-reference argument passing - process. - -2003-11-04 Richard Kenner - - * decl.c (gnat_to_gnu_field): No longer check for BLKmode being - aligned at byte boundary. - -2003-11-04 Joel Brobecker - - * decl.c (components_to_record): Do not delete the empty variants from - the end of the union type. - -2003-11-04 Ed Schonberg - - * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive - operation for a derived type, an explicit declaration may use a local - subtype of Boolean. - -2003-11-04 Vincent Celier - - * make.adb (Gnatmake): Allow main sources on the command line with a - library project when it is only for compilation (no binding or - linking). - -2003-11-04 Rainer Orth - - * Makefile.in: Remove many duplicate variables. - -2003-11-03 Kelley Cook - - * Make-lang.in (dvi): Move targets to $(docobjdir). - (gnat_ug_vms.dvi): Simplify rule and adjust target. - (gnat_ug_wnt.dvi): Likewise. - (gnat_ug_unx.dvi): Likewise. - (gnat_ug_vxw.dvi): Likewise. - (gnat_rm.dvi): Likewise. - (gnat-style.dvi): Likewise. - -2003-10-31 Kelley Cook - - * gigi.h: Missed commit from update for C90. - -2003-10-31 Kelley Cook - - * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error. - -2003-10-31 Andreas Schwab - - * raise.c (get_action_description_for): Fix typo in last change. - -2003-10-31 Nathanael Nerode - - PR ada/12761 - * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS, - T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in. - -2003-10-30 Kelley Cook - - * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c, - ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c, - gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c, - sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c, - trans.c, utils.c, utils2.c: Convert function prototypes to C90. - -2003-10-30 Vasiliy Fofanov - - * 3vtrasym.adb: - Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line - numbers when symbol name is too long. - -2003-10-30 Ed Falis - - * g-signal.ads, g-signal.adb: New files - - * impunit.adb: (Non_Imp_File_Names): Added "g-signal" - - * Makefile.rtl: Introduce GNAT.Signals - -2003-10-30 Robert Dewar - - * freeze.adb: Minor reformatting - - * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified - - * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb, - par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb: - New handling of Id_Check parameter to improve recognition of keywords - used as identifiers. - Update copyright notice to include 2003 - -2003-10-29 Robert Dewar - - * 3vtrasym.adb, 5vtraent.ads, sprint.adb, - sem_ch10.adb: Minor reformatting - - * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands - (Expand_Assign_Record): Test right hand side for bit unaligned as well - -2003-10-29 Vasiliy Fofanov - - * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c: - Support for TBK$SYMBOLIZE-based symbolic traceback. - -2003-10-29 Jose Ruiz - - * exp_disp.adb: - Revert previous change, that did not work well when pragma No_Run_Time - was used in conjunction with a run-time other than ZFP. - -2003-10-29 Vincent Celier - - * make.adb: - (Gnatmake): When there are no Ada mains in attribute Main, disable the - bind and link steps only is switch -z is not used. - -2003-10-29 Arnaud Charlet - - * Makefile.generic: Remove duplicated setting of CC. - - * Makefile.prolog: Set CC to gcc by default, to override make's - default (cc). - - * einfo.h: Regenerated. - -2003-10-29 Ed Schonberg - - * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for - current body, after compiling subunit. - - * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype - when in deleted code, because gigi needs properly ordered freeze - actions to annotate types. - - * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to - prevent the premature freezing of record type that contains - subcomponents with a private type that does not yet have a completion. - -2003-10-29 Javier Miranda - - * sem_ch12.adb: - (Analyze_Package_Instantiation): Check that instances can not be used in - limited with_clauses. - - * sem_ch8.adb: - (Analyze_Package_Renaming): Check that limited withed packages cannot - be renamed. Improve text on error messages related to limited - with_clauses. - - * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute. - - * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses. - Update copyright notice. - - * sem_ch10.adb: (Build_Limited_Views): Complete its documentation. - (Install_Limited_Context_Clauses): New subprogram that isolates all the - checks required for limited context_clauses and installs the limited - view. - (Install_Limited_Withed_Unit): Complete its documentation. - (Analyze_Context): Check that limited with_clauses are only allowed in - package specs. - (Install_Context): Call Install_Limited_Context_Clauses after the - parents have been installed. - (Install_Limited_Withed_Unit): Add documentation. Mark the installed - package as 'From_With_Type'; this mark indicates that the limited view - is installed. Used to check bad usages of limited with_clauses. - (Build_Limited_Views): Do not add shadow entities to the scope's list - of entities. Do not add real entities to the Non_Limited_Views chain. - Improve error notification. - (Remove_Context_Clauses): Remove context clauses in two phases: - limited views first and regular views later (to maintain the - stack model). - (Remove_Limited_With_Clause): If the package is analyzed then reinstall - its visible entities. - -2003-10-29 Thomas Quinot - - * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible - with any type that Is_Fixed_Point_Type. - - * sinfo.ads: Fix documentation for Associated_Node attribute. - -2003-10-29 Sergey Rybin - - * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when - both '-gnatc' and '-gnatt' are specified. - - * atree.adb (Initialize): Add initialization for Node_Count (set to - zero). - -2003-10-29 Richard Kenner - - * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value, - do not consider as Pure. - - Part of implementation of function-at-a-time: - - * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt. - (tree_transform): Add new argument to build_component_ref. - (tree_transform, case N_Assignment_Statement): Make and return an - EXPR_STMT. - (tree_transform): If result IS_STMT, set flags and return it. - (gnat_expand_stmt, set_lineno_from_sloc): New functions. - - * utils2.c (build_simple_component_ref, build_component_ref): Add new - arg, NO_FOLD_P. - (build_binary_op, case EQ_EXPR): Pass additional arg to it. - (build_allocator): Likewise. - - * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert): - Add new arg to build_component_ref. - (maybe_unconstrained_array, unchecked_convert): Likewise. - - * ada-tree.def (EXPR_STMT): New code. - - * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros. - - * decl.c (gnat_to_gnu_entity, case object): Add extra arg to - build_component_ref calls. - - * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt. - - * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions. - (build_component_ref): Add new argument, NO_FOLD_P. - -2003-10-27 Arnaud Charlet - - * Makefile.generic: Add missing substitution on object_deps handling. - - PR ada/5909 - * Make-lang.in (check-ada): Enable ACATS test suite. - -2003-10-27 Robert Dewar - - * exp_ch3.adb: - (Freeze_Array_Type): We do not need an initialization routine for types - derived from String or Wide_String. They should be treated the same - as String and Wide_String themselves. This caused problems with the - use of Initialize_Scalars. - - * exp_ch5.adb: - (Expand_Assign_Record): Do component-wise assignment of non-byte aligned - composites. This allows use of component clauses that are not byte - aligned. - - * sem_prag.adb: - (Analyze_Pragma, case Pack): Generate warning and ignore pack if there - is an attempt to pack an array of atomic objects. - - * make.adb, prj-env.adb, prj-env.ads: Minor reformatting - -2003-10-27 Pascal Obry - - * g-dirope.adb: - (Basename): Check for drive letters in a pathname only on DOS based OS. - -2003-10-27 Vincent Celier - - * make.adb: - (Gnatmake): When unable to change dir to the object dir, display the - content of the parent dir of the obj dir, to try to understand why this - happens. - -2003-10-27 GNAT Script - - * Make-lang.in: Makefile automatically updated - -2003-10-27 Ed Schonberg - - * sem_ch12.adb: - (Inline_Instance_Body): Indicate that the save/restore of use_clauses - should not be done in Save/Restore_Scope_Stack, because it is performed - locally. - - * sem_ch8.adb: - (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate - whether use clauses should be removed/restored. - - * sem_ch8.ads: - (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate - whether use clauses should be removed/restored. - -2003-10-26 Andreas Jaeger - - * Makefile.in: Remove duplicated lines. - -2003-10-24 Arnaud Charlet - - * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to - minimize the differences with ACT tree. - - * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb, - gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of - Gnatvsn.Gnat_Static_Version_String to reduce differences between - ACT and FSF trees. - -2003-10-24 Pascal Obry - - 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. - -2003-10-24 Jose Ruiz - - * exp_disp.adb: - Remove the test against being in No_Run_Time_Mode before generating a - call to Register_Tag. It is redundant with the test against the - availability of the function Register_Tag. - -2003-10-24 Vincent Celier - - * g-catiio.adb: (Month_Name): Correct spelling of February - - * make.adb: (Mains): New package - (Initialize): Call Mains.Delete - (Gnatmake): Check that each main on the command line is a source of a - project file and, if there are several mains, each of them is a source - of the same project file. - (Gnatmake): When a foreign language is specified in attribute Languages, - no main is specified on the command line and attribute Mains is not - empty, only build the Ada main. If there is no Ada main, just compile - the Ada sources and their closure. - (Gnatmake): If a main is specified on the command line with directory - information, check that the source exists and, if it does, that the path - is the actual path of a source of a project. - - * prj-env.adb: - (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When - Full_Path is True, return the full path instead of the simple file name. - (Project_Of): New function - - * prj-env.ads: - (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path, - defaulted to False. - (Project_Of): New function - -2003-10-24 Arnaud Charlet - - * Makefile.generic: - Ensure objects of main project are always checked and rebuilt if needed. - Set CC to gcc by default. - Prepare new handling of link by creating a global archive (not activated - yet). - - * adadecode.h, atree.h, elists.h, nlists.h, raise.h, - stringt.h: Update copyright notice. Remove trailing blanks. - Fix source name in header. - -2003-10-24 Robert Dewar - - * sem_ch12.adb: Minor reformatting - - * sem_ch3.adb: - Minor reformatting (including new function return style throughout) - - * sem_ch3.ads: - Minor reformatting (including new function return style throughout) - -2003-10-24 Arnaud Charlet - - * adadecode.h, atree.h, elists.h, nlists.h, raise.h, - stringt.h: Update copyright notice. Remove trailing blanks. - Fix source name in header. - -2003-10-24 GNAT Script - - * Make-lang.in: Makefile automatically updated - -2003-10-23 Nathanael Nerode - - * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h, - stringt.h: Convert to ISO C90 declarations and definitions. - -2003-10-23 Thomas Quinot - - PR ada/11978 - * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited - External_Tag attribute definition clauses. - -2003-10-23 Ed Schonberg - - 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 - the same simple name. - - * exp_dbug.ads: Add documentation on name qualification for renamings - of child units. - -2003-10-23 Robert Dewar - - * g-regpat.ads, g-regpat.adb: Minor reformatting - -2003-10-23 Jose Ruiz - - * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times. - -2003-10-23 Richard Kenner - - * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to - Machine call. - - * urealp.h: (Machine): Update to proper definition. - -2003-10-23 Arnaud Charlet - - * init.c, adaint.c: Minor reformatting. - -2003-10-23 Danny Smith - - * adaint.c (w32_epoch_offset): Define static const at file level. - (win32_filetime): Replace offset with w32_epoch_offset. Use NULL - rather than t_create, t_access in call to GetFileTime. Use union - to convert between FILETIME and unsigned long long. - (__gnat_file_time_name): Test for invalid file handle. - (__gnat_set_filetime_name): Support win32 targets using - w32api SetFileTime. - -2003-10-22 Danny Smith - - * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW. - - * ctrl_c.c (__gnat_int_handler): Remove declaration. - - * decl.c (creat_concat_name): Const-ify prefix. - - * adaint.c: Include ctype.h if __MINGW32__. - (__gnat_readlink): Mark arguments as possibly unused. - (__gnat_symlink): Likewise. - (__gnat_is_symbolic_link): Likewise. - (__gnat_portable_spawn): Likewise. Cast last arg of spawnvp to match - declaration - (__gnat_file_time_name): Don't declare struct stat statbuf when - not needed. - (__gnat_is_absolute_path): Add parenthesis around condition of - 'if' statement to avoid warning. - (__gnat_plist_init): Specify void as parameter. - (plist_enter): Likewise. - (plist_leave): Likewise. - (remove_handle): Make static. Initialize prev. - -2003-10-22 Arnaud Charlet - - PR ada/10110 - * Makefile.in: Disable build of gnatpsta. - * cstreams.c (__gnat_full_name): Minor improvements and clean up - of previous change. - -2003-10-22 Rainer Orth - - * tracebak.c (MAX): Avoid redefinition warning. - - * init.c [sgi] (__gnat_error_handler): Remove i, unused. - Change msg to const char *. - (__gnat_install_handler): Remove ss, unused. - [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg - to const char *. - * cstreams.c (__gnat_full_name): Declare p only when used. - (__gnat_full_name) [sgi] Return buffer. - -2003-10-22 Arnaud Charlet - - * mingw32.h: New file. - * gnat_wrapper.adb: New file. - -2003-10-22 Jerome Roussel - - * g-regpat.ads, g-regpat.adb (Match): new function, to know if a - string match a pre compiled regular expression (the corresponding - version of the function working on a raw regular expression) - Fix typos in various comments - Update copyright notice in spec - -2003-10-21 Gary Dismukes - - * exp_ch3.adb: - (Component_Needs_Simple_Initialization): Return False when the type is a - packed bit array. Revise spec comments to document this case. - - * exp_prag.adb: - (Expand_Pragma_Import): Set any expression on the imported object to - empty to avoid initializing imported objects (in particular this - covers the case of zero-initialization of bit arrays). - Update copyright notice. - -2003-10-21 Ed Schonberg - - * sem_ch12.adb: - (Load_Parent_Of_Generic): If parent is compilation unit, stop search, - a subunit is missing. - (Instantiate_Subprogram_Body): If body of function is missing, set type - of return expression explicitly in dummy body, to prevent cascaded - errors when a subunit is missing. - Fixes PR 5677. - - * sem_ch3.adb: - (Access_Subprogram_Declaration): Verify that return type is valid. - Fixes PR 8693. - - * sem_elab.adb: - (Check_Elab_Calls): Do not apply elaboration checks if the main unit is - generic. - Fixes PR 12318. - - * sem_util.adb: - (Corresponding_Discriminant): If the scope of the discriminant is a - private type without discriminant, use its full view. - Fixes PR 8247. - -2003-10-21 Arnaud Charlet - - * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads, - 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads, - 3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads, - 55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb, - 56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads, - 59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads, - 5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb, - 5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads, - 5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads, - 5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb, - 5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads, - 5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb, - 5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb, - 5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb, - 7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb, - a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb, - a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb, - a-stwisu.ads, bld.adb, bld.ads, bld-io.adb, - bld-io.ads, clean.adb, clean.ads, ctrl_c.c, - erroutc.adb, erroutc.ads, errutil.adb, errutil.ads, - err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads, - g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb, - g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads, - g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb, - g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb, - g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb, - g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads, - gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb, - g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads, - g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb, - i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl, - prep.adb, prep.ads, prepcomp.adb, prepcomp.ads, - prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb, - s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb, - s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb, - s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb, - s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb, - s-caun64.ads, scng.adb, scng.ads, s-exnint.adb, - s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb, - s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb, - s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads, - socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb, - s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads, - s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads, - s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb, - styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb, - s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads, - tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads, - vms_conv.ads, vms_conv.adb, vms_data.ads, - vxaddr2line.adb: Files added. Merge with ACT tree. - - * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads, - 5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb, - 5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads, - 5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c, - g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb, - s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads, - s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads, - s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads, - s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads, - s-expssi.ads, style.adb: Files removed. Merge with ACT tree. - - * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads, - 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads, - 3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, - 3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads, - 4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, - 4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads, - 4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, - 4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads, - 51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads, - 53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads, - 5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads, - 5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads, - 5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb, - 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads, - 5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads, - 5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads, - 5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads, - 5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb, - 5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads, - 5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads, - 5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads, - 5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb, - 5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb, - 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads, - 5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb, - 5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads, - 5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb, - 5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads, - 5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb, - 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb, - 5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb, - 5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, - 5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb, - 5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, - 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, - 7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb, - 7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb, - a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads, - a-comlin.adb, adaint.c, adaint.h, ada-tree.def, - a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb, - a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads, - a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads, - ali.adb, ali.ads, ali-util.adb, ali-util.ads, - a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb, - a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb, - a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb, - a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb, - a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads, - a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb, - a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, - a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb, - a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb, - a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb, - a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, - a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads, - atree.adb, atree.ads, a-witeio.adb, a-witeio.ads, - a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb, - a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb, - bcheck.adb, binde.adb, bindgen.adb, bindusg.adb, - checks.adb, checks.ads, cio.c, comperr.adb, - comperr.ads, csets.adb, cstand.adb, cstreams.c, - debug_a.adb, debug_a.ads, debug.adb, decl.c, - einfo.adb, einfo.ads, errout.adb, errout.ads, - eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb, - expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb, - exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, - exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads, - exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb, - exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c, - exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb, - exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb, - exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb, - fe.h, fmap.adb, fmap.ads, fname.adb, - fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb, - freeze.ads, frontend.adb, g-awk.adb, g-awk.ads, - g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads, - g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, - g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, - g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads, - g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads, - g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads, - g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads, - g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb, - g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb, - g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h, - g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, - g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads, - gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb, - gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb, - gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb, - gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb, - gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb, - g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb, - g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads, - g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads, - g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads, - g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads, - g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb, - g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb, - g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads, - i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads, - i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c, - inline.adb, interfac.ads, i-pacdec.ads, itypes.adb, - itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h, - layout.adb, lib.adb, lib.ads, lib-list.adb, - lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb, - lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads, - link.c, live.adb, make.adb, make.ads, - Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb, - mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, - mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb, - misc.c, mkdir.c, mlib.adb, mlib.ads, - mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, - mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, - namet.adb, namet.ads, namet.h, nlists.ads, - nlists.h, nmake.adt, opt.adb, opt.ads, - osint.adb, osint.ads, osint-b.adb, osint-c.adb, - par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb, - par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, - par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb, - par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb, - prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, - prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads, - prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads, - prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads, - prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads, - prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads, - prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads, - prj-util.adb, prj-util.ads, raise.c, raise.h, - repinfo.adb, repinfo.h, restrict.adb, restrict.ads, - rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads, - s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb, - s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb, - scans.ads, scn.adb, scn.ads, s-crc32.adb, - s-crc32.ads, s-direio.adb, sem.adb, sem.ads, - sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb, - sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb, - sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb, - sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, - sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads, - sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, - sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb, - sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb, - sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads, - sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads, - sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb, - s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads, - s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads, - s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads, - s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb, - s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb, - s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads, - s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb, - sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb, - sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads, - sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads, - s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads, - s-memory.adb, s-memory.ads, snames.adb, snames.ads, - snames.h, s-osprim.ads, s-parame.ads, s-parint.ads, - s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb, - s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads, - s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads, - s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads, - s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads, - s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads, - s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, - s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads, - s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb, - s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb, - s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, - s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads, - s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads, - s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads, - s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, - s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads, - stringt.adb, stringt.ads, stringt.h, style.ads, - stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads, - s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb, - s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb, - switch.ads, switch-b.adb, switch-c.adb, switch-m.adb, - s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads, - table.adb, table.ads, targparm.adb, targparm.ads, - targtyps.c, tbuild.adb, tbuild.ads, tracebak.c, - trans.c, tree_io.adb, treepr.adb, treeprs.adt, - ttypes.ads, types.ads, types.h, uintp.adb, - uintp.ads, uintp.h, uname.adb, urealp.adb, - urealp.ads, urealp.h, usage.adb, utils2.c, - utils.c, validsw.adb, validsw.ads, widechar.adb, - xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads, - xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb, - einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb, - gnatvsn.ads: Merge with ACT tree. - - * gnatvsn.adb: Rewritten in a simpler and more efficient way. - -2003-10-20 Mark Mitchell - - * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir. - (gnat_ug_vmx.info): Likewise. - (gnat_ug_vxw.info): Likewise. - (gnat_ug_wnt.info): Likewise. - (gnat_rm.info): Likewise. - (gnat-style.info): Likewise. - - * Make-lang.in (ada.install-info): Remove target. - (info): New target. - (install-info): Likewise. - (gnat_ug_unx.info): Simplify rule. - (gnat_ug_vmx.info): Likewise. - (gnat_ug_vxw.info): Likewise. - (gnat_ug_wnt.info): Likewise. - (gnat_rm.info): Likewise. - (gnat-style.info): Likewise. - -2003-10-14 Nathanael Nerode - - * Make-lang.in: Replace uses of $(target_alias) with - $(target_noncanonical). - * ada/Makefile.in: Remove unused mention of $(target_alias). - -2003-10-06 Mark Mitchell - - * Make-lang.in (ada.info): Replace with ... - (info): ... this. - (ada.dvi): Replace with ... - (dvi): ... this. - -2003-09-29 Zack Weinberg - - * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to - initialize dconstp5 and dconstmp5. - -2003-09-28 Richard Henderson - - * trans.c (tree_transform): Update call to expand_asm_operands. - -2003-09-21 Richard Henderson - - * trans.c, utils.c: Revert. - -2003-09-21 Richard Henderson - - * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and - change to const. - -2003-09-04 Michael Matz - - * misc.c: Include "target.h". - * Make-lang.in (misc.o): Add dependency on target.h. - -2003-09-03 DJ Delorie - - * misc.c (default_pass_by_ref): Convert to calls.return_in_memory - hook. - -2003-08-30 Zack Weinberg - - * Makefile.in: Update substitutions to match changes to - configure. Use include directives instead of @-insertions - to read in host and target fragments. Add a rule to - regenerate ada/Makefile. - -2003-07-18 Neil Booth - - * lang-options.h: Remove. - * lang.opt: Add help text. - -2003-07-07 Nathan Sidwell - - * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note - calls. - -2003-07-06 Neil Booth - - * misc.c (gnat_handle_option): Don't handle filenames. - -2003-07-04 H.J. Lu - - * Make-lang.in: Replace PWD with PWD_COMMAND. - * Makefile.adalib: Likewise. - * Makefile.in: Likewise. - -2003-07-04 Matt Kraai - - * misc.c (gnat_argv): Revert last change. - (gnat_handle_option, gnat_init_options): Copy arguments. - -2003-07-03 Neil Booth - - * misc.c (gnat_argv): Make const. - -2003-07-02 Neil Booth - - * misc.c (save_argc, save_argv): Keep non-static! - -2003-07-02 Neil Booth - - * misc.c (save_argc, save_argv): Make static. - (gnat_init_options): New prototype. - (gnat_init_options): Update. - -2003-07-01 Matt Kraai - - * gnat_ug.texi: Remove unlikely characters from @vars. - * gnat_ug_vms.texi: Regenerate. - -2003-06-27 Nathan Sidwell - - * misc.c (record_code_position): Adjust emit_note call. - -2003-06-26 Neil Booth - - * misc.c (gnat_handle_option): Don't check for missing arguments. - -2003-06-20 Nathan Sidwell - - * utils.c (end_subprog_body): Adjust expand_function_end call. - -2003-06-16 Matt Kraai - - * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test - Bind_Main_Program. - -2003-06-15 Neil Booth - - * lang.opt: Declare Ada. - * misc.c (gnat_init_options): Update. - -2003-06-14 Nathan Sidwell - - * utils.c (begin_subprog_body): Adjust init_function_start call. - -2003-06-14 Neil Booth - - * Make-lang.in: Update to use options.c and options.h. - * misc.c: Include options.h not aoptions.h. - (gnat_handle_option): Abort on unrecognized switch. - (gnat_init_options): Request Ada switches. - -2003-06-14 Neil Booth - - * lang.opt: Add -Wall. - * misc.c (gnat_handle_option): Handle it. - -2003-06-12 Neil Booth - - * misc.c (gnat_handle_option): Fix warnings. - -2003-06-11 Matt Kraai - - * Make-lang.in (gnatbind): Remove $(LIBIBERTY). - -2003-06-11 Neil Booth - - * Make-lang.in: Update to handle command-line options. - * lang.opt: New file. - * misc.c: Include aoptions.h. - (cl_options_count, cl_options): Remove. - (gnat_handle_option): New. - (gnat_decode_option): Remove. - (LANG_HOOKS_DECODE_OPTION): Remove. - (LANG_HOOKS_HANDLE_OPTION): Override. - -2003-06-10 Nathanael Nerode - - * init.c, misc.c, trans.c, utils.c: Remove dead code. - -2003-06-09 Nathanael Nerode - - * Makefile.in: Replace "host_canonical" with "host" for autoconf - substitution. - -2003-06-08 Neil Booth - - * Make-lang.in: Update. - * misc.c: Include opts.h. Define cl_options_count and cl_options. - -2003-06-07 Neil Booth - - * misc.c (gnat_init_options): Update. - -2003-06-05 Matt Kraai - - * Make-lang.in (ada/b_gnatb.o-warn): Remove. - * bindgen.adb (Gen_Main_C): Mark ensure_reference with - __attribute__ ((__unused__)). - -2003-06-05 Jan Hubicka - - * Make-lang.in: Add support for stageprofile and stagefeedback - -2003-06-05 Matt Kraai - - * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C) - (Gen_Main_C, Gen_Output_File_C): Generate ISO C. - -2003-06-04 Matt Kraai - - * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr): - Remove non-VMS directive. - (Switches for gnatlbr, Optimization Levels): Remove non-VMS - alternatives. - (Examples of gnatls Usage): Remove VMS alternative. - -2003-06-04 Olivier Hainque - - 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-06-01 Andreas Jaeger - - * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE - and ROUND_TYPE_SIZE_UNIT. - -2003-05-22 Geert Bosch - - * gnat_rm.texi : Remove reference to Ada Core Technologies. - -2003-05-03 Nathan Sidwell - - * trans.c (tree_transform): Use location_t and input_location - directly. - (build_unit_elab): Likewise. - * utils.c (create_label_decl): Likewise. - -2003-05-01 Nathan Sidwell - - * trans.c (tree_transform, build_unit_elab, - set_lineno): Rename lineno to input_line. - * utils.c (pushdecl, create_label_decl, begin_subprog_body, - end_subprog_body): Likewise. - * utils2.c (build_call_raise): Likewise. - -2003-05-01 Laurent Guerby - - PR ada/10546 - * 5iosinte.ads: Increase pthread_cond_t size to match recent - LinuxThread and NPTL version, merge from ACT. - -2003-04-28 Zack Weinberg - - * utils.c (convert): No need to clear TREE_CST_RTL. - -2003-04-23 Geert Bosch - - * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb, - 1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads, - 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads, - 3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, - 3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads, - 4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb, - 4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads, - 4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads, - 4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb, - 4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, - 4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, - 4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb, - 52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads, - 5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads, - 5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb, - 5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads, - 5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb, - 5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, - 5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb, - 5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads, - 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb, - 5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads, - 5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb, - 5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads, - 5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads, - 5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb, - 5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads, - 5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads, - 5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb, - 5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads, - 5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb, - 5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb, - 5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb, - 5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads, - 5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads, - 5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb, - 5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb, - 5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads, - 5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, - 5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb, - 5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb, - 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads, - 5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads, - 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, - 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb, - 7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads, - 7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads, - 9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb, - a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb, - a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, - a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads, - a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads, - a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads, - a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads, - a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads, - a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb, - a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads, - a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads, - a-intnam.ads, a-intsig.adb, a-intsig.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.adb, a-ngcefu.ads, - a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, 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-nudira.adb, a-nudira.ads, - a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads, - a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb, - a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads, - a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads, - a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads, - a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads, - a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb, - a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads, - a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads, - a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads, - a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads, - a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads, - a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads, - a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb, - a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb, - a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb, - a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb, - a-ticoau.ads, a-ticoio.adb, a-ticoio.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.adb, - a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb, - a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb, - a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb, - a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb, - a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads, - a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb, - a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb, - a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb, - a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb, - 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.ads, a-wtgeau.adb, 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, a-wttest.adb, - a-wttest.ads, ada-tree.h, ada.ads, ada.h, - adadecode.c, adadecode.h, ali-util.adb, ali-util.ads, - ali.adb, ali.ads, alloc.ads, argv.c, - atree.adb, atree.ads, atree.h, aux-io.c, - back_end.adb, back_end.ads, bcheck.adb, bcheck.ads, - binde.adb, binde.ads, binderr.adb, binderr.ads, - bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, - butil.adb, butil.ads, cal.c, calendar.ads, - casing.adb, casing.ads, ceinfo.adb, checks.adb, - checks.ads, cio.c, comperr.adb, comperr.ads, - config-lang.in, csets.adb, csets.ads, csinfo.adb, - cstand.adb, cstand.ads, cuintp.c, debug.adb, - debug.ads, debug_a.adb, debug_a.ads, dec-io.adb, - dec-io.ads, dec.ads, deftarg.c, directio.ads, - einfo.adb, einfo.ads, elists.adb, elists.ads, - elists.h, errno.c, errout.adb, errout.ads, - eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb, - exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads, - exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads, - exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, - exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads, - exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads, - exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, - exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads, - exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads, - exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads, - exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, - exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads, - exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads, - exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads, - exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads, - fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads, - fname-uf.adb, fname-uf.ads, fname.adb, fname.ads, - freeze.adb, freeze.ads, frontend.adb, frontend.ads, - g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads, - g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads, - g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, - g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, - g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads, - g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb, - g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb, - g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb, - g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb, - g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads, - g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, - g-htable.adb, g-htable.ads, g-io.adb, g-io.ads, - g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb, - g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb, - g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads, - g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb, - g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads, - g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb, - g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, - g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads, - g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads, - g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads, - get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads, - gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads, - gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads, - gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads, - gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, - gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb, - gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads, - gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb, - hlo.adb, hlo.ads, hostparm.ads, i-c.adb, - i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads, - i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads, - i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads, - i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb, - i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb, - i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads, - inline.adb, inline.ads, interfac.ads, ioexcept.ads, - itypes.adb, itypes.ads, krunch.adb, krunch.ads, - layout.adb, layout.ads, lib-list.adb, lib-load.adb, - lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads, - lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads, - lib.adb, lib.ads, live.adb, live.ads, - machcode.ads, make.adb, make.ads, makeusg.adb, - makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads, - mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads, - memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb, - mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb, - mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb, - mlib.ads, namet.adb, namet.ads, nlists.adb, - nlists.ads, opt.adb, opt.ads, osint-b.adb, - osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb, - osint-l.ads, osint-m.adb, osint-m.ads, osint.adb, - osint.ads, output.adb, output.ads, par-ch10.adb, - par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, - par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, - par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb, - par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, - par-tchk.adb, par-util.adb, par.adb, par.ads, - prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads, - prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads, - prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads, - prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads, - prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads, - prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads, - prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads, - prj.adb, prj.ads, repinfo.adb, repinfo.ads, - restrict.adb, restrict.ads, rident.ads, rtsfind.adb, - rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb, - s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb, - s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb, - s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads, - s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads, - s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb, - s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads, - s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads, - s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads, - s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads, - s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads, - s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads, - s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb, - s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads, - s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads, - s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads, - s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads, - s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads, - s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, - s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, - s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads, - s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads, - s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads, - s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, - s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, - s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads, - s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb, - s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb, - s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads, - s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads, - s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads, - s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, - s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, - s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads, - s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads, - s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads, - s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, - s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, - s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads, - s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads, - s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads, - s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, - s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, - s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads, - s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads, - s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads, - s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, - s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, - s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads, - s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads, - s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads, - s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, - s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, - s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads, - s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads, - s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads, - s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, - s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads, - s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads, - s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb, - s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads, - s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, - s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads, - s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads, - s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads, - s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads, - s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb, - s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb, - s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb, - s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads, - s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, - s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads, - s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads, - s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb, - s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb, - s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb, - s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb, - s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb, - s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads, - s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads, - s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads, - s-valenu.adb, s-valenu.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, - s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads, - s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads, - s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, - s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb, - s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, - s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb, - s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, - s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, - s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb, - scn-slit.adb, scn.adb, scn.ads, sdefault.ads, - sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads, - sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads, - sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads, - sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads, - sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, - sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads, - sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads, - sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, - sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads, - sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads, - sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads, - sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads, - sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, - sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads, - sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads, - sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads, - sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb, - sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb, - sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb, - sinput-p.ads, sinput.adb, sinput.ads, snames.adb, - snames.ads, sprint.adb, sprint.ads, stand.adb, - stand.ads, stringt.adb, stringt.ads, style.adb, - style.ads, stylesw.adb, stylesw.ads, switch-b.adb, - switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb, - switch-m.ads, switch.adb, switch.ads, system.ads, - table.adb, table.ads, targparm.adb, targparm.ads, - tbuild.adb, tbuild.ads, text_io.ads, trans.c, - tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads, - tree_io.adb, tree_io.ads, treepr.adb, treepr.ads, - ttypef.ads, ttypes.ads, types.adb, types.ads, - uintp.adb, uintp.ads, uname.adb, uname.ads, - unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads, - usage.adb, usage.ads, validsw.adb, validsw.ads, - widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb, - xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads, - xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header, - formatting and other trivial changes from ACT. - -2003-04-12 Zack Weinberg - - * gigi.h, utils2.c (build_constructor): - Rename gnat_build_constructor. Use build_constructor. - * decl.c (gnat_to_gnu_entity) - * trans.c (tree_transform, pos_to_constructor, extract_values) - * ada/utils.c (build_template, convert_to_fat_pointer, convert) - (unchecked_convert) - * ada/utils2.c (build_binary_op, build_call_raise, build_allocator) - (fill_vms_descriptor): - Update to match. - -2003-04-06 Zack Weinberg - - * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero. - * misc.c (gnat_tree_size): New function. - (LANG_HOOKS_TREE_SIZE): Override. - -2003-04-03 Jason Merrill - - * misc.c (gnat_adjust_rli): #if 0. - -2003-03-31 Geert Bosch - - PR ada/10020 - * link.c : Fix misspelled "const" keyword - -2003-03-23 Mark Mitchell - - PR c++/7086 - * utils2.c: Adjust calls to put_var_into_stack. - -2003-03-12 Nathanael Nerode - - * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC. - -2003-03-08 Neil Booth - - * misc.c (gnat_init): Update for new prototype. - -2003-03-05 Olivier Hainque - - ada/9961 - * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid - warning, and fix return type for the IN_RTS && !SJLJ case. - -2003-03-04 Tom Tromey - - * Make-lang.in (ada.tags): New target. - -2003-03-04 Olivier Hainque - - ada/9911 - * a-except.adb (Unwind_RaiseException): Import a GNAT specific - wrapper, which name remains constant whatever underlying GCC - scheme. - - * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing - the stable interface needed for a-except. - -2003-03-02 Andreas Jaeger - - * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi, - gnat_ug_wnt.texi: Regenerate. - -2003-03-02 Laurent Guerby - - * Makefile.in (install-gnatlib): Match previous change there - so it works. - -2003-02-28 Andreas Schwab - - * Make-lang.in (install-gnatlib): Change to ada directory before - running make instead of using ada/Makefile directly. - -2003-02-18 Ben Elliston - - Part of PR ada/9406 - * gnat_ug.texi (Binder output file): Grammar fix. - -2003-02-18 Ben Elliston - - PR other/7350 - * 5qtaprop.adb (Sleep): Fix typo in comment. - -2003-02-04 Joseph S. Myers - - * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2. - * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi, - gnat_ug_wnt.texi: Regenerate. - -2003-02-03 Christian Cornelssen - - * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir) - be created if necessary. - (ada.install-common): Let $(DESTDIR)$(bindir) be created - if necessary. Remove erroneous and redundant gnatchop - installation commands. Test for gnatdll before attempting - to install it. - (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr, - and gnatdll from all plausible locations. - -2003-02-01 Richard Sandiford - - * utils2.c (build_unary_op): Don't check flag_volatile. - * gnat_ug.texi: Remove -fvolatile from example. - * gnat_ug_vxw.texi: Likewise. - -2003-01-29 Laurent Guerby - - PR ada/8344 - * final.c: rename to adafinal.c to avoid file name conflicts with gcc file. - * Makefile.in: match previous change. - * Make-lang.in: match previous change. - -2003-01-29 Joel Sherrill - - * 5rosinte.ads: Add SIGXCPU. - * 5rtpopsp.adb: New file. - * Make-lang.in: Do not build gnatpsta and gnatpsys when cross. - * Makefile.in: Recognize more RTEMS targets and add the RTEMS - specific file 5rtpopsp.adb. - * adaint.h: Add include of when target is RTEMS. This - is likely needed for all newlib targets. - * init.c: Add RTEMS specific version of __gnat_initialize(). - -2003-01-28 Rainer Orth - - * adaint.c, adaint.h, gmem.c, init.c: Update copyright year. - -2003-01-27 Rainer Orth - - * init.c (__gnat_error_handler): Make msg const. - - * gmem.c (convert_addresses): Move declaration ... - * adaint.h: ... here. - * adaint.c (convert_addresses): Adapt addrs type to match - prototype. - - * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format. - -2003-01-24 Andreas Schwab - - * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to - size_t to avoid warning. - -2003-01-21 Zack Weinberg - - * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c. - -2003-01-09 Geoffrey Keating - - * gnat_rm.texi: Remove RCS version number. - - * ada-tree.h (union lang_tree_node): Add chain_next option. - -2003-01-09 Christian Cornelssen - - * Make-lang.in (ada.install-info, ada.install-common, - ada.uninstall): Prepend $(DESTDIR) to the destination - directory in all (un)installation commands. - * Makefile.in (install-gnatlib, install-rts): Ditto. - -2002-12-28 Joseph S. Myers - - * gnat_rm.texi, gnat_ug.texi: Use @copying. - * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi, - gnat_ug_wnt.texi: Regenerate. - -2002-12-23 Joseph S. Myers - - * gnat_rm.texi: Include gcc-common.texi. Use GCC version number - only. - * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info, - $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info, - $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info, - ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi, - ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on - $(srcdir)/doc/include/gcc-common.texi. - -2002-12-15 Geert Bosch - - * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting - -2002-12-14 Geert Bosch - - 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. - -2002-11-30 Zack Weinberg - - * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c, - utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when - not already included. - * Make-lang.in: Update dependencies. - -2002-11-18 Nathanael Nerode - * adaint.c (__gnat_tmp_name): Better, but good enough for now, - solution to buffer overflow bug on GNU/Linux. - -2002-11-14 Nathanael Nerode - - 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. - * comperr.ads: Change to match bug box. - * gnatvsn.ads: Remove all references to Public version and - GNATPRO version. - -2002-11-13 Nathanael Nerode - - PR ada/6919 - * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on - GNU/Linux. - - PR ada/6558 - * config-lang.in: Remove diff_excludes. - -2002-11-05 Graham Stott - - PR ada/8358 - * trans.c (gnu_pending_elaboration_lists): New GC root. - (build_unit_elab): Use.. - -2002-10-30 Geert Bosch - - PR ada/6558 - * misc.c : Include optabs.h - - * Make-lang.in (misc.o): Add dependency on optabs.h - -2002-10-29 Geert Bosch - - PR ada/6558 - * Make-lang.in (gnatbind): Depend on CONFIG_H - -2002-10-29 Geert bosch - - PR ada/6558 - * misc.c: Unrevert misc.c (1.13) - -2002-10-28 Nathanael Nerode - - * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update - maintainership comments. - -2002-09-25 Nathanael Nerode - - PR ada/5904 - * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb - 5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb - 5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb - 7staprop.adb: Correct statements in comments about - maintainership of GNAT. - - PR ada/5904 - * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c - gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads - osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb - osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads - s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb - s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb - sinput-d.ads switch-b.adb switch-b.ads switch-c.adb - switch-c.ads switch-m.adb switch-m.ads: Correct statements in - comments about maintainership of GNAT. - - PR ada/6919 (forward port of patch for PR ada/5904) - * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads - 4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb - 4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads - 4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads - 4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb - 4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb - 4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb - 52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads - 5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads - 5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads - 5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads - 5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb - 5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads - 5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads - 5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads - 5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads - 5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads - 5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads - 5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb - 5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads - 5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads - 5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb - 5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads - 5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb - 5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb - 5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb - 5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb - 5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb - 7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb - a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb - a-chahan.ads a-colien.adb a-colien.ads a-colire.adb - a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads - a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads - a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads - a-except.adb a-except.ads a-excpol.adb a-exctra.adb - a-exctra.ads a-filico.adb a-filico.ads a-finali.adb - a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads - a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb - a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads - a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb - a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb - a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb - a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads - a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads - a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads - a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads - a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb - a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb - a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads - a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads - a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads - a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads - a-ticoio.adb a-ticoio.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.adb a-tifiio.ads - a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads - a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads - a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads - a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads - a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb - a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads - a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads - a-wtedit.adb a-wtedit.ads a-wtenau.adb 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.ads - a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads - a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb - a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h - adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads - alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb - back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads - binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb - bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads - ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads - csets.adb csets.ads csinfo.adb cstand.adb cstand.ads - cstreams.c cuintp.c debug.adb debug.ads debug_a.adb - debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c - einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h - errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c - exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads - exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb - exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads - exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb - exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads - exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb - exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb - exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb - exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb - exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb - exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb - exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads - exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h - final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads - fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb - freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb - g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads - g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h - gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb - gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb - gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb - gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads - gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads - gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads - i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb - i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads - i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads - i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads - impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c - itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h - lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb - lib-load.ads lib-sort.adb lib-util.adb lib-util.ads - lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb - lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb - makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c - namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h - nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb - osint.ads output.adb output.ads par-ch10.adb par-ch11.adb - par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb - par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb - par-endh.adb par-labl.adb par-load.adb par-prag.adb - par-sync.adb par-tchk.adb par-util.adb par.adb par.ads - prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb - prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads - prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads - prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads - prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads - prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h - repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads - rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads - s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads - s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb - s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads - s-direio.adb s-direio.ads s-except.ads s-exctab.adb - s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads - s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads - s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads - s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads - s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads - s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads - s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb - s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads - s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads - s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads - s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb - s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb - s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb - s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb - s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb - s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb - s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb - s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb - s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads - s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb - s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads - s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads - s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads - s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads - s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads - s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads - s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads - s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads - s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads - s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads - s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads - s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads - s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads - s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads - s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads - s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads - s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads - s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads - s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads - s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads - s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads - s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads - s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads - s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads - s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads - s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads - s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads - s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads - s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads - s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads - s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads - s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads - s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads - s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb - s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb - s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb - s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb - s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb - s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb - s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads - s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads - s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads - s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads - s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads - s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads - s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.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 s-valwch.adb s-valwch.ads - s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads - s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb - s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb - s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb - s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb - s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb - s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb - s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads - scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb - sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads - sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb - sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb - sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads - sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb - sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads - sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb - sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb - sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb - sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb - sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb - sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads - sem_type.adb sem_type.ads sem_util.adb sem_util.ads - sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads - sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb - sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb - sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads - snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb - stringt.ads stringt.h style.adb style.ads stylesw.adb - stylesw.ads switch.adb switch.ads sysdep.c system.ads - table.adb table.ads targparm.adb targparm.ads targtyps.c - tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads - tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb - treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads - types.adb types.ads types.h uintp.adb uintp.ads uintp.h - uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb - usage.ads utils.c utils2.c validsw.adb validsw.ads - widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb - xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb - xtreeprs.adb: Correct statements in comments about maintainership - of GNAT. - -2002-09-23 Zack Weinberg - - * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o. - * Makefile.in (TOOLS_LIBS): Add ../../version.o. - * gnatvsn.ads: Gnat_Version_String is now a function. - * gnatvsn.adb: New file. When asked for Gnat_Version_String, - copy the C version_string into a String and return it. - * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb, - gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb: - Remove pragma Ident (Gnat_Version_String). If this was the - sole use of package Gnatvsn, remove the with statement too. - * gnat1drv.adb: Tweak -gnatv output. - -2002-09-17 Richard Henderson - - * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP. - * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN. - * config/mips/mips.md (fixuns_truncdfsi2): Likewise. - (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise. - * config/m68k/m68k.c (floating_exact_log2): Use real_exponent - and real_2expN instead of a loop. - * doc/tm.texi (REAL_VALUE_LDEXP): Remove. - (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove. - -2002-08-25 Andre Leis - David Billinghurst - - * sysdep.c (__gnat_ttyname): include on cygwin - -2002-08-13 Rainer Orth - - * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS). - Remove $(CONFIG_H) dependency. - -2002-08-08 Nathan Sidwell - - * ada/Make-lang.in (ada.mostlyclean): Remove coverage files. - -2002-07-29 Kaveh R. Ghazi - - * adadecode.c (ada_demangle): Use xstrdup in lieu of - xmalloc/strcpy. - * misc.c (gnat_decode_option): Likewise. - -2002-07-15 Florian Weimer - - * make.adb (Add_Switch): Make Generic_Position a procedure. The - function approach did not work well because of a side effect (the - function call could reallocate the table which was being indexed - using its result). Fixes ada/4851. [RESURRECTED] - -2002-07-01 Roger Sayle - - * ada/utils.c (builtin_function): Accept an additional parameter. - -2002-06-28 Andreas Jaeger - - PR ada/7144 - * Makefile.in: Fix typo in comment, patch by Adrian Knoth - . - -2002-06-24 Kaveh R. Ghazi - - * Makefile.in (SHELL): Set to @SHELL@. - -2002-06-20 Kaveh R. Ghazi - - * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit - array size calculation. - -2002-06-04 Andreas Jaeger - - * Make-lang.in (gnatbind): Readd rule that has been lost in last - patch. - -2002-06-03 Geoffrey Keating - - Merge from pch-branch: - - * config-lang.in (gtfiles): Add ada-tree.h. - * ada-tree.h (SET_TYPE_CI_CO_LIST): New. - (SET_TYPE_MODULUS): New. - (SET_TYPE_INDEX): New. - (SET_TYPE_DIGITS_VALUE): New. - (SET_TYPE_RM_SIZE): New. - (SET_TYPE_UNCONSTRAINED_ARRAY): New. - (SET_TYPE_ADA_SIZE): New. - (SET_TYPE_ACTUAL_BOUNDS): New. - (SET_DECL_CONST_CORRESPONDING_VAR): New. - (SET_DECL_ORIGINAL_FIELD): New. - (TREE_LOOP_ID): Correct typo. - * decl.c: Use new macros. - * utils.c: Include debug.h, use new macros. - * utils2.c: Use new macros. - - * ada-tree.h: Update all macros for new tree description. - (struct tree_loop_id): New. - (union lang_tree_node): New. - (struct lang_decl): New. - (struct lang_type): New. - * misc.c (gnat_mark_tree): Delete. - (LANG_HOOKS_MARK_TREE): Delete. - * trans.c (tree_transform): No longer any need to cast - for TREE_LOOP_ID. - - * utils.c (struct language_function): New dummy structure. - - * Makefile.in (decl.o): gt-ada- is in objdir, not srcdir. - (misc.o): Likewise. - (utils.o): Likewise; also gtype-ada.h. - * Make-lang.in (gnat1): Add dependency on s-gtype. - (gnatbind): Add dependency on $(CONFIG_H). - * utils.c: Correct last #include. - (stuct e_stack): Remove unnecessary 'static'. - (mark_e_stack): Remove unused prototype. - - * scn-nlit.adb: Remove whitespace after version number to - keep lines under 80 chars. - * snames.adb: Likewise. - * treepr.ads: Likewise. - - * Makefile.in (decl.o): Include gt-ada-.h. - (misc.o): Likewise. - (utils.o): Include gt-ada-.h and gtype-ada.h. - * config-lang.in (gtfiles): New. - * decl.c: Use gengtype for roots. - * gigi.h: Use gengtype for roots. - * trans.c: Use gengtype for roots. - * utils.c: Use gengtype for roots, marking. Include gtype-ada.h. - -2002-06-02 Gabriel Dos Reis - - * misc.c (gnat_init): Adjust setting of internal_error_function. - -2002-06-01 Joseph S. Myers - - * gnat_ug.texi: Use @ifnottex instead of @ifinfo. - * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi, - gnat_ug_wnt.texi: Regenerate. - -2002-05-31 Florian Weimer - - * 5ntaprop.adb (with System.OS_Primitives): Remove. - - * cstreams.c (max_path_len): Move from here ... - * adaint.c (__gnat_max_path_len): ... to here. - * adaint.c (__gnat_max_path_len): Declare. - * g-dirope.adb (Max_Path): Adjust. - * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust. - * i-cstrea.ads (max_path_len): Adjust. - * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust. - * xr_tabls.adb (Dir_Name.Max_Path: Adjust. - - * Makefile.in, Make-lang.in: Documentation is now built in - Make-lang.in. Store Info and generated Texinfo files in the - source directory. - * gnat_ug.texi: Remove CVS keywords, correct version number. - Set file name correctly. - - * gnat_ug_*.texi: Add. - * .cvsignore: Ignore generated Texinfo files. - -2002-05-30 Zack Weinberg - - * ada.h: Add MI guard macro. - (SUBTYPE): Define constants with an anonymous enum, not static - const variables. - (IN): Cast constants to appropriate type before use. - -2002-05-26 Joseph S. Myers - - * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526 - (experimental)". - -2002-05-23 Rainer Orth - - * Make-lang.in (CP, ECHO): Copy from Makefile.in. - (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise. - (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise. - (ALL_ADA_CFLAGS): Likewise. - (ADA_INCLUDES): Likewise. - Adapt for new working dir. - (GNATBIND): Use Makefile.in version. - (.SUFFIXES): Copy from Makefile.in. - (ada-warn): Define. - (.adb.o, .ads.o): Copy from Makefile.in. - Added $(OUTPUT_OPTION). - (GNAT1_C_OBJS): Moved from Makefile.in. - Prefix with ada subdir. - (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise. - (EXTRA_GNAT1_OBJS): Moved from Makefile.in. - Adapt for new working dir. - (EXTRA_GNATBIND_OBJS): Likewise. - (ADA_BACKEND): Moved from Makefile.in. - Renamed to avoid conflict with global BACKEND. - Use that one. - (TARGET_ADA_SRCS): Moved from Makefile.in. - (gnat1$(exeext)): Replaced recursive rule with Makefile.in version. - Use ADA_BACKEND. - (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version. - (ada_extra_files): Moved from Makefile.in. - Prefix with ada subdir. - (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise. - (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise. - (ada/nmake.ads): Likewise. - (update-sources): Moved from Makefile.in. - Prefix with ada subdir. - (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise. - (ADA_TREE_H): Likewise. - (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise. - (ada/memtrack.o): Likewise. - (ada/adadecode.o): Likewise. - Update dependencies. - (ada/adaint.o): New. - (ada/argv.o): Moved from Makefile.in. - Prefix with ada subdir. - Update dependencies. - (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise. - (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise. - (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in. - Prefix with ada subdir. - (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise. - (GNAT DEPENDENCIES): Regenerate. - * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by - toplevel Makefile.in. - (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed. - (TARGET_ADA_SRCS): Removed. - (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise. - (GNATBIND_OBJS): Likewise. - (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here. - (BACKEND): Removed. - (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise. - (TREE_H): Likewise. - (ada_extra_files): Likewise. - (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise. - (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise. - (update-sources): Likewise. - (sdefault.adb, stamp-sdefault, sdefault.o): Likewise - (ADA_TREE_H): Likewise. - (adadecoce.o): Likewise. - (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise. - (GNAT DEPENDENCIES): Likewise. - -2002-05-16 Rainer Orth - - * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd. - * Makefile.in: Likewise. - -2002-05-14 Rainer Orth - - * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools): - Restore $(CONFIG_H) and prefix.o dependencies. - (ada.stage[1-4]): Depend on stage?-start. - - * Makefile.in (b_gnatb.c): Depend on interfac.o. - -2002-05-02 Jim Wilson - - * utils.c (finish_record_type): Change record_size to record_type. - -2001-05-02 John David Anglin - - * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides. - (ALL_ADA_CFLAGS): Define. Replace ADA_CFLAGS with ALL_ADA_CFLAGS in - ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC. - -2002-04-25 Neil Booth - - * misc.c (gnat_parse_file): Update. - -2002-04-24 Neil Booth - - * misc.c (gnat_init): Don't set lang_attribute_common. - -2002-04-21 Joseph S. Myers - - * gnat_rm.texi: Use @ifnottex instead of @ifinfo. - -2002-04-21 Florian Weimer - - * gnat_ug.texi: New file. - - * gnat_rm.texi: Do not include texiplus.texi. Include fdl.texi - instead of gfdl.texi - - * xgnatug.adb, ug_words: New files. - - * Makefile.in (doc, dvi): New targets. Build gnat_ug_*, - gnat_rm and gnat-style manuals. - -2002-04-18 Neil Booth - - * gigi.h (incomplete_type_error): Remove. - * utils.c (incomplete_type_error): Remove. - -2002-04-16 Mark Mitchell - - * trans.c (tree_transform): Add has_scope argument to - expand_start_stmt_expr. - -2002-04-04 Neil Booth - - * gigi.h (truthvalue_conversion): Rename. - * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine. - * trans.c (tree_transform): Update. - * utils2.c (truthvalue_conversion): Rename, update. - (build_binary_op, build_unary_op): Update. - -2002-04-04 Laurent Guerby - - * make.adb: Implement -margs, remove restriction about file name placement. - * makeusg.adb: Documentation update. - * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir). - * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line. - -2002-04-04 Neil Booth - - * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME. - (builtin_function): Similarly. - -2002-04-01 Neil Booth - - * decl.c (gnat_to_gnu_entity): Update. - * gigi.h (mark_addressable): Rename. - * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine. - * trans.c (tree_transform): Update. - * utils.c (create_var_decl): Update. - * util2.c (build_binary_op, build_unary_op, - fill_vms_descriptor): Update. - (mark_addressable): Rename, update. - -2002-04-01 Neil Booth - - * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type): - Rename. - * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE, - LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New. - * trans.c (tree_transform, convert_with_check): Update. - * utils.c (unsigned_type, signed_type, signed_or_unsigned_type): - Rename. - -2002-03-31 Neil Booth - - * gigi.h (finish_incomplete_decl): Rename. - * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine. - * utils.c (gnat_init_decl_processing): Don't set hook. - (finish_incomplete_decl): Rename. - -2002-03-29 Andreas Schwab - - * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts - directory. - -2001-03-28 Robert Dewar - - * checks.ads: - (Remove_Checks): New procedure - - * checks.adb: - (Remove_Checks): New procedure - - * exp_util.adb: - Use new Duplicate_Subexpr functions - (Duplicate_Subexpr_No_Checks): New procedure - (Duplicate_Subexpr_No_Checks_Orig): New procedure - (Duplicate_Subexpr): Restore original form (checks duplicated) - (Duplicate_Subexpr): Call Remove_Checks - - * exp_util.ads: - (Duplicate_Subexpr_No_Checks): New procedure - (Duplicate_Subexpr_No_Checks_Orig): New procedure - Add 2002 to copyright notice - - * sem_util.adb: Use new Duplicate_Subexpr functions - - * sem_eval.adb: - (Eval_Indexed_Component): This is the place to call - Constant_Array_Ref and to replace the value. We simply merge - the code of this function in here, since it is now no longer - used elsewhere. This fixes the problem of the back end not - realizing we were clever enough to see that this was - constant. - (Expr_Val): Remove call to Constant_Array_Ref - (Expr_Rep_Val): Remove call to Constant_Array_Ref - Minor reformatting - (Constant_Array_Ref): Deal with string literals (patch - suggested by Zack Weinberg on the gcc list) - -2001-03-28 Ed Schonberg - - * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig => - Duplicate_Subexpr_Move_Checks. - - * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig => - Duplicate_Subexpr_Move_Checks. - - * sem_eval.adb: (Constant_Array_Ref): Verify that constant - value of array exists before retrieving it (it may a private - protected component in a function). - -2002-03-28 Geert Bosch - - * prj-pp.adb : New file. - - * prj-pp.ads : New file. - -2002-03-28 Andreas Jaeger - - * Makefile.in (stamp-sdefault): Fix path for Makefile. - -2002-03-28 Neil Booth - - * misc.c (gnat_expand_expr): Move prototype. - -2002-03-27 Neil Booth - - * misc.c (insert_default_attributes): Remove. - -2002-03-27 Neil Booth - - * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine. - (gnat_init): Don't set hook. - (gnat_expand_expr): Fix prototype. - -2002-03-27 Neil Booth - - * misc.c (ggc_p): Remove. - -2002-03-27 Geert Bosch - - * prj-makr.ads, prj-makr.adb : New files. - -2002-03-26 Neil Booth - - * misc.c (LANG_HOOKS_MARK_TREE): Redefine. - (lang_mark_tree): Make static, rename. - -2002-03-25 Neil Booth - - * misc.c (maybe_build_cleanup): Remove. - -2002-03-24 Neil Booth - - * gigi.h (yyparse): Remove. - -2002-03-23 Florian Weimer - - From Ben Brosgol - * gnat_rm.texi: Sync with ACT version. - -2002-03-20 Neil Booth - - * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine. - (gnat_init): Remove old hook. - -2002-03-17 Neil Booth - - * misc.c (LANG_HOOKS_PARSE_FILE): Redefine. - (yyparse): Rename gnat_parse_file. - -2002-03-14 Geoffrey Keating - - Delete all lines containing "$Revision:". - * xeinfo.adb: Don't look for revision numbers. - * xnmake.adb: Likewise. - * xsinfo.adb: Likewise. - * xsnames.adb: Likewise. - * xtreeprs.adb: Likewise. - -2002-03-12 Kaveh R. Ghazi - - * misc.c (gnat_tree_code_type, gnat_tree_code_length, - gnat_tree_code_name): Delete. - (tree_code_type, tree_code_length, tree_code_name): Define. - (gnat_init): Don't try to copy into the various tree_code - arrays. - -2002-03-11 Richard Henderson - - * Makefile.in (.NOTPARALLEL): Add fake tag. - -2002-03-07 Geert Bosch - - * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads, - s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads, - switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, - switch-m.adb, switch-m.ads : New files. - -2002-03-07 Geert Bosch - - * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads, - 4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads, - 4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads, - 4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads, - 5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb, - 5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads, - 5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, - 5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, - 5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb, - 5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb, - 5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads, - 5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb, - 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads, - 5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb, - 5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb, - 5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb, - 5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb, - 5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb, - 5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb, - 5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb, - 7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb, - Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads, - a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb, - a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads, - a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb, - a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb, - a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb, - a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb, - a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h, - adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb, - atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb, - bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb, - csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c, - einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads, - eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb, - exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, - exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads, - exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads, - exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb, - exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads, - expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb, - freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb, - g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads, - g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb, - g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb, - g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb, - g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb, - g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c, - gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb, - gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads, - gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb, - i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads, - impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb, - lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb, - lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb, - memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads, - mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb, - nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads, - output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb, - par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb, - prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb, - prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb, - prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads, - rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb, - s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads, - s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb, - s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb, - s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb, - s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb, - s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb, - s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, - s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads, - s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb, - s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads, - s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads, - s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb, - s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, - s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads, - s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb, - sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb, - sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, - sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads, - sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb, - sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb, - sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb, - sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb, - sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb, - sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb, - sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads, - snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads, - stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads, - table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb, - tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb, - treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads, - types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb, - utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb, - xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes. - - * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads, - g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads, - mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads, - osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files - - * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb, - 5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed - - * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed - to mdll-fil.ad[bs] and mdll-util.ad[bs] - - * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed - from mdllfile.ad[bs] and mdlltool.ad[bs] - -2002-03-03 Kaveh R. Ghazi - - * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in - lieu of explicit sizeof/sizeof. - -2002-02-28 Neil Booth - - * misc.c (copy_lang_decl): Remove. - -2002-02-27 Zack Weinberg - - * misc.c: Delete traditional-mode-related code copied from the - C front end but not used, or used only to permit the compiler - to link. - -2002-02-07 Richard Henderson - - * adaint.c (__gnat_to_gm_time): First arg is int, not time_t. - * adaint.h (__gnat_to_gm_time): Update prototype. - -2002-01-30 Richard Henderson - - * trans.c (tree_transform) [N_Loop_Statement]: Use - expand_exit_loop_top_cond. - -2001-12-23 Richard Henderson - - * utils.c (end_subprog_body): Push GC context around - rest_of_compilation for nested functions. - -2001-12-23 Richard Henderson - - * 5nosinte.ads: Get definition of "int" from Interfaces.C. - -2001-12-23 Florian Weimer - - * gnat-style.texi (Declarations and Types): Remove ancient style - rule which was mandated by code generation issues. - - * gnat-style.texi (header): Add @dircategory, @direntry. - (title page): Remove date. - (general) Add @./@: where approriate, and two spaces after the - full stop at the end of a sentence. Use @samp markup when - referring concrete lexical entities (keywords, attribute names - etc.), and @syntax for ARM grammar elements. Use @r for English - text in comments. Use @emph for emphasis. Change "if-statements" - etc. to "if statements" (without @samp). Break long lines. Make - casing of section names consistent. - (Identifiers): Use @samp markup for variable names. - (Comments): Use @samp markup for comment characters. Line-end - comments may follow any Ada code, not just statements. Fix - misspelling of "Integer" as "integer". - (Loop statements): Do not use variable name "I", use "J". - (Subprogram Declarations): Document alignment. - (Subprogram Bodies, Block statements): Document empty line before - "begin". - -2001-12-22 Florian Weimer - - * make.adb (Add_Switch): Make Generic_Position a procedure. The - function approach did not work well because of a side effect (the - function call could reallocate the table which was being indexed - using its result). Fixes ada/4851. - -2001-12-19 Robert Dewar - - * bindgen.adb: Minor reformatting - - * cstand.adb: Minor reformatting - - * fmap.adb: Minor reformatting - Change name from Add for Add_To_File_Map (Add is much too generic) - Change Path_Name_Of to Mapped_Path_Name - Change File_Name_Of to Mapped_File_Name - Fix copyright dates in header - - * fmap.ads: - Change name from Add for Add_To_File_Map (Add is much too generic) - Change Path_Name_Of to Mapped_Path_Name - Change File_Name_Of to Mapped_File_Name - Fix copyright dates in header - - * fname-uf.adb: Minor reformatting. New names of stuff in Fmap. - Add use clause for Fmap. - - * make.adb: Minor reformatting - - * osint.adb: Minor reformatting. Change of names in Fmap. - Add use clause for Fmap. - - * prj-env.adb: Minor reformatting - - * prj-env.ads: Minor reformatting - - * switch.adb: Minor reformatting. Do proper raise of Bad_Switch if - error found (there were odd exceptions to this general rule in - -gnatec/-gnatem processing) - -2001-12-19 Olivier Hainque - - * raise.c (__gnat_eh_personality): Exception handling personality - routine for Ada. Still in rough state, inspired from the C++ version - and still containing a bunch of debugging artifacts. - (parse_lsda_header, get_ttype_entry): Local (static) helpers, also - inspired from the C++ library. - - * raise.c (eh_personality): Add comments. Part of work for the GCC 3 - exception handling integration. - -2001-12-19 Arnaud Charlet - - * Makefile.in: Remove use of 5smastop.adb which is obsolete. - (HIE_SOURCES): Add s-secsta.ad{s,b}. - (HIE_OBJS): Add s-fat*.o - (RAVEN_SOURCES): Remove files that are no longer required. Add - interrupt handling files. - (RAVEN_MOD): Removed, no longer needed. - -2001-12-19 Robert Dewar - - * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always - Add 2001 to copyright date - - * g-regpat.adb: Change pragma Inline_Always to Inline. There is no - need to force universal inlining for these cases. - -2001-12-19 Arnaud Charlet - - * s-taprob.adb: Minor clean ups so that this unit can be used in - Ravenscar HI. - - * exp_ch7.adb: Allow use of secondary stack in HI mode. - Disallow it when pragma Restrictions (No_Secondary_Stack) is specified. - -2001-12-19 Vincent Celier - - * prj-tree.ads (Project_Node_Record): Add comments for components - Pkg_Id and Case_Insensitive. - -2001-12-19 Pascal Obry - - * g-socket.adb: Minor reformatting. Found while reading code. - -2001-12-19 Robert Dewar - - * prj-tree.ads: Minor reformatting - -2001-12-20 Joseph S. Myers - - * config-lang.in (diff_excludes): Remove. - -2001-12-17 Ed Schonberg - - * sem_res.adb (Resolve_Selected_Component): do not generate a - discriminant check if the selected component is a component of - the argument of an initialization procedure. - - * trans.c (tree_transform, case of arithmetic operators): If result - type is private, the gnu_type is the base type of the full view, - given that the full view itself may be a subtype. - -2001-12-17 Robert Dewar - - * sem_res.adb: Minor reformatting - - * trans.c (tree_transform, case N_Real_Literal): Add missing third - parameter in call to Machine (unknown horrible effects from this - omission). - - * urealp.h: Add definition of Round_Even for call to Machine - Add third parameter for Machine - -2001-12-17 Ed Schonberg - - * sem_warn.adb (Check_One_Unit): Suppress warnings completely on - predefined units in No_Run_Time mode. - -2001-12-17 Richard Kenner - - * misc.c (insn-codes.h): Now include. - -2001-12-17 Olivier Hainque - - * a-except.adb: Preparation work for future integration of the GCC 3 - exception handling mechanism - (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines - to factorize previous code sequences and make them externally callable, - e.g. for the Ada personality routine when the GCC 3 mechanism is used. - (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler): - Use the new notification routines. - -2001-12-17 Emmanuel Briot - - * prj-tree.ads (First_Choice_Of): Document the when others case - -2001-12-17 Arnaud Charlet - - * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in - HI-E mode, in order to support Ravenscar profile properly. - - * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E - mode on 32 bits targets. - -2001-12-17 Vincent Celier - - * fmap.adb: Initial version. - - * fmap.ads: Initial version. - - * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped. - If search is successfully done, add to mapping. - - * frontend.adb: Initialize the mapping if a -gnatem switch was used. - - * make.adb: - (Gnatmake): Add new local variable Mapping_File_Name. - Create mapping file when using project file(s). - Delete mapping file before exiting. - - * opt.ads (Mapping_File_Name): New variable - - * osint.adb (Find_File): Use path name found in mapping, if any. - - * prj-env.adb (Create_Mapping_File): New procedure - - * prj-env.ads (Create_Mapping_File): New procedure. - - * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem - (Mapping_File) - - * usage.adb: Add entry for new switch -gnatem. - - * Makefile.in: Add dependencies for fmap.o. - -2001-12-17 Ed Schonberg - - * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit - is a package instantiation rewritten as a package body. - (Install_Withed_Unit): Undo previous change, now redundant. - -2001-12-17 Gary Dismuke - - * layout.adb: - (Compute_Length): Move conversion to Unsigned to callers. - (Get_Max_Size): Convert Len expression to Unsigned after calls to - Compute_Length and Determine_Range. - (Layout_Array_Type): Convert Len expression to Unsigned after calls to - Compute_Length and Determine_Range. - Above changes fix problem with length computation for supernull arrays - where Max (Len, 0) wasn't getting applied due to the Unsigned - conversion used by Compute_Length. - -2001-12-17 Arnaud Charlet - - * rtsfind.ads: - (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and - System.Secondary_Stack. - (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar - in HI-E mode. - Remove unused entity RE_Exception_Data. - - * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode. - - * rident.ads (No_Secondary_Stack): New restriction. - -2001-12-17 Joel Brobecker - - * gnat_rm.texi: Fix minor typos. Found while reading the section - regarding "Bit_Order Clauses" that was sent to a customer. - Very interesting documentation! - -2001-12-17 Robert Dewar - - * sem_case.adb (Choice_Image): Avoid creating improper character - literal names by using the routine Set_Character_Literal_Name. This - fixes bombs in certain error message cases. - -2001-12-17 Arnaud Charlet - - * a-reatim.adb: Minor reformatting. - -2001-12-17 Ed Schonberg - - * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the - case where the formal is an extension of another formal in the current - unit or in a parent generic unit. - -2001-12-17 Arnaud Charlet - - * s-tposen.adb: Update comments. Minor reformatting. - Minor code clean up. - - * s-tarest.adb: Update comments. Minor code reorganization. - -2001-12-17 Gary Dismukes - - * exp_attr.adb (Attribute_Tag): Suppress expansion of 'Tag - when Java_VM. - -2001-12-17 Robert Dewa - - * exp_attr.adb: Minor reformatting - -2001-12-17 Ed Schonberg - - * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle - derivations nested within a child unit: verify that the parent - type is declared in an outer scope. - -2001-12-17 Robert Dewar - - * sem_ch12.adb: Minor reformatting - -2001-12-17 Ed Schonberg - - * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post - warning if current unit is a predefined one, from which bodies may - have been deleted. - -2001-12-17 Robert Dewar - - * eval_fat.ads: Add comment that Round_Even is referenced in Ada code - Fix header format. Add 2001 to copyright date. - - * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference, - which caused CE during compilation if checks were enabled. - -2001-12-17 Vincent Celier - - * make.adb: - (Switches_Of): New function - (Test_If_Relative_Path): New procedure - (Add_Switches): Use new function Switches_Of - (Collect_Arguments_And_Compile): Use new function Switches_Of. - When using a project file, test if there are any relative - search path. Fail if there are any. - (Gnatmake): Only add switches for the primary directory when not using - a project file. When using a project file, change directory to the - object directory of the main project file. When using a project file, - test if there are any relative search path. Fail if there are any. - When using a project file, fail if specified executable is relative - path with directory information, and prepend executable, if not - specified as an absolute path, with the exec directory. Make sure - that only one -o switch is transmitted to the linker. - - * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir - - * prj-nmsc.adb: - (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc, - when using a non standard naming scheme. - (Check_Ada_Naming_Scheme): Make sure that error messages - do not raise exceptions. - (Is_Illegal_Append): Return True if there is no dot in the suffix. - (Language_Independent_Check): Check the exec directory. - - * prj.adb (Project_Empty): Add new component Exec_Directory - - * prj.ads: - (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults. - (Project_Data): Add component Exec_Directory - - * snames.adb: Updated to match snames.ads revision 1.215 - - * snames.ads: Added Exec_Dir - -2001-12-17 Robert Dewar - - * make.adb: Minor reformatting - - * prj-nmsc.adb: Minor reformatting - - * snames.adb: Updated to match snames.ads - - * snames.ads: Alphebetize entries for project file - -2001-12-17 Ed Schonberg - - * trans.c (process_freeze_entity): Do nothing if the entity is a - subprogram that was already elaborated. - -2001-12-17 Richard Kenner - - * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment - and Esize if object is referenced via pointer. - -2001-12-17 Ed Schonberg - - * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant - is discrete before analyzing choices. - -2001-12-17 Joel Brobecker - - * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string - containing the name of the Ada Main Program. This string is mainly - intended for the debugger. - (Gen_Output_File_C): Do the equivalent change when generating a C file. - -2001-12-17 Robert Dewar - - * ali.adb: Set new Dummy_Entry field in dependency entry - - * ali.ads: Add Dummy_Entry field to source dependency table - - * bcheck.adb (Check_Consistency): Ignore dummy D lines - - * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files - - * lib-writ.ads: Document dummy D lines for missing files. - - * types.ads: (Dummy_Time_Stamp): New value for non-existant files - -2001-12-17 Robert Dewar - - * ali.adb: Type reference does not reset current file. - - * ali.adb: Recognize and scan renaming reference - - * ali.ads: Add spec for storing renaming references. - - * lib-xref.ads: Add documentation for handling of renaming references - - * lib-xref.adb: Implement output of renaming reference. - - * checks.adb: - (Determine_Range): Document local variables - (Determine_Range): Make sure Hbound is initialized. It looks as though - there could be a real problem here with an uninitialized reference - to Hbound, but no actual example of failure has been found. - -2001-12-17 Laurent Pautet - - * g-socket.ads: - Fix comment of Shutdown_Socket and Close_Socket. These functions - should not fail silently because if they are called twice, this - probably means that there is a race condition in the user program. - Anyway, this behaviour is consistent with the rest of this unit. - When an error occurs, an exception is raised with the error message - as exception message. - -2001-12-17 Robert Dewar - - * frontend.adb: Move call to Check_Unused_Withs from Frontend, so - that it happens before modification of Sloc values for -gnatD. - - * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend, - so that it happens before modification of Sloc values for -gnatD. - - * switch.adb: Minor reformatting - -2001-12-15 Richard Henderson - - * sem_ch7.adb: Wrap comment. - -2001-12-16 Joseph S. Myers - - * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb, - 5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb, - 5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb, - 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb, - 5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb, - 7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in, - a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb, - a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb, - cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb, - exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb, - exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads, - g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb, - gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c, - make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads, - par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb, - repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, - s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb, - s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads, - s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads, - s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb, - sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb, - sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb, - sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads, - sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix - spelling errors. - -2001-12-14 Vincent Celier - - * osint.adb(Create_Debug_File): When an object file is specified, - put the .dg file in the same directory as the object file. - -2001-12-14 Robert Dewar - - * osint.adb: Minor reformatting - - * lib-xref.adb (Output_Instantiation): New procedure to generate - instantiation references. - - * lib-xref.ads: Add documentation of handling of generic references. - - * ali.adb (Read_Instantiation_Ref): New procedure to read - instantiation references - - * ali.ads: Add spec for storing instantiation references - - * bindusg.adb: Minor reformatting - - * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5) - - * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5) - - * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5) - - * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5) - - * csets.ads: - Fix header format - Add 2001 to copyright date - Add entry for Latin-5 (Cyrillic ISO-8859-5) - -2001-12-14 Matt Gingell - - * adaint.c: mktemp is a macro on Lynx and can not be used as an - expression. - -2001-12-14 Richard Kenner - - * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR - if operand is CONSTRUCTOR. - -2001-12-14 Ed Schonberg - - * trans.c (tree_transform, case N_Assignment_Statement): Set lineno - before emiting check on right-hand side, so that exception information - is correct. - -2001-12-14 Richard Kenner - - * utils.c (create_var_decl): Throw away initializing expression - if just annotating types and non-constant. - -2001-12-14 Vincent Celier - - * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to - Default_Ada_... - - * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix): - Remove functions. - (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec. - - * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix): - Remove functions. - (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body. - -2001-12-16 Joseph S. Myers - - * ChangeLog: Remove piece of diff output. - -2001-12-14 Geert Bosch - - * config-lang.in: Update copyright notice - - * layout.adb: Remove commented out code. - - * mdllfile.ads: Update copyright notice. Fix header format. - - * sem_case.ads: Likewise. - - * sem_ch3.adb: Minor reformatting. - -2001-12-12 Geert Bosch - - * freeze.ads: Update copyright date. - - * g-comlin.ads: Minor reformatting. - - * gnat-style.texi: Fix typo. - -2001-12-12 Geert Bosch - - * einfo.h: Regenerate. - -2001-12-12 Ed Schonberg - - * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names - on known node types, rather than untyped fields. Further cleanups. - -2001-12-12 Robert Dewar - - * sem_ch12.adb: - (Save_Entity_Descendant): Minor comment update. - (Copy_Generic_Node): Deal with incorrect reference to Associated_Node - of an N_Attribute_Reference node. As per note below, this does not - eliminate need for Associated_Node in attribute ref nodes. - (Associated_Node): Documentation explicitly mentions attribute - reference nodes, since this field is used in such nodes. - - * sem_ch12.adb (Associated_Node): Minor documentation cleanup. - -2001-12-12 Robert Dewar - - * s-stalib.adb: Add more comments on with statements being needed - - * par-ch12.adb: Minor reformatting - - * prj-dect.ads: Fix copyright header - - * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both - inputs fit in 32 bits, but the result still overflows. - - * s-fatgen.ads: Minor comment improvement - -2001-12-12 Ed Schonberg - - * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a - formal derived type, look for an inherited component from the full - view of the parent, if any. - -2001-12-12 Robert Dewar - - * checks.ads (Apply_Alignment_Check): New procedure. - - * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to - ensure that the alignment of objects with address clauses is - appropriate, and raise PE if not. - - * exp_util.ads (Must_Be_Aligned): Removed, replaced by - Exp_Pakd.Known_Aligned_Enough - - * mdllfile.ads: Minor reformatting - - * mlib-fil.ads: Minor reformatting - -2001-12-12 Ed Schonberg - - * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous - fix to any component reference if enclosing record has non-standard - representation. - -2001-12-12 Vincent Celier - - * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package - Iteration - -2001-12-12 Ed Schonberg - - * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in - sem_attr. - -2001-12-12 Robert Dewar - - * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration - -2001-12-12 Emmanuel Briot - - * g-regexp.adb: Remove all debug code, since it isn't required anymore, - and it adds dependencies to system.io. - -2001-12-12 Pascal Obry - - * g-dirope.adb (Expand_Path.Var): Correctly detect end of - variable name. - -2001-12-11 Ed Schonberg - - * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance - that is the parent of other generics, the instance body replaces the - instance node. Retrieve the instance of the spec, which is the one - that is visible in clients and within the body. - -2001-12-11 Vincent Celier - - * gnatmain.adb: Initial version. - - * gnatmain.ads: Initial version. - - * prj-attr.adb (Initialisation_Data): Add package Gnatstub. - - * snames.adb: Updated to match snames.ads. - - * snames.ads: Added Gnatstub. - -2001-12-11 Vincent Celier - - * prj-attr.adb (Initialization_Data): Change name from - Initialisation_Data. - -2001-12-11 Emmanuel Briot - - * g-regpat.adb (Parse_Literal): Properly handle simple operators ?, - + and * applied to backslashed expressions like \r. - -2001-12-11 Vasiliy Fofanov - - * g-os_lib.ads: String_List type added, Argument_List type is now - subtype of String_List. - -2001-12-11 Robert Dewar - - * g-os_lib.ads: Change copyright to FSF - Add comments for String_List type - -2001-12-11 Vincent Celier - - * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a - string to the buffer). - -2001-12-11 Ed Schonberg - - * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in - sem_attr. - - * sem_attr.adb: Simplify previous fix for Address. - (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now, - to avoid anomalies where the bound of the type appears to raise - constraint error. - -2001-12-11 Robert Dewar - - * lib-xref.adb (Output_Refs): Make sure pointers are always properly - handled. - -2001-12-11 Ed Schonber - - * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a - renamed unit before checking for recursive instantiations. - -2001-12-11 Emmanuel Briot - - * prj.ads: Add comments for some of the fields. - -2001-12-11 Robert Dewar - - * lib-xref.adb (Output_Refs): Don't output type references outside - the main unit if they are not otherwise referenced. - -2001-12-11 Ed Schonberg - - * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify - code and diagnose additional illegal uses - - * sem_util.adb (Is_Object_Reference): An indexed component is an - object only if the prefix is. - -2001-12-11 Vincent Celier - - * g-diopit.adb: Initial version. - - * g-diopit.ads: Initial version. - - * g-dirope.adb: - (Expand_Path): Avoid use of Unbounded_String - (Find, Wildcard_Iterator): Moved to child package Iteration - - * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS - -2001-12-11 Robert Dewar - - * sem_attr.adb: Minor reformatting - -2001-12-11 Ed Schonberg - - * sem_ch3.adb: Clarify some ???. - -2001-12-11 Robert Dewar - - * exp_util.adb (Must_Be_Aligned): Removed, replaced by - Exp_Pakd.Known_Aligned_Enough - - * sem_ch13.adb (Check_Address_Alignment): Removed, extended - version is moved to Exp_Ch13. - -2001-12-11 Robert Dewar - - * einfo.ads: Minor reformatting - - * exp_ch5.adb: Add comment for previous.change - - * ali.adb: New interface for extended typeref stuff. - - * ali.ads: New interface for typeref stuff. - - * checks.adb (Apply_Alignment_Check): New procedure. - - * debug.adb: Add -gnatdM for modified ALI output - - * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough. - - * lib-xref.adb: Extend generation of <..> notation to cover - subtype/object types. Note that this is a complete rewrite, - getting rid of the very nasty quadratic algorithm previously - used for derived type output. - - * lib-xref.ads: Extend description of <..> notation to cover - subtype/object types. Uses {..} for these other cases. - Also use (..) for pointer types. - - * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup. - - * exp_pakd.adb: Minor reformatting. Note that prevous RH should say: - (Known_Aligned_Enough): Replaces Must_Be_Aligned. - -2001-12-11 Vincent Celier - - * gnatcmd.adb: - Changed /COMPILE_ONLY to /ACTIONS=COMPILE - Changed /BIND_ONLY to /ACTIONS=BIND - Changed /LINK_ONLY to /ACTIONS=LINK - -2001-12-11 Ed Schonberg - - * sem_ch8.adb (Find_Selected_Component): improved search for a - candidate package in case of error. - - * sem_ch12.adb (Inline_Instance_Body): place head of use_clause - chain back on scope stack before reinstalling use clauses. - - * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings - is enabled, do not kill the code for the condition, to preserve - warning. - -2001-12-11 Robert Dewar - - * checks.adb (Insert_Valid_Check): Apply validity check to expression - of conversion, not to result of conversion. - -2001-12-11 Ed Schonberg - - * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag - before freezing parent. If the declarations are mutually recursive, - an access to the current record type may be frozen before the - derivation is complete. - -2001-12-05 Vincent Celier - - * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY, - -c /COMPILE_ONLY, -l /LINK_ONLY - - * opt.ads: - (Bind_Only): New Flag - (Link_Only): New flag - - * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only) - and -l (Link_Only) - - * makeusg.adb: Add new switches -b and -l. Update Copyright notice. - - * make.adb: - (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags. - (Gnatmake): Set the step flags. Only perform a step if the - corresponding step flag is True. - (Scan_Make_Arg): Reset the bind and link step flags when -u - or -gnatc has been specified. - -2001-12-05 Ed Schonberg - - * sem_eval.adb (Eval_Concatenation): If left operand is a null string, - get bounds from right operand. - - * sem_eval.adb: Minor reformatting - - * exp_util.adb (Make_Literal_Range): use bound of literal rather - than Index'First, its lower bound may be different from 1. - - * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B - and C48009J - -2001-12-05 Vincent Celier - - * prj-nmsc.adb Minor reformatting - - * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if - set and libraries are not supported. - -2001-12-05 Ed Schonberg - - * sem_ch3.adb (Build_Derived_Private_Type): set Public status of - private view explicitly, so the back-end can treat as a global - when appropriate. - -2001-12-05 Ed Schonberg - - * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation - unit, always replace instance node with new body, for ASIS use. - -2001-12-05 Vincent Celier - - * prj-nmsc.adb (Language_Independent_Check): Issue a warning if - libraries are not supported and both attributes Library_Name and - Library_Dir are specified. - - * prj-proc.adb (Expression): Set location of Result to location of - first term. - - * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS. - (prj-nmsc is now importing MLib.Tgt) - - * prj-proc.adb: Put the change indicated above that was forgotten. - -2001-12-05 Robert Dewar - - * Makefile.in: Add dependencies for System.IO for GNAT.Regexp - -2001-12-05 Ed Schonberg - - * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a - constraint, introduce explicit subtype declaration and derive from it. - - * sem_ch3.adb: Minor reformatting - -2001-12-05 Robert Dewar - - * checks.adb (Determine_Range): Increase cache size for checks. - Minor reformatting - - * exp_ch6.adb: Minor reformatting - (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has - a parameter whose root type is System.Address, since treating such - subprograms as pure in the code generator is almost surely a mistake - that will lead to unexpected results. - - * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and - change handling of conversions. - - * g-regexp.adb: Use System.IO instead of Ada.Text_IO. - -2001-12-05 Ed Schonberg - - * sem_ch3.adb (Analyze_Object_Declaration): If expression is an - aggregate with static wrong size, attach generated Raise node to - declaration. - -2001-12-05 Robert Dewar - - * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute. - Fixes compilation abandoned bomb in B24009B. - -2001-12-05 Ed Schonberg - - * sem_ch12.adb: - Document use of Associated_Node on Selected_Components. - (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants, - to clarify use of untyped descendant fields. - -2001-12-05 Robert Dewar - - * prj-dect.ads: Add ??? comment - Add 2001 to copyright notice (was not done in after all) - - * prj-part.adb: Minor reformatting. Reword one awkward error message. - - * prj.ads: Minor reformatting throughout, and add some ??? comments - - * snames.ads: Minor reformatting - -2001-12-05 Geert Bosch - - * snames.adb: Autoupdate - -2001-12-05 Vincent Celier - - * prj-dect.adb (Parse): Rename parameter Modifying to Extends. - - * prj-dect.ads (Parse): Rename parameter Modifying to Extends. - - * prj-env.adb: Minor comment changes (modifying -> extends). - - * prj-nmsc.adb: Minor comment changes (modifying -> extends). - - * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to - Tok_Extends. - - * prj.adb (Initialize): Change Modifying to Extends. - - * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends. - - * prj.ads: Minor comment change (Modifying -> extending). - - * snames.ads: Change modifying to extends. - -2001-12-05 Robert Dewar - - * sem_warn.adb: Remove stuff for conditionals, we are not going to - do this after all. - - * sem_warn.ads: Remove stuff for conditionals, we are not going to - do this after all. Add 2001 to copyright notice - -2001-12-04 Geert Bosch - - * einfo.h, sinfo.h, treeprs.ads: Regenerate. - -2001-12-04 Robert Dewar - - * errout.adb (Error_Msg): Ignore attempt to put error msg at junk - location if we already have errors. Stops some cases of cascaded - errors. - - * errout.adb: Improve comment. - -2001-12-04 Robert Dewar - - * sem_ch12.adb: - (Analyze_Formal_Type_Definition): Defend against Error. - (Analyze_Formal_Subprogram): Defend against Error. - - * par-ch12.adb (F_Formal_Type_Declaration): In case of error, - remove following semicolon if present. Removes cascaded error. - -2001-12-04 Douglas B. Rupp - - * bindgen.adb: - (Gen_Exception_Table_Ada): Write "begin" and then return if Num - exceptions equals 0. - (Gen_Exception_Table_C): Return if Num exceptions equals 0. - Fixes PIWG E tests (which have to be run with -gnatL). - -2001-12-04 Robert Dewar - - * einfo.ads: Minor reformatting - -2001-12-04 Ed Schonberg - - * einfo.ads: Block_Node points to the identifier of the block, not to - the block node itself, to preserve the link when the block is - rewritten, e.g. within an if-statement with a static condition. - - * inline.adb (Cleanup_Scopes): recover block statement from block - entity using new meaning of Block_Node. - - * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to - identifier of block node, rather than to node itself. - -2001-12-04 Gary Dismukes - - * layout.adb: - (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size. - (Discrimify): Go back to setting the Etypes of the selected component - because the Vname component does not exist at this point and will - fail name resolution. Also set Analyzed. - Remove with and use of Sem_Res. - -2001-12-04 Arnaud Charlet - - * Makefile.in: (HIE_SOURCES): add s-fat*. - -2001-12-04 Robert Dewar - - * sem_attr.adb: - (Compile_Time_Known_Attribute): New procedure. - (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure - proper range check. - -2001-12-04 Ed Schonberg - - * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before - processing discriminants to diagnose illegal default values. - -2001-12-04 Ed Schonberg - - * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide - access discriminant within a type extension that constrains its - parent discriminants. - -2001-12-04 Ed Schonberg - - * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication - is malformed, use instance of Any_Id to allow analysis to proceed. - - * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if - type definition is illegal. - (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is - misplaced. - -2001-12-04 Ed Schonberg - - * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to - constants. - -2001-12-04 Robert Dewar - - * errout.adb: Minor reformatting - -2001-12-04 Robert Dewar - - * exp_util.adb: Minor reformatting from last change - - * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node - which is a rewriting of an expression, traverse the original - expression to remove warnings that may have been posted on it. - -2001-12-04 Ed Schonberg - - * exp_util.adb (Must_Be_Aligned): Return false for a component of a - record that has other packed components. - -2001-12-04 Douglass B. Rupp - - * adaint.c: Minor cleanups. - -2001-12-04 Douglass B. Rupp - - * adaint.c: Do not use utime.h on vxworks. - -2001-12-04 Arnaud Charlet - - * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes - more confusion than it solves. - -2001-12-04 Geert bosch - - * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate. - -2001-12-04 Geert Bosch - - * Makefile.in (update-sources): New target. - For use by gcc_release script. - -2001-12-04 Ed Schonberg - - * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as - a configuration pragma, it is now legal wherever a pragma can appear. - -2001-12-04 Zack Weinberg - - * Makefile.in: Don't set ALL. Delete @cross_defines@, - @cross_overrides@, @build_overrides@ stanzas. INTERNAL_CFLAGS - is now @CROSS@ -DIN_GCC; update comment. - -2001-12-04 Robert Dewar - - * einfo.adb (Has_Pragma_Pure_Function): New flag. - Fix problem that stopped ceinfo from working - - * einfo.ads (Has_Pragma_Pure_Function): New flag. - - * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function. - -2001-12-04 Douglas B. Rupp - - * gnatchop.adb: - (File_Time_Stamp): New procedure. - (Preserve_Mode): New boolean. - (Write_Unit): Pass time stamp. - Implement -p switch (preserve time stamps). - - * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE). - - * gnatchop.adb: Do usage info for -p switch - - * adaint.h (__gnat_set_file_time_name): New function - - * adaint.c (__gnat_set_file_time_name): Implement - - * adaint.h: Fix typo - -2001-12-03 Robert Dewar - - * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not - have Associated_Node. - -2001-12-03 Robert Dewar - - * prj-proc.adb: Minor reformatting - - * make.adb: Minor reformatting - -2001-12-03 Geert Bosch - - * make.adb: Minor reformatting. - -2001-12-03 Robert Dewar - - * sem_ch12.adb: Minor reformatting - -2001-12-03 Ed Schonberg - - * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and - push Standard on the stack before analyzing the instance body, - in order to have a clean visibility environment. - - * sem_ch12.adb (Inline_Instance_Body): Remove redundant code. - -2001-12-03 Ed Schonberg - - * sem_ch12.adb (Instantiate_Package_Body): Protect against double - instantiation of a body that contains an inlined body. - -2001-12-03 Ed Schonberg - - * sem_ch12.adb: - (Analyze_generic_subprogram_Declaration): Set outer_generic_scope, - to prevent freezing within formal packages. - (Freeze_Subprogram_Body): If body comes from another instance that - appeared before its own body, place freeze node at end of current - declarative part, to prevent a back-end crash. - (Inline_Instance_Body): Handle properly a package instance within - a subprogram instance that is a child unit. - -2001-12-01 Graham Stott - - * Makefile.in (misc.o): Add missing $(srcdir) prefix - and add optabs.h dependency. - - * misc.c: Include optabs.h - (gnat_tree_code_type): Make static and const. - (gnat_tree_code_length): Likewise. - (gnat_tree_code_name): Likewise. - (update_setjmp_buf): Obtain operands mode from insn_data. - -2001-11-29 Richard Henderson - - * init.c: Remove obsolete dwarf2 frame.h section. - -2001-11-29 Joseph S. Myers - - * Make-lang.in (ada.generated-manpages): New dummy target. - -2001-11-29 Ed Schonberg - - * g-os_lib.adb (Add_To_Command): use explicit loop to move string - into Command, an array conversion is illegal here. Uncovered by - ACATS B460005. - -2001-11-28 Geert Bosch - - * init.c: Minor whitespace changes. - -2001-11-28 Doug Rupp - - * init.c: (__gnat_install_handler,VMS): Increase size of alternate - signal stack. - -2001-11-28 Zack Weinberg - - * misc.c (gnat_expand_constant): Move declaration above - definition of lang_hooks. - (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant. - (gnat_init): lang_expand_constant no longer exists. - - (internal_error_function): Remove #ifdef HAVE_VPRINTF. We - always have vprintf. - (gnat_init): Always call set_internal_error_function. - -2001-11-27 Andreas Jaeger - - * Makefile.in (stamp-tool_src_dir): Use symbolic link. - -2001-11-27 Laurent Guerby - - * Makefile.in: Regenerate Ada dependencies. - -2001-11-26 Richard Henderson - - * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd, - gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys, - gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o. - -2001-11-25 Laurent Guerby - - * sysdep.c (rts_get_*): Fix style. - -2001-11-19 Laurent Guerby - - * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include - since it is of no apparent use and cause warnings. - -2001-11-18 Neil Booth - - * misc.c (gnat_decode_option, gnat_init_options): Make definitions - static too. - (gnat_init): Don't return NULL. - (finish_parse): Remove. - -2001-11-17 Laurent Guerby - - * Make-lang.in (GNATLIBFLAGS): Add -W -Wall. - * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing. - * io-aux.c: Provide K&R prototypes to all functions, reformat code. - * lang-spec.h: Add missing struct field to silence warnings. - * sysdep.c (rts_get_*): Provide K&R prototype. - * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype. - * traceback.c (Unlock_Task, Lock_Task): Likewise. - * tracebak.c (__gnat_backtrace): Remove unused variable. - * utils.c (end_subprog_body): Move to K&R style. - -Thu Nov 15 18:16:17 2001 Richard Kenner - - * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference. - -2001-11-15 Neil Booth - - * misc.c (gnat_init): Change prototype. Include the - functionality of the old init_parse and init_decl_processing. - (gnat_init_decl_processing): New prototype. - (init_parse): Remove. - * utils.c (init_decl_processing): Rename gnat_init_decl_processing. - -2001-11-09 Neil Booth - - * misc.c (gnat_print_decl, gnat_print_type): Renamed. - (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override. - (print_lang_statistics, lang_print_xnode, print_lang_identifier, - set_yydebug): Remove. - -2001-11-09 Neil Booth - - * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override. - (struct lang_hooks): Constify. - (language_string, lang_identify): Remove. - * utils.c (init_decl_processing): Update. - -2001-11-06 Neil Booth - - * misc.c: Include langhooks-def.h. - * Makefile.in: Update. - -2001-10-30 Robert Dewar - - * style.adb: - (Check_Identifier): Rewrite circuit to be compatible with use of letters - in the upper half of ASCII. - (Check_Identifier): Minor reformatting - -2001-10-30 Geert Bosch - - * (Associated_Node, Set_Associated_Node): Do not check for - Freeze_Entity. - -2001-10-30 Robert Dewar - - * a-reatim.ads: Minor reformatting - -2001-10-30 Robert Dewar - - * gnatdll.adb: Minor reformatting throughout. Many ??? added for - undocumented declarations. - -2001-10-30 Pascal Obry - - * gnatdll.adb (Parse_Command_Line): handle -g option to be passed - to the binder and linker. - Minor style fix. - - * mdll.ads: Fix layout. Update copyright notice. - - * mdll.adb: Fix layout. Update copyright notice. - -2001-10-30 Robert Dewar - - * usage.adb: Minor fix to output for -gnaty. - -2001-10-30 Ed Schonberg - - * a-reatim.ads: Makes Seconds_Count into a 64-bit integer, - to accommodate all its possible values. - - * a-reatim.adb (Split): Special-case handling of Time_Span_First - and of small absolute values of T. - -2001-10-30 Richard Kenner - - * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to - set_mem_attributes since not needed and wrong if RESULT if a REG; - fixes ACATS failures. - -2001-10-30 Geert Bosch - - * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads, - s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice. - -2001-10-30 Robert Dewar - - * bindusg.adb: Undocument -f switch. - - * gnatcmd.adb: Remove /FULL_ELABORATION. - - * opt.ads (Force_RM_Elaboration_Order): Document that this is - obsolescent. - - * gnatbind.adb: Output new warning for use of obsolescent -f switch. - - * gnatbind.adb: Minor update of warning msg. - -2001-10-30 Vincent Celier - - * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations - for project file switches (-P (/PROJECT_FILE=), - -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT - or MEDIUM or HIGH) - -2001-10-30 Geert Bosch - - * decl.c: Minor whitespace fixes. - -2001-10-30 Richard Kenner - - * utils2.c (build_allocator): Test for SIZE overflow in array case too - -2001-10-30 Geert Bosch - - * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out. - Found due to GCC 3.0 warning of using uninitialized value. - - * layout.adb: - (Get_Max_Size): Use variant record for tracking value/expression. - Makes logic clearer and prevents warnings for uninitialized variables. - (Layout_Array_Type): Use variant record for tracking value/expression. - Makes logic clearer and prevents warnings for uninitialized variables. - -2001-10-30 Robert Dewar - - * lib.adb: Minor reformatting - - * s-taprop.ads: Minor reformatting - -2001-10-29 Laurent Guerby - - * init.c: - (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg - const. - (_gnat_error_handler): Make MSG const. - -2001-10-29 Richard Kenner - - * sysdep.c: Fix localtime_r problem on LynxOS. - Also remove #elif to avoid warnings. - - * misc.c (yyparse): Don't set up and register jmpbuf; remove decls - used by this. - - * decl.c (annotate_value): Make SIZE unsigned to avoid warning. - -2001-10-28 Joseph S. Myers - - * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb, - exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb, - g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads, - g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c, - layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads, - s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads, - sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb, - sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb, - sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads, - types.ads, urealp.adb: Fix spelling errors. - -2001-10-27 Laurent Guerby - - * trans.c (gigi): Fix non determinism leading to bootstrap - comparison failures for debugging information. - -2001-10-26 Florian Weimer - - * gnat_rm.texi: Use @./@: where appropriate. - -2001-10-26 Robert Dewar - - * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup. - -2001-10-26 Richard Kenner - - * gmem.c (__gnat_gmem_read_next): Properly check for EOF - -2001-10-26 Richard Kenner - - * decl.c (validate_size): Modify message for bad size to avoid - implication that compiler is modifying the size. - -2001-10-26 Robert Dewar - - * prj-util.adb: Minor reformatting. Fix bad header format. - -2001-10-26 Robert Dewar - - * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup. - - * sinfo.ads: Clarify use of Associated_Node (documentation only). - - * sem_ch12.adb: Change Node4 to Associated_Node. Change - Associated_Node to Get_Associated_Node. Put use of Unchecked_Access - much more narrowly in places where needed. These are cleanups. - -2001-10-26 Joel Brobecker - - * 5zosinte.ads (null_pthread): new constant. - - * 5ztaprop.adb: - (Initialize_TCB): Initialize thread ID to null, to be able to verify - later that this field has been set. - (Finalize_TCB): ditto. - (Suspend_Task): Verify that the thread ID is not null before using it. - (Resume_Task): ditto. - - * s-tasdeb.adb: - (Resume_All_Tasks): Lock the tasks list before using it. - (Suspend_All_Tasks): ditto. - -2001-10-26 Richard Kenner - - * decl.c (gnat_to_gnu_entity, case E_General_Access_Type): - Make constant variant of designated type for Is_Access_Constant. - Call update_pointer_to with main variant. - - * trans.c (process_freeze_entity, process_type): - Call update_pointer_to on main variant. - - * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE. - If main variant, update all other variants. - - * utils2.c (build_unary_op, case INDIRECT_REF): No longer set - TREE_STATIC. - -2001-10-26 Robert Dewar - - * prj-util.adb: Minor reformatting - -2001-10-26 Robert Dewar - - * prj-util.adb: Minor reformatting - -2001-10-26 Robert Dewar - - * prj-attr.adb: Minor reformatting throughout - -2001-10-26 Robert Dewar - - * prj-attr.ads: Minor reformatting - Add ??? comment (this whole spec has almost no comments) - -2001-10-26 Vincent Celier - - * g-os_lib.adb (Normalize_Pathname): Preserve the double slash - ("//") that precede the drive letter on Interix. - -2001-10-26 Geert Bosch - - * gnat_rm.texi: Add GNAT Reference Manual. - -2001-10-25 Robert Dewar - - * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name - is Error. Similar change for other renaming cases. - -2001-10-25 Robert Dewar - - * s-atacco.ads: Add pragma Inline_Always for functions. - Fix header format. Add copyright 2001 - -2001-10-25 Ed Schonberg - - * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array - return Error rather than Empty so that analysis can proceed. - -2001-10-25 Ed Schonberg - - * sem_util.adb (Enter_Name): better handling of cascaded error - messages when a unit appears in its own context. - -2001-10-25 Ed Schonberg - - * sem_util.adb (Defining_Entity): in case of error, attach created - entity to specification, so that semantic analysis can proceed. - -2001-10-25 Robert Dewar - - * sem_util.adb - (Defining_Entity): Deal with Error. - (Process_End_Label): Deal with bad end label for. - -2001-10-25 Ed Schonberg - - * sem_elab.adb (Check_A_Call): refine message when call is in an - instance but callee is not declared in the generic unit. - -2001-10-25 Ed Schonberg - - * sem_elab.adb (Check_A_Call): check for renaming before finding the - enclosing unit, which may already be different from the calling unit. - -2001-10-25 Geert Bosch - - * 4gintnam.ads: fix header format. - -2001-10-25 Ed Schonberg - - * sem_res.adb (Resolve_Call): if the call is actually an indexing - operation on the result of a parameterless call, perform elaboration - check after the node has been properly rewritten. - - * sem_ch12.adb (Copy_Generic_Node): after the proper body has been - inlined within the generic tree, the defining identifier is not a - compilation_unit. - -2001-10-25 Ed Schonberg - - * sem_res.adb (Resolve): special-case resolution of Null in an - instance or an inlined body to avoid view conflicts. - - * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view - compatibility by retrieving the access type of the generic copy. - -2001-10-25 Robert Dewar - - * sem_ch3.adb: - (Analyze_Number_Declaration): Handle error expression. - (Signed_Integer_Type_Declaration): Handle error bound. - (Analyze_Subtype_Indication): Handle error range. - - * sem_util.adb (Get_Index_Bounds): Check for Error. - -2001-10-25 Robert Dewar - - * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default - in no run time mode. - -2001-10-25 Pascal Obry - - * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet - mode case for ALLOC case. - - * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on - all platforms. Improvement of last change. - -2001-10-25 Robert Dewar - - * exp_ch4.adb (Expand_N_Allocator): Minor reformatting. - -2001-10-25 Geert Bosch - - * osint.adb (Is_Relative): Remove duplicate. - -2001-10-25 Pascal Obry - - * osint.adb (Read_Default_Search_Dirs): correctly detect relative - pathnames in UNIX and DOS style with drive letter. - (Is_Relative): new routine. - - * osint.adb: Minor reformatting - - * osint.adb (Is_Relative): implementation using - GNAT.OS_Lib.Is_Absolute_Path. Better fix. - -2001-10-25 Pascal Obry - - * g-dirope.adb (Basename): correctly compute offset between the - original Path and the translated one. - - * g-dirope.adb: (Base_Name): add some comments. - -2001-10-25 Robert Dewar - - * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use - in HIE mode, avoids compilation abandoned message - - * exp_imgv.adb: Correct typo in previous change - - * exp_imgv.adb: Correct typo in previous change (not my day!) - -2001-10-25 Robert Dewar - - * s-tpinop.ads: Add 2001 to copyright notice. Fix header format. - -2001-10-25 Pascal Obry - - * g-awk.ads: Move all pragma inlines next to the routine - declarations. This is more uniform with other GNAT spec. - -2001-10-22 Geert Bosch - - * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem. - -2001-10-19 Geert Bosch - - * Makefile.in (tools, gnattools): Remove gnatmem. - -2001-10-17 Richard Henderson - - * Makefile.in (misc.o): Depend on langhooks.h. - * misc.c: Include it. - (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New. - (LANG_HOOKS_DECODE_OPTION): New. - (lang_hooks): Use LANG_HOOKS_INITIALIZER. - -2001-10-16 Florian Weimer - - * trans.c (tree_transform): Adjust to recent change in - expand_asm_operands to implement named asm operands. - -2001-10-11 Ed Schonberg - - * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in - renaming of discriminant for mutable record type. - -2001-10-11 Robert Dewar - - * validsw.adb: Properly save -gnatVn status. - -2001-10-11 Robert Dewar - - * usage.adb: Add lines for V switch. - - * gnatcmd.adb (COMPILE): Revise translations for -gnatV - (/VALIDITY_CHECKING). - -2001-10-11 Ed Schonberg - - * sem_type.adb (Add_One_Interp): an operator for a type declared in - an extension of System is known to be visible. - -2001-10-11 Ed Schonberg - - * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal - properly. Fixes regression on ACATS C34005G. - -2001-10-11 Robert Dewar - - * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null - loop in generic instance, since this is likely not very useful. - -2001-10-11 Robert Dewar - - * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize - the error message for high integrity mode. - - * rtsfind.adb (RTE): Give message if we try to find an entity that - is not available in high integrity mode. - - * rtsfind.ads: - (OK_To_Use_In_HIE_Mode): New array. - (RTE): May return Empty in high integrity mode. - - * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for - OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx. - - * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined - unit if not inlined always and in no runtime mode. Fixes problem - caused by new Rtsfind changes. - - * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if - body is deleted. - - * rtsfind.adb (RTE): Make sure we do not try to load unit after - giving message for entity not available in high integrity mode. - -2001-10-11 Pascal Obry - - * impunit.adb: Add GNAT.CRC32. - -2001-10-11 Ed Schonberg - - * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle - properly the case where one universal operand in a non-static - exponentiation of a real literal. - -2001-10-11 Ed Schonberg - - * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type - clause, return the gobal finalization list, for lack of anthing else. - -2001-10-11 Ed Schonberg - - * exp_ch7.adb (Make_Transient_Block): if statement is within - exception handler, always use new transient scope to place Clean - procedure. - -2001-10-11 Pascal Obry - - * Makefile.in: - (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o - (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o - (GNATLS_RTL_OBJS): add g-crc32.o - (GNATMAKE_RTL_OBJS): add g-crc32.o - - * ali-util.adb: - (CRC_Match): new function. - (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit - instead of the previous simple checksum algorithm. - (Time_Stamp_Mismatch): use CRC_Match for comparison. - (Set_Source_Table): idem. - - * ali-util.ads: - (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC - instead of simple checksum. - (CRC_Match): new function. - (CRC_Error): new constant. - - * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling - a CRC now and not a simple checksum. A CRC uses lower-case hex - letters, fixes ambiguity in parsing. - - * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this - is what this variable will store. - - * bcheck.adb: Change reference to chechsum in comments by CRC. - (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC. - rename All_Checksum_Match to All_CRC_Match. Change due to API - renaming since now GNAT does not use a simple checksum but a - CRC using GNAT.CRC32. - - * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC - now and not anymore a simple checksum. - - * lib-load.adb: Use Source_CRC instead of Source_Checksum in many - places. - - * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum. - - * scans.adb: - (Restore_Scan_State): rename Checksum to CRC. - (Save_Scan_State): idem. - - * scans.ads: - With GNAT.CRC32. - (Checksum): rename to CRC. - (Saved_Scan_State): Save_Checksum field renamed to Save_CRC - - * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from - GNAT.CRC32). Update copyright notice. - - * scn-slit.adb: Rename many Accumulate_Checksum to Update (from - GNAT.CRC32). Update copyright notice. - - * scn.adb: - (Accumulate_Checksum): removed. - (Update): new procedure. Add a wide-character into the CRC. - - * sinput-l.adb: - (Complete_Source_File_Entry): use CRC32 instead of simple checksum. - (Load_File): fix initialization of S (change Source_Checksum to - Source_CRC) - - * sinput-p.adb (Load_Project_File): rename Source_Checksum to - Source_CRC in S initialization. - - * sinput.adb (Source_Checksum): renamed to Source_CRC. - - * sinput.ads (Source_Checksum): renamed to Source_CRC. - Update comments for the CRC. - - * types.adb (Hex): Use lowercase for the letter part. - - * types.ads (Get_Hex_String): Returns the hexadecimal representation - for a word. This is currently used only for CRC. In previous version, - the checksum was using a representation with all letter being - upper-case. With the new implementation (using CRC) we do not remove - the 32th bit of the CRC, so we can have an upper-case starting letter - in the CRC. This is not possible to parse in Scan_ALI (ali.adb). - It is ambigous since the CRC was optional and could be followed by - options like EB, EE. So now this routines uses lower-case letter for - the hexadecimal representation. Strange enough only lower case letters - where checked in Scan_ALI (even if this was not a possible case). - - * gnatvsn.ads (Library_Version): changed to 3.15a. - - * s-crc32.ads: Initial version from GNAT.CRC32. This is the version - for the compiler. - - * s-crc32.adb: Initial version from GNAT.CRC32. This is the version - for the compiler. - - * ali-util.adb: Redo previous change to avoid using word CRC everywhere - Add 2001 to copyright notice - (Accumulate_Checksum): Modify to use System.CRC32. - - * ali-util.ads: Redo changes of previous revision to continue to use - the word Checksum. Add 2001 to copyright notice. - - * ali.adb: Undo some of previous changes, not needed. - Keep the change for lower case letters in the checksum. - - * ali.ads: Undo previous change not needed. - - * bcheck.adb: Undo most of previous change, not needed. - But do use Checksums_Match for checksum comparison. - - * gnatls.adb: Undo most of previous change, not needed. - But do use Checksums_Match for comparing checksums. - - * lib-load.adb: Undo previous change, not needed. - - * lib-writ.adb: Undo previous change, not needed. - - * lib-writ.ads: Document that checksums use lower case, - not upper case letters. - - * scans.adb: Undo previous change, not needed - - * scans.ads: Undo previous change, not needed. - - * scn-nlit.adb: Undo previous changes, not needed. - - * scn-slit.adb: Undo previous change, not needed. Fix header format. - - * scn.adb: - (Accumulate_Checksum): Use System.CRC32. - (Initialize_Checksum): New procedure. - Remove other changes of previous revision. - - * sinput-p.adb: Undo previous change, not needed. - - * sinput.adb: Undo previous change, not needed. - - * sinput-l.adb: Undo previous change, not needed. - - * sinput.ads: Undo previous change, not needed. Keep only comment - on new checksum algorithm - - * Makefile.in: Add s-crc32 as needed, remove g-crc32. - Also remove a-tags and a-stream from GNAT sources. - - * ali.adb (Scan_ALI): fix typo introduce in latest check-in. - - * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o. - -2001-10-11 Geert Bosch - - * einfo.h: Regenerate. - - * nmake.ads: Regenerate. - - * nmake.adb: Regenerate. - - * sinfo.h: Regenerate. - - * treeprs.adb: Regenerate. - -2001-10-10 Geert Bosch - - * gnat-style.texi: New file describing coding guidelines for Ada. - -2001-10-10 Ed Schonberg - - * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required - is Flag174. - -2001-10-10 Geert Bosch - - * snames.ads: Add new names for project facility. - - * snames.adb: Update to reflect snames.ads changes. - - * snames.h: Update to reflect snames.ads changes. - -2001-10-10 Vincent Celier - - * make.adb: - (Add_Switches): reflect the changes for the switches attributes - Default_Switches indexed by the programming language, - Switches indexed by the file name. - (Collect_Arguments_And_Compile): Idem. - Reflect the attribute name changes. - - * prj-attr.adb: - (Initialisation_Data): Change the names of some packages and - attributes. - (Initialize): process case insensitive associative arrays. - - * prj-attr.ads: - (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array. - - * prj-dect.adb: - (Parse_Attribute_Declaration): For case insensitive associative - arrays, set the index string to lower case. - - * prj-env.adb: - Reflect the changes of the project attributes. - - * prj-nmsc.adb: - Replace Check_Naming_Scheme by Ada_Check and - Language_Independent_Check. - - * prj-nmsc.ads: - Replaced Check_Naming_Scheme by 2 procedures: - Ada_Check and Language_Independent_Check. - - * prj-proc.adb: - (Process_Declarative_Items): For case-insensitive associative - arrays, set the index string to lower case. - (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of - Prj.Nmsc.Check_Naming_Scheme. - - * prj-tree.adb: - (Case_Insensitive): New function - (Set_Case_Insensitive): New procedure - - * prj-tree.ads: - (Case_Insensitive): New function - (Set_Case_Insensitive): New procedure - (Project_Node_Record): New flag Case_Insensitive. - - * prj-util.adb: - (Value_Of): new function to get the string value of a single - string variable or attribute. - - * prj-util.ads: - (Value_Of): new function to get the string value of a single - string variable or attribute. - - * prj.adb: - (Ada_Default_Spec_Suffix): New function - (Ada_Default_Impl_Suffix): New function - Change definitions of several constants to reflect - new components of record types. - - * prj.ads: - (Naming_Data): Change several components to reflect new - elements of naming schemes. - (Project_Data): New flags Sources_Present and - Language_Independent_Checked. - (Ada_Default_Spec_Suffix): New function. - (Ada_Default_Impl_Suffix): New function. - - * snames.ads: - Modification of predefined names for project manager: added - Implementation, Specification_Exceptions, Implementation_Exceptions, - Specification_Suffix, Implementation_Suffix, Separate_Suffix, - Default_Switches, _Languages, Builder, Cross_Reference, - Finder. Removed Body_Part, Specification_Append, Body_Append, - Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind, - Gnatlink. - - * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix): - Add comments. - - * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted, - not that it is Nil_Variable_Value. - - * prj.ads: Add ??? for uncommented declarations - -2001-10-10 Ed Schonberg - - * sem_prag.adb: (Analyze_Pragma, case External): If entity is a - constant, do not indicate possible modification, so that gigi can - treat it as a bona fide constant. - -2001-10-10 Robert Dewar - - * sem_prag.adb: Add processing for pragma External. - - * snames.ads: Add entry for pragma External. - - * par-prag.adb: Add pragma External. - - * snames.adb: Updated to match snames.ads. - -2001-10-10 Ed Schonberg - - * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for - a dynamic task if the allocator appears in an indexed assignment - or selected component assignment. - - * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image): - For a dynamic task in an assignment statement, use target of - assignment to generate meaningful name. - -2001-10-10 Ed Schonberg - - * einfo.adb (Write_Field19_Name): Body_Entity is also defined for - a generic package. - - * einfo.ads: Body_Entity is also defined for generic package. - Documentation change only - - * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an - others_choice for a discriminated component initialization, - convert discriminant references into the corresponding discriminals. - - * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate - only if original type is private and expression has to be wrapped - in a conversion. - - * checks.adb: - (Apply_Constraint_Check): Do not perform length check - if expression is an aggregate with only an others_choice. - (Length_N_Cond): two references to the same in_parameter - (typically the discriminal in an init_proc) denote the same value. - Two useful optimization uncovered by bugfixes above. - -2001-10-10 Robert Dewar - - * xeinfo.adb: Change int to char in translation of enumeration types. - This fixes a problem in the C representation of component alignment. - Add 2001 to copyright notice - -2001-10-10 Richard Kenner - - * decl.c: (validate_size): Do check size of object of integral type - if it is a packed array type. - -2001-10-10 Richard Kenner - - * decl.c: (gnat_to_gnu_entity, case object): Also materialize - VAR_DECL for constant if not Is_Public but -O0. - -2001-10-10 Richard Kenner - - * misc.c (struct lang_hooks): Add new initializer to match GCC change. - -2001-10-10 Geert Bosch - - * xnmake.adb (XNmake): Fix handling of -s/-b options. No longer - use '/' as switch character, allowing for absolute file names. - -2001-10-09 Joseph S. Myers - - * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update - FSF address. - -2001-10-08 Geert Bosch - - * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): - Automatically build utilities when files need to be regenerated. - -2001-10-08 Geert Bosch - - * xsnames.adb: New utility for updating snames.ads and snames.adb - -2001-10-08 Zack Weinberg - - * Make-lang.in (ADAFLAGS): Add -W -Wall. - (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also. - (gnat1): Also depend on attribs.o. - (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make. - * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New. - (ADAC): Set to @ADAC@ in stage1, $(CC) later. - (ADAFLAGS): Add -W -Wall. - (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS; - take out CFLAGS. - - (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o, - s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o, - s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o): - Use $(ADAC), not $(CC), as compilation command. - - (gnattools): Depend directly on tools to build, don't use - recursive make. - (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make. - - * einfo.h, sinfo.h: New files (autogenerated). - -2001-10-08 Richard Henderson - - * comperr.adb (Abort_In_Progress): New. - (Compiler_Abort): Use it to prevent recursion. - -2001-10-08 Robert Dewar - - * atree.adb: Set Error_Posted in Error node, helps error recovery. - - * par-endh.adb (Output_End_Expected): We should also not test - Error_Posted on the Error node, since now it is always set. - - * cstand.adb (Create_Standard): Set Etype of Error to Any_Type - to help error recovery. Part of general work on 9407-004. - - * par.adb: Add ??? for misuse of error - - * sem_res.adb: - (Resolve): Defend against Error, fixes 9407-003. - (Resolve_Discrete_Subtype_Indication): Defend against Error. - - * sinfo.ads (N_Error): Now has Etype field (which will be set - to Any_Type to help error recovery). - -2001-10-08 Richard Kenner - - * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR): - Consistently set MEM attributes from expression; fixes - bootstrap failure on x86. - -2001-10-08 Geert Bosch - - * 5oosinte.adb: Add 2001 to copyright notice. - -2001-10-08 Geert Bosch - - * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs]. - - * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs]. - -2001-10-07 Joseph S. Myers - - * 5oosinte.adb: Fix spelling error of "separate" as "seperate". - -2001-10-05 Geert Bosch - - * adaint.h: Small formatting fix. - -2001-10-04 Geert Bosch - - * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode): - Arg is int, not FILE *, in dummy version of functions. - - * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode): - Arg is int, not FILE *. - -2001-10-04 Geert Bosch - - * 3lsoccon.ads: Added file, missed with initial check ins. - - * 4lintnam.ads: Fix header format. - Change Linux to GNU/Linux. - - * 5iosinte.adb: Change Linux to GNU/Linux. - - * 5iosinte.ads: Change Linux to GNU/Linux. - - * 5itaprop.adb: Change Linux to GNU/Linux. - - * 5itaspri.ads: Change Linux to GNU/Linux. - Update copyright notice. - - * 5lintman.adb: Change Linux to GNU/Linux. - - * 5lml-tgt.adb: Change Linux to GNU/Linux. - - * 5losinte.ads: Change Linux to GNU/Linux. - - * 5lsystem.ads: Change Linux to GNU/Linux. - - * 5qosinte.adb: Change Linux to GNU/Linux. - - * 5qosinte.ads: Change Linux to GNU/Linux. - - * 5qparame.ads: Change Linux to GNU/Linux. - - * 5qtaprop.adb: Change Linux to GNU/Linux. - - * 5qtaspri.ads: Change Linux to GNU/Linux. - Add 2001 to copyright notice. - - * 5vintman.ads: Change Linux to GNU/Linux. - Fix header format. Add 2001 to copyright notice. - - * g-soccon.ads: Change Linux to GNU/Linux. - - * g-trasym.ads: Change Linux to GNU/Linux. - Add 2001 to copyright notice. - - * memtrack.adb: Change Linux to GNU/Linux. - - * s-intman.ads: Change Linux to GNU/Linux. - Add 2001 to copyright notice. Fix header format. - - * s-stache.adb: Change Linux to GNU/Linux. - - * adaint.c: Change Linux to GNU/Linux. - - * cio.c: Change Linux to GNU/Linux. - - * cstreams.c: Change Linux to GNU/Linux. - - * init.c: Change Linux to GNU/Linux. - - * gmem.c: Change Linux to GNU/Linux. - - * tracebak.c: Change Linux to GNU/Linux. - - -2001-10-02 Geert Bosch - - * misc.c (insert_default_attributes): Add dummy version. - - -Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -2009 Free Software Foundation, Inc. - -Copying and distribution of this file, with or without modification, -are permitted in any medium without royalty provided the copyright -notice and this notice are preserved. +2009-04-21 Joseph Myers + + * ChangeLog, ChangeLog.ptr, ChangeLog.tree-ssa: Add copyright and + license notices. + +2009-04-21 Eric Botcazou + + * gcc-interface/trans.c (gnat_to_gnu): Do not overwrite location info. + +2009-04-21 Eric Botcazou + + * gcc-interface/ada-tree.h (TYPE_RM_SIZE_NUM): Delete. + (TYPE_RM_SIZE): Access TYPE_LANG_SLOT_1 directly for integral types. + * gcc-interface/decl.c (gnat_to_gnu_entity) : + Remove useless support code for packed array types and assert its + uselessness. + : Reuse entity identifier in more places and + adjust for TYPE_RM_SIZE change. + Fix nits in comments. Use Original_Array_Type accessor instead + of Associated_Node_For_Itype accessor for packed array types. + (make_packable_type): Likewise. + (maybe_pad_type): Likewise. + (set_rm_size): Likewise. Rework conditional statement. Adjust for + TYPE_RM_SIZE change. + (make_type_from_size): Adjust for TYPE_RM_SIZE change. + (rm_size): Fix nits in comments. Rework conditional statements. + * gcc-interface/misc.c (gnat_print_type): Adjust for TYPE_RM_SIZE + change. + * gcc-interface/trans.c (Attribute_to_gnu): Fix nits in comments. + * gcc-interface/utils.c (gnat_init_decl_processing): Use more + appropriate function to initialize the size_type_node. Adjust for + TYPE_RM_SIZE change. + +2009-04-21 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity): Do not set force_global + for imported subprograms. + +2009-04-21 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not make + constant objects covered by 13.3(19) volatile. + +2009-04-21 Eric Botcazou + + * gcc-interface/utils.c (create_type_decl): Do not pass declarations + of dummy fat pointer types to the debug back-end. + +2009-04-20 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity): Rewrite Esize calculation. + : Set the RM size on the integer type + before wrapping it up in the record type. Do not overwrite the + Ada size of the record type with the Esize. + +2009-04-20 Eric Botcazou + + * gcc-interface/trans.c (unchecked_conversion_lhs_nop): New predicate. + (gnat_to_gnu) : Return the expression + if the conversion is on the LHS of an assignment and a no-op. + Do not convert the result to the result type if the Parent + node is such a conversion. + +2009-04-20 Eric Botcazou + + * gcc-interface/ada-tree.h (DECL_HAS_REP_P): Delete. + * gcc-interface/decl.c (gnat_to_gnu_entity): Add support for extension + of types with unknown discriminants. + (substitute_in_type): Rewrite and restrict to formal substitutions. + * gcc-interface/utils.c (create_field_decl): Do not set DECL_HAS_REP_P. + (update_pointer_to): Update comment. + +2009-04-20 Ed Schonberg + + * sem_ch8.adb (Use_One_Package): In an instance, if two + potentially_use_visible and non-overloadable homonyms are available + from the actuals of distinct formal packages, retain the current one, + which was visible in the generic, to prevent spurious visibility + errors. + (End_Use_Package): Restore use_visibility when needed. + +2009-04-20 Sergey Rybin + + * gnat_ugn.texi, vms_data.ads: Update doc. + +2009-04-20 Arnaud Charlet + + * gcc-interface/Make-lang.in: Update dependencies + + * gcc-interface/Makefile.in: Link run-time against winsock2 lib under + Windows. + +2009-04-20 Robert Dewar + + * checks.ads: Fix documentation of range check handling + +2009-04-20 Ed Schonberg + + * sem_ch8.adb (Use_One_Type): Use proper entity on warning message for + a redundant use_type clause. + +2009-04-20 Robert Dewar + + * sem_attr.adb (Eval_Attribute, case Length): Catch more cases where + this attribute can be evaluated at compile time. + (Eval_Attribute, case Range_Length): Same improvement + + * sem_eval.ads, sem_eval.adb (Compile_Time_Compare): New procedure + +2009-04-20 Ed Schonberg + + * sem_ch6.adb (Analye_Subprogram_Declaration): Code reorganization, + for better handling of null procedures. + (Check_Overriding_Indicator): Do not emit a warning on a missing + overriding indicator on an operator when the type of which the operator + is a primitive is private. + +2009-04-20 Bob Duff + + * sem.adb, gnat1drv.adb, debug.adb: Use the -gnatd.W switch to control + debugging output. + +2009-04-20 Robert Dewar + + * sem_attr.adb: Minor reformatting + + * gnatcmd.adb: Minor reformatting + +2009-04-20 Ed Schonberg + + * sem_ch4.adb (Analyze_User_Defined_Binary_Op): If left operand is + overloaded and one interpretation matches the context, label the + operand with the type of first formal. + +2009-04-20 Bob Duff + + * debug.ads: Minor comment fix. + + * debug.adb: Minor comment fixes. + +2009-04-20 Javier Miranda + + * rtsfind.ads (RE_Null_Id): New entity of package Ada.Exceptions + + * exp_ch6.adb (Expand_Inlined_Call): Undo previous patch. + + * exp_ch11.adb (Expand_N_Raise_Statement): When the raise stmt + is expanded into a call to Raise_Exception, avoid passing the + exception-name'identity in runtimes in which this argument + is not used. + +2009-04-20 Jerome Lambourg + + * impunit.adb: Add i-cil and i-cilobj packages, now needed by the + generated bindings for cil. + +2009-04-20 Ed Schonberg + + * sem_aggr.adb (Resolve_Record_Aggregate): If the type has unknown + discriminants, collect components from the Underlying_Record_View, + which will be used in the expansion of the aggregate into assignments. + + * sem_ch3.adb: Do not label derived type with unknown discriminants as + having a private declaration. + +2009-04-20 Ed Schonberg + + * exp_util.adb (Expand_Subtype_From_Expr): use the + underlying_record_view when available, to create the proper constrained + subtype for an object of a derived type with unknown discriminants. + +2009-04-20 Javier Miranda + + * exp_ch6.adb (Expand_Inlined_Call): Avoid generation of temporaries for + formals that have pragma unreferenced. + +2009-04-20 Pascal Obry + + * a-direct.adb (To_Lower_If_Case_Insensitive): Removed. + Remove all calls to To_Lower_If_Case_Insensitive to preserve + the pathname original casing. + +2009-04-20 Robert Dewar + + * g-trasym.adb: Minor reformatting + + * s-os_lib.adb: Minor reformatting + + * sem.adb: Minor reformatting + Minor code reorganization + + * sem_ch3.adb: Minor reformatting + + * sem_ch4.adb: Minor reformatting + + * sem_ch8.adb: Minor reformatting + + * sem_type.adb: Minor reformatting + +2009-04-20 Javier Miranda + + * sem_disp.adb (Find_Dispatching_Type): For subprograms internally + generated by derivations of tagged types use the aliased subprogram a + reference to locate their controlling type. + +2009-04-20 Tristan Gingold + + * g-trasym.adb: Set size of result buffer before calling + convert_address. + +2009-04-20 Ed Schonberg + + * sem_ch4.adb (Valid_Candidate): When checking whether a prefixed call + to a function returning an array can be interpreted as a call with + defaulted parameters whose result is indexed, take into account the + types of all the indices of the array result type. + +2009-04-20 Pascal Obry + + * a-direct.adb, s-os_lib.adb: Minor reformatting. + +2009-04-20 Ed Schonberg + + * sem_ch8.adb (Analyze_Object_Renaming): Proper checks on incorrect + null exclusion qualifiers for object renaming declarations. + +2009-04-20 Nicolas Roche + + * sysdep.c (__gnat_localtime_tzoff): on Windows, manipulated times are + unsigned long long. So compare local_time and utc_time before computing + the difference. + +2009-04-20 Eric Botcazou + + * sem_ch3.adb (Build_Derived_Private_Type): Insert the declaration + of the Underlying_Record_View before that of the derived type. + + * exp_ch3.adb (Expand_Record_Extension): Do not special-case types + with unknown discriminants with regard to the parent subtype. + +2009-04-20 Bob Duff + + * sem.adb (Semantics, Walk_Library_Items): Include dependents of bodies + that are not included. This is necessary if the main unit is a generic + instantiation. + + * gnat1drv.adb (Gnat1drv): Comment out the call to Check_Library_Items, + because it doesn't work if -gnatn is used. + +2009-04-20 Ed Schonberg + + * rtsfind.adb (RTE, RTE_Record_Component): In + Configurable_Run_Time_Mode, do not enable front-end inlining. + +2009-04-20 Thomas Quinot + + * g-socthi-vms.adb: Remove now unnecessary WITH clause on + System.Address_To_Access_Conversions. + +2009-04-20 Ed Schonberg + + * sem.adb: Guard against ill-formed subunits. + +2009-04-20 Bob Duff + + * output.adb (Flush_Buffer): Do not indent blank lines. + (Ignore_Output): New procedure for output suppression. + +2009-04-20 Hristian Kirtchev + + * a-calfor.adb (Image): Subtract 0.5 from the sub second component only + when it is positive. This avoids a potential constraint error raised + by the conversion to Natural. + +2009-04-20 Gary Dismukes + + * exp_ch5.adb (Expand_Assign_Array): For the case where the assignment + involves a target that has a specified address, don't set Forward_OK + and Backward_OK to False if the rhs is an aggregate, since overlap + can't occur. + +2009-04-20 Ed Schonberg + + * sem_ch8.adb (Analyze_Object_Renaming): Reject ambiguous expressions + in an object renaming declaration when the expected type is an + anonymous access type. + + * sem_type.adb (Disambiguate): Use anonymousness to resolve a potential + ambiguity when one interpretation is an anonymous access type and the + other is a named access type, and the context itself is anonymous + +2009-04-20 Thomas Quinot + + * einfo.ads: Minor comment rewording + + * sem_aggr.adb: Minor comment rewording + + * sem_ch3.adb, sem_ch6.adb: Minor reformatting + +2009-04-20 Pascal Obry + + * adaint.c (__gnat_is_readable_file): Check for file existence + when not using ACL (always the case on remote drives). + +2009-04-20 Robert Dewar + + * sinfo.ads: Minor comment fixes + + * exp_disp.adb: Minor reformatting + + * gnat1drv.adb: Minor reformatting + + * output.adb: Minor reformatting + + * s-vxwext-kernel.ads: Minor reformatting + + * sem.ads: Minor reformatting + + * sem.adb: Minor reformatting + + * sem_elim.adb: Minor reformatting + + * uname.ads: Minor reformatting + +2009-04-20 Eric Botcazou + + * init.c (__gnat_adjust_context_for_raise): On x86{-64}/Linux, add + a small dope of 4 words to the adjustment to the stack pointer. + +2009-04-20 Thomas Quinot + + * xoscons.adb: generate C header s-oscons.h in + addition to s-oscons.ads. + + * socket.c: On VMS, use s-oscons.h. + + * sem_ch3.adb: Minor reformatting + + * exp_ch9.adb: Minor reformatting + +2009-04-20 Eric Botcazou + + * gcc-interface/trans.c (check_for_eliminated_entity): Remove. + (Attribute_to_gnu): Do not call check_for_eliminated_entity. + (call_to_gnu): Likewise. + +2009-04-20 Eric Botcazou + + * gcc-interface/trans.c (gigi): Declare the name of the compilation + unit as the first global name at the very beginning. + +2009-04-20 Thomas Quinot + + * socket.c, g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.ads, + s-oscons-tmplt.c, gsocket.h, g-socthi-mingw.ads, g-socthi.ads, + g-sothco.ads (__gnat_inet_pton): Needs to be enabled for HP-UX as well, + since HP-UX supports neither inet_aton nor inet_pton (altough the + latter is part of the Single UNIX Specification!). + So reorganize code, and share C implementation based on inet_addr(3) + with VMS (instead of having a VMS specific Ada implementation in + g-socthi-vms.adb). + +2009-04-20 Gary Dismukes + + * osint-c.ads, osint-c.adb (Get_Object_Output_File_Name): New function + to return the object file name saved by Set_Object_Output_File_Name. + +2009-04-20 Emmanuel Briot + + * g-comlin.adb (Initialize_Option_Scan): Fix initialization of parsers + for the standard command line, when argc has been modified since the + start of the application. + +2009-04-20 Thomas Quinot + + * socket.c (__gnat_inet_pton, Windows case): Adjust return value. + WSAStringToAddress returns 0 for success and SOCKET_ERROR for failure. + +2009-04-20 Bob Duff + + * gnat1drv.adb (Gnat1drv): Put call to Check_Library_Items inside + pragma Debug. + +2009-04-20 Ed Schonberg + + * exp_ch9.adb (Build_Protected_Sub_Specification): Mark generated + subprogram as Eliminated when source operation is. + (Expand_N_Protected_Type_Declaration): Generate protected and + unprotected specs for the internal operations, even if the source + operation is eliminated. + +2009-04-20 Hristian Kirtchev + + * exp_ch3.adb (Make_Predefined_Primitive_Specs, + Predefined_Primitive_Bodies): Do not create the declarations and bodies + of the primitive subprograms associated with dispatching select + statements when the runtime is in configurable mode. + +2009-04-20 Ed Falis + + * s-vxwext-kernel.ads (tickGet): Use tick64Get. + +2009-04-20 Thomas Quinot + + * s-oscons-tmplt.c: Add support for generating a dummy version of + s-oscons.ads providing all possible constants. + + * g-socthi-mingw.ads: Fix calling convention for __gnat_inet_pton. + + * socket.c (__gnat_inet_pton): On Windows make sure we always use the + ANSI version (not the UNICODE version) of WSAStringToAddress. + +2009-04-20 Pascal Obry + + * adaint.c (__gnat_set_OWNER_ACL): properly free memory + allocated for the security descriptor and make sure all + handles are closed before leaving this procedure. + +2009-04-20 Javier Miranda + + * einfo.ads, einfo.adb (Is_Underlying_Record_View): New subprogram + (Set_Is_Underlying_Record_View): New subprogram + + * sem_aggr.adb (Discr_Present, Resolve_Record_Aggregate): In case of + private types with unknown discriminants use the underlying record view + if available. + + * sem_ch3.adb (Build_Derived_Private_Type): Enable construction of the + underlying record view in the full view of private types whose parent + has unknown discriminants. + (Build_Derived_Record_Type): Avoid generating the class-wide entity + associated with an underlying record view. + (Derived_Type_Declaration): Avoid deriving parent primitives in + underlying record views. + + * sem_ch6.adb (Check_Return_Subtype_Indication): Add support for + records with unknown discriminants. + + * sem_type.adb (Covers): Handle underlying record views. + (Is_Ancestor): Add support for underlying record views. + + * exp_attr.adb (Expand_Attribute): Expand attribute 'size into a + dispatching call if the type of the target object is tagged and has + unknown discriminants. + + * exp_aggr.adb (Resolve_Record_Aggregate): Add support for records with + unknown discriminants. + + * exp_disp.adb (Build_Dispatch_Tables): Avoid generating dispatch + tables for internally built underlying record views. + + * sprint.adb (sprint_node_actual): Improve output of aggregates with an + empty list of component associations. + +2009-04-20 Thomas Quinot + + * sem_ch10.adb: Minor reformatting + + * socket.c, g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.ads, + g-socthi-mingw.ads, g-socthi.ads, g-socket.adb + (GNAT.Sockets.Inet_Addr): Do not use non-portable inet_aton, instead use + standard inet_pton API (and emulate it on platforms that do not + support it). + (GNAT.Sockets.Thin.Inet_Pton, VMS case): Implement in terms of + DECC$INET_ADDR, imported in Ada. + (GNAT.Sockets.Thin.Inet_Pton, VxWorks and Windows cases): Use C + implementation provided by GNAT runtime. + (__gnat_inet_pton): C implementation of inet_pton(3) for VxWorks and + Windows. + +2009-04-20 Eric Botcazou + + * gnat_ugn.texi: Add documentation for -fno-ivopts. + +2009-04-20 Ed Schonberg + + * sem_ch10.adb (Analyze_Context): Do not analyze a unit in a + with_clause if it is the main unit. + +2009-04-20 Thomas Quinot + + * sem_type.adb, ali.adb, erroutc.adb: Minor code reorganization + (no behaviour change): Use Append instead of Increment_Last followed + by assignment. + +2009-04-20 Hristian Kirtchev + + * exp_ch3.adb (Make_Predefined_Primitive_Specs): Do not generate the + declarations of all primitives associated with dispatching asynchronous, + conditional and timed selects when dispaching calls are forbidden and + select statements are not allowed (such as in Ravenscar). + (Predefined_Primitive_Bodies): Ditto for bodies. + + * exp_disp.ad (Make_DT): Do not create and populate the + Select_Specific_Data of the dispatch table when dispatching calls are + forbidden and select statements are not allowed (such as in Ravenscar). + +2009-04-20 Robert Dewar + + * a-tifiio.adb: Minor reformatting + +2009-04-20 Thomas Quinot + + * g-socthi-vms.adb, g-socket.adb, g-socket.ads: inet_aton(3), unlike + other C library functions, report *failure* with a zero status, and + success with a non-zero status. + +2009-04-20 Bob Duff + + * sem.ads, sem.adb (Walk_Library_Items): New generic procedure. + (Semantics): After analyzing each unit, Append it to the + Comp_Unit_List, if appropriate. + + * gnat1drv.adb (Check_Library_Items): New procedure for debugging + purposes. + (Gnat1drv): Correct comment regarding Back_End_Mode. + +2009-04-20 Eric Botcazou + + * gnat_ugn.texi: Add documentation for -fno-inline-small-functions. + +2009-04-20 Thomas Quinot + + * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-vms.adb, + output.adb, output.ads, s-taprop-hpux-dce.adb, + s-taprop-linux.adb, s-taprop-solaris.adb, s-taprop-posix.adb: Minor + reformatting. + +2009-04-20 Thomas Quinot + + * g-socket.adb, g-socket.ads, g-socthi-mingw.ads, g-socthi-vms.adb, + g-socthi-vms.ads, g-socthi-vxworks.ads, g-socthi.ads + (GNAT.Sockets.Thin.C_Inet_Addr): Remove. + (GNAT.Sockets.Thin.Inet_Aton): New function, imported from C library + except for VMS where it is reimplemented in Ada using DECC$INET_ADDR. + (GNAT.Sockets.Inet_Addr): Use inet_aton(3) instead of inet_addr(3). + + * debug.adb: Fix typo + + * gnat_rm.texi: Minor doc fix. + + * sem_ch7.adb, freeze.adb: Minor reformatting + +2009-04-20 Thomas Quinot + + * g-socket.ads: Add new constants: + Loopback_Inet_Addr + Unspecified_Group_Inet_Addr + All_Hosts_Group_Inet_Addr + All_Routers_Group_Inet_Addr + + * s-oscons-tmplt.c, g-sttsne-vxworks.adb (System.OS_Constants): Add + ERANGE (Result too large). + (GNAT.Sockets.Thin.Task_Safe_NetDB, VxWorks version): Add missing + propagation of errno to caller. + +2009-04-20 Hristian Kirtchev + + * a-calend.adb, a-calend-vms.adb: Increase the number of leap seconds + to 24. Increment Leap_Seconds_Count and add an entry to aggregate + Leap_Second_Times. + +2009-04-20 Gary Dismukes + + * sem_elim.ads (Check_For_Eliminated_Subprogram): New procedure for + checking for references to eliminated subprograms that should be + flagged. + (Eliminate_Error_Message): Update comment to say "references" rather + than "calls" (since attribute cases are handled here as well). + + * sem_elim.adb (Check_For_Eliminated_Subprogram): New procedure for + checking for references to eliminated subprograms that should be + flagged. Add with and use of Sem and Sem_Util. + + * sem_res.adb (Resolve_Call): Reject calls to eliminated subprograms. + Add with and use of Sem_Elim. + + * sem_attr.adb (Analyze_Access_Attribute): Reject access attributes + applied to eliminated subprograms. + (Analyze_Attribute): Reject 'Address and 'Code_Address applied to + eliminated subprograms. + Add with and use of Sem_Elim. + + * sem_disp.adb (Check_Dispatching_Call): Remove error check for calls + to eliminated subprograms, now handled during Resolve_Call. + Remove with and use of Sem_Elim. + + * exp_disp.adb (Make_DT): Get Ultimate_Alias of primitive before + testing Is_Eliminated, for proper handling of primitive derived from + eliminated subprograms. + +2009-04-20 Vincent Celier + + * mlib-prj.adb (Build_Library): Use the shared library linker, if one + has been declared (Library_GCC or Linker'Driver), for the driver name. + + * prj-nmsc.adb (Process_Linker): If Library_GCC is not declared and + Linker'Driver is, use Linker'Driver as the shared library linker. + (Process_Project_Level_Simple_Attributes): Issue a warning if attribute + Library_GCC is declared. + (Check_Library_Attributes): Set up the shared linker driver: either + Library_GCC or Linker'Driver. Issue a warning if Library_GCC is + declared. + +2009-04-20 Thomas Quinot + + * g-socket.ads (Send_Socket): Fix misleading comment. + +2009-04-20 Arnaud Charlet + + * switch-c.adb (Scan_Front_End_Switches): Disable inspector mode in + ASIS mode. + +2009-04-20 Geert Bosch + + * a-tifiio.adb (Put): Avoid generating too many digits for certain + fixed types with smalls that are neither integer or the reciprocal + of an integer. + +2009-04-20 Bob Duff + + * uname.ads: Minor comment fix. + + * types.ads: Minor comment fix. + +2009-04-20 Pascal Obry + + * adaint.c (__gnat_get_libraries_from_registry): Fix code to + avoid warning. At the same time fix a memory leak. + + * osint.adb (Get_Libraries_From_Registry): Properly free memory + returned by the above routine. + +2009-04-20 Robert Dewar + + * s-conca5.adb, s-conca5.ads, s-conca7.adb, s-conca7.ads, s-conca9.adb, + s-conca9.ads, rtsfind.ads, s-conca2.adb, s-conca2.ads, s-conca4.adb, + s-conca4.ads, s-conca6.adb, s-conca6.ads, s-conca8.adb, s-conca8.ads, + s-conca3.adb, s-conca3.ads (Str_Concat_Bounds_x): New functions. + + * exp_ch4.adb (Expand_Concatenate): Minor code reorganization + +2009-04-20 Pascal Obry + + * initialize.c (__gnat_initialize): Add braces to kill warning. + + * adaint.c: Minor reformatting, remove trailing spaces. + +2009-04-17 Arnaud Charlet + + * gcc-interface/Make-lang.in: Update dependencies. + +2009-04-20 Eric Botcazou + + * adaint.h (__gnat_lwp_self): Declare on Linux. + + * adaint.c (__gnat_os_filename): Add ATTRIBUTE_UNUSED on 'filename'. + +2009-04-20 Robert Dewar + + * exp_ch5.adb, usage.adb, back_end.adb, opt.ads: Implement + front-end part of -fpreserve-control-flow switch. + +2009-04-20 Bob Duff + + * rtsfind.adb: Minor comment fix + +2009-04-20 Robert Dewar + + * exp_aggr.adb: Minor reformatting + Minor code reorganization (use Nkind_In) + + * g-socket.adb: Minor reformatting + + * g-socket.ads: Minor comment fix + + * s-auxdec.ads: Minor comment and organization update. + + * s-auxdec-vms_64.ads: Minor comment and organization update. + + * sem_ch10.adb: Minor addition of ??? comment + + * sem_disp.adb: Minor reformatting + +2009-04-20 Ed Schonberg + + * inline.adb (Add_Inlined_Subprogram): Do not place on the back-end + list a caller of an inlined subprogram, if the caller itself is not + called. + +2009-04-20 Pascal Obry + + * adaint.c: Disable use of ACL on network drives. + +2009-04-20 Arnaud Charlet + + * gnat_ugn.texi: Add examples. + +2009-04-20 Thomas Quinot + + * g-socket.ads (Abort_Selector): Clarify documentation. + +2009-04-20 Arnaud Charlet + + * opt.ads (Inspector_Mode): Update documentation of this flag. + +2009-04-20 Thomas Quinot + + * g-socket.ads: Minor reformatting + + * socket.c, gsocket.h (__gnat_get_h_errno, VxWorks case): No need to + consider S_resolvLib error codes since we only use the hostLib wrappers. + +2009-04-20 Eric Botcazou + + * sem_ch3.adb (Build_Derived_Private_Type): Insert the declaration + of the Underlying_Record_View after that of the derived type. + +2009-04-20 Arnaud Charlet + + * switch-c.adb (Scan_Front_End_Switches): Disable front-end inlining + in inspector mode. + +2009-04-20 Javier Miranda + + * sem_ch6.adb (New_Overloaded_Entity): Minor reformating. + + * sem_ch6.ads (Subtype_Conformant, Type_Conformant): Add missing + documentation. + + * exp_aggr.adb (Build_Record_Aggr_Code): Code cleanup. + + * sem_disp.adb + (Check_Dispatching_Operation): Set attribute Is_Dispatching_Operation + in internally built overriding subprograms. + +2009-04-20 Doug Rupp + + * s-auxdec-vms_64.ads (Integer_{8,16,32,64}_Array): New array types. + + * s-auxdec.ads: Likewise + +2009-04-20 Ed Schonberg + + * sem_ch3.adb (Find_Type_Name): Reject the completion of a private + type by an interface. + + * exp_ch6.adb (Expand_Call): Inline To_Address unconditionally, to + minimze difference in expanded tree when compiled as spec of the main + unit, or as a spec in the context of another unit. + +2009-04-20 Hristian Kirtchev + + * a-calend.adb: Remove types char_Pointer, int, tm and tm_Pointer. + (localtime_tzoff): This routine no longer accepts an actual of type + tm_Pointer. + (UTC_Time_Offset): Remove local variable Secs_TM. + + * sysdep.c (__gnat_localtime_tzoff): This routine no longer accepts an + actual of type struct tm*. Add local variable of type struct tm for all + targets that provide localtime_r and need to invoke it. + +2009-04-20 Thomas Quinot + + * s-oscons-tmplt.c, g-socket.adb, g-socket.ads + (GNAT.Sockets.Resolve_Error): Add case of EPIPE + Add case of EAGAIN for platforms where it is not equal to EWOULDBLOCK + +2009-04-20 Robert Dewar + + * sem_ch3.adb: Minor reformatting + + * lib-load.adb: Minor reformatting + + * sem_ch4.adb: Minor reformatting + +2009-04-20 Robert Dewar + + * namet-sp.ads, namet-sp.adb (Is_Bad_Spelling_Of): Implement new spec + (equal values => False). + +2009-04-20 Ed Schonberg + + * exp_ch6.adb (Is_Null_Procedure): predicate is global, so that calls + to null procedures can be inlined unconditionally. + +2009-04-20 Eric Botcazou + + * gcc-interface/trans.c (call_to_gnu): When creating the copy for a + non-addressable parameter passed by reference, do not convert the + actual if its type is already the nominal type, unless it is of + self-referential size. + +2009-04-20 Arnaud Charlet + + * gnat_ugn.texi: Fix typos. + +2009-04-20 Robert Dewar + + * debug.adb, gnat1drv.adb, sem_ch13.adb: Add circuitry to + Validate_Unchecked_Warnings to suppress warnings about size or + alignment or extra bits if either type involved has pragma Warnings + (Off) set for the type entity. + +2009-04-19 Eric Botcazou + + * gcc-interface/trans.c (gigi): Make the special IA-64 descriptor type + a builtin type and give it a name. + +2009-04-17 Diego Novillo + + * gcc-interface/misc.c (gnat_expand_expr): Remove. + (LANG_HOOKS_EXPAND_EXPR): Remove. + +2009-04-17 Robert Dewar + + * sem_ch3.adb: Minor reformatting + +2009-04-17 Pascal Obry + + * adaint.c: Add __gnat_use_acl global variable to control use of ACL. + +2009-04-17 Ed Schonberg + + * sem_ch3.adb (Build_Derived_Enumeration_Type): Diagnose properly + illegal constraints on type derived from formal discrete types. + +2009-04-17 Thomas Quinot + + PR ada/35953 + + * g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb, + g-socthi-vxworks.ads, g-socthi-mingw.adb, g-socthi-mingw.ads, + g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads, g-socket.adb, + g-socket.ads (GNAT.Sockets.Thin.C_Send, + GNAT.Sockets.Thin.Syscall_Send): Remove unused subprograms. + Replace calls to send(2) with equivalent sendto(2) calls. + (GNAT.Sockets.Send_Socket): Factor common code in inlined subprogram. + (GNAT.Sockets.Write): Account for the case of hyper-empty arrays, do not + report an error in that case. Factor code common to the two versions + (datagram and stream) in common routine Stream_Write. + +2009-04-17 Robert Dewar + + * exp_disp.adb: Minor reformatting + Minor code reorganization (use Nkind_In) + + * prepcomp.adb: Minor reformatting + + * sem_ch3.adb: Minor reformatting + + * sem_res.adb: Minor comment addition + + * exp_ch5.adb (Expand_Assign_Array): Use Has_Address_Clause to test + for address clause + + * lib-xref.adb (Generate_Reference): Exclude recursive calls from + setting Is_Referenced + + * types.ads: Minor reformatting + +2009-04-17 Arnaud Charlet + + * gnat_ugn.texi: Initial documentation on binding generator. + +2009-04-17 Ed Schonberg + + * einfo.ads, einfo.adb: New attribute Underlying_Record_View, to handle + type extensions whose parent is a type with unknown discriminants. + + * exp_aggr.adb (Expand_Record_Aggregate): If the type of an extension + aggregate has unknown discriminants, use the Underlying_Record_View to + obtain the discriminants of the ancestor part. + + * exp_disp.adb (Build_Dispatch_Tables): Types that are + Underlying_Record_Views share the dispatching information of the + original record extension. + + * exp_ch3.adb (Expand_Record_Extension): If the type inherits unknown + discriminants, propagate dispach table information to the + Underlying_Record_View. + + * sem_ch3.adb (Build_Derived_Private_Type): If parent type has unknown + discriminants and declaration is not a completion, generate + Underlying_Record_View to provide proper discriminant information to + the front-end and to gigi. + +2009-04-17 Robert Dewar + + * s-conca5.adb, g-sercom.adb, s-conca5.ads, s-conca7.adb, exp_imgv.adb, + s-conca7.ads, s-crc32.adb, s-crc32.ads, s-conca9.adb, s-conca9.ads, + s-addope.adb, i-cstrin.ads, s-addope.ads, s-carun8.adb, s-carun8.ads, + g-htable.ads, g-hesora.adb, g-hesora.ads, s-htable.adb, s-htable.ads, + s-conca2.adb, s-conca2.ads, a-except.adb, s-conca4.adb, a-except.ads, + s-conca4.ads, s-except.adb, s-except.ads, s-conca6.adb, s-conca6.ads, + g-spchge.adb, g-spchge.ads, g-u3spch.adb, g-u3spch.ads, s-conca8.adb, + s-conca8.ads, g-byorma.adb, g-byorma.ads, s-memory.adb, s-memory.ads, + g-speche.adb, g-speche.ads, g-stsifd-sockets.adb, exp_dist.adb, + s-imgenu.adb, s-imgenu.ads, s-mastop.adb, s-mastop.ads, s-exctab.adb, + s-exctab.ads, s-imenne.adb, s-imenne.ads, s-casuti.adb, osint.adb, + s-assert.adb, s-casuti.ads, s-assert.ads, s-os_lib.adb, s-conca3.adb, + s-conca3.ads: Remove unneeded pragma Warnings + +2009-04-17 Robert Dewar + + * g-moreex.adb: Add comments. + + * s-auxdec.ads: Add ??? comment for uncommented pragma Warnings (Off) + + * s-auxdec-vms_64.ads: Add ??? comment for uncommented pragma + Warnings (Off) + + * prepcomp.adb: Add ??? comment + + * a-tasatt.adb: Minor reformatting + + * g-trasym-vms-alpha.adb: Add ??? comment + + * g-trasym-vms-ia64.adb: Add ??? comment + + * xoscons.adb: Minor reformatting + + * s-tassta.adb: Minor reformatting + + * s-scaval.adb: Add ??? comment + + * stand.ads: Minor code clean up (remove junk with of Namet) + + * s-strcom.adb, s-strcom.ads, s-string.adb, s-string.ads, s-sopco3.adb, + s-sopco3.ads, s-strops.adb, s-strops.ads, s-sopco5.adb, s-sopco5.ads, + s-wchcnv.adb, s-wchcnv.ads, s-ststop.adb, s-ststop.ads, s-soflin.adb, + s-soflin.ads, s-traceb.adb, s-traceb.ads, s-traent.adb, s-traent.ads, + s-secsta.adb, s-secsta.ads, s-utf_32.adb, s-utf_32.ads, s-wchcon.adb, + s-wchjis.adb, s-wchcon.ads, s-wchjis.ads, s-sopco4.adb, s-sopco4.ads, + s-stache.adb, s-stache.ads, s-stoele.adb, s-stoele.ads, s-stalib.adb, + s-stalib.ads, s-os_lib.ads, s-purexc.ads: Remove no longer needed + Warnings off pragmas. + +2009-04-17 Pascal Obry + + * initialize.c: Fix test for reallocating the arguments array. + +2009-04-17 Geert Bosch + + * exp_fixd.adb (Expand_Convert_Float_To_Fixed): Have float to fixed + conversion truncate only for decimal fixed point types. + +2009-04-17 Jerome Lambourg + + * g-comlin.adb (Initialize_Scan_Option): Make sure the sections are + reinitialized. + +2009-04-17 Robert Dewar + + * exp_ch5.adb (Expand_Assign_Array): Do not set Forwards_OK and + Backwards_OK if either operand has an address clause. + +2009-04-17 Pascal Obry + + * initialize.c: Code clean up, use realloc. + +2009-04-17 Pascal Obry + + * initialize.c: Do not get Unicode command line if Unicode support not + activated. + Add support for wildcard expansion for Unicode parameters on Win32. + + * mingw32.h: Add missing macros when Unicode support not activated. + +2009-04-17 Javier Miranda + + * sem_ch6.adb (Check_Anonymous_Return): Add missing checks to + avoid generating code that references the Current_Master + when compiling without tasks. + +2009-04-17 Vincent Celier + + * prj-attr.adb: New project level attribute Target + + * prj-nmsc.adb (Process_Project_Level_Simple_Attributes): Process + attribute Target + + * prj.ads (Project_Configuration): New component Target + +2009-04-17 Thomas Quinot + + * exp_ch7.adb (Expand_Ctrl_Function_Call): Remove incorrect special + case for the case of an aggregate component, the attach call for the + result is actually needed. + + * exp_aggr.adb (Backend_Processing_Possible): Backend processing for + an array aggregate must be disabled if the component type requires + controlled actions. + + * exp_ch3.adb: Minor reformatting + +2009-04-17 Bob Duff + + * output.ads (Indent,Outdent): New procedures for indenting the output. + (Write_Char): Correct comment -- LF _is_ allowed. + + * output.adb (Indent,Outdent): New procedures for indenting the output. + Keep track of the indentation level, and make sure it doesn't get too + high. + (Flush_Buffer): Insert spaces at the beginning of each line, if + indentation level is nonzero. + (Save_Output_Buffer,Restore_Output_Buffer): Save and restore the current + indentation level. + (Set_Standard_Error,Set_Standard_Output): Remove superfluous + "Next_Col := 1;". Flush_Buffer does that. + + * sem_ch6.adb, sem_ch7.adb (Debug_Flag_C): Reorganize the output + controlled by the -gnatdc switch. It now occurs on entry/exit to the + relevant analysis routines, and calls Indent/Outdent to make the + indentation reflect the nesting level. Add "helper" routines, since + otherwise lots of "return;" statements would skip the debugging output. + +2009-04-17 Arnaud Charlet + + * s-taprop-tru64.adb, s-taprop-vms.adb, s-taprop-linux.adb, + s-taprop-solaris.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, + s-taprop-posix.adb (Suspend_Until_True): Protect against early wakeup. + +2009-04-17 Thomas Quinot + + * exp_aggr.adb: Minor code reorganization, no behaviour change. + +2009-04-17 Ed Schonberg + + * sem_ch8.adb (Use_One_Type): Handle properly a redundant use type + clause in a unit that is a package body or a subunit, when the previous + clause appears in a spec or a parent. + +2009-04-17 Thomas Quinot + + * sinfo.ads, exp_aggr.adb, exp_aggr.ads: Minor reformatting + + * exp_ch7.adb: Minor reformatting + +2009-04-17 Bob Duff + + * exp_ch4.adb (Expand_Allocator_Expression): In an initialized + allocator, check that the expression of the qualified expression obeys + the constraints of the subtype of the qualified expression. + +2009-04-17 Thomas Quinot + + * sprint.adb (Write_Itype): Add handling of enumeration subtypes. + +2009-04-17 Ed Schonberg + + * exp_ch4.adb (Expand_Allocator_Expression): Apply constraint check to + aggregate, using context imposed by subtype mark in allocator. + +2009-04-17 Pascal Obry + + * gnat_rm.texi: Document GNAT_CODE_PAGE environment variable + +2009-04-17 Nicolas Roche + + * initialize.c (__gnat_initialize): remove MAX_PATH limitation on each + argument length. + +2009-04-17 Gary Dismukes + + * sem_elim.adb (Eliminate_Error_Msg): Minor change to error message to + cover both calls and attribute references ("call" => "reference"). + +2009-04-17 Ed Schonberg + + * sem_ch3.adb (Analyze_Subtype_Declaration): A subtype of an access + type for which Storage_Size is set to 0 is legal in a pure unit. + +2009-04-17 Thomas Quinot + + * exp_ch7.adb: Minor reformatting + +2009-04-17 Robert Dewar + + * restrict.adb (Check_Restriction_No_Dependence): Don't check + restriction if outside main extended source unit. + + * sem_ch10.adb (Analyze_With_Clause): Check No_Dependence restriction + for parents of child units as well as the child unit itself. + +2009-04-17 Bob Duff + + * checks.ads: Minor comment fix + + * exp_aggr.ads: Minor comment fix + +2009-04-17 Nicolas Roche + + * adaint.c: Improve cross compiler detection and handling. + +2009-04-17 Eric Botcazou + + * exp_ch4.adb (Expand_Concatenation): Do not use calls at -Os. + +2009-04-17 Pascal Obry + + * mingw32.h: Add S2WSC and WS2SC macros to convert to/from + CurrentCodePage. + + * adaint.h: Encoding_Unspecified is now defined. Corresponds to the + value when no encoding form paramter is set on Text_IO services. + + * adaint.c: CurrentCodePage new variable on Windows. + Use new macros S2WSC and WS2SC instead of the UTF-8 oriented + ones. + + * mkdir.c: Use new macros S2WSC and WS2SC instead of the UTF-8 oriented + ones. + + * initialize.c: Initialize CurrentCodePage depending on GNAT_CODE_PAGE + environment variable value. Default is UTF-8. + + * s-crtl.ads: Filename_Encoding add Unspecified in the enumeration type. + fopen and freopen encoding parameter is now set to Unspecified. + The default value is in this case UTF-8 (as it was before) but + use the new macros that convert to/from the code page set + at runtime (CurrentCodePage). + + * s-fileio.adb: When no encoding specified use Unspecified value. + +2009-04-17 Ed Schonberg + + * atree.adb, atree.ads: Remove dead code. + +2009-04-17 Arnaud Charlet + + * gcc-interface/Make-lang.in: Update dependencies. + +2009-04-17 Ed Schonberg + + * sem_ch3.adb (Access_Subprogram_Definition): Additional checks on + illegal uses of incomplete types in formal parts and return types. + + * sem_ch6.adb (Process_Formals): Taft-amendment types are legal in + access to subprograms. + + * sem_ch7.adb (Uninstall_Declarations): diagnose attempts to use + Taft-amendment types as the return type of an access_to_function type. + + * freeze.adb (Freeze_Entity): Remove tests on formals of an incomplete + type for access_to_subprograms. The check is performed on package exit. + +2009-04-17 Ed Schonberg + + * atree.ads, atree.adb: Move New_Copy_Tree.to sem_util. + + * nlists.ads, nlists.adb: Move New_Copy_List to sem_util. + + * lib-load.adb: Use Copy_Separate_Tree rather than New_Copy_Tree + + * sem_util.ads, sem_util.adb: New_Copy_Tree and New_Copy_List belong in + semantic units, because the handling of itypes in the copied tree + requires semantic information that does not belong in atree. + +2009-04-17 Robert Dewar + + * par-ch6.adb: Minor reformatting + + * prj.adb: Minor reformatting + +2009-04-17 Gary Dismukes + + * par-ch6.adb (P_Subprogram): Overriding indicators should be allowed + on protected subprogram bodies, so exclude the case where Pf_Flags is + Pf_Decl_Pbod from the error check. + + * par-ch9.adb (P_Protected_Operation_Items): Permit overriding + indicators on subprograms in protected bodies, and proceed with parsing + the subprogram. + + * sem_ch6.adb (Verify_Overriding_Indicator): Exclude protected + subprograms from the check for primitiveness on subprograms with + overriding indicators. + (Check_Overriding_Indicator): Include protected subprograms in the + style check for missing overriding indicators. + +2009-04-17 Tristan Gingold + + * init.c: Fix stack checking for x86 Darwin. + +2009-04-17 Vincent Celier + + * prj-attr.adb: New project level attribute Object_File_Suffix + (). + + * prj-nmsc.adb (Add_Source): Use the object file suffix to get the + object file name + (Process_Compiler): Process attribute Object_File_Suffix + + * prj.adb (Object_Name): Use suffix Object_File_Suffix instead of + platform suffix, when specified. + + * prj.ads (Language_Config): New component Object_File_Suffix, + defaulted to No_Name. + (Object_Name): New parameter Object_File_Suffix, defaulted to No_Name + + * snames.ads-tmpl: New standard name Object_File_Suffix + +2009-04-17 Robert Dewar + + * gnat_rm.texi: Add documentation about No_Streams restriction + + * sem_attr.adb (Check_Stream_Attribute): Exclude implicit stream + attributes when checking No_Streams restriction. + +2009-04-17 Thomas Quinot + + * rtsfind.ads (RE_Request_Destroy): New PolyORB s-parint entity. + + * exp_dist.adb (PolyORB_Support.Build_General_Calling_Stubs): Add + missing calls to RE_Request_Destroy to deallocate request objects after + use. + +2009-04-17 Nicolas Setton + + * link.c: Fix support for passing a response file under Darwin. + +2009-04-17 Emmanuel Briot + + * prj.adb (Free): new subprogram. + +2009-04-17 Ed Schonberg + + * sem_ch3.adb: additional initialization on incomplete subtypes. + + * sem_ch6.adb (Process_Formals): if the subprogram is in the private + part and one of the formals is an incomplete tagged type, attach to + list of private dependends of the type for later validation. + + * sem_ch7.adb (Uninstall_Declarations): diagnose attempts to declare + primitive operations of a Taft-amendmment type. + + * freeze.adb (Freeze_Entity): Remove tests on formals of an incomplete + type. The check is performed on package exit, possibly after the + subprogram is frozen. + +2009-04-17 Vincent Celier + + * prj-nmsc.adb (Get_Directories): Get the object and exec directory + before looking for source directories, but make sure that there are nil + if they are not explicitely declared and there is explicitely no + sources in the project. + +2009-04-17 Pascal Obry + + * initialize.c: Set gnat_argv with UTF-8 encoded strings on Windows. + + * init.c: Fix minor typo and style fix. + +2009-04-17 Robert Dewar + + * a-except.adb, a-except-2005.adb: Add PE_Address_Of_Intrinsic + + * sem_attr.adb (Analyze_Attribute, case Address): Use + PE_Address_Of_Intrinsic. + + * types.ads: Add PE_Address_Of_Intrinsic + + * types.h: Add PE_Address_Of_Intrinsic + +2009-04-17 Nicolas Setton + + * gcc-interface/Makefile.in: Under darwin, build shared libraries + with install_name starting with "@rpath/". + +2009-04-17 Nicolas Setton + + * link.c: Add darwin section + +2009-04-16 Robert Dewar + + * g-pehage.adb: Minor reformatting + + * sem_ch12.adb: Minor reformatting + + * exp_dist.adb: Minor reformatting + + * bindgen.adb: Minor style fixes. + +2009-04-16 Ed Schonberg + + * sem_eval.adb (Eval_Indexed_Component): Extend constant-folding of + indexed components to the case where the prefix is a static string + literal. + +2009-04-16 Javier Miranda + + * exp_ch3.adb (Expand_N_Object_Declaration): In case of build-in-place + objects avoid any further expansion of the expression initializing the + object. + +2009-04-16 Ed Schonberg + + * sem_ch12.adb (Preanalyze_Actuals): If the instance is a child unit + that hides an outer homograph, make that homograph invisible when + analyzing the actuals, to to prevent illegal direct visibility on it. + +2009-04-16 Eric Botcazou + + * g-pehage.adb (Initialize): Fix off-by-one error. + +2009-04-16 Tristan Gingold + + * init.c: Detect real stack overflow on Darwin. + + * system-darwin-x86.ads: Use stack probing on darwin x86. + +2009-04-16 Ed Schonberg + + * sem_attr.adb (Analyze_Attribute, case 'Address): It is illegal to + take the address of an intrinsic subprogram. + +2009-04-16 Arnaud Charlet + + * gcc-interface/Makefile.in: Change g-trasym to g-trasym-unimplemented + for the targets where GNAT.Traceback.Symbolic is not supported. + +2009-04-16 Vincent Celier + + * g-trasym-unimplemented.ads, g-trasym-unimplemented.adb: New file. + + * g-trasym.ads: Update comments. + +2009-04-16 Vasiliy Fofanov + + * tracebak.c (STOP_FRAME): Verify validity of the current address + before dereferencing. + +2009-04-16 Ed Schonberg + + * sprint.adb (Write_Itype): If the itype is an array subtype, preserve + the original location of the index expressions and the index subtypes, + to prevent spurious out-of-scope references in gigi. + +2009-04-16 Tristan Gingold + + * init.c, s-osinte-darwin.ads, system-darwin-x86_64.ads: + Add support for stack checking on darwin. + +2009-04-16 Vincent Celier + + * prj-attr.adb: New attribute Runtime_Source_Dir + + * prj-nmsc.adb (Process_Project_Level_Array_Attributes): Process + attribute Runtime_Source_Dir. + (Check_Naming_Schemes): Give default values to out parameters to avoid + invalid data. + + * prj.ads (Language_Config): New component Runtime_Source_Dir + + * snames.ads-tmpl: New standard name Runtime_Source_Dir + +2009-04-16 Pascal Obry + + * adaint.h, adaint.c (__gnat_rmdir): New routine. + Simple wrapper routines used to convert to proper encoding on + Windows. + + * s-crtl.ads: Use __gnat_rmdir instead of direct call to the C library. + + * g-dirope.adb (Remove_Dir): Fix a bug, the root directory was removed + twice. + +2009-04-16 Pascal Obry + + * s-crtl.ads, s-os_lib.adb: Minor code clean-up. + +2009-04-16 Thomas Quinot + + * snames.ads-tmpl (Name_Defined): New predefined name for use by the + integrated preprocessor. + + * prep.ads, prep.adb (Setup_Hooks): New subprogram. + (Initialize): Split into two subprograms, Initialize (to be called + prior to compiler command line processing) and Setup_Hooks (to be called + later on when the first source file is loaded). + + * gprep.adb: Change call to Prep.Initialize to call to Prep.Setup_Hooks. + Add call to Prep.Initialize. + + * sinput-l.adb, prepcomp.adb: Change call to Prep.Initialize to call + to Prep.Setup_Hooks. + +2009-04-16 Pascal Obry + + * adaint.h, adaint.c (__gnat_chdir): New routine. + Simple wrapper routines used to convert to proper encoding on + Windows. + + * s-crtl.ads: Use __gnat_chdir instead of direct call to the C library. + + * a-direct.adb, g-dirope.adb: Use chdir from System.CRTL. + +2009-04-16 Quentin Ochem + + * sinput-p.adb (Clear_Source_File_Table): Use Sinput.Initialize instead + of Source.Init. + +2009-04-16 Eric Botcazou + + * a-convec.ads (Is_Empty): Mark inline. + +2009-04-16 Nicolas Roche + + * init.c (__gnat_init_float): Initialize FPU on x86_64 windows + +2009-04-16 Thomas Quinot + + * prepcomp.adb: Minor reformatting + +2009-04-16 Jerome Lambourg + + * sem_prag.adb (Process_Import_Or_Interface): With .NET, + Access_Subprogram types can also be imported. + (Check_Form_Of_Interface_Name): Accept '/' character in entity CIL + names. + +2009-04-16 Ed Schonberg + + * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): + preserve homonym chain when the declaration is rewritten into a + renaming declaration, in order to preserve visibility structure. + +2009-04-16 Jerome Lambourg + + * sem_prag.adb (Analyze_Pragma): Make sure that pragma pack is not + taken into account for VM targets. + +2009-04-16 Hristian Kirtchev + + * g-calend.ads, g-calend.adb (Week_In_Year): Now calls + Year_Week_In_Year. + (Year_Week_In_Year): New routine which contains the original code from + Week_In_Year. Add the missing special case for January 1st falling on + a Monday. + +2009-04-16 Thomas Quinot + + * exp_dist.adb (Build_From_Any_Call): For a subtype that is a generic + actual type, use the base type to build the To_Any function. + (Build_From_Any_Function): Remove junk, useless subtype conversion. + +2009-04-16 Thomas Quinot + + * exp_ch9.adb, exp_code.adb, tbuild.adb, sem_case.adb, + restrict.adb: Minor code reorganization (use + Add_{Char,Str}_To_Name_Buffer instead of inlining it by hand). + +2009-04-16 Bob Duff + + * exp_ch6.ads, exp_ch6.adb (Is_Build_In_Place_Function_Return): Remove, + unused. + +2009-04-16 Thomas Quinot + + * sem_ch4.adb: Minor reformatting + + * adaint.c: Remove junk duplicated code. + + * sem_ch3.adb: Minor reformatting + + * exp_dist.adb: Minor comment rewording + +2009-04-16 Robert Dewar + + * gnat_rm.texi: Document effect of Assume_No_Invalid_Values and -gnatVa + used together. + +2009-04-16 Ed Schonberg + + * sem_ch4.adb (Find_Equality_Types): Filter out types that are not + usable before calling Add_One_Interp, to resolve spurious ambiguities. + +2009-04-16 Robert Dewar + + * Make-lang.in: Add entries for s-conca?.o + + * Makefile.rtl: Add entries for s-conca? + + * debug.adb: Add debug flags -gnatd.c and -gnatd.C to control behavior + of concatenation expansion + + * exp_ch4.adb (Expand_Concatenation): Generate calls for certain + string cases instead of expanding assignments inline. + + * opt.ads (Optimize_Size): New flag + + * s-conca2.ads, s-conca2.adb, s-conca3.adb, s-conca3.ads, + s-conca4.adb, s-conca4.ads, s-conca5.adb, s-conca5.ads, s-conca6.adb, + s-conca6.ads, s-conca7.ads, s-conca7.adb, s-conca8.adb, s-conca8.ads, + s-conca9.adb, s-conca9.ads: New file. + +2009-04-16 Robert Dewar + + * exp_ch6.adb: Add comments + + * rtsfind.ads: Add entries for s-conca? routines + +2009-04-16 Arnaud Charlet + + * gcc-interface/Make-lang.in: Update dependencies. + + * gcc-interface/Makefile.in: Update translation for vms. + +2009-04-16 Ed Schonberg + + * sem_ch12.adb (Map_Formal_Package_Entities): renamed from Map_Entities + and made global, to be used when installing parents of a child + instance, to provide mappings for entities declared in formal packages + of ancestor units. Now called from Install_Formal_Packages. + +2009-04-16 Doug Rupp + + * s-taskin.adb (Initialize_ATCB): Initialize Debug_Events with others + notation for clarity. + + * s-taprop-vxworks.adb, s-taprop-tru64.adb, s-taprop-vms.adb, + s-taprop-mingw.adb, s-taprop-linux.adb, s-taprop-solaris.adb, + s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-posix.adb + (Initialize): Initialize Known_Tasks with Environment task. + + * s-taskin.ads (Task_States): Move new states to end for the sake of + GDB compatibility. + + * s-tassta.adb (Task_Wrapper): Fix comment about Enter_Task. + +2009-04-16 Ed Schonberg + + * exp_ch9.adb (Expand_N_Protected_Type_Declaration): If a protected + operation has an inline pragma, propagate the flag to the internal + unprotected subprogram. + +2009-04-16 Doug Rupp + + * s-taprop-vxworks.adb, s-taprop-tru64.adb, s-taprop-mingw.adb, + s-taprop-linux.adb, s-taprop-solaris.adb, s-taprop-irix.adb, + s-taprop-hpux-dce.adb, s-taprop-posix.adb + (Enter_Task): Move Known_Tasks initialization to s-tassta.adb + + * s-taprop-vms.adb (Enter_Task): Likewise. + (Initialize): Import DBEXT, Debug_Register. Register DBGEXT callback. + + * s-tassta.adb (Activate_Tasks): After task creation set state to + Activating, vice Runnable. Initialize Known_Tasks, moved here from + s-taprop.adb (Enter_Task). Set Debug_Event_Activating for debugger. + Set state to Runnable after above. + (Task_Wrapper): Set Debug_Event_Run. In exception block set + Debug_Event_Terminated. + + * s-taskin.ads (Task_States): Add new states Activiting and + Activator_Delay_Sleep. + (Bit_Array, Debug_Event_Array): New types. + (Global_Task_Debug_Event_Set: New flag. + (Common_ATCB): New field Debug_Events. + + * s-taskin.adb (Initialize_ATCB): Initialize Debug_Events. + + * s-tasren.adb (Timed_Selective_Wait): Set Activator_Delay_Sleep vice + Activator_Sleep. + + * s-tasini.adb (Locked_Abort_To_Level): Add case alternatives for when + Activating and when Acceptor_Delay_Sleep. + + * s-tasdeb.ads: Add constants for Debug_Events. + (Debug_Event_Kind_Type): New subtype. + (Signal_Debug_Event): New subprogram. + + * s-tasdeb.adb (Signal_Debug_Event): New null subprogram. + +2009-04-16 Thomas Quinot + + * sem_elim.adb: Minor reformatting + + * freeze.adb: Minor reformatting + + * exp_ch4.adb: Minor reformatting + +2009-04-16 Emmanuel Briot + + * prj-nmsc.adb (Path_Name_Of): fix memory leak + +2009-04-16 Robert Dewar + + * sinfo.ads (Backwards_OK, Forwards_OK): Clarify documentation + +2009-04-16 Vincent Celier + + * fmap.adb (Initialize): Show the current line when the mapping file + is detected as "incorrectly formatted". + +2009-04-16 Robert Dewar + + * sem_ch12.adb: Minor reformatting + + * sem_ch5.adb: Minor comment addition + + * sem_util.adb: Minor reformatting + + * sinput-p.adb: Minor reformatting + Add missing pragma Warnings (On) + +2009-04-16 Ed Falis + + * s-vxwext-kernel.adb: (ERROR): deleted unused constant + +2009-04-16 Vincent Celier + + * ali-util.adb: Minor comment spelling error fix + +2009-04-16 Eric Botcazou + + * exp_ch5.adb (Expand_Assign_Array): For the GCC back-end, do not + generate an assignment loop in case of overlap. + +2009-04-16 Olivier Hainque + + * gnat_ugn.texi (gnatmem description): Make it explicit that + gnatmem is designed to work in association with static runtime + library only. + +2009-04-16 Thomas Quinot + + * sem_type.adb: Minor reformatting + +2009-04-16 Hristian Kirtchev + + * s-osprim-darwin.adb, s-osprim-posix.adb (Clock): Add comment + concerning return codes of gettimeofday and return value check. + +2009-04-16 Ed Falis + + * s-vxwext-kernel.ads (Int_Lock, Int_Unlock): set to convention C so + body can be renaming of imported routines. + +2009-04-16 Vasiliy Fofanov + + * s-asthan-vms-alpha.adb: Disable warnings on alignment in a more + targeted fashion. + +2009-04-15 Hristian Kirtchev + + * exp_ch9.adb: Comment improvements. + (Build_Entry_Family_Name): Add parentheses around the index of a entry + family member. + +2009-04-15 Bob Duff + + * sem_warn.adb (Check_Infinite_Loop_Warning): Catch cases like + "while X /= null loop" where X is unchanged inside the loop. We were + not warning in this case, because of the pointers -- we feared that the + loop variable could be updated via a pointer, if there are any pointers + around the place. But that is impossible in this case. + + * sem_util.adb (May_Be_Lvalue): This routine was overly pessimistic in + the case of dereferences. In X.all, X cannot be an l-value. We now + catch that case (and implicit dereferences, too). + +2009-04-15 Vincent Celier + + * sinput-p.ads, sinput-p.adb (Clear_Source_File_Table): New procedure + +2009-04-15 Ed Schonberg + + * sem_ch12.adb (Is_Actual_Of_Previous_Formal): Make fully recursive. + From code reading. + (Analyze_Package_Instantiation): If generic unit in child instance is + the same as generic unit in parent instance, look for an outer homonym + to locate the desired generic. + +2009-04-15 Bob Duff + + * sem_ch5.adb (Analyze_Loop_Statement): Don't check for infinite loop + warnings unless the loop comes from source, because checking generated + loops is a waste of time, and makes it harder to debug + Check_Infinite_Loop_Warning. + + * sem_warn.adb (Check_Infinite_Loop_Warning): If the local variable + tested in the while loop is a renaming, do not warn. Otherwise, we get + false alarms, because it's usually renaming something that we can't + deal with (an indexed component, a global variable, ...). + + * gnat_rm.texi: Fix typo + +2009-04-15 Thomas Quinot + + * sem_ch6.adb: Minor reformatting + +2009-04-15 Hristian Kirtchev + + * exp_ch7.adb (Expand_Ctrl_Function_Call): Check for the case where the + immediate parent of the controlled function call is a component + association. + +2009-04-15 Ed Schonberg + + * sem_ch8.adb (Use_One_Type): If the type is tagged, indicate that the + corresponding class-wide type is also in use. + +2009-04-15 Thomas Quinot + + * frontend.adb: Minor comment fix + +2009-04-15 Robert Dewar + + * gnatchop.adb (BOM_Length): New global variable + (Write_Unit): Add new parameter Write_BOM + (Write_Chopped_Files): Check for BOM and set Write_BOM for call + to Write_Unit + + * gnat_ugn.texi: Add note on propagation of BOM by gnatchop + +2009-04-15 Geert Bosch + + * system-mingw-x86_64.ads, system-darwin-x86_64.ads + (Backend_Overflow_Checks): Set to True. + +2009-04-15 Gary Dismukes + + * par-ch3.adb (P_Type_Declaration): Issue an error if the synchronized + keyword is given in a record extension. + +2009-04-15 Hristian Kirtchev + + * exp_ch7.adb (Expand_Ctrl_Function_Call): Procede with the expansion + of a controlled function call in the context of a record aggregate. + This does not apply to array aggregates since the call will be expanded + into assignments. + +2009-04-15 Ed Falis + + * s-osinte-vxworks-kernel.adb, s-osinte-vxworks.adb, + s-osinte-vxworks.ads s-vxwext.ads, s-vxwext-kernel.adb, + s-vxwext-kernel.ads, s-vxwext-rtp.ads, s-vxwext-rtp.adb: Reorganize + s-osinte-vxworks* and s-vxwext*. + +2009-04-15 Arnaud Charlet + + * gcc-interface/Make-lang.in: Update dependencies. + + * gcc-interface/Makefile.in: Reorganization of s-osinte-vxworks* + and s-vxwext*. + +2009-04-15 Robert Dewar + + * sem_ch13.adb (Unchecked_Conversions): Store source location instead + of node for location for warning messages. + + * gnatchop.adb: Minor reformatting + +2009-04-15 Ed Schonberg + + * exp_ch6.adb: additional guard for renaming declarations for in + parameters of an array type. + +2009-04-15 Robert Dewar + + * sem_eval.adb (Get_Static_Length): Go to origin node for array bounds + in case they were rewritten by expander (Force_Evaluation). + + * targparm.adb (Get_Target_Parameters): Correct check for + Suppress_Exception_Locations. + +2009-04-15 Ed Schonberg + + * exp_ch6.adb (Expand_Inlined_Call): If an in-parameter in a call to be + inlined is of an array type that is not bit-packed, use a renaming + declaration to capture its value, rather than a constant declaration. + +2009-04-15 Robert Dewar + + * rtsfind.adb: Minor reformatting. + +2009-04-15 Emmanuel Briot + + * prj-part.adb, prj-tree.adb, prj-tree.ads (Restore_And_Free): renames + Restore, and free the saved context. + +2009-04-15 Gary Dismukes + + * sem_ch3.adb (Analyze_Private_Extension_Declaration): Move error check + for illegal private extension from a synchronized interface parent in + front of check for illegal limited extension so that limited extension + from a synchronized interface will be rejected. + (Check_Ifaces): Check that a private extension that has a synchronized + interface as a progenitor must be explicitly declared synchronized. + Also check that a record extension cannot derive from a synchronized + interface. + +2009-04-15 Pascal Obry + + * adaint.h (__gnat_unlink): Add spec. + (__gnat_rename): Likewise. + +2009-04-15 Vincent Celier + + * prj-nmsc.adb: Minor spelling error corrections in error messages + +2009-04-15 Robert Dewar + + * sinfo.ads: Minor comment update + + * opt.ads: Minor comment updates + + * checks.adb (Enable_Overflow_Check): Do not set Do_Overflow_Check for + modular type. + +2009-04-15 Ed Schonberg + + * exp_disp.ads, exp_disp.adb (Register_Primitive): Is now a function + that generates the code needed to update a dispatch table when a + primitive operation is declared with a subprogram body without previous + spec. Insertion of the generated code is responsibility of the caller. + (Make_DT): When building static tables, append the code created by + Register_Primitive to update a secondary table after it has been + constructed. + + * exp_ch3.adb, exp_ch6.adb: use new version of Register_Primitive. + + * sem_disp.adb (Check_Dispatching_Operation): Call Register_Primitive + on an overriding operation that implements an interface operation only + if not building static dispatch tables. + +2009-04-15 Hristian Kirtchev + + * a-caldel-vms.adb (To_Duration): Declare a "safe" end of time which + does not cause overflow when converted to Duration. Use the safe value + as the maximum allowable time delay.. + +2009-04-15 Jerome Lambourg + + * g-comlin.adb (Set_Command_Line): When adding a switch with attached + parameter, specify that the delimiter is NUL, otherwise "-j2" will be + translated to "-j 2". + +2009-04-15 Bob Duff + + * rtsfind.adb (Maybe_Add_With): Split out procedure to add implicit + with_clauses, to avoid code duplication. Change this processing so we + always add a with_clause on the main unit if needed. + +2009-04-15 Pascal Obry + + Add support for Win32 native encoding for delete/rename routines. + + * adaint.c (__gnat_unlink): New routine. + (__gnat_rename): New routine. + Simple wrapper routines used to convert to proper encoding on + Windows. + + * s-os_lib.adb: Use __gnat_unlink and __gnat_rename instead of direct + call to the C library. + + * g-sercom-mingw.adb, s-win32.ads: Update Win32 binding. + +2009-04-15 Robert Dewar + + * s-tassta.adb: Minor reformatting + +2009-04-15 Robert Dewar + + * frontend.adb (Frontend): Set proper default for + Warn_On_Non_Local_Exception. + + * opt.ads (Exception_Handler_Encountered): New flag + (No_Warn_On_Non_Local_Exception): New flag + + * par-ch11.adb (P_Exception_Handler): Set Exception_Handler_Encountered + + * sem_warn.adb (Set_Warning_Switch): Set No_Warn_On_Non_Local_Exception + (Set_Dot_Warning_Switch): Set No_Warn_On_Non_Local_Exception + +2009-04-15 Cyrille Comar + + * s-tassta.adb, a-exextr.adb, a-elchha.adb + (Ada.Exception.Last_Chance_Handler): Do not print unhandled exception + message when exception traces are active since it would generate + redundant information. + (Exception_Traces.Notify_Exception): put message output by a critical + section to avoid unsynchronized output. + (Trace_Unhandled_Exception_In_Task): put message output by a critical + section to avoid unsynchronized output. + +2009-04-15 Emmanuel Briot + + * g-comlin.adb, prj-tree.adb, prj-tree.ads, prj.adb, prj.ads + (Free): New subprogram. + +2009-04-15 Hristian Kirtchev + + * a-calend.adb: Add new constant Nanos_In_Four_Years. + (Formatting_Operations.Time_Of): Change the way four year chunks of + nanoseconds are added to the intermediate result. + +2009-04-15 Nicolas Setton + + * sysdep.c: Add __APPLE__ in the list of systems where get_immediate + does not need to wait for a carriage return. + +2009-04-15 Tristan Gingold + + * bindgen.adb: Do not generate adafinal if No_Finalization restriction + is set. + +2009-04-15 Ed Schonberg + + * freeze.adb (Freeze_Entity): improve error message for improper use of + incomplete types. + Diagnose additional illegal uses of incomplete types in formal parts. + appearing in formal parts. + + * sem_ch6.adb (Process_Formals, Analyze_Return_Type): ditto. + +2009-04-15 Robert Dewar + + * exp_ch4.adb (Expand_N_Allocator): Install test for object too large. + +2009-04-15 Nicolas Roche + + * adaint.c: Add function __gnat_lwp_self that retrieves the LWP of the + current thread. + + * s-osinte-linux.ads: Import the __gnat_lwp_self function as lwp_self + + * s-taprop-linux.adb (Enter_Task): Store the LWP in the TCB + +2009-04-15 Ed Schonberg + + * sem_ch4.adb: improve error message on exponentiation. + +2009-04-15 Hristian Kirtchev + + * a-calend.adb: Move constant Epoch_Offset from package + Conversion_Operations to top level. + (Delay_Operations.To_Duration): Define a constant which represents + "end of time" and use it as a guard against very distant delay dates. + Protect the code against overflow when performing the origin shift to + Unix time. + +2009-04-15 Robert Dewar + + * sem_prag.adb: Minor reformatting. + + * sem_type.adb: Minor reformatting + +2009-04-15 Javier Miranda + + * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Add missing + support to check eliminated subprograms. + + * sem_elim.ads (Eliminate_Error_Msg): Update documentation. + + * sem_elim.adb (Set_Eliminated): Add support for elimination of + dispatching subprograms. + + * exp_disp.adb (Make_DT): Minor code cleanup when freezing primitive + operations. Initialize with "null" the slots of eliminated dispaching + primitives. + (Write_DT): Add output for eliminated primitives. + + * sem_disp.adb (Check_Dispatching_Call): Check eliminated primitives. + +2009-04-15 Ed Schonberg + + * sem_ch8.adb (Use_One_Type): If both clauses appear on the same unit, + the second is redundant, regardless of scopes. + +2009-04-15 Vincent Celier + + * prj-nmsc.adb (Get_Directories): Check for sources before checking + the object directory as when there are no sources, they may not be any + object directory. + + * make.adb (Gnatmake): Do not attempt to get the path name of the exec + directory, when there are no exec directory. + +2009-04-15 Ed Schonberg + + * sem_type.adb (Remove_Conversions): In order to resolve spurious + ambiguities, refine removal of universal interpretations from complex + expressions with literal arguments, when some numeric operators have + been declared abstract. + +2009-04-15 Ed Falis + + * init.c: Map SIGSEGV to Storage_Error for all targets for uniformity + and backward compatibility for targets using probing for stack overflow + +2009-04-15 Ed Schonberg + + * sem_prag.adb (Analyze_Pragma, case 'Obsolescent): Pragma is legal + after any declaration, including renaming declarations. + +2009-04-15 Arnaud Charlet + + * gcc-interface/Make-lang.in: Update dependencies. + + * gcc-interface/Makefile.in: Fix VxWorks target pairs. + Update xenomai target pairs. + +2009-04-15 Javier Miranda + + * exp_ch4.adb (Expand_N_Allocator): Code cleanup. + + * sem_ch6.adb (Check_Anonymous_Return): Add missing support for + functions returning anonymous access to class-wide limited types. Mark + also the containing scope as a task master. + + * sem_ch8.adb (Restore_Scope_Stack): Add missing management for + limited-withed packages. Required to restore their visibility after + processing packages associated with implicit with-clauses. + + * exp_ch3.adb (Build_Class_Wide_Master): Avoid marking masters + associated with return statements because this work is now done by + Check_Anonymous_Return. + (Build_Master): Code cleanup. + +2009-04-15 Thomas Quinot + + * sem_warn.ads: Minor reformatting + +2009-04-15 Ed Schonberg + + * sem_ch3.adb: better error message for illegal interfaces + + * sem_ch6.adb (Possible_Freeze): Delay freezing a subprogram if a + formal is an incomplete type from a limited_with clause. + +2009-04-15 Vincent Celier + + * prj-nmsc.adb (Locate_Directory): New Boolean parameter + Externally_Built indicating if the project is externally built. If it + is, and --subdirs is specified, but the subdir does not exist, look + for the specified directory, without the subdir. + +2009-04-15 Gary Dismukes + + * a-tasatt.adb: Fix typo, plus minor reformatting + + * sem_ch3.ads: Add missing hyphen ("class wide" => "class-wide"). + + * sem_ch10.adb: Add missing hyphen ("use visible" => "use-visible"). + +2009-04-15 Ed Schonberg + + * sem_ch3.adb (Analyze_Private_Extension_Declaration): Verify that a + private extension whose parent is a synchronized interface carries an + explicit synchronized keyword. + +2009-04-15 Thomas Quinot + + * exp_smem.adb (Make_Shared_Var_Procs): For a protected type, + instantiate generic shared object package with the corresponding + record type. + +2009-04-15 Arnaud Charlet + + * system-linux-sparc.ads: Remove obsolete entries. + +2009-04-15 Thomas Quinot + + * s-tasuti.ads: Add ??? comment + +2009-04-15 Ed Schonberg + + * sem_ch3.adb (Analyze_Type_Declaration): Create freeze node for access + type even if the designated type comes from a limited_with clause, to + ensure that the symbol for the finalization list of the access type is + created. + +2009-04-10 Robert Dewar + + * sem_warn.ads, sem_warn.adb (Check_Low_Bound_Tested): Catch more cases + for warning suppression. + +2009-04-10 Ed Schonberg + + * sem_ch8.adb (Use_One_Type): If the two use_type clauses are + identical, there is no redudancy to check. + +2009-04-10 Gary Dismukes + + * exp_ch5.adb (Expand_N_Extended_Return_Statement): Delete redundant + calls initializing SS_Allocator (which is initialized in following + code). + (Expand_Simple_Function_Return): Add comment about False value for + Comes_From_Source on secondary-stack allocator. + + * exp_ch9.adb (Build_Entry_Family_Name): Add comment. + (Build_Entry_Name): Add comment. + +2009-04-10 Robert Dewar + + * einfo.ads, einfo.adb (Low_Bound_Tested): New name for Low_Bound_Known + + * sem_prag.adb (Analyze_Pragma, case Check): Remove check for lower + bound tested, since this is now done more generally in Sem_Res. + + * sem_res.adb (Resolve_Comparison_Op): Add call to + Check_Lower_Bound_Tested. + (Resolve_Equality_Op): Add call to Check_Lower_Bound_Tested + + * sem_warn.ads, sem_warn.adb (Check_Low_Bound_Tested): New procedure + (Low_Bound_Tested): New name for Low_Bound_Known flag + + * exp_ch5.adb: Minor reformatting + + * exp_ch4.adb: + Add comments on copying the Comes_From_Source flag for allocators + + * sinfo.ads: + Add comments on copying the Comes_From_Source flag for allocators + + * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Copy + Comes_From_Source flag from old allocator to new one. + +2009-04-10 Ed Schonberg + + * sem_ch6.ads: Address missing documentation query + +2009-04-10 Vincent Celier + + * prj-attr.adb: + Add new Linker attributes Max_Command_Line_Length, Response_File_Format + and Response_File_Switches. + + * prj-nmsc.adb (Process_Linker): Process new attributes + Max_Command_Line_Length, Response_File_Format and + Response_File_Switches. + + * prj.ads (Response_File_Format): New enumeration type + (Project_Configuration): New componants Max_Command_Line_Length, + Resp_File_Format and Resp_File_Options. + + * snames.ads-tmpl: Add new standard names for linking response files + for gprbuild: GNU, None, Object_List, Option_List, + Max_Command_Line_Length, Response_File_Format and + Response_File_Switches. + +2009-04-10 Geert Bosch + + * system-aix.ads, system-darwin-ppc.ads, system-darwin-x86.ads, + system-freebsd-x86.ads, system-hpux.ads, system-hpux-ia64.ads, + system-irix-n32.ads, system-irix-o32.ads, system-linux-alpha.ads, + system-linux-hppa.ads, system-linux-ia64.ads, system-linux-ppc.ads, + system-linux-s390.ads, system-linux-s390x.ads, system-linux-sh4.ads, + system-linux-sparc.ads, system-linux-x86_64.ads, system-linux-x86.ads, + system-mingw.ads, system-solaris-sparc.ads, system-solaris-sparcv9.ads, + system-solaris-x86.ads, system-tru64.ads, system-vms_64.ads, + system-vms.ads, system-vms-ia64.ads, system-vms-zcx.ads, + system-vxworks-arm.ads, system-vxworks-m68k.ads, + system-vxworks-mips.ads, system-vxworks-ppc.ads, + system-vxworks-sparcv9.ads, system-vxworks-x86.ads + (Backend_Overflow_Checks): Set to True. + +2009-04-10 Thomas Quinot + + * exp_attr.adb: Minor reformatting + +2009-04-10 Ed Schonberg + + * sem_prag.adb (Check_Precondition_Postcondition): Within a generic, + analyze the expression for a postcondition, even if the compiler mode + is Generate_Code. + +2009-04-10 Robert Dewar + + * sem_aux.adb: Minor reformatting + +2009-04-10 Ed Falis + + * init.c: Change VxWorks 6 stack overflow checking for kernel apps. + + * system-vxworks-ppc.ads, system-vxworks-x86.ads: Update header. + +2009-04-10 Thomas Quinot + + * sem_ch6.ads (Check_Subtype_Conformant): Add ??? comment for + undocumented formal. + Minor reformatting + + * a-direio.ads: Fix typo in comment + + * sem_ch3.adb, g-dirope.adb, sem_type.adb, sem_ch12.adb, sem_case.adb, + errout.adb, sem_ch4.adb, sem_ch11.adb, exp_dist.adb, sem_ch13.adb: + Use uniform phrasing for comment at start of subprogram body. + + * xsnamest.adb: Add note to explain why we use specific names for the + newly generated files instead of generating snames.{ads,adb,h} directly + +2009-04-10 Sergey Rybin + + * vms_data.ads: + Add qualifier for new gnatstub option '--no-exception' + + * gnat_ugn.texi: + Add the description of the new gnatstub option '--no-exception' + +2009-04-10 Robert Dewar + + * rtsfind.adb: Minor reformatting + +2009-04-10 Thomas Quinot + + * sem_disp.adb: Minor reformatting. + Add comment pointing to RM clause for the case of warning against a + (failed) attempt at declaring a primitive operation elsewhere than in a + package spec. + +2009-04-10 Ed Schonberg + + * sem_ch12.adb (Denotes_Formal_Package): Check whether the package is + an actual for a previous formal package of the current instance. + +2009-04-10 Bob Duff + + * rtsfind.adb (RTE): Put implicit with_clauses on whatever unit needs + them first, rather than on the extended main unit. + +2009-04-10 Ed Schonberg + + * sem_ch6.adb (Check_Discriminant_Conformance): If discriminant + specification of full view carries a null exclusion indicator, create + an itype for it, to check for conformance with partial view. + +2009-04-10 Bob Duff + + * rtsfind.ads: Minor code change: make RE_Unit_Table constant. + + * rtsfind.adb: Minor comment changes, and remove useless code. + + * sinfo.ads: Add ??? comment. + +2009-04-10 Vincent Celier + + * vms_data.ads: Add missing GNAT SYNC VMS qualifiers -main= and -U + +2009-04-10 Ed Schonberg + + * exp_attr.adb (Expand_N_Attribute_Reference, case 'Tag): If the tagged + type is a synchronized type, retrieve tag information from the + corresponding record, which has the dispatch table link. + +2009-04-10 Jerome Lambourg + + * g-comlin.adb (Group_Analysis): Take care of switches that might be + decomposed afterwards, but are present as-is in the command line + configuration, and thus should be kept as-is. + +2009-04-10 Robert Dewar + + * gnat_rm.texi: Document that postconditions are tested on implicit + returns. + + * sem_aux.adb: Minor reformatting + +2009-04-10 Gary Dismukes + + * itypes.adb (Create_Null_Excluding_Itype): Apply Base_Type when + setting Etype. + + * par-ch3.adb (P_Access_Type_Definition): Set new attribute + Null_Exclusion_In_Return_Present when an access-to-function type has a + result type with an explicit not null. + + * sem_ch3.adb (Access_Subprogram_Definition): If a null exclusion is + given on the result type, then create a null-excluding itype for the + function. + + * sem_ch6.adb (Analyze_Return_Type): Create a null-excluding itype in + the case where a null exclusion is imposed on a named access type. + (Analyze_Subprogram_Specification): Push and pop the scope of the + function around the call to Analyze_Return_Type in the case of no + formals, for consistency with handling when formals are present + (Process_Formals does this). Ensures that any itype created for the + return type will be associated with the proper scope. + + * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): If a null + exclusion is given on a generic function's result type, then create a + null-excluding itype for the generic function. + (Instantiate_Object): Set Null_Exclusion_Present of a constant created + for an actual for a formal in object according to the setting on the + formal. Ensures null exclusion checks are done when the association is + elaborated. + + * sinfo.ads: Add new flag Null_Exclusion_In_Return_Present on + N_Access_Function_Definition. + + * sinfo.adb: Add Get_ and Set_ operations for + Null_Exclusion_In_Return_Present. + +2009-04-10 Bob Duff + + * exp_ch5.adb, exp_ch6.adb, sem_ch6.adb: Move the code that creates a + call to the _Postconditions procedure in the case of implicit returns + from analysis to expansion. This eliminates some duplicated code. Use + the Postcondition_Proc to find the identity of this procedure during + expansion. + +2009-04-10 Robert Dewar + + * sem_ch6.adb: Minor code clean up. + + * einfo.ads, sem_attr.adb: Minor comment fixes. + +2009-04-10 Robert Dewar + + * sem_ch8.adb: Minor reformatting + +2009-04-10 Robert Dewar + + * einfo.ads, einfo.adb (Postcondition_Proc): New attribute for + procedures. + + * sem_ch6.adb: Minor code clean up. + +2009-04-10 Robert Dewar + + * mlib-tgt-specific-xi.adb: Minor reformatting + +2009-04-10 Bob Duff + + * einfo.ads: Minor comment fixes + +2009-04-10 Vincent Celier + + * snames.ads-tmpl: Remove names that are no longer used in the + Project Manager. + Mark specifically those that are used only in gprbuild + +2009-04-10 Eric Botcazou + + * init.c: Adjust EH support code on Alpha/Tru64. + +2009-04-10 Bob Duff + + * sem_ch6.adb (Process_PPCs): Add a call to the _Postconditions + procedure on every path that could return implicitly (not via a return + statement) from a procedure. + +2009-04-10 Ed Schonberg + + * exp_ch9.adb (Build_Master_Entity): An extended return statement is a + valid scope for a task declarations and therefore for a master id. + +2009-04-10 Robert Dewar + + * sem_aux.adb: Minor reformatting + +2009-04-10 Vincent Celier + + * scn.adb (Obsolescent_Check_Flag): New Boolean flag, initialized to + True. + (Obsolescent_Check): Do nothing if Obsolescent_Check_Flag is False + (Set_Obsolescent_Check): New procedure to change the value of + Obsolescent_Check_Flag. + + * scn.ads (Set_Obsolescent_Check): New procedure to control + Obsolescent_Check. + + * sinput-l.adb (Load_File): Do not check for pragma Restrictions on + obsolescent features while preprocessing. + +2009-04-10 Thomas Quinot + + * xsnamest.adb: Use XUtil to have uniform line endings (UNIX style) in + generated files on all platforms. + +2009-04-10 Robert Dewar + + * sem_aux.adb: Minor reformatting + +2009-04-10 Ed Schonberg + + * sem_ch3.adb (Access_Definition): Handle properly the case of a + protected function with formals that returns an anonymous access type. + +2009-04-10 Thomas Quinot + + * sem_disp.adb: Minor reformatting + +2009-04-10 Vasiliy Fofanov + + * seh_init.c: Do not use the 32-bit specific implementation of + __gnat_install_SEH_handler on 64-bit Windows target (64-bit specific + version TBD). + +2009-04-10 Jose Ruiz + + * mlib-tgt-specific-xi.adb (Get_Target_Prefix): Target_Name may contain + a '/' at the end so we better use the complete target name to determine + whether it is a PowerPC 55xx target. + +2009-04-10 Thomas Quinot + + * sem_eval.adb: Minor reformatting + +2009-04-10 Thomas Quinot + + * snames.h, snames.ads, snames.adb: Remove files, now generated from + templates. + + * snames.h-tmpl, snames.ads-tmpl, snames.adb-tmpl: Templates for the + above. + + * xsnamest.adb: New file. + + * gcc-interface/Make-lang.in: New target for automated generation of + snames.ads, snames.adb and snames.h + +2009-04-10 Tristan Gingold + + * gcc-interface/Makefile.in, gcc-interface/utils.c: Include "rtl.h" to + avoid compile time warnings. + Do not add gcc/config in include search list while compiling the RTS. + Pragma Thread_Local_Storage is available on any target. + +2009-04-10 Bob Duff + + * sem.ads, par.adb, sem_ch6.adb, sem_ch8.adb: Minor comment fixes. + +2009-04-10 Tristan Gingold + + * init.c: Install signal handler on Darwin. + +2009-04-10 Robert Dewar + + * sem_prag.adb: Minor reformatting + + * exp_util.adb (Make_Non_Empty_Check): New function + (Silly_Boolean_Array_Not_Test): Add call to Make_Non_Empty_Check + (Silly_Boolean_Array_Xor_Test): Use Make_Non_Empty_Check + +2009-04-10 Arnaud Charlet + + * make.adb, gnatlink.adb: Rename JGNAT toolchain. + +2009-04-10 Jose Ruiz + + * mlib-tgt-specific-xi.adb (Get_Target_Prefix): Insert the appropriate + tool prefix for AVR and PowerPC 55xx targets. + +2009-04-10 Robert Dewar + + * sem_warn.adb (Within_Postcondition): New function + (Check_Unset_Reference): Use Within_Postcondition to stop bad warning + +2009-04-10 Robert Dewar + + * sem_warn.adb: Minor reformatting + + * make.adb: Minor reformatting. + +2009-04-10 Gary Dismukes + + * exp_ch7.adb (Find_Final_List): When creating a finalization-chain + entity and the scope is a subprogram, retrieve the Sloc of the + subprogram's body rather than using the sloc of the spec, for better + line-stepping behavior in gdb. + (Wrap_Transient_Declaration): For the Sloc of nodes created with a list + controller, use the Sloc of the first declaration of the containing list + rather than that of the node that triggered creation of the list + controller. + +2009-04-10 Vincent Celier + + * prj-nmsc.adb (Check_Naming_Schemes): Initialize local variable Casing + to avoid gcc warning. + +2009-04-10 Robert Dewar + + * g-comlin.adb: Add ??? comment + +2009-04-10 Ed Schonberg + + * sem_warn.adb (Check_Unused_Withs): Do not emit message about + unreferenced entities for a package with no visible declarations. + +2009-04-10 Robert Dewar + + * exp_ch9.adb: Minor reformatting + +2009-04-10 Thomas Quinot + + * sem_prag.adb: Minor reformatting + +2009-04-10 Vincent Celier + + * prj-nmsc.adb: + (Check_Library_Attributes): For a project qualified as a library project + that is not a library project, indicate in the error message which + attributes are missing (Library_Dir and/or Library_Name). + +2009-04-10 Bob Duff + + * exp_ch5.adb, exp_ch9.adb: Avoid use of No_Position in Sloc of + generated nodes, because it might confuse various circuits in the FE. + +2009-04-10 Ed Schonberg + + * sem_prag.adb (Analyze_Pragma, case Task_Name): Do not expand argument + of pragma. It will be recopied and analyzed when used in call to + Create_Task. + + * sem_res.adb (Resolve_Call): Clarify use of secondary stack within + initialization operations and recognize use of it in procedure calls + within init_procs. + + * exp_ch9.adb (Make_Task_Create_Call): Copy full tree of Task_Name + argument, because it may have side-effects. + + * exp_ch2.adb: Remove obsolete comments on default functions + +2009-04-10 Jose Ruiz + + * adaint.c (RTX section): Do for RTX the same thing as we do for + Windows (include ctype.h and define a fallback ISALPHA if IN_RTS). + +2009-04-10 Robert Dewar + + * sem_aux.ads, sem_aux.adb (Nearest_Current_Scope): New function. + + * sem_res.adb (Resolve_Call): Fix test for + Suppress_Value_Tracking_On_Call (was wrong for the case of a call from + a non-dynamic scope). + +2009-04-10 Robert Dewar + + * make.adb: Add comment. + Minor reformatting + +2009-04-10 Nicolas Setton + + * s-osprim-darwin.adb: New file. + + * s-osinte-darwin.adb, s-osinte-darwin.ads: Fix binding to timespec. + +2009-04-10 Thomas Quinot + + * g-socket.ads: Add comment clarifying alignment requirement for Fd_Set + +2009-04-09 Nick Clifton + + * adadecode.h: Change copyright header to refer to version + 3 of the GNU General Public License with version 3.1 of the + GCC Runtime Library Exception and to point readers at the + COPYING3 and COPYING3.RUNTIME files and the FSF's license web + page. + * 9drpc.adb: Likewise. + * a-assert.adb: Likewise. + * a-astaco.adb: Likewise. + * a-calari.adb: Likewise. + * a-calcon.adb: Likewise. + * a-calcon.ads: Likewise. + * a-caldel.ads: Likewise. + * a-calend-vms.adb: Likewise. + * a-calend-vms.ads: Likewise. + * a-calend.adb: Likewise. + * a-calend.ads: Likewise. + * a-calfor.adb: Likewise. + * a-catizo.adb: Likewise. + * a-cdlili.adb: Likewise. + * a-cdlili.ads: Likewise. + * a-cgaaso.adb: Likewise. + * a-cgaaso.ads: Likewise. + * a-cgarso.adb: Likewise. + * a-cgcaso.adb: Likewise. + * a-chacon.adb: Likewise. + * a-chacon.ads: Likewise. + * a-chahan.adb: Likewise. + * a-chahan.ads: Likewise. + * a-chlat9.ads: Likewise. + * a-chtgke.adb: Likewise. + * a-chtgke.ads: Likewise. + * a-chtgop.adb: Likewise. + * a-chtgop.ads: Likewise. + * a-chzla1.ads: Likewise. + * a-chzla9.ads: Likewise. + * a-cidlli.adb: Likewise. + * a-cidlli.ads: Likewise. + * a-cihama.adb: Likewise. + * a-cihama.ads: Likewise. + * a-cihase.adb: Likewise. + * a-cihase.ads: Likewise. + * a-ciorma.adb: Likewise. + * a-ciorma.ads: Likewise. + * a-ciormu.adb: Likewise. + * a-ciormu.ads: Likewise. + * a-ciorse.adb: Likewise. + * a-ciorse.ads: Likewise. + * a-clrefi.adb: Likewise. + * a-clrefi.ads: Likewise. + * a-cohama.adb: Likewise. + * a-cohama.ads: Likewise. + * a-cohase.adb: Likewise. + * a-cohase.ads: Likewise. + * a-cohata.ads: Likewise. + * a-coinve.adb: Likewise. + * a-coinve.ads: Likewise. + * a-colien.adb: Likewise. + * a-colien.ads: Likewise. + * a-colire.adb: Likewise. + * a-colire.ads: Likewise. + * a-comlin.adb: Likewise. + * a-comlin.ads: Likewise. + * a-convec.adb: Likewise. + * a-convec.ads: Likewise. + * a-coorma.adb: Likewise. + * a-coorma.ads: Likewise. + * a-coormu.adb: Likewise. + * a-coormu.ads: Likewise. + * a-coorse.adb: Likewise. + * a-coorse.ads: Likewise. + * a-coprnu.adb: Likewise. + * a-coprnu.ads: Likewise. + * a-crbltr.ads: Likewise. + * a-crbtgk.adb: Likewise. + * a-crbtgk.ads: Likewise. + * a-crbtgo.adb: Likewise. + * a-crbtgo.ads: Likewise. + * a-crdlli.adb: Likewise. + * a-crdlli.ads: Likewise. + * a-cwila1.ads: Likewise. + * a-cwila9.ads: Likewise. + * a-decima.adb: Likewise. + * a-decima.ads: Likewise. + * a-diocst.adb: Likewise. + * a-diocst.ads: Likewise. + * a-direct.adb: Likewise. + * a-direct.ads: Likewise. + * a-direio.adb: Likewise. + * a-direio.ads: Likewise. + * a-dirval-mingw.adb: Likewise. + * a-dirval-vms.adb: Likewise. + * a-dirval.adb: Likewise. + * a-dirval.ads: Likewise. + * a-dynpri.adb: Likewise. + * a-einuoc.adb: Likewise. + * a-einuoc.ads: Likewise. + * a-elchha.adb: Likewise. + * a-elchha.ads: Likewise. + * a-envvar.adb: Likewise. + * a-excach.adb: Likewise. + * a-except-2005.adb: Likewise. + * a-except-2005.ads: Likewise. + * a-except.adb: Likewise. + * a-except.ads: Likewise. + * a-excpol-abort.adb: Likewise. + * a-excpol.adb: Likewise. + * a-exctra.adb: Likewise. + * a-exctra.ads: Likewise. + * a-exetim-mingw.adb: Likewise. + * a-exetim-mingw.ads: Likewise. + * a-exexda.adb: Likewise. + * a-exexpr-gcc.adb: Likewise. + * a-exexpr.adb: Likewise. + * a-exextr.adb: Likewise. + * a-exstat.adb: Likewise. + * a-filico.adb: Likewise. + * a-filico.ads: Likewise. + * a-finali.adb: Likewise. + * a-finali.ads: Likewise. + * a-interr.ads: Likewise. + * a-intnam-aix.ads: Likewise. + * a-intnam-darwin.ads: Likewise. + * a-intnam-dummy.ads: Likewise. + * a-intnam-freebsd.ads: Likewise. + * a-intnam-hpux.ads: Likewise. + * a-intnam-irix.ads: Likewise. + * a-intnam-linux.ads: Likewise. + * a-intnam-lynxos.ads: Likewise. + * a-intnam-mingw.ads: Likewise. + * a-intnam-rtems.ads: Likewise. + * a-intnam-solaris.ads: Likewise. + * a-intnam-tru64.ads: Likewise. + * a-intnam-vms.ads: Likewise. + * a-intnam-vxworks.ads: Likewise. + * a-intsig.adb: Likewise. + * a-intsig.ads: Likewise. + * a-ngcefu.adb: Likewise. + * a-ngcoar.adb: Likewise. + * a-ngcoty.adb: Likewise. + * a-ngcoty.ads: Likewise. + * a-ngelfu.adb: Likewise. + * a-ngrear.adb: Likewise. + * a-ngrear.ads: Likewise. + * a-nudira.adb: Likewise. + * a-nudira.ads: Likewise. + * a-nuflra.adb: Likewise. + * a-nuflra.ads: Likewise. + * a-numaux-darwin.adb: Likewise. + * a-numaux-darwin.ads: Likewise. + * a-numaux-libc-x86.ads: Likewise. + * a-numaux-vxworks.ads: Likewise. + * a-numaux-x86.adb: Likewise. + * a-numaux-x86.ads: Likewise. + * a-numaux.ads: Likewise. + * a-rbtgso.adb: Likewise. + * a-rbtgso.ads: Likewise. + * a-reatim.ads: Likewise. + * a-retide.adb: Likewise. + * a-retide.ads: Likewise. + * a-rttiev.adb: Likewise. + * a-rttiev.ads: Likewise. + * a-secain.adb: Likewise. + * a-secain.ads: Likewise. + * a-sequio.adb: Likewise. + * a-sequio.ads: Likewise. + * a-shcain.adb: Likewise. + * a-shcain.ads: Likewise. + * a-siocst.adb: Likewise. + * a-siocst.ads: Likewise. + * a-slcain.adb: Likewise. + * a-slcain.ads: Likewise. + * a-ssicst.adb: Likewise. + * a-ssicst.ads: Likewise. + * a-stboha.adb: Likewise. + * a-stmaco.ads: Likewise. + * a-storio.adb: Likewise. + * a-strbou.adb: Likewise. + * a-strbou.ads: Likewise. + * a-stream.ads: Likewise. + * a-strfix.adb: Likewise. + * a-strhas.adb: Likewise. + * a-strmap.adb: Likewise. + * a-strmap.ads: Likewise. + * a-strsea.adb: Likewise. + * a-strsea.ads: Likewise. + * a-strsup.adb: Likewise. + * a-strsup.ads: Likewise. + * a-strunb.adb: Likewise. + * a-strunb.ads: Likewise. + * a-ststio.adb: Likewise. + * a-ststio.ads: Likewise. + * a-stunau.adb: Likewise. + * a-stunau.ads: Likewise. + * a-stunha.adb: Likewise. + * a-stwibo.adb: Likewise. + * a-stwibo.ads: Likewise. + * a-stwifi.adb: Likewise. + * a-stwiha.adb: Likewise. + * a-stwima.adb: Likewise. + * a-stwima.ads: Likewise. + * a-stwise.adb: Likewise. + * a-stwise.ads: Likewise. + * a-stwisu.adb: Likewise. + * a-stwisu.ads: Likewise. + * a-stwiun.adb: Likewise. + * a-stwiun.ads: Likewise. + * a-stzbou.adb: Likewise. + * a-stzbou.ads: Likewise. + * a-stzfix.adb: Likewise. + * a-stzhas.adb: Likewise. + * a-stzmap.adb: Likewise. + * a-stzmap.ads: Likewise. + * a-stzsea.adb: Likewise. + * a-stzsea.ads: Likewise. + * a-stzsup.adb: Likewise. + * a-stzsup.ads: Likewise. + * a-stzunb.adb: Likewise. + * a-stzunb.ads: Likewise. + * a-suteio.adb: Likewise. + * a-suteio.ads: Likewise. + * a-swbwha.adb: Likewise. + * a-swmwco.ads: Likewise. + * a-swunau.adb: Likewise. + * a-swunau.ads: Likewise. + * a-swuwha.adb: Likewise. + * a-swuwti.adb: Likewise. + * a-swuwti.ads: Likewise. + * a-sytaco.adb: Likewise. + * a-sytaco.ads: Likewise. + * a-szbzha.adb: Likewise. + * a-szmzco.ads: Likewise. + * a-szunau.adb: Likewise. + * a-szunau.ads: Likewise. + * a-szuzha.adb: Likewise. + * a-szuzti.adb: Likewise. + * a-szuzti.ads: Likewise. + * a-tags.adb: Likewise. + * a-tags.ads: Likewise. + * a-tasatt.ads: Likewise. + * a-taside.adb: Likewise. + * a-taside.ads: Likewise. + * a-taster.adb: Likewise. + * a-teioed.adb: Likewise. + * a-teioed.ads: Likewise. + * a-textio.adb: Likewise. + * a-textio.ads: Likewise. + * a-tiboio.adb: Likewise. + * a-ticoau.adb: Likewise. + * a-ticoau.ads: Likewise. + * a-ticoio.adb: Likewise. + * a-ticoio.ads: Likewise. + * a-tideau.adb: Likewise. + * a-tideau.ads: Likewise. + * a-tideio.adb: Likewise. + * a-tideio.ads: Likewise. + * a-tienau.adb: Likewise. + * a-tienau.ads: Likewise. + * a-tienio.adb: Likewise. + * a-tienio.ads: Likewise. + * a-tifiio.adb: Likewise. + * a-tifiio.ads: Likewise. + * a-tiflau.adb: Likewise. + * a-tiflau.ads: Likewise. + * a-tiflio.adb: Likewise. + * a-tiflio.ads: Likewise. + * a-tigeau.adb: Likewise. + * a-tigeau.ads: Likewise. + * a-tiinau.adb: Likewise. + * a-tiinau.ads: Likewise. + * a-tiinio.adb: Likewise. + * a-tiinio.ads: Likewise. + * a-timoau.adb: Likewise. + * a-timoau.ads: Likewise. + * a-timoio.adb: Likewise. + * a-timoio.ads: Likewise. + * a-tiocst.adb: Likewise. + * a-tiocst.ads: Likewise. + * a-titest.adb: Likewise. + * a-wichun.adb: Likewise. + * a-wichun.ads: Likewise. + * a-witeio.adb: Likewise. + * a-witeio.ads: Likewise. + * a-wtcoau.adb: Likewise. + * a-wtcoau.ads: Likewise. + * a-wtcoio.adb: Likewise. + * a-wtcstr.adb: Likewise. + * a-wtcstr.ads: Likewise. + * a-wtdeau.adb: Likewise. + * a-wtdeau.ads: Likewise. + * a-wtdeio.adb: Likewise. + * a-wtdeio.ads: Likewise. + * a-wtedit.adb: Likewise. + * a-wtedit.ads: Likewise. + * a-wtenau.adb: Likewise. + * a-wtenau.ads: Likewise. + * a-wtenio.adb: Likewise. + * a-wtenio.ads: Likewise. + * a-wtfiio.adb: Likewise. + * a-wtfiio.ads: Likewise. + * a-wtflau.adb: Likewise. + * a-wtflau.ads: Likewise. + * a-wtflio.adb: Likewise. + * a-wtflio.ads: Likewise. + * a-wtgeau.adb: Likewise. + * a-wtgeau.ads: Likewise. + * a-wtinau.adb: Likewise. + * a-wtinau.ads: Likewise. + * a-wtinio.adb: Likewise. + * a-wtmoau.adb: Likewise. + * a-wtmoau.ads: Likewise. + * a-wtmoio.adb: Likewise. + * a-wtmoio.ads: Likewise. + * a-wttest.adb: Likewise. + * a-wwboio.adb: Likewise. + * a-zchuni.adb: Likewise. + * a-zchuni.ads: Likewise. + * a-ztcoau.adb: Likewise. + * a-ztcoau.ads: Likewise. + * a-ztcoio.adb: Likewise. + * a-ztcstr.adb: Likewise. + * a-ztcstr.ads: Likewise. + * a-ztdeau.adb: Likewise. + * a-ztdeau.ads: Likewise. + * a-ztdeio.adb: Likewise. + * a-ztdeio.ads: Likewise. + * a-ztedit.adb: Likewise. + * a-ztedit.ads: Likewise. + * a-ztenau.adb: Likewise. + * a-ztenau.ads: Likewise. + * a-ztenio.adb: Likewise. + * a-ztenio.ads: Likewise. + * a-ztexio.adb: Likewise. + * a-ztexio.ads: Likewise. + * a-ztfiio.adb: Likewise. + * a-ztfiio.ads: Likewise. + * a-ztflau.adb: Likewise. + * a-ztflau.ads: Likewise. + * a-ztflio.adb: Likewise. + * a-ztflio.ads: Likewise. + * a-ztgeau.adb: Likewise. + * a-ztgeau.ads: Likewise. + * a-ztinau.adb: Likewise. + * a-ztinau.ads: Likewise. + * a-ztinio.adb: Likewise. + * a-ztmoau.adb: Likewise. + * a-ztmoau.ads: Likewise. + * a-ztmoio.adb: Likewise. + * a-ztmoio.ads: Likewise. + * a-zttest.adb: Likewise. + * a-zzboio.adb: Likewise. + * adadecode.c: Likewise. + * adaint.c: Likewise. + * adaint.h: Likewise. + * alloc.ads: Likewise. + * argv.c: Likewise. + * arit64.c: Likewise. + * atree.adb: Likewise. + * atree.ads: Likewise. + * aux-io.c: Likewise. + * cal.c: Likewise. + * casing.adb: Likewise. + * casing.ads: Likewise. + * cio.c: Likewise. + * csets.adb: Likewise. + * csets.ads: Likewise. + * cstreams.c: Likewise. + * ctrl_c.c: Likewise. + * debug.adb: Likewise. + * debug.ads: Likewise. + * dec.ads: Likewise. + * einfo.adb: Likewise. + * einfo.ads: Likewise. + * elists.adb: Likewise. + * elists.ads: Likewise. + * env.c: Likewise. + * env.h: Likewise. + * errno.c: Likewise. + * exit.c: Likewise. + * fe.h: Likewise. + * final.c: Likewise. + * fname.adb: Likewise. + * fname.ads: Likewise. + * g-allein.ads: Likewise. + * g-alleve.adb: Likewise. + * g-alleve.ads: Likewise. + * g-altcon.adb: Likewise. + * g-altcon.ads: Likewise. + * g-altive.ads: Likewise. + * g-alveop.adb: Likewise. + * g-alveop.ads: Likewise. + * g-alvety.ads: Likewise. + * g-alvevi.ads: Likewise. + * g-arrspl.adb: Likewise. + * g-arrspl.ads: Likewise. + * g-calend.ads: Likewise. + * g-comlin.adb: Likewise. + * g-debpoo.adb: Likewise. + * g-debpoo.ads: Likewise. + * g-eacodu-vms.adb: Likewise. + * g-eacodu.adb: Likewise. + * g-excact.adb: Likewise. + * g-excact.ads: Likewise. + * g-locfil.adb: Likewise. + * g-os_lib.ads: Likewise. + * g-rannum.adb: Likewise. + * g-rannum.ads: Likewise. + * g-regist.adb: Likewise. + * g-regist.ads: Likewise. + * g-signal.adb: Likewise. + * g-signal.ads: Likewise. + * g-soccon.ads: Likewise. + * g-string.adb: Likewise. + * g-string.ads: Likewise. + * g-strspl.ads: Likewise. + * g-timsta.adb: Likewise. + * g-timsta.ads: Likewise. + * g-trasym-vms-alpha.adb: Likewise. + * g-trasym-vms-ia64.adb: Likewise. + * g-utf_32.adb: Likewise. + * g-utf_32.ads: Likewise. + * g-wistsp.ads: Likewise. + * g-zstspl.ads: Likewise. + * gmem.c: Likewise. + * gnatvsn.adb: Likewise. + * gnatvsn.ads: Likewise. + * gsocket.h: Likewise. + * hostparm.ads: Likewise. + * i-c.adb: Likewise. + * i-cexten.ads: Likewise. + * i-cobol.adb: Likewise. + * i-cobol.ads: Likewise. + * i-cpoint.adb: Likewise. + * i-cpoint.ads: Likewise. + * i-cpp.adb: Likewise. + * i-cpp.ads: Likewise. + * i-cstrea-vms.adb: Likewise. + * i-cstrea.adb: Likewise. + * i-cstrea.ads: Likewise. + * i-cstrin.adb: Likewise. + * i-cstrin.ads: Likewise. + * i-forbla-darwin.adb: Likewise. + * i-forbla-unimplemented.ads: Likewise. + * i-forbla.adb: Likewise. + * i-forbla.ads: Likewise. + * i-forlap.ads: Likewise. + * i-fortra.adb: Likewise. + * i-pacdec.adb: Likewise. + * i-pacdec.ads: Likewise. + * i-vxwoio.adb: Likewise. + * i-vxwoio.ads: Likewise. + * indepsw-aix.adb: Likewise. + * indepsw-gnu.adb: Likewise. + * indepsw-mingw.adb: Likewise. + * indepsw.adb: Likewise. + * indepsw.ads: Likewise. + * init.c: Likewise. + * initialize.c: Likewise. + * interfac.ads: Likewise. + * krunch.adb: Likewise. + * krunch.ads: Likewise. + * lib-list.adb: Likewise. + * lib-sort.adb: Likewise. + * lib.adb: Likewise. + * lib.ads: Likewise. + * link.c: Likewise. + * math_lib.adb: Likewise. + * memtrack.adb: Likewise. + * mingw32.h: Likewise. + * mkdir.c: Likewise. + * namet-sp.adb: Likewise. + * namet-sp.ads: Likewise. + * namet.adb: Likewise. + * namet.ads: Likewise. + * nlists.adb: Likewise. + * nlists.ads: Likewise. + * opt.adb: Likewise. + * opt.ads: Likewise. + * output.adb: Likewise. + * output.ads: Likewise. + * raise-gcc.c: Likewise. + * raise.c: Likewise. + * raise.h: Likewise. + * repinfo.adb: Likewise. + * repinfo.ads: Likewise. + * repinfo.h: Likewise. + * rident.ads: Likewise. + * s-addima.adb: Likewise. + * s-addima.ads: Likewise. + * s-addope.adb: Likewise. + * s-addope.ads: Likewise. + * s-arit64.adb: Likewise. + * s-arit64.ads: Likewise. + * s-assert.adb: Likewise. + * s-assert.ads: Likewise. + * s-asthan-vms-alpha.adb: Likewise. + * s-asthan.adb: Likewise. + * s-asthan.ads: Likewise. + * s-atacco.adb: Likewise. + * s-atacco.ads: Likewise. + * s-auxdec-empty.adb: Likewise. + * s-auxdec-empty.ads: Likewise. + * s-auxdec-vms_64.ads: Likewise. + * s-auxdec.adb: Likewise. + * s-auxdec.ads: Likewise. + * s-bitops.adb: Likewise. + * s-bitops.ads: Likewise. + * s-boarop.ads: Likewise. + * s-carsi8.adb: Likewise. + * s-carsi8.ads: Likewise. + * s-carun8.adb: Likewise. + * s-carun8.ads: Likewise. + * s-casi16.adb: Likewise. + * s-casi16.ads: Likewise. + * s-casi32.adb: Likewise. + * s-casi32.ads: Likewise. + * s-casi64.adb: Likewise. + * s-casi64.ads: Likewise. + * s-casuti.ads: Likewise. + * s-caun16.adb: Likewise. + * s-caun16.ads: Likewise. + * s-caun32.adb: Likewise. + * s-caun32.ads: Likewise. + * s-caun64.adb: Likewise. + * s-caun64.ads: Likewise. + * s-chepoo.ads: Likewise. + * s-crc32.adb: Likewise. + * s-crc32.ads: Likewise. + * s-crtl.ads: Likewise. + * s-direio.adb: Likewise. + * s-direio.ads: Likewise. + * s-dsaser.ads: Likewise. + * s-except.adb: Likewise. + * s-except.ads: Likewise. + * s-exctab.adb: Likewise. + * s-exctab.ads: Likewise. + * s-exnint.adb: Likewise. + * s-exnint.ads: Likewise. + * s-exnllf.adb: Likewise. + * s-exnllf.ads: Likewise. + * s-exnlli.adb: Likewise. + * s-exnlli.ads: Likewise. + * s-expint.adb: Likewise. + * s-expint.ads: Likewise. + * s-explli.adb: Likewise. + * s-explli.ads: Likewise. + * s-expllu.adb: Likewise. + * s-expllu.ads: Likewise. + * s-expmod.adb: Likewise. + * s-expmod.ads: Likewise. + * s-expuns.adb: Likewise. + * s-expuns.ads: Likewise. + * s-fatflt.ads: Likewise. + * s-fatgen.adb: Likewise. + * s-fatgen.ads: Likewise. + * s-fatlfl.ads: Likewise. + * s-fatllf.ads: Likewise. + * s-fatsfl.ads: Likewise. + * s-ficobl.ads: Likewise. + * s-fileio.adb: Likewise. + * s-fileio.ads: Likewise. + * s-filofl.ads: Likewise. + * s-finimp.adb: Likewise. + * s-finimp.ads: Likewise. + * s-finroo.adb: Likewise. + * s-finroo.ads: Likewise. + * s-fishfl.ads: Likewise. + * s-fore.adb: Likewise. + * s-fore.ads: Likewise. + * s-fvadfl.ads: Likewise. + * s-fvaffl.ads: Likewise. + * s-fvagfl.ads: Likewise. + * s-gearop.adb: Likewise. + * s-gearop.ads: Likewise. + * s-gecobl.adb: Likewise. + * s-gecobl.ads: Likewise. + * s-gecola.adb: Likewise. + * s-gecola.ads: Likewise. + * s-gerebl.adb: Likewise. + * s-gerebl.ads: Likewise. + * s-gerela.adb: Likewise. + * s-gerela.ads: Likewise. + * s-geveop.adb: Likewise. + * s-geveop.ads: Likewise. + * s-gloloc.adb: Likewise. + * s-gloloc.ads: Likewise. + * s-hibaen.ads: Likewise. + * s-imenne.adb: Likewise. + * s-imenne.ads: Likewise. + * s-imgbiu.adb: Likewise. + * s-imgbiu.ads: Likewise. + * s-imgboo.adb: Likewise. + * s-imgboo.ads: Likewise. + * s-imgcha.adb: Likewise. + * s-imgcha.ads: Likewise. + * s-imgdec.adb: Likewise. + * s-imgdec.ads: Likewise. + * s-imgenu.adb: Likewise. + * s-imgenu.ads: Likewise. + * s-imgint.adb: Likewise. + * s-imgint.ads: Likewise. + * s-imgllb.adb: Likewise. + * s-imgllb.ads: Likewise. + * s-imglld.adb: Likewise. + * s-imglld.ads: Likewise. + * s-imglli.adb: Likewise. + * s-imglli.ads: Likewise. + * s-imgllu.adb: Likewise. + * s-imgllu.ads: Likewise. + * s-imgllw.adb: Likewise. + * s-imgllw.ads: Likewise. + * s-imgrea.adb: Likewise. + * s-imgrea.ads: Likewise. + * s-imguns.adb: Likewise. + * s-imguns.ads: Likewise. + * s-imgwch.adb: Likewise. + * s-imgwch.ads: Likewise. + * s-imgwiu.adb: Likewise. + * s-imgwiu.ads: Likewise. + * s-inmaop-dummy.adb: Likewise. + * s-inmaop-vms.adb: Likewise. + * s-inmaop.ads: Likewise. + * s-interr-hwint.adb: Likewise. + * s-interr-sigaction.adb: Likewise. + * s-interr-vms.adb: Likewise. + * s-interr.adb: Likewise. + * s-interr.ads: Likewise. + * s-intman-dummy.adb: Likewise. + * s-intman-mingw.adb: Likewise. + * s-intman-posix.adb: Likewise. + * s-intman-solaris.adb: Likewise. + * s-intman-vms.adb: Likewise. + * s-intman-vms.ads: Likewise. + * s-intman-vxworks.adb: Likewise. + * s-intman-vxworks.ads: Likewise. + * s-intman.ads: Likewise. + * s-io.adb: Likewise. + * s-io.ads: Likewise. + * s-linux-alpha.ads: Likewise. + * s-linux-hppa.ads: Likewise. + * s-linux.ads: Likewise. + * s-maccod.ads: Likewise. + * s-mantis.adb: Likewise. + * s-mantis.ads: Likewise. + * s-mastop-irix.adb: Likewise. + * s-mastop.adb: Likewise. + * s-mastop.ads: Likewise. + * s-memcop.ads: Likewise. + * s-memory-mingw.adb: Likewise. + * s-memory.adb: Likewise. + * s-memory.ads: Likewise. + * s-os_lib.ads: Likewise. + * s-oscons-tmplt.c: Likewise. + * s-osinte-aix.adb: Likewise. + * s-osinte-darwin.adb: Likewise. + * s-osinte-freebsd.adb: Likewise. + * s-osinte-irix.adb: Likewise. + * s-osinte-lynxos-3.adb: Likewise. + * s-osinte-rtems.ads: Likewise. + * s-osinte-tru64.adb: Likewise. + * s-osinte-vxworks-kernel.adb: Likewise. + * s-osinte-vxworks.adb: Likewise. + * s-osprim-mingw.adb: Likewise. + * s-osprim-posix.adb: Likewise. + * s-osprim-solaris.adb: Likewise. + * s-osprim-unix.adb: Likewise. + * s-osprim-vms.adb: Likewise. + * s-osprim-vms.ads: Likewise. + * s-osprim-vxworks.adb: Likewise. + * s-osprim.ads: Likewise. + * s-pack03.adb: Likewise. + * s-pack03.ads: Likewise. + * s-pack05.adb: Likewise. + * s-pack05.ads: Likewise. + * s-pack06.adb: Likewise. + * s-pack06.ads: Likewise. + * s-pack07.adb: Likewise. + * s-pack07.ads: Likewise. + * s-pack09.adb: Likewise. + * s-pack09.ads: Likewise. + * s-pack10.adb: Likewise. + * s-pack10.ads: Likewise. + * s-pack11.adb: Likewise. + * s-pack11.ads: Likewise. + * s-pack12.adb: Likewise. + * s-pack12.ads: Likewise. + * s-pack13.adb: Likewise. + * s-pack13.ads: Likewise. + * s-pack14.adb: Likewise. + * s-pack14.ads: Likewise. + * s-pack15.adb: Likewise. + * s-pack15.ads: Likewise. + * s-pack17.adb: Likewise. + * s-pack17.ads: Likewise. + * s-pack18.adb: Likewise. + * s-pack18.ads: Likewise. + * s-pack19.adb: Likewise. + * s-pack19.ads: Likewise. + * s-pack20.adb: Likewise. + * s-pack20.ads: Likewise. + * s-pack21.adb: Likewise. + * s-pack21.ads: Likewise. + * s-pack22.adb: Likewise. + * s-pack22.ads: Likewise. + * s-pack23.adb: Likewise. + * s-pack23.ads: Likewise. + * s-pack24.adb: Likewise. + * s-pack24.ads: Likewise. + * s-pack25.adb: Likewise. + * s-pack25.ads: Likewise. + * s-pack26.adb: Likewise. + * s-pack26.ads: Likewise. + * s-pack27.adb: Likewise. + * s-pack27.ads: Likewise. + * s-pack28.adb: Likewise. + * s-pack28.ads: Likewise. + * s-pack29.adb: Likewise. + * s-pack29.ads: Likewise. + * s-pack30.adb: Likewise. + * s-pack30.ads: Likewise. + * s-pack31.adb: Likewise. + * s-pack31.ads: Likewise. + * s-pack33.adb: Likewise. + * s-pack33.ads: Likewise. + * s-pack34.adb: Likewise. + * s-pack34.ads: Likewise. + * s-pack35.adb: Likewise. + * s-pack35.ads: Likewise. + * s-pack36.adb: Likewise. + * s-pack36.ads: Likewise. + * s-pack37.adb: Likewise. + * s-pack37.ads: Likewise. + * s-pack38.adb: Likewise. + * s-pack38.ads: Likewise. + * s-pack39.adb: Likewise. + * s-pack39.ads: Likewise. + * s-pack40.adb: Likewise. + * s-pack40.ads: Likewise. + * s-pack41.adb: Likewise. + * s-pack41.ads: Likewise. + * s-pack42.adb: Likewise. + * s-pack42.ads: Likewise. + * s-pack43.adb: Likewise. + * s-pack43.ads: Likewise. + * s-pack44.adb: Likewise. + * s-pack44.ads: Likewise. + * s-pack45.adb: Likewise. + * s-pack45.ads: Likewise. + * s-pack46.adb: Likewise. + * s-pack46.ads: Likewise. + * s-pack47.adb: Likewise. + * s-pack47.ads: Likewise. + * s-pack48.adb: Likewise. + * s-pack48.ads: Likewise. + * s-pack49.adb: Likewise. + * s-pack49.ads: Likewise. + * s-pack50.adb: Likewise. + * s-pack50.ads: Likewise. + * s-pack51.adb: Likewise. + * s-pack51.ads: Likewise. + * s-pack52.adb: Likewise. + * s-pack52.ads: Likewise. + * s-pack53.adb: Likewise. + * s-pack53.ads: Likewise. + * s-pack54.adb: Likewise. + * s-pack54.ads: Likewise. + * s-pack55.adb: Likewise. + * s-pack55.ads: Likewise. + * s-pack56.adb: Likewise. + * s-pack56.ads: Likewise. + * s-pack57.adb: Likewise. + * s-pack57.ads: Likewise. + * s-pack58.adb: Likewise. + * s-pack58.ads: Likewise. + * s-pack59.adb: Likewise. + * s-pack59.ads: Likewise. + * s-pack60.adb: Likewise. + * s-pack60.ads: Likewise. + * s-pack61.adb: Likewise. + * s-pack61.ads: Likewise. + * s-pack62.adb: Likewise. + * s-pack62.ads: Likewise. + * s-pack63.adb: Likewise. + * s-pack63.ads: Likewise. + * s-parame-ae653.ads: Likewise. + * s-parame-hpux.ads: Likewise. + * s-parame-rtems.adb: Likewise. + * s-parame-vms-alpha.ads: Likewise. + * s-parame-vms-ia64.ads: Likewise. + * s-parame-vms-restrict.ads: Likewise. + * s-parame-vxworks.adb: Likewise. + * s-parame-vxworks.ads: Likewise. + * s-parame.adb: Likewise. + * s-parame.ads: Likewise. + * s-parint.adb: Likewise. + * s-parint.ads: Likewise. + * s-pooglo.adb: Likewise. + * s-pooglo.ads: Likewise. + * s-pooloc.adb: Likewise. + * s-pooloc.ads: Likewise. + * s-poosiz.adb: Likewise. + * s-poosiz.ads: Likewise. + * s-powtab.ads: Likewise. + * s-proinf-irix-athread.adb: Likewise. + * s-proinf-irix-athread.ads: Likewise. + * s-proinf.adb: Likewise. + * s-proinf.ads: Likewise. + * s-purexc.ads: Likewise. + * s-rannum.adb: Likewise. + * s-rannum.ads: Likewise. + * s-restri.adb: Likewise. + * s-restri.ads: Likewise. + * s-rident.ads: Likewise. + * s-rpc.adb: Likewise. + * s-rpc.ads: Likewise. + * s-scaval.adb: Likewise. + * s-scaval.ads: Likewise. + * s-secsta.adb: Likewise. + * s-secsta.ads: Likewise. + * s-sequio.adb: Likewise. + * s-sequio.ads: Likewise. + * s-shasto.adb: Likewise. + * s-shasto.ads: Likewise. + * s-soflin.adb: Likewise. + * s-soflin.ads: Likewise. + * s-solita.adb: Likewise. + * s-solita.ads: Likewise. + * s-sopco3.adb: Likewise. + * s-sopco3.ads: Likewise. + * s-sopco4.adb: Likewise. + * s-sopco4.ads: Likewise. + * s-sopco5.adb: Likewise. + * s-sopco5.ads: Likewise. + * s-stache.adb: Likewise. + * s-stache.ads: Likewise. + * s-stalib.adb: Likewise. + * s-stalib.ads: Likewise. + * s-stausa.adb: Likewise. + * s-stausa.ads: Likewise. + * s-stchop-limit.ads: Likewise. + * s-stchop-rtems.adb: Likewise. + * s-stchop-vxworks.adb: Likewise. + * s-stchop.adb: Likewise. + * s-stchop.ads: Likewise. + * s-stoele.adb: Likewise. + * s-stoele.ads: Likewise. + * s-stopoo.adb: Likewise. + * s-stopoo.ads: Likewise. + * s-stratt.adb: Likewise. + * s-stratt.ads: Likewise. + * s-strcom.adb: Likewise. + * s-strcom.ads: Likewise. + * s-string.adb: Likewise. + * s-string.ads: Likewise. + * s-strops.adb: Likewise. + * s-strops.ads: Likewise. + * s-strxdr.adb: Likewise. + * s-ststop.adb: Likewise. + * s-ststop.ads: Likewise. + * s-taasde.adb: Likewise. + * s-taasde.ads: Likewise. + * s-tadeca.adb: Likewise. + * s-tadeca.ads: Likewise. + * s-tadert.adb: Likewise. + * s-tadert.ads: Likewise. + * s-taenca.adb: Likewise. + * s-taenca.ads: Likewise. + * s-taprob.ads: Likewise. + * s-taprop-dummy.adb: Likewise. + * s-taprop-hpux-dce.adb: Likewise. + * s-taprop-irix.adb: Likewise. + * s-taprop-linux.adb: Likewise. + * s-taprop-lynxos.adb: Likewise. + * s-taprop-mingw.adb: Likewise. + * s-taprop-posix.adb: Likewise. + * s-taprop-solaris.adb: Likewise. + * s-taprop-tru64.adb: Likewise. + * s-taprop-vms.adb: Likewise. + * s-taprop-vxworks.adb: Likewise. + * s-taprop.ads: Likewise. + * s-tarest.adb: Likewise. + * s-tarest.ads: Likewise. + * s-tasdeb.adb: Likewise. + * s-tasdeb.ads: Likewise. + * s-tasinf-irix.ads: Likewise. + * s-tasinf-linux.adb: Likewise. + * s-tasinf-linux.ads: Likewise. + * s-tasinf-mingw.adb: Likewise. + * s-tasinf-mingw.ads: Likewise. + * s-tasinf-solaris.adb: Likewise. + * s-tasinf-solaris.ads: Likewise. + * s-tasinf-tru64.ads: Likewise. + * s-tasinf.adb: Likewise. + * s-tasinf.ads: Likewise. + * s-tasini.adb: Likewise. + * s-tasini.ads: Likewise. + * s-taskin.adb: Likewise. + * s-taskin.ads: Likewise. + * s-taspri-dummy.ads: Likewise. + * s-taspri-hpux-dce.ads: Likewise. + * s-taspri-mingw.ads: Likewise. + * s-taspri-solaris.ads: Likewise. + * s-taspri-tru64.ads: Likewise. + * s-taspri-vms.ads: Likewise. + * s-taspri-vxworks.ads: Likewise. + * s-tasque.adb: Likewise. + * s-tasque.ads: Likewise. + * s-tasren.adb: Likewise. + * s-tasren.ads: Likewise. + * s-tasres.ads: Likewise. + * s-tassta.adb: Likewise. + * s-tassta.ads: Likewise. + * s-tasuti.adb: Likewise. + * s-tasuti.ads: Likewise. + * s-tfsetr-default.adb: Likewise. + * s-tfsetr-vxworks.adb: Likewise. + * s-tpinop.adb: Likewise. + * s-tpinop.ads: Likewise. + * s-tpoben.adb: Likewise. + * s-tpoben.ads: Likewise. + * s-tpobop.adb: Likewise. + * s-tpobop.ads: Likewise. + * s-tpopde-vms.adb: Likewise. + * s-tpopde-vms.ads: Likewise. + * s-tpopsp-lynxos.adb: Likewise. + * s-tpopsp-posix-foreign.adb: Likewise. + * s-tpopsp-posix.adb: Likewise. + * s-tpopsp-solaris.adb: Likewise. + * s-tpopsp-vxworks.adb: Likewise. + * s-tporft.adb: Likewise. + * s-tposen.adb: Likewise. + * s-tposen.ads: Likewise. + * s-traceb.adb: Likewise. + * s-traceb.ads: Likewise. + * s-traces-default.adb: Likewise. + * s-traces.adb: Likewise. + * s-traces.ads: Likewise. + * s-traent-vms.adb: Likewise. + * s-traent-vms.ads: Likewise. + * s-traent.adb: Likewise. + * s-traent.ads: Likewise. + * s-trafor-default.adb: Likewise. + * s-trafor-default.ads: Likewise. + * s-tratas-default.adb: Likewise. + * s-tratas.adb: Likewise. + * s-tratas.ads: Likewise. + * s-unstyp.ads: Likewise. + * s-utf_32.adb: Likewise. + * s-utf_32.ads: Likewise. + * s-vaflop-vms-alpha.adb: Likewise. + * s-vaflop.adb: Likewise. + * s-vaflop.ads: Likewise. + * s-valboo.adb: Likewise. + * s-valboo.ads: Likewise. + * s-valcha.adb: Likewise. + * s-valcha.ads: Likewise. + * s-valdec.adb: Likewise. + * s-valdec.ads: Likewise. + * s-valenu.adb: Likewise. + * s-valenu.ads: Likewise. + * s-valint.adb: Likewise. + * s-valint.ads: Likewise. + * s-vallld.adb: Likewise. + * s-vallld.ads: Likewise. + * s-vallli.adb: Likewise. + * s-vallli.ads: Likewise. + * s-valllu.adb: Likewise. + * s-valllu.ads: Likewise. + * s-valrea.adb: Likewise. + * s-valrea.ads: Likewise. + * s-valuns.adb: Likewise. + * s-valuns.ads: Likewise. + * s-valuti.adb: Likewise. + * s-valuti.ads: Likewise. + * s-valwch.adb: Likewise. + * s-valwch.ads: Likewise. + * s-veboop.adb: Likewise. + * s-veboop.ads: Likewise. + * s-vector.ads: Likewise. + * s-vercon.adb: Likewise. + * s-vercon.ads: Likewise. + * s-vmexta.adb: Likewise. + * s-vmexta.ads: Likewise. + * s-vxwext-kernel.ads: Likewise. + * s-vxwext-rtp.adb: Likewise. + * s-vxwext-rtp.ads: Likewise. + * s-vxwext.ads: Likewise. + * s-vxwork-arm.ads: Likewise. + * s-vxwork-m68k.ads: Likewise. + * s-vxwork-mips.ads: Likewise. + * s-vxwork-ppc.ads: Likewise. + * s-vxwork-sparcv9.ads: Likewise. + * s-vxwork-x86.ads: Likewise. + * s-wchcnv.adb: Likewise. + * s-wchcnv.ads: Likewise. + * s-wchcon.adb: Likewise. + * s-wchcon.ads: Likewise. + * s-wchjis.adb: Likewise. + * s-wchjis.ads: Likewise. + * s-wchstw.adb: Likewise. + * s-wchstw.ads: Likewise. + * s-wchwts.adb: Likewise. + * s-wchwts.ads: Likewise. + * s-widboo.adb: Likewise. + * s-widboo.ads: Likewise. + * s-widcha.adb: Likewise. + * s-widcha.ads: Likewise. + * s-widenu.adb: Likewise. + * s-widenu.ads: Likewise. + * s-widlli.adb: Likewise. + * s-widlli.ads: Likewise. + * s-widllu.adb: Likewise. + * s-widllu.ads: Likewise. + * s-widwch.adb: Likewise. + * s-widwch.ads: Likewise. + * s-win32.ads: Likewise. + * s-winext.ads: Likewise. + * s-wwdcha.adb: Likewise. + * s-wwdcha.ads: Likewise. + * s-wwdenu.adb: Likewise. + * s-wwdenu.ads: Likewise. + * s-wwdwch.adb: Likewise. + * s-wwdwch.ads: Likewise. + * scans.adb: Likewise. + * scans.ads: Likewise. + * seh_init.c: Likewise. + * sfn_scan.adb: Likewise. + * sinfo.adb: Likewise. + * sinfo.ads: Likewise. + * sinput.adb: Likewise. + * sinput.ads: Likewise. + * snames.adb: Likewise. + * snames.ads: Likewise. + * socket.c: Likewise. + * stand.adb: Likewise. + * stand.ads: Likewise. + * stringt.adb: Likewise. + * stringt.ads: Likewise. + * sysdep.c: Likewise. + * system-aix.ads: Likewise. + * system-darwin-ppc.ads: Likewise. + * system-darwin-x86.ads: Likewise. + * system-darwin-x86_64.ads: Likewise. + * system-freebsd-x86.ads: Likewise. + * system-hpux-ia64.ads: Likewise. + * system-hpux.ads: Likewise. + * system-irix-n32.ads: Likewise. + * system-irix-n64.ads: Likewise. + * system-irix-o32.ads: Likewise. + * system-linux-alpha.ads: Likewise. + * system-linux-hppa.ads: Likewise. + * system-linux-ia64.ads: Likewise. + * system-linux-mips.ads: Likewise. + * system-linux-mipsel.ads: Likewise. + * system-linux-ppc.ads: Likewise. + * system-linux-ppc64.ads: Likewise. + * system-linux-s390.ads: Likewise. + * system-linux-s390x.ads: Likewise. + * system-linux-sh4.ads: Likewise. + * system-linux-sparc.ads: Likewise. + * system-linux-sparcv9.ads: Likewise. + * system-linux-x86.ads: Likewise. + * system-linux-x86_64.ads: Likewise. + * system-lynxos-ppc.ads: Likewise. + * system-lynxos-x86.ads: Likewise. + * system-mingw-x86_64.ads: Likewise. + * system-mingw.ads: Likewise. + * system-rtems.ads: Likewise. + * system-solaris-sparc.ads: Likewise. + * system-solaris-sparcv9.ads: Likewise. + * system-solaris-x86.ads: Likewise. + * system-solaris-x86_64.ads: Likewise. + * system-tru64.ads: Likewise. + * system-vms-ia64.ads: Likewise. + * system-vms-zcx.ads: Likewise. + * system-vms.ads: Likewise. + * system-vms_64.ads: Likewise. + * system-vxworks-arm.ads: Likewise. + * system-vxworks-m68k.ads: Likewise. + * system-vxworks-mips.ads: Likewise. + * system-vxworks-ppc.ads: Likewise. + * system-vxworks-sparcv9.ads: Likewise. + * system-vxworks-x86.ads: Likewise. + * system.ads: Likewise. + * table.adb: Likewise. + * table.ads: Likewise. + * targext.c: Likewise. + * targparm.ads: Likewise. + * tree_in.adb: Likewise. + * tree_in.ads: Likewise. + * tree_io.adb: Likewise. + * tree_io.ads: Likewise. + * types.adb: Likewise. + * types.ads: Likewise. + * uintp.adb: Likewise. + * uintp.ads: Likewise. + * uname.adb: Likewise. + * uname.ads: Likewise. + * urealp.adb: Likewise. + * urealp.ads: Likewise. + * vx_stack_info.c: Likewise. + * widechar.adb: Likewise. + * widechar.ads: Likewise. + * exp_attr.adb: Change copyright header to refer to version + 3 of the GNU General Public License and to point readers at the + COPYING3 file and the FSF's license web page. + * sem.adb: Likewise. + * sem_attr.ads: Likewise. + * freeze.adb: Likewise. + * freeze.ads: Likewise. + * errout.ads: Likewise. + * erroutc.adb: Likewise. + * exp_ch11.ads: Likewise. + +2009-04-09 Jakub Jelinek + + * config-lang.in: Change copyright header to refer to version + 3 of the GNU General Public License and to point readers at the + COPYING3 file and the FSF's license web page. + * gcc-interface/trans.c: Likewise. + * gnathtml.pl: Likewise. + * gcc-interface/ada.h: Likewise. Remove runtime exception. + * gcc-interface/gigi.h: Likewise. + * gcc-interface/misc.c: Likewise. + * gcc-interface/targtyps.c: Likewise. + +2009-04-09 Nicolas Setton + + * s-osinte-darwin.ads: Fix wrong binding to struc timeval. + + * s-osinte-darwin.adb (To_Timeval): Adapt to fixed implementation of + struct_timeval. + +2009-04-09 Bob Duff + + * exp_ch5.adb, exp_ch9.adb: Correct miscellaneous Slocs in + internally-generated nodes related to select statements to avoid + confusing the debugger. + +2009-04-09 Pascal Obry + + * make.adb: Ensure that all linker arguments are duplicated. + +2009-04-09 Robert Dewar + + * sem_ch5.adb: Minor reformatting + +2009-04-09 Vincent Celier + + * vms_data.ads: + Change GNAT CHECK qualifier /DIAGNOSIS_LIMIT to /DIAGNOSTIC_LIMIT + New qualifier /LEXPAND_SOURCE=nnn for -gnatGnnn + New qualifier /LXDEBUG=nnn for -gnatDnnn + For H820-010 + + * gnat_ugn.texi: + Update documentation for VMS qualifiers equivalent to -gnatGnn and + -gnatDnn + +2009-04-09 Nicolas Setton + + * s-osinte-darwin.ads: (Pad_Type): Make this an array of unsigned_long, + to match layout of siginfo_t in sys/signal.h. + + * gcc-interface/Makefile.in: Add section for x86_64 darwin. + +2009-04-09 Thomas Quinot + + * g-socket.ads: (Fd_Set): Use Interfaces.C.long alignment. + +2009-04-09 Nicolas Setton + + * s-oscons-tmplt.c: Allow long lines in the generated spec. + Add generation of Darwin-specific constants needed when binding to the + pthread library. + +2009-04-09 Robert Dewar + + * checks.adb: + (Insert_Valid_Check): Avoid unnecessary generation of junk declaration + when no invalid values exist, Avoid duplicate read of atomic variable. + + * cstand.adb (Build_Signed_Integer_Type): Set Is_Known_Valid + (Standard_Unsigned): Set Is_Known_Valid + + * sem_ch3.adb (Analyze_Subtype_Declaration): Copy Is_Known_Valid on + subtype declaration if no constraint. + (Set_Modular_Size): Set Is_Known_Valid if appropriate + (Build_Derived_Numeric_Type): Copy Is_Known_Valid if no constraint + +2009-04-09 Robert Dewar + + * switch-c.adb, gnat_ugn.texi, vms_data.ads, switch.adb, + switch.ads: for numeric switches, an optional equal sign is always + allowed. + +2009-04-09 Vincent Celier + + * prj-nmsc.adb (Get_Unit): Do not consider Casing on platform where + the case of file names is not significant. + +2009-04-09 Vincent Celier + + * errout.adb: Remove dependency on package Style + + * style.ads, styleg.adb, styleg.ads (RM_Column_Check): Remove function, + moved to Stylesw. + + * stylesw.ads, stylesw.adb (RM_Column_Check): New function, moved from + Styleg. + + * errutil.adb, par.adb: Import Stylesw + +2009-04-09 Arnaud Charlet + + * opt.ads: Fix typos. + +2009-04-09 Robert Dewar + + * einfo.adb: Minor reformatting + +2009-04-09 Robert Dewar + + * gcc-interface/Make-lang.in, style.ads, style.adb: Reorganize style + units. + + * styleg-c.ads, styleg-c.adb: Removed, no longer used. + +2009-04-09 Robert Dewar + + * g-comver.adb: Minor reformatting. + +2009-04-09 Thomas Quinot + + * lib-load.ads (Load_Unit): Update documentation. + +2009-04-09 Ed Schonberg + + * lib-load.adb (Load_Unit): When loading the parent of a child unit + named in a with_clause, retain the with_clause to preserve a + limited_with indication. + +2009-04-09 Robert Dewar + + * sem_ch7.adb, sem_ch10.adb, sem_prag.adb, sem_ch12.adb, sem_util.adb, + exp_ch13.adb, sem_ch6.adb, exp_disp.adb, sem_ch8.adb, sem_warn.adb, + sem_cat.adb: Code clean up: use Is_Package_Or_Generic_Package where + possible to replace an OR of two separate tests. + +2009-04-09 Robert Dewar + + * binderr.adb, errout.adb, errutil.adb: New circuitry for handling + Maximum_Messages. + + * erroutc.adb, erroutc.ads (Warnings_Suppressed): Now tests global + warning status as well. + + * opt.ads (Maximum_Messages): New name for Maximum_Errors. + + * switch-b.adb, switch-c.adb: Change name Maximum_Errors to + Maximum_Messages. + + * bindusg.adb, usage.adb: Update line for -gnatm switch + + * gnat_ugn.texi: Update documentation for -gnatmnn compiler switch and + -mnn binder switch. + +2009-04-09 Robert Dewar + + * sem_ch10.adb: Minor reformatting. + +2009-04-09 Bob Duff + + * exp_ch11.adb (Expand_Exception_Handlers, Prepend_Call_To_Handler): + Set Sloc of generated nodes for calls to Undefer_Aborts and + Save_Occurrence to No_Location, so the debugger ignores them and + therefore does not jump back and forth when single stepping. + +2009-04-09 Robert Dewar + + * switch-b.adb: Minor reformatting. + +2009-04-09 Robert Dewar + + * sem_aggr.adb, exp_ch5.adb, sem_ch3.adb, exp_atag.adb, layout.adb, + sem_dist.adb, exp_ch7.adb, sem_ch5.adb, sem_type.adb, exp_imgv.adb, + exp_util.adb, sem_aux.adb, sem_aux.ads, exp_attr.adb, exp_ch9.adb, + sem_ch7.adb, inline.adb, fe.h, sem_ch9.adb, exp_code.adb, einfo.adb, + einfo.ads, exp_pakd.adb, checks.adb, sem_ch12.adb, exp_smem.adb, + tbuild.adb, freeze.adb, sem_util.adb, sem_res.adb, sem_attr.adb, + exp_dbug.adb, sem_case.adb, exp_tss.adb, exp_ch4.adb, exp_ch6.adb, + sem_smem.adb, sem_ch4.adb, sem_mech.adb, sem_ch6.adb, exp_disp.adb, + sem_ch8.adb, exp_aggr.adb, sem_eval.adb, sem_cat.adb, exp_dist.adb, + sem_ch13.adb, exp_strm.adb, lib-xref.adb, sem_disp.adb, exp_ch3.adb: + Reorganize einfo/sem_aux, moving routines from einfo to sem_aux + +2009-04-09 Robert Dewar + + * exp_util.adb (Silly_Boolean_Array_Xor_Test): Simplify existing code. + + * atree.h: Add Elist26 + + * gnat_ugn.texi: Complete documentation deprecating -gnatN for non-gcc + backends. + +2009-04-09 Javier Miranda + + * exp_disp.adb (Export_DT): Addition of a new argument (Index); used to + retrieve from the Dispatch_Table_Wrappers list the external name. + Addition of documentation. + (Make_Secondary_DT): Addition of a new argument (Suffix_Index) that is + used to export secondary dispatch tables (in the previous version of + the frontend only primary dispatch tables were exported). Addition of + documentation. + (Import_DT): New subprogram (internal of Make_Tags). Used to import a + dispatch table of a given tagged type. + (Make_Tags): Modified to import secondary dispatch tables. + + * sem_ch3.adb (Analyze_Object_Declaration): Code cleanup. + (Constant_Redeclaration): Code cleanup. + + * einfo.ads (Dispatch_Table_Wrapper): Renamed to + Dispatch_Table_Wrappers. Update documentation. + + * einfo.adb (Dispatch_Table_Wrapper, Set_Dispatch_Table_Wrapper): + Renamed to Dispatch_Table_Wrappers. + + * sem_util.adb (Collect_Interface_Components): Improve handling of + private types. + + * atree.ads (Elist26, Set_Elist26): New subprograms + + * atree.adb (Elist26, Set_Elist26): New subprograms + +2009-04-09 Javier Miranda + + * sem_ch3.adb (Build_Derived_Record_Type): Fix typo. + (Derive_Progenitor_Subprograms): Handle interfaces in subtypes of + tagged types. + +2009-04-09 Robert Dewar + + * s-direio.adb: Minor reformatting + + * exp_ch4.adb (Expand_Concatenate): Avoid overflow checks for String + +2009-04-09 Robert Dewar + + * exp_ch4.adb (Expand_Concatenate): Improve handling of overflow cases + +2009-04-09 Pascal Obry + + * a-cihama.adb, a-cihama.ads, a-coinve.adb, a-coinve.ads, + s-tpoben.adb, s-tpoben.ads, s-finimp.adb, s-finimp.ads, + a-convec.adb, a-convec.ads, a-finali.adb, a-finali.ads, + a-filico.ads: Add some missing overriding keywords. + +2009-04-09 Pascal Obry + + * a-cihama.adb, a-cihama.ads, a-coinve.adb, a-coorma.ads, a-cihase.adb, + a-cihase.ads, a-cohama.adb, a-cohama.ads, a-coorse.adb, a-coorse.ads, + a-coormu.adb, a-coormu.ads, a-cohase.adb, a-cohase.ads: Minor + reformatting. + +2009-04-09 Ed Schonberg + + * sem_ch6.adb (Check_Overriding_Indicator): Do not generate warning on + missing overriding indicator if the new declaration is not seen as + primitive. + +2009-04-09 Thomas Quinot + + * exp_ch4.adb (Expand_Concatenate): Add circuitry to properly handle + overflows in computation of bounds. + +2009-04-09 Pascal Obry + + * a-cihama.adb, a-cgcaso.adb, a-cihase.adb, a-cohase.adb: Fix some + typos in comment. + +2009-04-09 Robert Dewar + + * sem_attr.adb (Check_Stream_Attribute): Check violation of + restriction No_Streams + + * gnat_rm.texi: Clarify No_Streams restriction + + * g-socket.adb: Minor reformatting. + +2009-04-09 Thomas Quinot + + * g-socket.ads: Mark Initialize and Finalize as obsolesent interfaces. + +2009-04-09 Geert Bosch + + * exp_fixd.adb (Build_Conversion): Accept new optional Trunc argument. + (Set_Result): Likewise. + (Expand_Convert_Float_To_Fixed): Have Set_Result truncate the + conversion, as required by RM 4.6(31). + +2009-04-08 Robert Dewar + + * checks.adb (Enable_Overflow_Check): Do not enable if overflow checks + suppressed. + + * exp_ch4.adb (Expand_Concatenate): Make sure checks are off for all + resolution steps. + +2009-04-08 Robert Dewar + + * sem_ch12.adb (Analyze_Package_Instantiation): Remove test for + No_Local_Allocators restriction preventing local instantiation. + +2009-04-08 Thomas Quinot + + * sem_eval.adb: Minor comment fix + +2009-04-08 Thomas Quinot + + * g-socket.adb, g-socket.ads (GNAT.Sockets.Sockets_Library_Controller): + New limited controlled type used to automate the initialization and + finalization of the sockets implementation. + (GNAT.Sockets.Initialize, Finalize): Make these no-ops + +2009-04-08 Vincent Celier + + * prj-attr.adb: New read-only project-level attribute Project_Dir + + * prj-proc.adb (Add_Attributes): New parameter Project_Dir, value of + read-only attribute of the same name. + (Process_Declarative_Items): Call Add_Attributes with Project_Dir + (Recursive_Process): Ditto + + * snames.adb: Add new standard name Project_Dir + + * snames.ads: Add new standard name Project_Dir + +2009-04-08 Thomas Quinot + + * checks.adb: Minor reformatting + +2009-04-08 Vincent Celier + + * vms_data.ads: Add documentation for new style keyword + OVERRIDING_INDICATORS + +2009-04-08 Robert Dewar + + * sem_ch3.adb (Check_Completion.Post_Error): Post error on spec if the + spec is in the current unit. + +2009-04-08 Ed Schonberg + + * sem_util.adb (Is_Protected_Self_Reference): Add guard to check for + presence of entity. + + * usage.adb, gnat_ugn.texi: add info on -gnatyO: overriding indicators + +2009-04-08 Vincent Celier + + * vms_data.ads: Add VMS equivalent for -gnatyO (OVERRIDING_INDICATORS) + +2009-04-08 Thomas Quinot + + * checks.ads: Minor reformatting + +2009-04-08 Robert Dewar + + * gnat_rm.texi: Update documentation of pragma Obsolescent + + * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow identifiers to + be omitted, and allow Entity parameter to be omitted. + +2009-04-08 Thomas Quinot + + * exp_util.adb: Minor comment fix + +2009-04-08 Robert Dewar + + * g-socket.ads: Fix bad syntax in pragma Obsolescent + + * par-ch2.adb (Scan_Pragma_Argument_Association): Check for error of + argument with no identifier following one that has an identifier. Was + missed in some cases. + + * sem_prag.adb (Analyze_Pragma, case Check_Policy): Allow Policy + identifier. + (Analyze_Pragma, case Obsolescent): Allow Message, Version identifiers + + * snames.adb: Add Name_Policy + + * snames.ads: Add Name_Policy + +2009-04-08 Robert Dewar + + * gnat_rm.texi: Minor reformatting + + * par-ch2.adb: Minor reformatting + +2009-04-08 Robert Dewar + + * exp_attr.adb, sem_attr.adb, sem_util.adb: Code clean up. + +2009-04-08 Robert Dewar + + * sem_cat.adb (Check_Categorization_Dependencies): Handle Preelaborate + properly in the presence of Remote_Types or Remote_Call_Interface. + + * sem_util.adb: Add comment. + +2009-04-08 Robert Dewar + + * ug_words: Add /ASSUME_VALID for -gnatB + + * vms_data.ads: Add /ASSUME_VALID for -gnatB + + * sem_cat.adb: Add clarifying commment + + * a-direio.ads (Bytes): Make sure value is non-zero + +2009-04-08 Ed Schonberg + + * sem_util.adb (Is_Variable): If the prefix is an explicit dereference + that does not come from source, check for a rewritten function call in + prefixed notation before other forms of rewriting. + +2009-04-08 Robert Dewar + + * Makefile.rtl: Remove s-strops and s-sopco? from the run time, since + these are now obsolescent units used only for bootrapping with an + older compiler. + +2009-04-08 Robert Dewar + + * gnat_rm.texi: Add documentation for pragma Thread_Local_Storage + + * sem_ch3.adb: Minor comment updates + +2009-04-08 Ed Schonberg + + * inline.adb (Back_End_Cannot_Inline): restrict warning to subprograms + that come from source. + +2009-04-08 Tristan Gingold + + * gcc-interface/gigi.h (enum attr_type): Add ATTR_THREAD_LOCAL_STORAGE. + * gcc-interface/decl.c (prepend_attributes): New case + Pragma_Thread_Local_Storage. + * gcc-interface/utils.c (process_attributes): New case + ATTR_THREAD_LOCAL_STORAGE. + +2009-04-08 Ed Schonberg + + * inline.adb (Back_End_Cannot_Inline): Do not mark a body as inlineable + by the back-end if it contains a call to a subprogram without a + previous spec that is declared in the same unit. + + * errout.ads: Update comments on uses of dirs + +2009-04-08 Robert Dewar + + * exp_ch4.adb (Expand_Concatenate): Make sure nodes are properly typed + +2009-04-08 Tristan Gingold + + * sem_prag.adb: Restrict pragma Thread_Local_Storage to library level + variables. + Set Has_Gigi_Rep_Item flag to TLS variables (to ease gigi work). + +2009-04-08 Vincent Celier + + * prj-nmsc.adb: + (Add_Source): Add the mapping of the unit name to source file name in + the Unit_Sources_HT hash table, if the unit name is not null. + + * prj.adb (Reset): Reset hash table Tree.Unit_Sources_HT + + * prj.ads (Unit_Sources_Htable): New hash table instantiation + (Project_Tree_Data): New component Unit_Sources_HT + +2009-04-08 Thomas Quinot + + * sem_ch8.adb: Minor reformatting. + Minor code reorganization. + +2009-04-08 Robert Dewar + + * snames.h, einfo.adb, einfo.ads, sem_prag.adb, snames.adb, + snames.ads, freeze.adb, par-prag.adb: Add implementation of + pragma Thread_Local_Storage, setting new flag + Has_Pragma_Thread_Local_Storage in corresponding entities. + +2009-04-08 Emmanuel Briot + + * prj.ads: Update comment on switches file + + * prj-nmsc.adb: Code clean up. Use renaming clauses. + +2009-04-08 Robert Dewar + + * exp_ch4.adb (Expand_Concatenate): Further fixes to bounds handling + +2009-04-08 Thomas Quinot + + * ali-util.adb: Minor comment fix + +2009-04-08 Ed Schonberg + + * sem_ch8.adb (Analyze_Use_Type): Improve error message when clause + appears in a context clause, and the enclosing package is mentioned in + a limited_with_clause. + (Use_One_Type): Reject clause if type is still incomplete. + +2009-04-08 Emmanuel Briot + + * prj-nmsc.adb (Check_File, Process_Sources_In_Multi_Language_Mode): + avoid copies of Source_Data variables when possible, since these + involve calls to memcpy() which are done too many times. + +2009-04-08 Robert Dewar + + * exp_ch4.adb (Expand_Concatenate): Clean up code + +2009-04-07 Thomas Quinot + + * exp_ch4.adb (Expand_Concatenate): Add missing conversion to index + type for the case of concatenating a constrained array indexed by an + enumeration type. + +2009-04-07 Ed Schonberg + + * sem_ch6.adb (Check_Conformance): when checking conformance of an + operation that overrides an abstract operation inherited from an + interface, return False if only one of the controlling formals is an + access parameter. + +2009-04-07 Ed Schonberg + + * sem_ch8.adb (Analyze_Object_Renaming): additional error messages + mandated by AI05-105. + +2009-04-07 Vincent Celier + + * prj-nmsc.adb (Get_Mains): Warn if a main is an empty string + +2009-04-07 Thomas Quinot + + * usage.adb: Minor fix in usage message. + + * sem_ch10.adb (Remove_Homonyms): Fix subtype of formal in body to + match declaration; the correct subtype is Node_Id, not Entity_Id, + because the expected node kind is an identifier, not a defining + identifier. + + * switch-c.adb: Minor reformatting. + + * uintp.adb: Minor reformatting. + +2009-04-07 Robert Dewar + + * exp_ch13.adb: Minor reformatting + +2009-04-07 Robert Dewar + + * sem_warn.adb (Check_Infinite_Loop_Warning.Test_Ref): Add defence + against missing parent. + +2009-04-07 Thomas Quinot + + * xoscons.adb: Minor reformatting + +2009-04-07 Robert Dewar + + * rtsfind.ads: Remove obsolete string concatenation entries + +2009-04-07 Robert Dewar + + * exp_ch4.adb (Expand_Concatenate): Redo handling of bounds + +2009-04-07 Ed Schonberg + + * sem_ch10.adb (Check_Body_Required): Handle properly imported + subprograms. + +2009-04-07 Gary Dismukes + + * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case + Attribute_Address): When Init_Or_Norm_Scalars is True and the object + is of a scalar or string type then suppress the setting of the + expression to Empty. + + * freeze.adb (Warn_Overlay): Also emit the warnings about default + initialization for the cases of scalar and string objects when + Init_Or_Norm_Scalars is True. + +2009-04-07 Bob Duff + + * s-secsta.ads, g-pehage.ads, s-fileio.ads: Minor comment fixes + +2009-04-07 Bob Duff + + * gnat_rm.texi, s-fileio.adb (System.File_IO.Open): New feature: A + Form parameter of Text_Translation=No allows binary mode for Text_IO + files. + + * gnat_rm.texi: Document Form parameter Text_Translation=xxx. + +2009-04-07 Javier Miranda + + * exp_ch5.adb (Expand_Assign_Array): Add implicit conversion when + processing the bounds for bit packed arrays or VM target machines. + +2009-04-07 Thomas Quinot + + * g-sothco.ads (Int_Access): Remove extraneous access type (use + anonymous access instead). + (Get_Socket_From_Set): Fix incorrectly reverted formals + Last and Socket to match the underlying C routine. + + * g-socket.adb, g-socket.ads + (Get): Use named parameter associations instead of positional ones in + call go Get_Socket_From_Set, since this routine has two formals of the + same type. + (Image): New procedure. + + * g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb, + g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi.adb, g-socthi.ads: + (C_Ioctl, Syscall_Ioctl): use "access C.int" instead of "Int_Access" + for type of Arg formal. + + * sem_warn.adb: Minor reformatting + +2009-04-07 Ed Schonberg + + * sem_util.adb (Has_Tagged_Component): Fix typo in loop that iterates + over record components. + +2009-04-07 Nicolas Roche + + * gsocket.h: + Don't include resolvLib.h on VxWorks 6 (kernel and rtp). This library + has disappeared between VxWorks 6.4 and VxWorks 6.5 + In RTP mode use time.h instead of times.h + +2009-04-07 Robert Dewar + + * exp_ch4.adb (Expand_N_Op_Concat): Improve lower bound handling + +2009-04-07 Kevin Pouget + + * exp_dist.adb: Modify Build_From_Any_Fonction procedure to correct + expanded code for constrained types. + +2009-04-07 Ed Schonberg + + * sem_ch4.adb (Analyze_Overloaded_Selected_Component): implement + AI05-105: in an object renaming declaration, anonymousness is a name + resolution rule. + + * sem_ch8.adb (Analyze_Object_Renaming): Ditto. + +2009-04-07 Arnaud Charlet + + * g-comlin.adb (Expansion): Fix old regression: also return directory + names when matching. + +2009-04-07 Robert Dewar + + * exp_ch4.adb: + (Expand_N_Op_Concat): Call Expand_Concatenate for all cases + (Expand_Concatenate): New name for Expand_Concatenate_String which has + been rewritten to handle all types. + (Expand_Concatenate_Other): Remove + +2009-04-07 Ed Schonberg + + * lib-xref.adb (Generate_Reference): A default subprogram in an + instance appears within the tree for the instance, but generates an + implicit reference in the ALI. + +2009-04-07 Javier Miranda + + * sem_ch3.adb (Build_Derived_Record_Type): When processing a tagged + derived type that has discriminants, propagate the list of interfaces + to the corresponding new base type. In addition, propagate also + attribute Limited_Present (found working in this patch). + +2009-04-07 Robert Dewar + + * exp_ch4.adb: Rewrite concatenation expansion. + +2009-04-07 Ed Schonberg + + * sem_ch8.adb (Restore_Scope_Stack): First_Private_Entity is only + relevant to packages. + +2009-04-07 Robert Dewar + + * sem_attr.adb: Minor reformatting + + * sem_ch6.adb: Minor reformatting + +2009-04-07 Tristan Gingold + + * socket.c: Add more protections against S_resolvLib_ macros. + +2009-04-07 Thomas Quinot + + * sem_attr.adb: Minor reformatting + +2009-04-07 Ed Schonberg + + * sem_ch6.adb (New_Overloaded_Entity): New predicate + Is_Overriding_Alias to handle properly types that inherit two homonym + operations that have distinct dispatch table entries. + +2009-04-07 Emmanuel Briot + + * s-regexp.adb (Create_Mapping): Ignore excaped open parenthesis when + looking for the end of a parenthesis group + +2009-04-07 Tristan Gingold + + * gsocket.h Don't #include resolvLib.h if __RTP__ is defined. + + * socket.c Don't use resolvLib_ macros if not defined. + +2009-04-07 Robert Dewar + + * g-socket.adb: Minor reformatting. + + * g-socthi-mingw.adb: Minor reformatting + + * g-sothco.ads: Minor reformatting + + * exp_ch4.adb: + (Expand_Concatenate_String): Complete rewrite to generate efficient code + inline instead of relying on external library routines. + + * s-strops.ads, s-sopco5.ads, s-sopco5.adb, s-sopco4.ads, s-sopco4.adb, + s-sopco3.ads, s-sopco3.adb, s-strops.adb: Note that this unit is now + obsolescent + +2009-04-07 Ed Schonberg + + * sem_attr.adb: + (Eval_Attribute): for attributes of array objects that are not strings, + attributes are not static if nominal subtype of object is unconstrained. + +2009-04-07 Ed Schonberg + + * sem_ch6.adb (New_Overloaded_Entity): If two implicit homonym + operations for a type T in an instance do not override each other, + when T is derived from a formal private type, the corresponding + operations inherited by a type derived from T outside + of the instance do not override each other either. + +2009-04-07 Robert Dewar + + (Osint.Fail): Change calling sequence to have one string arg + (Make.Make_Failed): Same change + All callers are adjusted to use concatenation + +2009-04-07 Robert Dewar + + * exp_ch4.adb: Fix documentation typo + +2009-04-07 Robert Dewar + + * tbuild.ads: Minor reformatting + +2009-04-07 Javier Miranda + + * exp_disp.adb (Make_DT): Avoid the generation of the OSD_Table + when compiling under ZFP runtime. + +2009-04-07 Robert Dewar + + * g-comlin.adb: Minor reformatting + +2009-04-07 Thomas Quinot + + * socket.c, g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb, + g-socthi-vxworks.ads, g-socthi-mingw.adb, g-socthi-mingw.ads, + g-socthi.adb, g-socthi.ads, g-socket.adb, g-socket.ads, g-sothco.ads: + Remove dynamic allocation of Fd_Set in Socket_Set_Type objects. + +2009-04-07 Robert Dewar + + * gnat_ugn.texi: Document -gnatDnn/-gnatGnn + + * opt.ads (Sprint_Line_Limit): New parameter + + * sprint.adb: Usa Sprint_Line_Limit instead of Line_Limit throughout + + * switch-c.adb: Recognize -gnatDnnn and -gnatGnnn switches + + * usage.adb: Output information for -gnatGnn -gnatDnn + +2009-04-07 Robert Dewar + + * make.adb: Minor reformatting + +2009-04-07 Robert Dewar + + * mlib-tgt-specific-vms-alpha.adb: Minor reformatting + +2009-04-07 Robert Dewar + + * mlib-tgt-specific-vms-ia64.adb: Minor reformatting + +2009-04-07 Robert Dewar + + * checks.adb: + Remove Assume_Valid parameter from In_Subrange_Of calls + + * sem_eval.adb: + (Is_Subrange_Of): Remove Assume_Valid parameter, not needed + (Is_In_Range): Remove incorrect use of Assume_Valid + (Is_Out_Of_Range): Remove incorrect use of Assume_Valid + + * sem_eval.ads: + (Is_Subrange_Of): Remove Assume_Valid parameter, not needed + (Is_In_Range): Documentation cleanup + (Is_Out_Of_Range): Documentation cleanup + + * gnat_rm.texi: + Add documentation for Assume_No_Invalid_Values pragma + + * sem_ch12.adb: Minor reformatting + + * sem_ch6.adb: (Check_Conformance): Avoid cascaded errors + + * sem_prag.adb: Improve error message. + + * gnatchop.adb, osint.ads, sinput.adb, sinput.ads, styleg.adb: + LF/CR no longer recognized as line terminator + + * switch.ads: Minor documentation improvement + + * vms_data.ads: Minor reformatting + +2009-04-07 Robert Dewar + + * checks.adb (Determine_Range): Add Assume_Valid parameter + + * checks.ads (Determine_Range): Add Assume_Valid parameter + + * errout.adb (Error_Msg_NEL): Use Suppress_Loop_Warnings rather than + Is_Null_Loop to suppress warnings in a loop body. + + * exp_ch4.adb: + (Rewrite_Comparison): Major rewrite to accomodate invalid values + + * exp_ch5.adb: + (Expand_N_Loop_Statement): Delete loop known not to execute + + * opt.ads: + (Assume_No_Invalid_Values): Now set to False, and as documented, this + fully enables the proper handling of invalid values. + + * sem_attr.adb: + New calling sequence for Is_In_Range + + * sem_ch5.adb: + (Analyze_Iteration_Scheme): Accomodate possible invalid values + in determining if a loop range is null. + + * sem_eval.adb: + (Is_In_Range): Add Assume_Valid parameter + (Is_Out_Of_Range): Add Assume_Valid_Parameter + (Compile_Time_Compare): Major rewrite to accomodate invalid values and + also to do more accurate and complete range analysis, catching more + cases. + + * sem_eval.ads: + (Is_In_Range): Add Assume_Valid parameter + (Is_Out_Of_Range): Add Assume_Valid_Parameter + + * sem_util.adb: + New calling sequence for Is_In_Range + + * sinfo.adb: + (Suppress_Loop_Warnings): New flag + + * sinfo.ads: + (Is_Null_Loop): Update documentation + (Suppress_Loop_Warnings): New flag + + * gnat_ugn.texi: Document -gnatB switch + +2009-04-07 Arnaud Charlet + + * gnatvsn.ads: Bump version number. + +2009-04-07 Thomas Quinot + + * exp_ch3.adb: Minor rewording (comments) + +2009-04-07 Robert Dewar + + * exp_disp.adb: Minor reformatting + +2009-04-07 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Test the + underlying type. + * gcc-interface/trans.c (lvalue_required_p): Likewise. + +2009-04-07 Eric Botcazou + + * gcc-interface/trans.c (Attribute_to_gnu) : + Do not convert the result. Remove obsolete comment. + +2009-04-07 Eric Botcazou + + * gcc-interface/trans.c (establish_gnat_vms_condition_handler): Clear + DECL_CONTEXT. + (Subprogram_Body_to_gnu): Fix pasto. + +2009-04-07 Eric Botcazou + + * gcc-interface/gigi.h (standard_datatypes): Remove ADT_void_type_decl. + (void_type_decl_node): Remove. + (init_gigi_decls): Likewise. + (gnat_install_builtins): Declare. + (record_builtin_type): Likewise. + (create_type_stub_decl): Likewise. + * gcc-interface/decl.c (gnat_to_gnu_entity) : Use void_type. + (gnat_to_gnu_entity) : Make fat and thin pointer types + artificial. + : Use the index types, not only their name, in the + record giving the names of the bounds, if any. + For a packed array type, make it artificial only if the base type + was artificial as well. Remove redundant statement. + (gnat_to_gnu_entity) : Do not create TYPE_DECL for + dummy types. + Use create_type_stub_decl to build the TYPE_STUB_DECL of types. + (rest_of_type_decl_compilation_no_defer): Likewise. + * gcc-interface/misc.c (gnat_printable_name): Add missing guard. + * gcc-interface/utils.c (make_dummy_type): Always create TYPE_STUB_DECL + and use create_type_stub_decl to build it. + (gnat_pushdecl): Rewrite condition. + (gnat_install_builtins): Remove bogus declaration. + (record_builtin_type): New function. + (finish_record_type): Use create_type_stub_decl to build TYPE_STUB_DECL + of types. + (create_type_stub_decl): New function. + (create_type_decl): Assert that the type is not dummy. If the type + hasn't been named yet, equate the TYPE_STUB_DECL to the created node. + (build_vms_descriptor32): Do not create TYPE_DECL for the descriptor. + (build_vms_descriptor): Likewise. + (init_gigi_decls): Delete and move bulk of code to... + * gcc-interface/trans.c (gigi): ...here. Use record_builtin_type. + (emit_range_check): Add gnat_node parameter. + (emit_index_check): Likewise. + (emit_check): Likewise. + (build_unary_op_trapv): Likewise. + (build_binary_op_trapv): Likewise. + (convert_with_check): Likewise. + (Attribute_to_gnu): Adjust calls for above changes. + (call_to_gnu): Likewise. + (gnat_to_gnu): Likewise. + (assoc_to_constructor): Likewise. + (pos_to_constructor): Likewise. + (Sloc_to_locus): Set BUILTINS_LOCATION for Standard_Location nodes. + (process_type): Do not create TYPE_DECL for dummy types. + +2009-04-07 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity): Reorder local variables. + * gcc-interface/trans.c: Fix formatting throughout. Fix comments. + * gcc-interface/utils.c: Fix comments. + +2009-04-07 Eric Botcazou + + * gcc-interface/decl.c (compile_time_known_address_p): Rewrite and + move around. + (gnat_to_gnu_type): Move around. + (get_unpadded_type): Likewise. + * gcc-interface/utils.c (update_pointer_to): Use synthetic macro. + Tidy comments. + +2009-04-07 Eric Botcazou + + * gcc-interface/trans.c (check_for_eliminated_entity): New function. + (Attribute_to_gnu): Invoke it for Access- and Address-like attributes. + (call_to_gnu): Invoke it instead of manually checking. + +2009-04-04 Eric Botcazou + + * gcc-interface/utils.c (finish_record_type): Force structural equality + checks if the record type is discriminated. + +2009-03-31 Eric Botcazou + + * system-linux-alpha.ads (Functions_Return_By_DSP): Remove. + * system-linux-mips.ads (Functions_Return_By_DSP): Likewise. + * system-linux-mipsel.ads (Functions_Return_By_DSP): Likewise. + * system-linux-s390.ads (Functions_Return_By_DSP): Likewise. + * system-linux-s390x.ads (Functions_Return_By_DSP): Likewise. + * system-linux-sparc.ads (Functions_Return_By_DSP): Likewise. + * system-linux-sparcv9.ads (Functions_Return_By_DSP): Likewise. + +2009-03-30 Paolo Bonzini + + * gcc-interface/decl.c (maybe_pad_type): Use TREE_OVERFLOW instead + of TREE_CONSTANT_OVERFLOW. + +2009-03-30 Joseph Myers + + PR rtl-optimization/323 + * gcc-interface/misc.c (gnat_post_options): Set + flag_excess_precision_cmdline. Give an error for + -fexcess-precision=standard for processors where the option is + significant. + +2009-03-27 H.J. Lu + + PR c/39323 + * gcc-interface/utils.c (create_field_decl): Use "unsigned int" + on bit_align. + +2009-03-11 Olivier Hainque + + * gcc-interface/trans.c (gnat_to_gnu) : In range + checks processing, remove unintended TREE_TYPE walk on index type. + +2009-03-01 Eric Botcazou + + PR ada/39264 + * gcc-interface/decl.c (gnat_to_gnu_entity) : Do no + call make_packable_type on fat pointer types. + : Likewise. + : Call make_packable_type on all record types + except for fat pointer types. + (make_packable_type): Likewise. + (gnat_to_gnu_field): Likewise. + +2009-02-28 Eric Botcazou + + * gcc-interface/Makefile.in (cygwin/mingw): Revert accidental + EH_MECHANISM change made on 2007-12-06. + +2009-02-26 Andreas Schwab + + PR ada/39172 + * Makefile.in (srcdir): Set to @top_srcdir@ instead of @srcdir@. + * gcc-interface/Makefile.in: Change all uses of $(srcdir), + $(fsrcdir) and $(fsrcpfx) to add ada subdir. + (AWK): Substitute. + (target_cpu_default): Substitute. + +2009-02-25 Laurent GUERBY + + PR ada/39221 + * a-teioed.adb (Expand): Fix Result overflow. + +2009-02-25 Laurent GUERBY + + * gcc-interface/Makefile.in: Fix multilib handling for + sparc64-linux. + +2009-02-23 Rainer Orth + + * s-oscons-tmplt.c [__osf__ && !_SS_MAXSIZE]: Undef AF_UNIX6. + +2009-02-18 H.J. Lu + + * gcc-interface/misc.c (gnat_post_options): Turn off warn_psabi. + +2009-02-16 Eric Botcazou + + * gcc-interface/deftarg.c: Remove. + +2009-02-10 Olivier Hainque + Eric Botcazou + + * gcc-interface/decl.c (enum alias_set_op): New enumeration. + (copy_alias_set): Rename into... + (relate_alias_sets): ...this. Add third parameter OP. Retrieve the + underlying array of unconstrained arrays for the new type as well. + If the old and new alias sets don't conflict, make one a subset of + the other as per the OP parameter. + (gnat_to_gnu_entity): Adjust calls to copy_alias_set. + : Do not copy the alias set for derived types. + For all types, make the alias set of derived types a superset of + that of their parent type. + (make_aligning_type): Adjust calls to copy_alias_set. + (make_packable_type): Likewise. + * gcc-interface/trans.c (gnat_to_gnu): + Check for alias set conflict instead of strict equality to issue the + warning. + +2009-02-09 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : + Set TYPE_NONALIASED_COMPONENT on the array type only if appropriate. + (copy_alias_set): Assert that arrays have the same aliasing settings. + (substitute_in_type) : Copy TYPE_NONALIASED_COMPONENT. + +2009-02-08 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : + Set TYPE_NONALIASED_COMPONENT on the array type. + +2009-01-31 Laurent GUERBY + + * gcc-interface/Makefile.in: Fix mipsel linux handling. + +2009-01-16 Jakub Jelinek + + * gcc-interface/Makefile.in: Fix multilib handling for + powerpc64-linux. + +2009-01-12 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Really strip + only useless conversions around renamed objects. + +2009-01-11 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Put + the _Tag field before any discriminants in the field list. + (components_to_record): Remove obsolete comment. + + + +Copyright (C) 2009 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff --git a/gcc/ada/ChangeLog-2001 b/gcc/ada/ChangeLog-2001 new file mode 100644 index 00000000000..ffc40022b4c --- /dev/null +++ b/gcc/ada/ChangeLog-2001 @@ -0,0 +1,2239 @@ +2001-12-23 Richard Henderson + + * utils.c (end_subprog_body): Push GC context around + rest_of_compilation for nested functions. + +2001-12-23 Richard Henderson + + * 5nosinte.ads: Get definition of "int" from Interfaces.C. + +2001-12-23 Florian Weimer + + * gnat-style.texi (Declarations and Types): Remove ancient style + rule which was mandated by code generation issues. + + * gnat-style.texi (header): Add @dircategory, @direntry. + (title page): Remove date. + (general) Add @./@: where approriate, and two spaces after the + full stop at the end of a sentence. Use @samp markup when + referring concrete lexical entities (keywords, attribute names + etc.), and @syntax for ARM grammar elements. Use @r for English + text in comments. Use @emph for emphasis. Change "if-statements" + etc. to "if statements" (without @samp). Break long lines. Make + casing of section names consistent. + (Identifiers): Use @samp markup for variable names. + (Comments): Use @samp markup for comment characters. Line-end + comments may follow any Ada code, not just statements. Fix + misspelling of "Integer" as "integer". + (Loop statements): Do not use variable name "I", use "J". + (Subprogram Declarations): Document alignment. + (Subprogram Bodies, Block statements): Document empty line before + "begin". + +2001-12-22 Florian Weimer + + * make.adb (Add_Switch): Make Generic_Position a procedure. The + function approach did not work well because of a side effect (the + function call could reallocate the table which was being indexed + using its result). Fixes ada/4851. + +2001-12-19 Robert Dewar + + * bindgen.adb: Minor reformatting + + * cstand.adb: Minor reformatting + + * fmap.adb: Minor reformatting + Change name from Add for Add_To_File_Map (Add is much too generic) + Change Path_Name_Of to Mapped_Path_Name + Change File_Name_Of to Mapped_File_Name + Fix copyright dates in header + + * fmap.ads: + Change name from Add for Add_To_File_Map (Add is much too generic) + Change Path_Name_Of to Mapped_Path_Name + Change File_Name_Of to Mapped_File_Name + Fix copyright dates in header + + * fname-uf.adb: Minor reformatting. New names of stuff in Fmap. + Add use clause for Fmap. + + * make.adb: Minor reformatting + + * osint.adb: Minor reformatting. Change of names in Fmap. + Add use clause for Fmap. + + * prj-env.adb: Minor reformatting + + * prj-env.ads: Minor reformatting + + * switch.adb: Minor reformatting. Do proper raise of Bad_Switch if + error found (there were odd exceptions to this general rule in + -gnatec/-gnatem processing) + +2001-12-19 Olivier Hainque + + * raise.c (__gnat_eh_personality): Exception handling personality + routine for Ada. Still in rough state, inspired from the C++ version + and still containing a bunch of debugging artifacts. + (parse_lsda_header, get_ttype_entry): Local (static) helpers, also + inspired from the C++ library. + + * raise.c (eh_personality): Add comments. Part of work for the GCC 3 + exception handling integration. + +2001-12-19 Arnaud Charlet + + * Makefile.in: Remove use of 5smastop.adb which is obsolete. + (HIE_SOURCES): Add s-secsta.ad{s,b}. + (HIE_OBJS): Add s-fat*.o + (RAVEN_SOURCES): Remove files that are no longer required. Add + interrupt handling files. + (RAVEN_MOD): Removed, no longer needed. + +2001-12-19 Robert Dewar + + * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always + Add 2001 to copyright date + + * g-regpat.adb: Change pragma Inline_Always to Inline. There is no + need to force universal inlining for these cases. + +2001-12-19 Arnaud Charlet + + * s-taprob.adb: Minor clean ups so that this unit can be used in + Ravenscar HI. + + * exp_ch7.adb: Allow use of secondary stack in HI mode. + Disallow it when pragma Restrictions (No_Secondary_Stack) is specified. + +2001-12-19 Vincent Celier + + * prj-tree.ads (Project_Node_Record): Add comments for components + Pkg_Id and Case_Insensitive. + +2001-12-19 Pascal Obry + + * g-socket.adb: Minor reformatting. Found while reading code. + +2001-12-19 Robert Dewar + + * prj-tree.ads: Minor reformatting + +2001-12-20 Joseph S. Myers + + * config-lang.in (diff_excludes): Remove. + +2001-12-17 Ed Schonberg + + * sem_res.adb (Resolve_Selected_Component): do not generate a + discriminant check if the selected component is a component of + the argument of an initialization procedure. + + * trans.c (tree_transform, case of arithmetic operators): If result + type is private, the gnu_type is the base type of the full view, + given that the full view itself may be a subtype. + +2001-12-17 Robert Dewar + + * sem_res.adb: Minor reformatting + + * trans.c (tree_transform, case N_Real_Literal): Add missing third + parameter in call to Machine (unknown horrible effects from this + omission). + + * urealp.h: Add definition of Round_Even for call to Machine + Add third parameter for Machine + +2001-12-17 Ed Schonberg + + * sem_warn.adb (Check_One_Unit): Suppress warnings completely on + predefined units in No_Run_Time mode. + +2001-12-17 Richard Kenner + + * misc.c (insn-codes.h): Now include. + +2001-12-17 Olivier Hainque + + * a-except.adb: Preparation work for future integration of the GCC 3 + exception handling mechanism + (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines + to factorize previous code sequences and make them externally callable, + e.g. for the Ada personality routine when the GCC 3 mechanism is used. + (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler): + Use the new notification routines. + +2001-12-17 Emmanuel Briot + + * prj-tree.ads (First_Choice_Of): Document the when others case + +2001-12-17 Arnaud Charlet + + * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in + HI-E mode, in order to support Ravenscar profile properly. + + * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E + mode on 32 bits targets. + +2001-12-17 Vincent Celier + + * fmap.adb: Initial version. + + * fmap.ads: Initial version. + + * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped. + If search is successfully done, add to mapping. + + * frontend.adb: Initialize the mapping if a -gnatem switch was used. + + * make.adb: + (Gnatmake): Add new local variable Mapping_File_Name. + Create mapping file when using project file(s). + Delete mapping file before exiting. + + * opt.ads (Mapping_File_Name): New variable + + * osint.adb (Find_File): Use path name found in mapping, if any. + + * prj-env.adb (Create_Mapping_File): New procedure + + * prj-env.ads (Create_Mapping_File): New procedure. + + * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem + (Mapping_File) + + * usage.adb: Add entry for new switch -gnatem. + + * Makefile.in: Add dependencies for fmap.o. + +2001-12-17 Ed Schonberg + + * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit + is a package instantiation rewritten as a package body. + (Install_Withed_Unit): Undo previous change, now redundant. + +2001-12-17 Gary Dismuke + + * layout.adb: + (Compute_Length): Move conversion to Unsigned to callers. + (Get_Max_Size): Convert Len expression to Unsigned after calls to + Compute_Length and Determine_Range. + (Layout_Array_Type): Convert Len expression to Unsigned after calls to + Compute_Length and Determine_Range. + Above changes fix problem with length computation for supernull arrays + where Max (Len, 0) wasn't getting applied due to the Unsigned + conversion used by Compute_Length. + +2001-12-17 Arnaud Charlet + + * rtsfind.ads: + (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and + System.Secondary_Stack. + (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar + in HI-E mode. + Remove unused entity RE_Exception_Data. + + * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode. + + * rident.ads (No_Secondary_Stack): New restriction. + +2001-12-17 Joel Brobecker + + * gnat_rm.texi: Fix minor typos. Found while reading the section + regarding "Bit_Order Clauses" that was sent to a customer. + Very interesting documentation! + +2001-12-17 Robert Dewar + + * sem_case.adb (Choice_Image): Avoid creating improper character + literal names by using the routine Set_Character_Literal_Name. This + fixes bombs in certain error message cases. + +2001-12-17 Arnaud Charlet + + * a-reatim.adb: Minor reformatting. + +2001-12-17 Ed Schonberg + + * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the + case where the formal is an extension of another formal in the current + unit or in a parent generic unit. + +2001-12-17 Arnaud Charlet + + * s-tposen.adb: Update comments. Minor reformatting. + Minor code clean up. + + * s-tarest.adb: Update comments. Minor code reorganization. + +2001-12-17 Gary Dismukes + + * exp_attr.adb (Attribute_Tag): Suppress expansion of 'Tag + when Java_VM. + +2001-12-17 Robert Dewa + + * exp_attr.adb: Minor reformatting + +2001-12-17 Ed Schonberg + + * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle + derivations nested within a child unit: verify that the parent + type is declared in an outer scope. + +2001-12-17 Robert Dewar + + * sem_ch12.adb: Minor reformatting + +2001-12-17 Ed Schonberg + + * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post + warning if current unit is a predefined one, from which bodies may + have been deleted. + +2001-12-17 Robert Dewar + + * eval_fat.ads: Add comment that Round_Even is referenced in Ada code + Fix header format. Add 2001 to copyright date. + + * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference, + which caused CE during compilation if checks were enabled. + +2001-12-17 Vincent Celier + + * make.adb: + (Switches_Of): New function + (Test_If_Relative_Path): New procedure + (Add_Switches): Use new function Switches_Of + (Collect_Arguments_And_Compile): Use new function Switches_Of. + When using a project file, test if there are any relative + search path. Fail if there are any. + (Gnatmake): Only add switches for the primary directory when not using + a project file. When using a project file, change directory to the + object directory of the main project file. When using a project file, + test if there are any relative search path. Fail if there are any. + When using a project file, fail if specified executable is relative + path with directory information, and prepend executable, if not + specified as an absolute path, with the exec directory. Make sure + that only one -o switch is transmitted to the linker. + + * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir + + * prj-nmsc.adb: + (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc, + when using a non standard naming scheme. + (Check_Ada_Naming_Scheme): Make sure that error messages + do not raise exceptions. + (Is_Illegal_Append): Return True if there is no dot in the suffix. + (Language_Independent_Check): Check the exec directory. + + * prj.adb (Project_Empty): Add new component Exec_Directory + + * prj.ads: + (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults. + (Project_Data): Add component Exec_Directory + + * snames.adb: Updated to match snames.ads revision 1.215 + + * snames.ads: Added Exec_Dir + +2001-12-17 Robert Dewar + + * make.adb: Minor reformatting + + * prj-nmsc.adb: Minor reformatting + + * snames.adb: Updated to match snames.ads + + * snames.ads: Alphebetize entries for project file + +2001-12-17 Ed Schonberg + + * trans.c (process_freeze_entity): Do nothing if the entity is a + subprogram that was already elaborated. + +2001-12-17 Richard Kenner + + * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment + and Esize if object is referenced via pointer. + +2001-12-17 Ed Schonberg + + * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant + is discrete before analyzing choices. + +2001-12-17 Joel Brobecker + + * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string + containing the name of the Ada Main Program. This string is mainly + intended for the debugger. + (Gen_Output_File_C): Do the equivalent change when generating a C file. + +2001-12-17 Robert Dewar + + * ali.adb: Set new Dummy_Entry field in dependency entry + + * ali.ads: Add Dummy_Entry field to source dependency table + + * bcheck.adb (Check_Consistency): Ignore dummy D lines + + * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files + + * lib-writ.ads: Document dummy D lines for missing files. + + * types.ads: (Dummy_Time_Stamp): New value for non-existant files + +2001-12-17 Robert Dewar + + * ali.adb: Type reference does not reset current file. + + * ali.adb: Recognize and scan renaming reference + + * ali.ads: Add spec for storing renaming references. + + * lib-xref.ads: Add documentation for handling of renaming references + + * lib-xref.adb: Implement output of renaming reference. + + * checks.adb: + (Determine_Range): Document local variables + (Determine_Range): Make sure Hbound is initialized. It looks as though + there could be a real problem here with an uninitialized reference + to Hbound, but no actual example of failure has been found. + +2001-12-17 Laurent Pautet + + * g-socket.ads: + Fix comment of Shutdown_Socket and Close_Socket. These functions + should not fail silently because if they are called twice, this + probably means that there is a race condition in the user program. + Anyway, this behaviour is consistent with the rest of this unit. + When an error occurs, an exception is raised with the error message + as exception message. + +2001-12-17 Robert Dewar + + * frontend.adb: Move call to Check_Unused_Withs from Frontend, so + that it happens before modification of Sloc values for -gnatD. + + * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend, + so that it happens before modification of Sloc values for -gnatD. + + * switch.adb: Minor reformatting + +2001-12-15 Richard Henderson + + * sem_ch7.adb: Wrap comment. + +2001-12-16 Joseph S. Myers + + * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb, + 5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb, + 5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb, + 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb, + 5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb, + 7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in, + a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb, + a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb, + cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb, + exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb, + exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads, + g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb, + gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c, + make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads, + par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb, + repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, + s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb, + s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads, + s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads, + s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb, + sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb, + sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb, + sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads, + sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix + spelling errors. + +2001-12-14 Vincent Celier + + * osint.adb(Create_Debug_File): When an object file is specified, + put the .dg file in the same directory as the object file. + +2001-12-14 Robert Dewar + + * osint.adb: Minor reformatting + + * lib-xref.adb (Output_Instantiation): New procedure to generate + instantiation references. + + * lib-xref.ads: Add documentation of handling of generic references. + + * ali.adb (Read_Instantiation_Ref): New procedure to read + instantiation references + + * ali.ads: Add spec for storing instantiation references + + * bindusg.adb: Minor reformatting + + * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5) + + * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5) + + * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5) + + * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5) + + * csets.ads: + Fix header format + Add 2001 to copyright date + Add entry for Latin-5 (Cyrillic ISO-8859-5) + +2001-12-14 Matt Gingell + + * adaint.c: mktemp is a macro on Lynx and can not be used as an + expression. + +2001-12-14 Richard Kenner + + * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR + if operand is CONSTRUCTOR. + +2001-12-14 Ed Schonberg + + * trans.c (tree_transform, case N_Assignment_Statement): Set lineno + before emiting check on right-hand side, so that exception information + is correct. + +2001-12-14 Richard Kenner + + * utils.c (create_var_decl): Throw away initializing expression + if just annotating types and non-constant. + +2001-12-14 Vincent Celier + + * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to + Default_Ada_... + + * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix): + Remove functions. + (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec. + + * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix): + Remove functions. + (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body. + +2001-12-16 Joseph S. Myers + + * ChangeLog: Remove piece of diff output. + +2001-12-14 Geert Bosch + + * config-lang.in: Update copyright notice + + * layout.adb: Remove commented out code. + + * mdllfile.ads: Update copyright notice. Fix header format. + + * sem_case.ads: Likewise. + + * sem_ch3.adb: Minor reformatting. + +2001-12-12 Geert Bosch + + * freeze.ads: Update copyright date. + + * g-comlin.ads: Minor reformatting. + + * gnat-style.texi: Fix typo. + +2001-12-12 Geert Bosch + + * einfo.h: Regenerate. + +2001-12-12 Ed Schonberg + + * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names + on known node types, rather than untyped fields. Further cleanups. + +2001-12-12 Robert Dewar + + * sem_ch12.adb: + (Save_Entity_Descendant): Minor comment update. + (Copy_Generic_Node): Deal with incorrect reference to Associated_Node + of an N_Attribute_Reference node. As per note below, this does not + eliminate need for Associated_Node in attribute ref nodes. + (Associated_Node): Documentation explicitly mentions attribute + reference nodes, since this field is used in such nodes. + + * sem_ch12.adb (Associated_Node): Minor documentation cleanup. + +2001-12-12 Robert Dewar + + * s-stalib.adb: Add more comments on with statements being needed + + * par-ch12.adb: Minor reformatting + + * prj-dect.ads: Fix copyright header + + * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both + inputs fit in 32 bits, but the result still overflows. + + * s-fatgen.ads: Minor comment improvement + +2001-12-12 Ed Schonberg + + * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a + formal derived type, look for an inherited component from the full + view of the parent, if any. + +2001-12-12 Robert Dewar + + * checks.ads (Apply_Alignment_Check): New procedure. + + * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to + ensure that the alignment of objects with address clauses is + appropriate, and raise PE if not. + + * exp_util.ads (Must_Be_Aligned): Removed, replaced by + Exp_Pakd.Known_Aligned_Enough + + * mdllfile.ads: Minor reformatting + + * mlib-fil.ads: Minor reformatting + +2001-12-12 Ed Schonberg + + * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous + fix to any component reference if enclosing record has non-standard + representation. + +2001-12-12 Vincent Celier + + * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package + Iteration + +2001-12-12 Ed Schonberg + + * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in + sem_attr. + +2001-12-12 Robert Dewar + + * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration + +2001-12-12 Emmanuel Briot + + * g-regexp.adb: Remove all debug code, since it isn't required anymore, + and it adds dependencies to system.io. + +2001-12-12 Pascal Obry + + * g-dirope.adb (Expand_Path.Var): Correctly detect end of + variable name. + +2001-12-11 Ed Schonberg + + * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance + that is the parent of other generics, the instance body replaces the + instance node. Retrieve the instance of the spec, which is the one + that is visible in clients and within the body. + +2001-12-11 Vincent Celier + + * gnatmain.adb: Initial version. + + * gnatmain.ads: Initial version. + + * prj-attr.adb (Initialisation_Data): Add package Gnatstub. + + * snames.adb: Updated to match snames.ads. + + * snames.ads: Added Gnatstub. + +2001-12-11 Vincent Celier + + * prj-attr.adb (Initialization_Data): Change name from + Initialisation_Data. + +2001-12-11 Emmanuel Briot + + * g-regpat.adb (Parse_Literal): Properly handle simple operators ?, + + and * applied to backslashed expressions like \r. + +2001-12-11 Vasiliy Fofanov + + * g-os_lib.ads: String_List type added, Argument_List type is now + subtype of String_List. + +2001-12-11 Robert Dewar + + * g-os_lib.ads: Change copyright to FSF + Add comments for String_List type + +2001-12-11 Vincent Celier + + * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a + string to the buffer). + +2001-12-11 Ed Schonberg + + * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in + sem_attr. + + * sem_attr.adb: Simplify previous fix for Address. + (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now, + to avoid anomalies where the bound of the type appears to raise + constraint error. + +2001-12-11 Robert Dewar + + * lib-xref.adb (Output_Refs): Make sure pointers are always properly + handled. + +2001-12-11 Ed Schonber + + * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a + renamed unit before checking for recursive instantiations. + +2001-12-11 Emmanuel Briot + + * prj.ads: Add comments for some of the fields. + +2001-12-11 Robert Dewar + + * lib-xref.adb (Output_Refs): Don't output type references outside + the main unit if they are not otherwise referenced. + +2001-12-11 Ed Schonberg + + * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify + code and diagnose additional illegal uses + + * sem_util.adb (Is_Object_Reference): An indexed component is an + object only if the prefix is. + +2001-12-11 Vincent Celier + + * g-diopit.adb: Initial version. + + * g-diopit.ads: Initial version. + + * g-dirope.adb: + (Expand_Path): Avoid use of Unbounded_String + (Find, Wildcard_Iterator): Moved to child package Iteration + + * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS + +2001-12-11 Robert Dewar + + * sem_attr.adb: Minor reformatting + +2001-12-11 Ed Schonberg + + * sem_ch3.adb: Clarify some ???. + +2001-12-11 Robert Dewar + + * exp_util.adb (Must_Be_Aligned): Removed, replaced by + Exp_Pakd.Known_Aligned_Enough + + * sem_ch13.adb (Check_Address_Alignment): Removed, extended + version is moved to Exp_Ch13. + +2001-12-11 Robert Dewar + + * einfo.ads: Minor reformatting + + * exp_ch5.adb: Add comment for previous.change + + * ali.adb: New interface for extended typeref stuff. + + * ali.ads: New interface for typeref stuff. + + * checks.adb (Apply_Alignment_Check): New procedure. + + * debug.adb: Add -gnatdM for modified ALI output + + * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough. + + * lib-xref.adb: Extend generation of <..> notation to cover + subtype/object types. Note that this is a complete rewrite, + getting rid of the very nasty quadratic algorithm previously + used for derived type output. + + * lib-xref.ads: Extend description of <..> notation to cover + subtype/object types. Uses {..} for these other cases. + Also use (..) for pointer types. + + * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup. + + * exp_pakd.adb: Minor reformatting. Note that prevous RH should say: + (Known_Aligned_Enough): Replaces Must_Be_Aligned. + +2001-12-11 Vincent Celier + + * gnatcmd.adb: + Changed /COMPILE_ONLY to /ACTIONS=COMPILE + Changed /BIND_ONLY to /ACTIONS=BIND + Changed /LINK_ONLY to /ACTIONS=LINK + +2001-12-11 Ed Schonberg + + * sem_ch8.adb (Find_Selected_Component): improved search for a + candidate package in case of error. + + * sem_ch12.adb (Inline_Instance_Body): place head of use_clause + chain back on scope stack before reinstalling use clauses. + + * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings + is enabled, do not kill the code for the condition, to preserve + warning. + +2001-12-11 Robert Dewar + + * checks.adb (Insert_Valid_Check): Apply validity check to expression + of conversion, not to result of conversion. + +2001-12-11 Ed Schonberg + + * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag + before freezing parent. If the declarations are mutually recursive, + an access to the current record type may be frozen before the + derivation is complete. + +2001-12-05 Vincent Celier + + * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY, + -c /COMPILE_ONLY, -l /LINK_ONLY + + * opt.ads: + (Bind_Only): New Flag + (Link_Only): New flag + + * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only) + and -l (Link_Only) + + * makeusg.adb: Add new switches -b and -l. Update Copyright notice. + + * make.adb: + (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags. + (Gnatmake): Set the step flags. Only perform a step if the + corresponding step flag is True. + (Scan_Make_Arg): Reset the bind and link step flags when -u + or -gnatc has been specified. + +2001-12-05 Ed Schonberg + + * sem_eval.adb (Eval_Concatenation): If left operand is a null string, + get bounds from right operand. + + * sem_eval.adb: Minor reformatting + + * exp_util.adb (Make_Literal_Range): use bound of literal rather + than Index'First, its lower bound may be different from 1. + + * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B + and C48009J + +2001-12-05 Vincent Celier + + * prj-nmsc.adb Minor reformatting + + * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if + set and libraries are not supported. + +2001-12-05 Ed Schonberg + + * sem_ch3.adb (Build_Derived_Private_Type): set Public status of + private view explicitly, so the back-end can treat as a global + when appropriate. + +2001-12-05 Ed Schonberg + + * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation + unit, always replace instance node with new body, for ASIS use. + +2001-12-05 Vincent Celier + + * prj-nmsc.adb (Language_Independent_Check): Issue a warning if + libraries are not supported and both attributes Library_Name and + Library_Dir are specified. + + * prj-proc.adb (Expression): Set location of Result to location of + first term. + + * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS. + (prj-nmsc is now importing MLib.Tgt) + + * prj-proc.adb: Put the change indicated above that was forgotten. + +2001-12-05 Robert Dewar + + * Makefile.in: Add dependencies for System.IO for GNAT.Regexp + +2001-12-05 Ed Schonberg + + * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a + constraint, introduce explicit subtype declaration and derive from it. + + * sem_ch3.adb: Minor reformatting + +2001-12-05 Robert Dewar + + * checks.adb (Determine_Range): Increase cache size for checks. + Minor reformatting + + * exp_ch6.adb: Minor reformatting + (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has + a parameter whose root type is System.Address, since treating such + subprograms as pure in the code generator is almost surely a mistake + that will lead to unexpected results. + + * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and + change handling of conversions. + + * g-regexp.adb: Use System.IO instead of Ada.Text_IO. + +2001-12-05 Ed Schonberg + + * sem_ch3.adb (Analyze_Object_Declaration): If expression is an + aggregate with static wrong size, attach generated Raise node to + declaration. + +2001-12-05 Robert Dewar + + * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute. + Fixes compilation abandoned bomb in B24009B. + +2001-12-05 Ed Schonberg + + * sem_ch12.adb: + Document use of Associated_Node on Selected_Components. + (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants, + to clarify use of untyped descendant fields. + +2001-12-05 Robert Dewar + + * prj-dect.ads: Add ??? comment + Add 2001 to copyright notice (was not done in after all) + + * prj-part.adb: Minor reformatting. Reword one awkward error message. + + * prj.ads: Minor reformatting throughout, and add some ??? comments + + * snames.ads: Minor reformatting + +2001-12-05 Geert Bosch + + * snames.adb: Autoupdate + +2001-12-05 Vincent Celier + + * prj-dect.adb (Parse): Rename parameter Modifying to Extends. + + * prj-dect.ads (Parse): Rename parameter Modifying to Extends. + + * prj-env.adb: Minor comment changes (modifying -> extends). + + * prj-nmsc.adb: Minor comment changes (modifying -> extends). + + * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to + Tok_Extends. + + * prj.adb (Initialize): Change Modifying to Extends. + + * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends. + + * prj.ads: Minor comment change (Modifying -> extending). + + * snames.ads: Change modifying to extends. + +2001-12-05 Robert Dewar + + * sem_warn.adb: Remove stuff for conditionals, we are not going to + do this after all. + + * sem_warn.ads: Remove stuff for conditionals, we are not going to + do this after all. Add 2001 to copyright notice + +2001-12-04 Geert Bosch + + * einfo.h, sinfo.h, treeprs.ads: Regenerate. + +2001-12-04 Robert Dewar + + * errout.adb (Error_Msg): Ignore attempt to put error msg at junk + location if we already have errors. Stops some cases of cascaded + errors. + + * errout.adb: Improve comment. + +2001-12-04 Robert Dewar + + * sem_ch12.adb: + (Analyze_Formal_Type_Definition): Defend against Error. + (Analyze_Formal_Subprogram): Defend against Error. + + * par-ch12.adb (F_Formal_Type_Declaration): In case of error, + remove following semicolon if present. Removes cascaded error. + +2001-12-04 Douglas B. Rupp + + * bindgen.adb: + (Gen_Exception_Table_Ada): Write "begin" and then return if Num + exceptions equals 0. + (Gen_Exception_Table_C): Return if Num exceptions equals 0. + Fixes PIWG E tests (which have to be run with -gnatL). + +2001-12-04 Robert Dewar + + * einfo.ads: Minor reformatting + +2001-12-04 Ed Schonberg + + * einfo.ads: Block_Node points to the identifier of the block, not to + the block node itself, to preserve the link when the block is + rewritten, e.g. within an if-statement with a static condition. + + * inline.adb (Cleanup_Scopes): recover block statement from block + entity using new meaning of Block_Node. + + * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to + identifier of block node, rather than to node itself. + +2001-12-04 Gary Dismukes + + * layout.adb: + (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size. + (Discrimify): Go back to setting the Etypes of the selected component + because the Vname component does not exist at this point and will + fail name resolution. Also set Analyzed. + Remove with and use of Sem_Res. + +2001-12-04 Arnaud Charlet + + * Makefile.in: (HIE_SOURCES): add s-fat*. + +2001-12-04 Robert Dewar + + * sem_attr.adb: + (Compile_Time_Known_Attribute): New procedure. + (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure + proper range check. + +2001-12-04 Ed Schonberg + + * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before + processing discriminants to diagnose illegal default values. + +2001-12-04 Ed Schonberg + + * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide + access discriminant within a type extension that constrains its + parent discriminants. + +2001-12-04 Ed Schonberg + + * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication + is malformed, use instance of Any_Id to allow analysis to proceed. + + * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if + type definition is illegal. + (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is + misplaced. + +2001-12-04 Ed Schonberg + + * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to + constants. + +2001-12-04 Robert Dewar + + * errout.adb: Minor reformatting + +2001-12-04 Robert Dewar + + * exp_util.adb: Minor reformatting from last change + + * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node + which is a rewriting of an expression, traverse the original + expression to remove warnings that may have been posted on it. + +2001-12-04 Ed Schonberg + + * exp_util.adb (Must_Be_Aligned): Return false for a component of a + record that has other packed components. + +2001-12-04 Douglass B. Rupp + + * adaint.c: Minor cleanups. + +2001-12-04 Douglass B. Rupp + + * adaint.c: Do not use utime.h on vxworks. + +2001-12-04 Arnaud Charlet + + * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes + more confusion than it solves. + +2001-12-04 Geert bosch + + * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate. + +2001-12-04 Geert Bosch + + * Makefile.in (update-sources): New target. + For use by gcc_release script. + +2001-12-04 Ed Schonberg + + * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as + a configuration pragma, it is now legal wherever a pragma can appear. + +2001-12-04 Zack Weinberg + + * Makefile.in: Don't set ALL. Delete @cross_defines@, + @cross_overrides@, @build_overrides@ stanzas. INTERNAL_CFLAGS + is now @CROSS@ -DIN_GCC; update comment. + +2001-12-04 Robert Dewar + + * einfo.adb (Has_Pragma_Pure_Function): New flag. + Fix problem that stopped ceinfo from working + + * einfo.ads (Has_Pragma_Pure_Function): New flag. + + * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function. + +2001-12-04 Douglas B. Rupp + + * gnatchop.adb: + (File_Time_Stamp): New procedure. + (Preserve_Mode): New boolean. + (Write_Unit): Pass time stamp. + Implement -p switch (preserve time stamps). + + * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE). + + * gnatchop.adb: Do usage info for -p switch + + * adaint.h (__gnat_set_file_time_name): New function + + * adaint.c (__gnat_set_file_time_name): Implement + + * adaint.h: Fix typo + +2001-12-03 Robert Dewar + + * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not + have Associated_Node. + +2001-12-03 Robert Dewar + + * prj-proc.adb: Minor reformatting + + * make.adb: Minor reformatting + +2001-12-03 Geert Bosch + + * make.adb: Minor reformatting. + +2001-12-03 Robert Dewar + + * sem_ch12.adb: Minor reformatting + +2001-12-03 Ed Schonberg + + * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and + push Standard on the stack before analyzing the instance body, + in order to have a clean visibility environment. + + * sem_ch12.adb (Inline_Instance_Body): Remove redundant code. + +2001-12-03 Ed Schonberg + + * sem_ch12.adb (Instantiate_Package_Body): Protect against double + instantiation of a body that contains an inlined body. + +2001-12-03 Ed Schonberg + + * sem_ch12.adb: + (Analyze_generic_subprogram_Declaration): Set outer_generic_scope, + to prevent freezing within formal packages. + (Freeze_Subprogram_Body): If body comes from another instance that + appeared before its own body, place freeze node at end of current + declarative part, to prevent a back-end crash. + (Inline_Instance_Body): Handle properly a package instance within + a subprogram instance that is a child unit. + +2001-12-01 Graham Stott + + * Makefile.in (misc.o): Add missing $(srcdir) prefix + and add optabs.h dependency. + + * misc.c: Include optabs.h + (gnat_tree_code_type): Make static and const. + (gnat_tree_code_length): Likewise. + (gnat_tree_code_name): Likewise. + (update_setjmp_buf): Obtain operands mode from insn_data. + +2001-11-29 Richard Henderson + + * init.c: Remove obsolete dwarf2 frame.h section. + +2001-11-29 Joseph S. Myers + + * Make-lang.in (ada.generated-manpages): New dummy target. + +2001-11-29 Ed Schonberg + + * g-os_lib.adb (Add_To_Command): use explicit loop to move string + into Command, an array conversion is illegal here. Uncovered by + ACATS B460005. + +2001-11-28 Geert Bosch + + * init.c: Minor whitespace changes. + +2001-11-28 Doug Rupp + + * init.c: (__gnat_install_handler,VMS): Increase size of alternate + signal stack. + +2001-11-28 Zack Weinberg + + * misc.c (gnat_expand_constant): Move declaration above + definition of lang_hooks. + (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant. + (gnat_init): lang_expand_constant no longer exists. + + (internal_error_function): Remove #ifdef HAVE_VPRINTF. We + always have vprintf. + (gnat_init): Always call set_internal_error_function. + +2001-11-27 Andreas Jaeger + + * Makefile.in (stamp-tool_src_dir): Use symbolic link. + +2001-11-27 Laurent Guerby + + * Makefile.in: Regenerate Ada dependencies. + +2001-11-26 Richard Henderson + + * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd, + gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys, + gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o. + +2001-11-25 Laurent Guerby + + * sysdep.c (rts_get_*): Fix style. + +2001-11-19 Laurent Guerby + + * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include + since it is of no apparent use and cause warnings. + +2001-11-18 Neil Booth + + * misc.c (gnat_decode_option, gnat_init_options): Make definitions + static too. + (gnat_init): Don't return NULL. + (finish_parse): Remove. + +2001-11-17 Laurent Guerby + + * Make-lang.in (GNATLIBFLAGS): Add -W -Wall. + * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing. + * io-aux.c: Provide K&R prototypes to all functions, reformat code. + * lang-spec.h: Add missing struct field to silence warnings. + * sysdep.c (rts_get_*): Provide K&R prototype. + * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype. + * traceback.c (Unlock_Task, Lock_Task): Likewise. + * tracebak.c (__gnat_backtrace): Remove unused variable. + * utils.c (end_subprog_body): Move to K&R style. + +Thu Nov 15 18:16:17 2001 Richard Kenner + + * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference. + +2001-11-15 Neil Booth + + * misc.c (gnat_init): Change prototype. Include the + functionality of the old init_parse and init_decl_processing. + (gnat_init_decl_processing): New prototype. + (init_parse): Remove. + * utils.c (init_decl_processing): Rename gnat_init_decl_processing. + +2001-11-09 Neil Booth + + * misc.c (gnat_print_decl, gnat_print_type): Renamed. + (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override. + (print_lang_statistics, lang_print_xnode, print_lang_identifier, + set_yydebug): Remove. + +2001-11-09 Neil Booth + + * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override. + (struct lang_hooks): Constify. + (language_string, lang_identify): Remove. + * utils.c (init_decl_processing): Update. + +2001-11-06 Neil Booth + + * misc.c: Include langhooks-def.h. + * Makefile.in: Update. + +2001-10-30 Robert Dewar + + * style.adb: + (Check_Identifier): Rewrite circuit to be compatible with use of letters + in the upper half of ASCII. + (Check_Identifier): Minor reformatting + +2001-10-30 Geert Bosch + + * (Associated_Node, Set_Associated_Node): Do not check for + Freeze_Entity. + +2001-10-30 Robert Dewar + + * a-reatim.ads: Minor reformatting + +2001-10-30 Robert Dewar + + * gnatdll.adb: Minor reformatting throughout. Many ??? added for + undocumented declarations. + +2001-10-30 Pascal Obry + + * gnatdll.adb (Parse_Command_Line): handle -g option to be passed + to the binder and linker. + Minor style fix. + + * mdll.ads: Fix layout. Update copyright notice. + + * mdll.adb: Fix layout. Update copyright notice. + +2001-10-30 Robert Dewar + + * usage.adb: Minor fix to output for -gnaty. + +2001-10-30 Ed Schonberg + + * a-reatim.ads: Makes Seconds_Count into a 64-bit integer, + to accommodate all its possible values. + + * a-reatim.adb (Split): Special-case handling of Time_Span_First + and of small absolute values of T. + +2001-10-30 Richard Kenner + + * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to + set_mem_attributes since not needed and wrong if RESULT if a REG; + fixes ACATS failures. + +2001-10-30 Geert Bosch + + * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads, + s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice. + +2001-10-30 Robert Dewar + + * bindusg.adb: Undocument -f switch. + + * gnatcmd.adb: Remove /FULL_ELABORATION. + + * opt.ads (Force_RM_Elaboration_Order): Document that this is + obsolescent. + + * gnatbind.adb: Output new warning for use of obsolescent -f switch. + + * gnatbind.adb: Minor update of warning msg. + +2001-10-30 Vincent Celier + + * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations + for project file switches (-P (/PROJECT_FILE=), + -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT + or MEDIUM or HIGH) + +2001-10-30 Geert Bosch + + * decl.c: Minor whitespace fixes. + +2001-10-30 Richard Kenner + + * utils2.c (build_allocator): Test for SIZE overflow in array case too + +2001-10-30 Geert Bosch + + * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out. + Found due to GCC 3.0 warning of using uninitialized value. + + * layout.adb: + (Get_Max_Size): Use variant record for tracking value/expression. + Makes logic clearer and prevents warnings for uninitialized variables. + (Layout_Array_Type): Use variant record for tracking value/expression. + Makes logic clearer and prevents warnings for uninitialized variables. + +2001-10-30 Robert Dewar + + * lib.adb: Minor reformatting + + * s-taprop.ads: Minor reformatting + +2001-10-29 Laurent Guerby + + * init.c: + (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg + const. + (_gnat_error_handler): Make MSG const. + +2001-10-29 Richard Kenner + + * sysdep.c: Fix localtime_r problem on LynxOS. + Also remove #elif to avoid warnings. + + * misc.c (yyparse): Don't set up and register jmpbuf; remove decls + used by this. + + * decl.c (annotate_value): Make SIZE unsigned to avoid warning. + +2001-10-28 Joseph S. Myers + + * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb, + exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb, + g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads, + g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c, + layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads, + s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads, + sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb, + sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb, + sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads, + types.ads, urealp.adb: Fix spelling errors. + +2001-10-27 Laurent Guerby + + * trans.c (gigi): Fix non determinism leading to bootstrap + comparison failures for debugging information. + +2001-10-26 Florian Weimer + + * gnat_rm.texi: Use @./@: where appropriate. + +2001-10-26 Robert Dewar + + * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup. + +2001-10-26 Richard Kenner + + * gmem.c (__gnat_gmem_read_next): Properly check for EOF + +2001-10-26 Richard Kenner + + * decl.c (validate_size): Modify message for bad size to avoid + implication that compiler is modifying the size. + +2001-10-26 Robert Dewar + + * prj-util.adb: Minor reformatting. Fix bad header format. + +2001-10-26 Robert Dewar + + * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup. + + * sinfo.ads: Clarify use of Associated_Node (documentation only). + + * sem_ch12.adb: Change Node4 to Associated_Node. Change + Associated_Node to Get_Associated_Node. Put use of Unchecked_Access + much more narrowly in places where needed. These are cleanups. + +2001-10-26 Joel Brobecker + + * 5zosinte.ads (null_pthread): new constant. + + * 5ztaprop.adb: + (Initialize_TCB): Initialize thread ID to null, to be able to verify + later that this field has been set. + (Finalize_TCB): ditto. + (Suspend_Task): Verify that the thread ID is not null before using it. + (Resume_Task): ditto. + + * s-tasdeb.adb: + (Resume_All_Tasks): Lock the tasks list before using it. + (Suspend_All_Tasks): ditto. + +2001-10-26 Richard Kenner + + * decl.c (gnat_to_gnu_entity, case E_General_Access_Type): + Make constant variant of designated type for Is_Access_Constant. + Call update_pointer_to with main variant. + + * trans.c (process_freeze_entity, process_type): + Call update_pointer_to on main variant. + + * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE. + If main variant, update all other variants. + + * utils2.c (build_unary_op, case INDIRECT_REF): No longer set + TREE_STATIC. + +2001-10-26 Robert Dewar + + * prj-util.adb: Minor reformatting + +2001-10-26 Robert Dewar + + * prj-util.adb: Minor reformatting + +2001-10-26 Robert Dewar + + * prj-attr.adb: Minor reformatting throughout + +2001-10-26 Robert Dewar + + * prj-attr.ads: Minor reformatting + Add ??? comment (this whole spec has almost no comments) + +2001-10-26 Vincent Celier + + * g-os_lib.adb (Normalize_Pathname): Preserve the double slash + ("//") that precede the drive letter on Interix. + +2001-10-26 Geert Bosch + + * gnat_rm.texi: Add GNAT Reference Manual. + +2001-10-25 Robert Dewar + + * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name + is Error. Similar change for other renaming cases. + +2001-10-25 Robert Dewar + + * s-atacco.ads: Add pragma Inline_Always for functions. + Fix header format. Add copyright 2001 + +2001-10-25 Ed Schonberg + + * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array + return Error rather than Empty so that analysis can proceed. + +2001-10-25 Ed Schonberg + + * sem_util.adb (Enter_Name): better handling of cascaded error + messages when a unit appears in its own context. + +2001-10-25 Ed Schonberg + + * sem_util.adb (Defining_Entity): in case of error, attach created + entity to specification, so that semantic analysis can proceed. + +2001-10-25 Robert Dewar + + * sem_util.adb + (Defining_Entity): Deal with Error. + (Process_End_Label): Deal with bad end label for. + +2001-10-25 Ed Schonberg + + * sem_elab.adb (Check_A_Call): refine message when call is in an + instance but callee is not declared in the generic unit. + +2001-10-25 Ed Schonberg + + * sem_elab.adb (Check_A_Call): check for renaming before finding the + enclosing unit, which may already be different from the calling unit. + +2001-10-25 Geert Bosch + + * 4gintnam.ads: fix header format. + +2001-10-25 Ed Schonberg + + * sem_res.adb (Resolve_Call): if the call is actually an indexing + operation on the result of a parameterless call, perform elaboration + check after the node has been properly rewritten. + + * sem_ch12.adb (Copy_Generic_Node): after the proper body has been + inlined within the generic tree, the defining identifier is not a + compilation_unit. + +2001-10-25 Ed Schonberg + + * sem_res.adb (Resolve): special-case resolution of Null in an + instance or an inlined body to avoid view conflicts. + + * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view + compatibility by retrieving the access type of the generic copy. + +2001-10-25 Robert Dewar + + * sem_ch3.adb: + (Analyze_Number_Declaration): Handle error expression. + (Signed_Integer_Type_Declaration): Handle error bound. + (Analyze_Subtype_Indication): Handle error range. + + * sem_util.adb (Get_Index_Bounds): Check for Error. + +2001-10-25 Robert Dewar + + * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default + in no run time mode. + +2001-10-25 Pascal Obry + + * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet + mode case for ALLOC case. + + * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on + all platforms. Improvement of last change. + +2001-10-25 Robert Dewar + + * exp_ch4.adb (Expand_N_Allocator): Minor reformatting. + +2001-10-25 Geert Bosch + + * osint.adb (Is_Relative): Remove duplicate. + +2001-10-25 Pascal Obry + + * osint.adb (Read_Default_Search_Dirs): correctly detect relative + pathnames in UNIX and DOS style with drive letter. + (Is_Relative): new routine. + + * osint.adb: Minor reformatting + + * osint.adb (Is_Relative): implementation using + GNAT.OS_Lib.Is_Absolute_Path. Better fix. + +2001-10-25 Pascal Obry + + * g-dirope.adb (Basename): correctly compute offset between the + original Path and the translated one. + + * g-dirope.adb: (Base_Name): add some comments. + +2001-10-25 Robert Dewar + + * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use + in HIE mode, avoids compilation abandoned message + + * exp_imgv.adb: Correct typo in previous change + + * exp_imgv.adb: Correct typo in previous change (not my day!) + +2001-10-25 Robert Dewar + + * s-tpinop.ads: Add 2001 to copyright notice. Fix header format. + +2001-10-25 Pascal Obry + + * g-awk.ads: Move all pragma inlines next to the routine + declarations. This is more uniform with other GNAT spec. + +2001-10-22 Geert Bosch + + * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem. + +2001-10-19 Geert Bosch + + * Makefile.in (tools, gnattools): Remove gnatmem. + +2001-10-17 Richard Henderson + + * Makefile.in (misc.o): Depend on langhooks.h. + * misc.c: Include it. + (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New. + (LANG_HOOKS_DECODE_OPTION): New. + (lang_hooks): Use LANG_HOOKS_INITIALIZER. + +2001-10-16 Florian Weimer + + * trans.c (tree_transform): Adjust to recent change in + expand_asm_operands to implement named asm operands. + +2001-10-11 Ed Schonberg + + * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in + renaming of discriminant for mutable record type. + +2001-10-11 Robert Dewar + + * validsw.adb: Properly save -gnatVn status. + +2001-10-11 Robert Dewar + + * usage.adb: Add lines for V switch. + + * gnatcmd.adb (COMPILE): Revise translations for -gnatV + (/VALIDITY_CHECKING). + +2001-10-11 Ed Schonberg + + * sem_type.adb (Add_One_Interp): an operator for a type declared in + an extension of System is known to be visible. + +2001-10-11 Ed Schonberg + + * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal + properly. Fixes regression on ACATS C34005G. + +2001-10-11 Robert Dewar + + * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null + loop in generic instance, since this is likely not very useful. + +2001-10-11 Robert Dewar + + * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize + the error message for high integrity mode. + + * rtsfind.adb (RTE): Give message if we try to find an entity that + is not available in high integrity mode. + + * rtsfind.ads: + (OK_To_Use_In_HIE_Mode): New array. + (RTE): May return Empty in high integrity mode. + + * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for + OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx. + + * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined + unit if not inlined always and in no runtime mode. Fixes problem + caused by new Rtsfind changes. + + * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if + body is deleted. + + * rtsfind.adb (RTE): Make sure we do not try to load unit after + giving message for entity not available in high integrity mode. + +2001-10-11 Pascal Obry + + * impunit.adb: Add GNAT.CRC32. + +2001-10-11 Ed Schonberg + + * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle + properly the case where one universal operand in a non-static + exponentiation of a real literal. + +2001-10-11 Ed Schonberg + + * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type + clause, return the gobal finalization list, for lack of anthing else. + +2001-10-11 Ed Schonberg + + * exp_ch7.adb (Make_Transient_Block): if statement is within + exception handler, always use new transient scope to place Clean + procedure. + +2001-10-11 Pascal Obry + + * Makefile.in: + (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o + (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o + (GNATLS_RTL_OBJS): add g-crc32.o + (GNATMAKE_RTL_OBJS): add g-crc32.o + + * ali-util.adb: + (CRC_Match): new function. + (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit + instead of the previous simple checksum algorithm. + (Time_Stamp_Mismatch): use CRC_Match for comparison. + (Set_Source_Table): idem. + + * ali-util.ads: + (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC + instead of simple checksum. + (CRC_Match): new function. + (CRC_Error): new constant. + + * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling + a CRC now and not a simple checksum. A CRC uses lower-case hex + letters, fixes ambiguity in parsing. + + * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this + is what this variable will store. + + * bcheck.adb: Change reference to chechsum in comments by CRC. + (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC. + rename All_Checksum_Match to All_CRC_Match. Change due to API + renaming since now GNAT does not use a simple checksum but a + CRC using GNAT.CRC32. + + * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC + now and not anymore a simple checksum. + + * lib-load.adb: Use Source_CRC instead of Source_Checksum in many + places. + + * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum. + + * scans.adb: + (Restore_Scan_State): rename Checksum to CRC. + (Save_Scan_State): idem. + + * scans.ads: + With GNAT.CRC32. + (Checksum): rename to CRC. + (Saved_Scan_State): Save_Checksum field renamed to Save_CRC + + * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from + GNAT.CRC32). Update copyright notice. + + * scn-slit.adb: Rename many Accumulate_Checksum to Update (from + GNAT.CRC32). Update copyright notice. + + * scn.adb: + (Accumulate_Checksum): removed. + (Update): new procedure. Add a wide-character into the CRC. + + * sinput-l.adb: + (Complete_Source_File_Entry): use CRC32 instead of simple checksum. + (Load_File): fix initialization of S (change Source_Checksum to + Source_CRC) + + * sinput-p.adb (Load_Project_File): rename Source_Checksum to + Source_CRC in S initialization. + + * sinput.adb (Source_Checksum): renamed to Source_CRC. + + * sinput.ads (Source_Checksum): renamed to Source_CRC. + Update comments for the CRC. + + * types.adb (Hex): Use lowercase for the letter part. + + * types.ads (Get_Hex_String): Returns the hexadecimal representation + for a word. This is currently used only for CRC. In previous version, + the checksum was using a representation with all letter being + upper-case. With the new implementation (using CRC) we do not remove + the 32th bit of the CRC, so we can have an upper-case starting letter + in the CRC. This is not possible to parse in Scan_ALI (ali.adb). + It is ambigous since the CRC was optional and could be followed by + options like EB, EE. So now this routines uses lower-case letter for + the hexadecimal representation. Strange enough only lower case letters + where checked in Scan_ALI (even if this was not a possible case). + + * gnatvsn.ads (Library_Version): changed to 3.15a. + + * s-crc32.ads: Initial version from GNAT.CRC32. This is the version + for the compiler. + + * s-crc32.adb: Initial version from GNAT.CRC32. This is the version + for the compiler. + + * ali-util.adb: Redo previous change to avoid using word CRC everywhere + Add 2001 to copyright notice + (Accumulate_Checksum): Modify to use System.CRC32. + + * ali-util.ads: Redo changes of previous revision to continue to use + the word Checksum. Add 2001 to copyright notice. + + * ali.adb: Undo some of previous changes, not needed. + Keep the change for lower case letters in the checksum. + + * ali.ads: Undo previous change not needed. + + * bcheck.adb: Undo most of previous change, not needed. + But do use Checksums_Match for checksum comparison. + + * gnatls.adb: Undo most of previous change, not needed. + But do use Checksums_Match for comparing checksums. + + * lib-load.adb: Undo previous change, not needed. + + * lib-writ.adb: Undo previous change, not needed. + + * lib-writ.ads: Document that checksums use lower case, + not upper case letters. + + * scans.adb: Undo previous change, not needed + + * scans.ads: Undo previous change, not needed. + + * scn-nlit.adb: Undo previous changes, not needed. + + * scn-slit.adb: Undo previous change, not needed. Fix header format. + + * scn.adb: + (Accumulate_Checksum): Use System.CRC32. + (Initialize_Checksum): New procedure. + Remove other changes of previous revision. + + * sinput-p.adb: Undo previous change, not needed. + + * sinput.adb: Undo previous change, not needed. + + * sinput-l.adb: Undo previous change, not needed. + + * sinput.ads: Undo previous change, not needed. Keep only comment + on new checksum algorithm + + * Makefile.in: Add s-crc32 as needed, remove g-crc32. + Also remove a-tags and a-stream from GNAT sources. + + * ali.adb (Scan_ALI): fix typo introduce in latest check-in. + + * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o. + +2001-10-11 Geert Bosch + + * einfo.h: Regenerate. + + * nmake.ads: Regenerate. + + * nmake.adb: Regenerate. + + * sinfo.h: Regenerate. + + * treeprs.adb: Regenerate. + +2001-10-10 Geert Bosch + + * gnat-style.texi: New file describing coding guidelines for Ada. + +2001-10-10 Ed Schonberg + + * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required + is Flag174. + +2001-10-10 Geert Bosch + + * snames.ads: Add new names for project facility. + + * snames.adb: Update to reflect snames.ads changes. + + * snames.h: Update to reflect snames.ads changes. + +2001-10-10 Vincent Celier + + * make.adb: + (Add_Switches): reflect the changes for the switches attributes + Default_Switches indexed by the programming language, + Switches indexed by the file name. + (Collect_Arguments_And_Compile): Idem. + Reflect the attribute name changes. + + * prj-attr.adb: + (Initialisation_Data): Change the names of some packages and + attributes. + (Initialize): process case insensitive associative arrays. + + * prj-attr.ads: + (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array. + + * prj-dect.adb: + (Parse_Attribute_Declaration): For case insensitive associative + arrays, set the index string to lower case. + + * prj-env.adb: + Reflect the changes of the project attributes. + + * prj-nmsc.adb: + Replace Check_Naming_Scheme by Ada_Check and + Language_Independent_Check. + + * prj-nmsc.ads: + Replaced Check_Naming_Scheme by 2 procedures: + Ada_Check and Language_Independent_Check. + + * prj-proc.adb: + (Process_Declarative_Items): For case-insensitive associative + arrays, set the index string to lower case. + (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of + Prj.Nmsc.Check_Naming_Scheme. + + * prj-tree.adb: + (Case_Insensitive): New function + (Set_Case_Insensitive): New procedure + + * prj-tree.ads: + (Case_Insensitive): New function + (Set_Case_Insensitive): New procedure + (Project_Node_Record): New flag Case_Insensitive. + + * prj-util.adb: + (Value_Of): new function to get the string value of a single + string variable or attribute. + + * prj-util.ads: + (Value_Of): new function to get the string value of a single + string variable or attribute. + + * prj.adb: + (Ada_Default_Spec_Suffix): New function + (Ada_Default_Impl_Suffix): New function + Change definitions of several constants to reflect + new components of record types. + + * prj.ads: + (Naming_Data): Change several components to reflect new + elements of naming schemes. + (Project_Data): New flags Sources_Present and + Language_Independent_Checked. + (Ada_Default_Spec_Suffix): New function. + (Ada_Default_Impl_Suffix): New function. + + * snames.ads: + Modification of predefined names for project manager: added + Implementation, Specification_Exceptions, Implementation_Exceptions, + Specification_Suffix, Implementation_Suffix, Separate_Suffix, + Default_Switches, _Languages, Builder, Cross_Reference, + Finder. Removed Body_Part, Specification_Append, Body_Append, + Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind, + Gnatlink. + + * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix): + Add comments. + + * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted, + not that it is Nil_Variable_Value. + + * prj.ads: Add ??? for uncommented declarations + +2001-10-10 Ed Schonberg + + * sem_prag.adb: (Analyze_Pragma, case External): If entity is a + constant, do not indicate possible modification, so that gigi can + treat it as a bona fide constant. + +2001-10-10 Robert Dewar + + * sem_prag.adb: Add processing for pragma External. + + * snames.ads: Add entry for pragma External. + + * par-prag.adb: Add pragma External. + + * snames.adb: Updated to match snames.ads. + +2001-10-10 Ed Schonberg + + * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for + a dynamic task if the allocator appears in an indexed assignment + or selected component assignment. + + * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image): + For a dynamic task in an assignment statement, use target of + assignment to generate meaningful name. + +2001-10-10 Ed Schonberg + + * einfo.adb (Write_Field19_Name): Body_Entity is also defined for + a generic package. + + * einfo.ads: Body_Entity is also defined for generic package. + Documentation change only + + * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an + others_choice for a discriminated component initialization, + convert discriminant references into the corresponding discriminals. + + * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate + only if original type is private and expression has to be wrapped + in a conversion. + + * checks.adb: + (Apply_Constraint_Check): Do not perform length check + if expression is an aggregate with only an others_choice. + (Length_N_Cond): two references to the same in_parameter + (typically the discriminal in an init_proc) denote the same value. + Two useful optimization uncovered by bugfixes above. + +2001-10-10 Robert Dewar + + * xeinfo.adb: Change int to char in translation of enumeration types. + This fixes a problem in the C representation of component alignment. + Add 2001 to copyright notice + +2001-10-10 Richard Kenner + + * decl.c: (validate_size): Do check size of object of integral type + if it is a packed array type. + +2001-10-10 Richard Kenner + + * decl.c: (gnat_to_gnu_entity, case object): Also materialize + VAR_DECL for constant if not Is_Public but -O0. + +2001-10-10 Richard Kenner + + * misc.c (struct lang_hooks): Add new initializer to match GCC change. + +2001-10-10 Geert Bosch + + * xnmake.adb (XNmake): Fix handling of -s/-b options. No longer + use '/' as switch character, allowing for absolute file names. + +2001-10-09 Joseph S. Myers + + * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update + FSF address. + +2001-10-08 Geert Bosch + + * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): + Automatically build utilities when files need to be regenerated. + +2001-10-08 Geert Bosch + + * xsnames.adb: New utility for updating snames.ads and snames.adb + +2001-10-08 Zack Weinberg + + * Make-lang.in (ADAFLAGS): Add -W -Wall. + (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also. + (gnat1): Also depend on attribs.o. + (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make. + * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New. + (ADAC): Set to @ADAC@ in stage1, $(CC) later. + (ADAFLAGS): Add -W -Wall. + (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS; + take out CFLAGS. + + (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o, + s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o, + s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o): + Use $(ADAC), not $(CC), as compilation command. + + (gnattools): Depend directly on tools to build, don't use + recursive make. + (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make. + + * einfo.h, sinfo.h: New files (autogenerated). + +2001-10-08 Richard Henderson + + * comperr.adb (Abort_In_Progress): New. + (Compiler_Abort): Use it to prevent recursion. + +2001-10-08 Robert Dewar + + * atree.adb: Set Error_Posted in Error node, helps error recovery. + + * par-endh.adb (Output_End_Expected): We should also not test + Error_Posted on the Error node, since now it is always set. + + * cstand.adb (Create_Standard): Set Etype of Error to Any_Type + to help error recovery. Part of general work on 9407-004. + + * par.adb: Add ??? for misuse of error + + * sem_res.adb: + (Resolve): Defend against Error, fixes 9407-003. + (Resolve_Discrete_Subtype_Indication): Defend against Error. + + * sinfo.ads (N_Error): Now has Etype field (which will be set + to Any_Type to help error recovery). + +2001-10-08 Richard Kenner + + * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR): + Consistently set MEM attributes from expression; fixes + bootstrap failure on x86. + +2001-10-08 Geert Bosch + + * 5oosinte.adb: Add 2001 to copyright notice. + +2001-10-08 Geert Bosch + + * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs]. + + * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs]. + +2001-10-07 Joseph S. Myers + + * 5oosinte.adb: Fix spelling error of "separate" as "seperate". + +2001-10-05 Geert Bosch + + * adaint.h: Small formatting fix. + +2001-10-04 Geert Bosch + + * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode): + Arg is int, not FILE *, in dummy version of functions. + + * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode): + Arg is int, not FILE *. + +2001-10-04 Geert Bosch + + * 3lsoccon.ads: Added file, missed with initial check ins. + + * 4lintnam.ads: Fix header format. + Change Linux to GNU/Linux. + + * 5iosinte.adb: Change Linux to GNU/Linux. + + * 5iosinte.ads: Change Linux to GNU/Linux. + + * 5itaprop.adb: Change Linux to GNU/Linux. + + * 5itaspri.ads: Change Linux to GNU/Linux. + Update copyright notice. + + * 5lintman.adb: Change Linux to GNU/Linux. + + * 5lml-tgt.adb: Change Linux to GNU/Linux. + + * 5losinte.ads: Change Linux to GNU/Linux. + + * 5lsystem.ads: Change Linux to GNU/Linux. + + * 5qosinte.adb: Change Linux to GNU/Linux. + + * 5qosinte.ads: Change Linux to GNU/Linux. + + * 5qparame.ads: Change Linux to GNU/Linux. + + * 5qtaprop.adb: Change Linux to GNU/Linux. + + * 5qtaspri.ads: Change Linux to GNU/Linux. + Add 2001 to copyright notice. + + * 5vintman.ads: Change Linux to GNU/Linux. + Fix header format. Add 2001 to copyright notice. + + * g-soccon.ads: Change Linux to GNU/Linux. + + * g-trasym.ads: Change Linux to GNU/Linux. + Add 2001 to copyright notice. + + * memtrack.adb: Change Linux to GNU/Linux. + + * s-intman.ads: Change Linux to GNU/Linux. + Add 2001 to copyright notice. Fix header format. + + * s-stache.adb: Change Linux to GNU/Linux. + + * adaint.c: Change Linux to GNU/Linux. + + * cio.c: Change Linux to GNU/Linux. + + * cstreams.c: Change Linux to GNU/Linux. + + * init.c: Change Linux to GNU/Linux. + + * gmem.c: Change Linux to GNU/Linux. + + * tracebak.c: Change Linux to GNU/Linux. + +2001-10-02 Geert Bosch + + * misc.c (insert_default_attributes): Add dummy version. + + + +Copyright (C) 2001 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff --git a/gcc/ada/ChangeLog-2002 b/gcc/ada/ChangeLog-2002 new file mode 100644 index 00000000000..09580b3db9c --- /dev/null +++ b/gcc/ada/ChangeLog-2002 @@ -0,0 +1,986 @@ +2002-12-28 Joseph S. Myers + + * gnat_rm.texi, gnat_ug.texi: Use @copying. + * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi, + gnat_ug_wnt.texi: Regenerate. + +2002-12-23 Joseph S. Myers + + * gnat_rm.texi: Include gcc-common.texi. Use GCC version number + only. + * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info, + $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info, + $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info, + ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi, + ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on + $(srcdir)/doc/include/gcc-common.texi. + +2002-12-15 Geert Bosch + + * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting + +2002-12-14 Geert Bosch + + 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. + +2002-11-30 Zack Weinberg + + * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c, + utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when + not already included. + * Make-lang.in: Update dependencies. + +2002-11-18 Nathanael Nerode + * adaint.c (__gnat_tmp_name): Better, but good enough for now, + solution to buffer overflow bug on GNU/Linux. + +2002-11-14 Nathanael Nerode + + 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. + * comperr.ads: Change to match bug box. + * gnatvsn.ads: Remove all references to Public version and + GNATPRO version. + +2002-11-13 Nathanael Nerode + + PR ada/6919 + * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on + GNU/Linux. + + PR ada/6558 + * config-lang.in: Remove diff_excludes. + +2002-11-05 Graham Stott + + PR ada/8358 + * trans.c (gnu_pending_elaboration_lists): New GC root. + (build_unit_elab): Use.. + +2002-10-30 Geert Bosch + + PR ada/6558 + * misc.c : Include optabs.h + + * Make-lang.in (misc.o): Add dependency on optabs.h + +2002-10-29 Geert Bosch + + PR ada/6558 + * Make-lang.in (gnatbind): Depend on CONFIG_H + +2002-10-29 Geert bosch + + PR ada/6558 + * misc.c: Unrevert misc.c (1.13) + +2002-10-28 Nathanael Nerode + + * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update + maintainership comments. + +2002-09-25 Nathanael Nerode + + PR ada/5904 + * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb + 5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb + 5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb + 7staprop.adb: Correct statements in comments about + maintainership of GNAT. + + PR ada/5904 + * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c + gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads + osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb + osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads + s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb + s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb + sinput-d.ads switch-b.adb switch-b.ads switch-c.adb + switch-c.ads switch-m.adb switch-m.ads: Correct statements in + comments about maintainership of GNAT. + + PR ada/6919 (forward port of patch for PR ada/5904) + * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads + 4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb + 4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads + 4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads + 4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb + 4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb + 4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb + 52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads + 5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads + 5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads + 5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads + 5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb + 5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads + 5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads + 5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads + 5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads + 5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads + 5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads + 5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb + 5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads + 5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads + 5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb + 5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads + 5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb + 5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb + 5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb + 5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb + 5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb + 7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb + a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb + a-chahan.ads a-colien.adb a-colien.ads a-colire.adb + a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads + a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads + a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads + a-except.adb a-except.ads a-excpol.adb a-exctra.adb + a-exctra.ads a-filico.adb a-filico.ads a-finali.adb + a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads + a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb + a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads + a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb + a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb + a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb + a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads + a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads + a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads + a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads + a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb + a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb + a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads + a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads + a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads + a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads + a-ticoio.adb a-ticoio.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.adb a-tifiio.ads + a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads + a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads + a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads + a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads + a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb + a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads + a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads + a-wtedit.adb a-wtedit.ads a-wtenau.adb 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.ads + a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads + a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb + a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h + adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads + alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb + back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads + binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb + bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads + ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads + csets.adb csets.ads csinfo.adb cstand.adb cstand.ads + cstreams.c cuintp.c debug.adb debug.ads debug_a.adb + debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c + einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h + errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c + exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads + exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb + exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads + exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb + exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads + exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb + exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb + exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb + exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb + exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb + exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb + exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads + exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h + final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads + fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb + freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb + g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads + g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h + gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb + gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb + gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb + gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads + gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads + gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads + i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb + i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads + i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads + i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads + impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c + itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h + lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb + lib-load.ads lib-sort.adb lib-util.adb lib-util.ads + lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb + lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb + makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c + namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h + nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb + osint.ads output.adb output.ads par-ch10.adb par-ch11.adb + par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb + par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb + par-endh.adb par-labl.adb par-load.adb par-prag.adb + par-sync.adb par-tchk.adb par-util.adb par.adb par.ads + prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb + prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads + prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads + prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads + prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads + prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h + repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads + rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads + s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads + s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb + s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads + s-direio.adb s-direio.ads s-except.ads s-exctab.adb + s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads + s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads + s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads + s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads + s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads + s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads + s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb + s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads + s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads + s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads + s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb + s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb + s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb + s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb + s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb + s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb + s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb + s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb + s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads + s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb + s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads + s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads + s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads + s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads + s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads + s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads + s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads + s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads + s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads + s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads + s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads + s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads + s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads + s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads + s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads + s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads + s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads + s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads + s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads + s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads + s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads + s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads + s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads + s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads + s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads + s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads + s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads + s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads + s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads + s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads + s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads + s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads + s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads + s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb + s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb + s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb + s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb + s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb + s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb + s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads + s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads + s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads + s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads + s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads + s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads + s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.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 s-valwch.adb s-valwch.ads + s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads + s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb + s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb + s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb + s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb + s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb + s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb + s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads + scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb + sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads + sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb + sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb + sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads + sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb + sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads + sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb + sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb + sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb + sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb + sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb + sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads + sem_type.adb sem_type.ads sem_util.adb sem_util.ads + sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads + sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb + sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb + sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads + snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb + stringt.ads stringt.h style.adb style.ads stylesw.adb + stylesw.ads switch.adb switch.ads sysdep.c system.ads + table.adb table.ads targparm.adb targparm.ads targtyps.c + tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads + tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb + treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads + types.adb types.ads types.h uintp.adb uintp.ads uintp.h + uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb + usage.ads utils.c utils2.c validsw.adb validsw.ads + widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb + xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb + xtreeprs.adb: Correct statements in comments about maintainership + of GNAT. + +2002-09-23 Zack Weinberg + + * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o. + * Makefile.in (TOOLS_LIBS): Add ../../version.o. + * gnatvsn.ads: Gnat_Version_String is now a function. + * gnatvsn.adb: New file. When asked for Gnat_Version_String, + copy the C version_string into a String and return it. + * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb, + gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb: + Remove pragma Ident (Gnat_Version_String). If this was the + sole use of package Gnatvsn, remove the with statement too. + * gnat1drv.adb: Tweak -gnatv output. + +2002-09-17 Richard Henderson + + * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP. + * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN. + * config/mips/mips.md (fixuns_truncdfsi2): Likewise. + (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise. + * config/m68k/m68k.c (floating_exact_log2): Use real_exponent + and real_2expN instead of a loop. + * doc/tm.texi (REAL_VALUE_LDEXP): Remove. + (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove. + +2002-08-25 Andre Leis + David Billinghurst + + * sysdep.c (__gnat_ttyname): include on cygwin + +2002-08-13 Rainer Orth + + * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS). + Remove $(CONFIG_H) dependency. + +2002-08-08 Nathan Sidwell + + * ada/Make-lang.in (ada.mostlyclean): Remove coverage files. + +2002-07-29 Kaveh R. Ghazi + + * adadecode.c (ada_demangle): Use xstrdup in lieu of + xmalloc/strcpy. + * misc.c (gnat_decode_option): Likewise. + +2002-07-15 Florian Weimer + + * make.adb (Add_Switch): Make Generic_Position a procedure. The + function approach did not work well because of a side effect (the + function call could reallocate the table which was being indexed + using its result). Fixes ada/4851. [RESURRECTED] + +2002-07-01 Roger Sayle + + * ada/utils.c (builtin_function): Accept an additional parameter. + +2002-06-28 Andreas Jaeger + + PR ada/7144 + * Makefile.in: Fix typo in comment, patch by Adrian Knoth + . + +2002-06-24 Kaveh R. Ghazi + + * Makefile.in (SHELL): Set to @SHELL@. + +2002-06-20 Kaveh R. Ghazi + + * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit + array size calculation. + +2002-06-04 Andreas Jaeger + + * Make-lang.in (gnatbind): Readd rule that has been lost in last + patch. + +2002-06-03 Geoffrey Keating + + Merge from pch-branch: + + * config-lang.in (gtfiles): Add ada-tree.h. + * ada-tree.h (SET_TYPE_CI_CO_LIST): New. + (SET_TYPE_MODULUS): New. + (SET_TYPE_INDEX): New. + (SET_TYPE_DIGITS_VALUE): New. + (SET_TYPE_RM_SIZE): New. + (SET_TYPE_UNCONSTRAINED_ARRAY): New. + (SET_TYPE_ADA_SIZE): New. + (SET_TYPE_ACTUAL_BOUNDS): New. + (SET_DECL_CONST_CORRESPONDING_VAR): New. + (SET_DECL_ORIGINAL_FIELD): New. + (TREE_LOOP_ID): Correct typo. + * decl.c: Use new macros. + * utils.c: Include debug.h, use new macros. + * utils2.c: Use new macros. + + * ada-tree.h: Update all macros for new tree description. + (struct tree_loop_id): New. + (union lang_tree_node): New. + (struct lang_decl): New. + (struct lang_type): New. + * misc.c (gnat_mark_tree): Delete. + (LANG_HOOKS_MARK_TREE): Delete. + * trans.c (tree_transform): No longer any need to cast + for TREE_LOOP_ID. + + * utils.c (struct language_function): New dummy structure. + + * Makefile.in (decl.o): gt-ada- is in objdir, not srcdir. + (misc.o): Likewise. + (utils.o): Likewise; also gtype-ada.h. + * Make-lang.in (gnat1): Add dependency on s-gtype. + (gnatbind): Add dependency on $(CONFIG_H). + * utils.c: Correct last #include. + (stuct e_stack): Remove unnecessary 'static'. + (mark_e_stack): Remove unused prototype. + + * scn-nlit.adb: Remove whitespace after version number to + keep lines under 80 chars. + * snames.adb: Likewise. + * treepr.ads: Likewise. + + * Makefile.in (decl.o): Include gt-ada-.h. + (misc.o): Likewise. + (utils.o): Include gt-ada-.h and gtype-ada.h. + * config-lang.in (gtfiles): New. + * decl.c: Use gengtype for roots. + * gigi.h: Use gengtype for roots. + * trans.c: Use gengtype for roots. + * utils.c: Use gengtype for roots, marking. Include gtype-ada.h. + +2002-06-02 Gabriel Dos Reis + + * misc.c (gnat_init): Adjust setting of internal_error_function. + +2002-06-01 Joseph S. Myers + + * gnat_ug.texi: Use @ifnottex instead of @ifinfo. + * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi, + gnat_ug_wnt.texi: Regenerate. + +2002-05-31 Florian Weimer + + * 5ntaprop.adb (with System.OS_Primitives): Remove. + + * cstreams.c (max_path_len): Move from here ... + * adaint.c (__gnat_max_path_len): ... to here. + * adaint.c (__gnat_max_path_len): Declare. + * g-dirope.adb (Max_Path): Adjust. + * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust. + * i-cstrea.ads (max_path_len): Adjust. + * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust. + * xr_tabls.adb (Dir_Name.Max_Path: Adjust. + + * Makefile.in, Make-lang.in: Documentation is now built in + Make-lang.in. Store Info and generated Texinfo files in the + source directory. + * gnat_ug.texi: Remove CVS keywords, correct version number. + Set file name correctly. + + * gnat_ug_*.texi: Add. + * .cvsignore: Ignore generated Texinfo files. + +2002-05-30 Zack Weinberg + + * ada.h: Add MI guard macro. + (SUBTYPE): Define constants with an anonymous enum, not static + const variables. + (IN): Cast constants to appropriate type before use. + +2002-05-26 Joseph S. Myers + + * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526 + (experimental)". + +2002-05-23 Rainer Orth + + * Make-lang.in (CP, ECHO): Copy from Makefile.in. + (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise. + (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise. + (ALL_ADA_CFLAGS): Likewise. + (ADA_INCLUDES): Likewise. + Adapt for new working dir. + (GNATBIND): Use Makefile.in version. + (.SUFFIXES): Copy from Makefile.in. + (ada-warn): Define. + (.adb.o, .ads.o): Copy from Makefile.in. + Added $(OUTPUT_OPTION). + (GNAT1_C_OBJS): Moved from Makefile.in. + Prefix with ada subdir. + (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise. + (EXTRA_GNAT1_OBJS): Moved from Makefile.in. + Adapt for new working dir. + (EXTRA_GNATBIND_OBJS): Likewise. + (ADA_BACKEND): Moved from Makefile.in. + Renamed to avoid conflict with global BACKEND. + Use that one. + (TARGET_ADA_SRCS): Moved from Makefile.in. + (gnat1$(exeext)): Replaced recursive rule with Makefile.in version. + Use ADA_BACKEND. + (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version. + (ada_extra_files): Moved from Makefile.in. + Prefix with ada subdir. + (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise. + (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise. + (ada/nmake.ads): Likewise. + (update-sources): Moved from Makefile.in. + Prefix with ada subdir. + (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise. + (ADA_TREE_H): Likewise. + (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise. + (ada/memtrack.o): Likewise. + (ada/adadecode.o): Likewise. + Update dependencies. + (ada/adaint.o): New. + (ada/argv.o): Moved from Makefile.in. + Prefix with ada subdir. + Update dependencies. + (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise. + (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise. + (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in. + Prefix with ada subdir. + (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise. + (GNAT DEPENDENCIES): Regenerate. + * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by + toplevel Makefile.in. + (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed. + (TARGET_ADA_SRCS): Removed. + (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise. + (GNATBIND_OBJS): Likewise. + (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here. + (BACKEND): Removed. + (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise. + (TREE_H): Likewise. + (ada_extra_files): Likewise. + (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise. + (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise. + (update-sources): Likewise. + (sdefault.adb, stamp-sdefault, sdefault.o): Likewise + (ADA_TREE_H): Likewise. + (adadecoce.o): Likewise. + (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise. + (GNAT DEPENDENCIES): Likewise. + +2002-05-16 Rainer Orth + + * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd. + * Makefile.in: Likewise. + +2002-05-14 Rainer Orth + + * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools): + Restore $(CONFIG_H) and prefix.o dependencies. + (ada.stage[1-4]): Depend on stage?-start. + + * Makefile.in (b_gnatb.c): Depend on interfac.o. + +2002-05-02 Jim Wilson + + * utils.c (finish_record_type): Change record_size to record_type. + +2001-05-02 John David Anglin + + * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides. + (ALL_ADA_CFLAGS): Define. Replace ADA_CFLAGS with ALL_ADA_CFLAGS in + ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC. + +2002-04-25 Neil Booth + + * misc.c (gnat_parse_file): Update. + +2002-04-24 Neil Booth + + * misc.c (gnat_init): Don't set lang_attribute_common. + +2002-04-21 Joseph S. Myers + + * gnat_rm.texi: Use @ifnottex instead of @ifinfo. + +2002-04-21 Florian Weimer + + * gnat_ug.texi: New file. + + * gnat_rm.texi: Do not include texiplus.texi. Include fdl.texi + instead of gfdl.texi + + * xgnatug.adb, ug_words: New files. + + * Makefile.in (doc, dvi): New targets. Build gnat_ug_*, + gnat_rm and gnat-style manuals. + +2002-04-18 Neil Booth + + * gigi.h (incomplete_type_error): Remove. + * utils.c (incomplete_type_error): Remove. + +2002-04-16 Mark Mitchell + + * trans.c (tree_transform): Add has_scope argument to + expand_start_stmt_expr. + +2002-04-04 Neil Booth + + * gigi.h (truthvalue_conversion): Rename. + * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine. + * trans.c (tree_transform): Update. + * utils2.c (truthvalue_conversion): Rename, update. + (build_binary_op, build_unary_op): Update. + +2002-04-04 Laurent Guerby + + * make.adb: Implement -margs, remove restriction about file name placement. + * makeusg.adb: Documentation update. + * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir). + * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line. + +2002-04-04 Neil Booth + + * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME. + (builtin_function): Similarly. + +2002-04-01 Neil Booth + + * decl.c (gnat_to_gnu_entity): Update. + * gigi.h (mark_addressable): Rename. + * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine. + * trans.c (tree_transform): Update. + * utils.c (create_var_decl): Update. + * util2.c (build_binary_op, build_unary_op, + fill_vms_descriptor): Update. + (mark_addressable): Rename, update. + +2002-04-01 Neil Booth + + * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type): + Rename. + * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE, + LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New. + * trans.c (tree_transform, convert_with_check): Update. + * utils.c (unsigned_type, signed_type, signed_or_unsigned_type): + Rename. + +2002-03-31 Neil Booth + + * gigi.h (finish_incomplete_decl): Rename. + * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine. + * utils.c (gnat_init_decl_processing): Don't set hook. + (finish_incomplete_decl): Rename. + +2002-03-29 Andreas Schwab + + * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts + directory. + +2001-03-28 Robert Dewar + + * checks.ads: + (Remove_Checks): New procedure + + * checks.adb: + (Remove_Checks): New procedure + + * exp_util.adb: + Use new Duplicate_Subexpr functions + (Duplicate_Subexpr_No_Checks): New procedure + (Duplicate_Subexpr_No_Checks_Orig): New procedure + (Duplicate_Subexpr): Restore original form (checks duplicated) + (Duplicate_Subexpr): Call Remove_Checks + + * exp_util.ads: + (Duplicate_Subexpr_No_Checks): New procedure + (Duplicate_Subexpr_No_Checks_Orig): New procedure + Add 2002 to copyright notice + + * sem_util.adb: Use new Duplicate_Subexpr functions + + * sem_eval.adb: + (Eval_Indexed_Component): This is the place to call + Constant_Array_Ref and to replace the value. We simply merge + the code of this function in here, since it is now no longer + used elsewhere. This fixes the problem of the back end not + realizing we were clever enough to see that this was + constant. + (Expr_Val): Remove call to Constant_Array_Ref + (Expr_Rep_Val): Remove call to Constant_Array_Ref + Minor reformatting + (Constant_Array_Ref): Deal with string literals (patch + suggested by Zack Weinberg on the gcc list) + +2001-03-28 Ed Schonberg + + * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig => + Duplicate_Subexpr_Move_Checks. + + * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig => + Duplicate_Subexpr_Move_Checks. + + * sem_eval.adb: (Constant_Array_Ref): Verify that constant + value of array exists before retrieving it (it may a private + protected component in a function). + +2002-03-28 Geert Bosch + + * prj-pp.adb : New file. + + * prj-pp.ads : New file. + +2002-03-28 Andreas Jaeger + + * Makefile.in (stamp-sdefault): Fix path for Makefile. + +2002-03-28 Neil Booth + + * misc.c (gnat_expand_expr): Move prototype. + +2002-03-27 Neil Booth + + * misc.c (insert_default_attributes): Remove. + +2002-03-27 Neil Booth + + * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine. + (gnat_init): Don't set hook. + (gnat_expand_expr): Fix prototype. + +2002-03-27 Neil Booth + + * misc.c (ggc_p): Remove. + +2002-03-27 Geert Bosch + + * prj-makr.ads, prj-makr.adb : New files. + +2002-03-26 Neil Booth + + * misc.c (LANG_HOOKS_MARK_TREE): Redefine. + (lang_mark_tree): Make static, rename. + +2002-03-25 Neil Booth + + * misc.c (maybe_build_cleanup): Remove. + +2002-03-24 Neil Booth + + * gigi.h (yyparse): Remove. + +2002-03-23 Florian Weimer + + From Ben Brosgol + * gnat_rm.texi: Sync with ACT version. + +2002-03-20 Neil Booth + + * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine. + (gnat_init): Remove old hook. + +2002-03-17 Neil Booth + + * misc.c (LANG_HOOKS_PARSE_FILE): Redefine. + (yyparse): Rename gnat_parse_file. + +2002-03-14 Geoffrey Keating + + Delete all lines containing "$Revision:". + * xeinfo.adb: Don't look for revision numbers. + * xnmake.adb: Likewise. + * xsinfo.adb: Likewise. + * xsnames.adb: Likewise. + * xtreeprs.adb: Likewise. + +2002-03-12 Kaveh R. Ghazi + + * misc.c (gnat_tree_code_type, gnat_tree_code_length, + gnat_tree_code_name): Delete. + (tree_code_type, tree_code_length, tree_code_name): Define. + (gnat_init): Don't try to copy into the various tree_code + arrays. + +2002-03-11 Richard Henderson + + * Makefile.in (.NOTPARALLEL): Add fake tag. + +2002-03-07 Geert Bosch + + * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads, + s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads, + switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, + switch-m.adb, switch-m.ads : New files. + +2002-03-07 Geert Bosch + + * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads, + 4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads, + 4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads, + 4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads, + 5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb, + 5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads, + 5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, + 5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, + 5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb, + 5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb, + 5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads, + 5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb, + 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads, + 5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb, + 5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb, + 5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb, + 5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb, + 5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb, + 5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb, + 5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb, + 7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb, + Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads, + a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb, + a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads, + a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb, + a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb, + a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb, + a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb, + a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h, + adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb, + atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb, + bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb, + csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c, + einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads, + eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb, + exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, + exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads, + exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads, + exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb, + exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads, + expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb, + freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb, + g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads, + g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb, + g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb, + g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb, + g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb, + g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c, + gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb, + gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads, + gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb, + i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads, + impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb, + lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb, + lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb, + memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads, + mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb, + nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads, + output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb, + par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb, + prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb, + prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb, + prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads, + rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb, + s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads, + s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb, + s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb, + s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb, + s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb, + s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb, + s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, + s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads, + s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb, + s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads, + s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads, + s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb, + s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, + s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads, + s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb, + sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb, + sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, + sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads, + sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb, + sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb, + sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb, + sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb, + sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb, + sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb, + sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads, + snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads, + stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads, + table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb, + tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb, + treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads, + types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb, + utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb, + xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes. + + * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads, + g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads, + mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads, + osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files + + * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb, + 5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed + + * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed + to mdll-fil.ad[bs] and mdll-util.ad[bs] + + * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed + from mdllfile.ad[bs] and mdlltool.ad[bs] + +2002-03-03 Kaveh R. Ghazi + + * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in + lieu of explicit sizeof/sizeof. + +2002-02-28 Neil Booth + + * misc.c (copy_lang_decl): Remove. + +2002-02-27 Zack Weinberg + + * misc.c: Delete traditional-mode-related code copied from the + C front end but not used, or used only to permit the compiler + to link. + +2002-02-07 Richard Henderson + + * adaint.c (__gnat_to_gm_time): First arg is int, not time_t. + * adaint.h (__gnat_to_gm_time): Update prototype. + +2002-01-30 Richard Henderson + + * trans.c (tree_transform) [N_Loop_Statement]: Use + expand_exit_loop_top_cond. + + + +Copyright (C) 2002 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff --git a/gcc/ada/ChangeLog-2003 b/gcc/ada/ChangeLog-2003 new file mode 100644 index 00000000000..6b950685e2c --- /dev/null +++ b/gcc/ada/ChangeLog-2003 @@ -0,0 +1,3021 @@ +2003-12-23 Kelley Cook + + * gnat_ug.texi: Force a CVS commit by updating copyright. + * gnat_ug_vxw.texi: Regenerate. + * gnat_ug_wnt.texi: Regenerate. + * gnat_ug_vms.texi: Regenerate. + * gnat_ug_unx.texi: Regenerate. + +2003-12-20 Kazu Hirata + + * trans.c: Remove uses of "register" specifier in + declarations of local variables. + +2003-12-18 Kelley Cook + + * stamp-xgnatug: New stamp file. + * Make-lang.in (stamp-xgnatug): New stamp file and comment. + (ada/doctools/xgnatug): Add $(build_exeext). + (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi + ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug. + +2003-12-17 Ed Falis + + * a-elchha.adb (Tailored_Exception_Information): made Info constant to + eliminate warning. + + * a-exextr.adb: Add context clause for + Ada.Exceptions.Last_Chance_Handler. + +2003-12-17 Sergey Rybin + + * cstand.adb (Create_Standard): Change the way how the declaration of + the Duration type is created (making it the same way as it is for all + the other standard types). + +2003-12-17 Robert Dewar + + * s-crtl.ads: Fix header format + Change Pure to Preelaborate + +2003-12-17 Ed Schonberg + + * checks.adb (Selected_Length_Checks): Generate an Itype reference for + the expression type only if it is declared in the current unit. + + * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds + are universal and already analyzed, as can occur in constrained + subcomponents that depend on discriminants, when one constraint is a + subtype mark. + + * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of + type Any_Fixed is legal as the argument of a conversion, if only one + fixed-point type is in context. + +2003-12-17 GNAT Script + + * Make-lang.in: Makefile automatically updated + +2003-12-15 Robert Dewar + + * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default + sec stack size. + +2003-12-15 Vincent Celier + + * gnatchop.adb: (Error_Msg): Do not exit on error for a warning + (Gnatchop): Do not set failure status when reporting the number of + warnings. + +2003-12-15 Doug Rupp + + * s-ctrl.ads: New file. + + * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext). + + * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o. + (GNATBIND_OBJS): Add ada/s-crtl.o. + + * Makefile.in [VMS]: Clean up ifeq rules. + + * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb, + a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb, + g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb, + s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb, + s-tasdeb.adb: Update copyright. + Import System.CRTL. + Make minor modifications to use System.CRTL declared functions instead + of importing locally. + +2003-12-15 GNAT Script + + * Make-lang.in: Makefile automatically updated + +2003-12-11 Ed Falis + + * 5zinit.adb: Clean up. + + * 5zintman.adb (Notify_Exception): replaced case statement with a call + to __gnat_map_signal, imported from init.c to support + signal -> exception mappings that depend on the vxWorks version. + + * init.c: + Created and exported __gnat_map_signal to support signal -> exception + mapping that is dependent on the VxWorks version. + Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks + +2003-12-11 Vasiliy Fofanv + + * 5wosinte.ads: Link with -mthreads switch. + +2003-12-11 Arnaud Charlet + + * init.c (__gnat_install_handler [NetBSD]): Set + __gnat_handler_installed, as done on all other platforms. + Remove duplicated code. + +2003-12-11 Jerome Guitton + + * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a. + +2003-12-11 Thomas Quinot + + * sinfo.ads: Fix inconsistent example code in comment. + +2003-12-11 Robert Dewar + + * a-tiinau.adb: Add a couple of comments + + * sem_ch3.adb: Minor reformatting + + * sem_prag.adb: + Fix bad prototype of Same_Base_Type in body (code reading cleanup) + Minor reformatting throughout + +2003-12-11 Ed Schonberg + + * exp_ch7.adb (Establish_Transient_Scope): If the call is within the + bounds of a loop, create a separate block in order to generate proper + cleanup actions to prevent memory leaks. + + * sem_res.adb (Resolve_Call): After a call to + Establish_Transient_Scope, the call may be rewritten and relocated, in + which case no further processing is needed. + + * sem_util.adb: (Wrong_Type): Refine previous fix. + Fixes ACATS regressions. + + PR ada/13353 + * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always + be inlined. + +2003-12-08 Jerome Guitton + + * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb, + i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of + obsolete files. + + * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a. + (rts-zfp): Ditto. + +2003-12-08 Robert Dewar + + * 7sintman.adb: Minor reformatting + + * bindgen.adb: Configurable_Run_Time mode no longer suppresses the + standard linker options to get standard libraries linked. We now plan + to provide dummy versions of these libraries to match the appropriate + configurable run-time (e.g. if a library is not needed at all, provide + a dummy empty library). + + * targparm.ads: Configurable_Run_Time mode no longer affects linker + options (-L parameters and standard libraries). What we plan to do is + to provide dummy libraries where the libraries are not required. + + * gnatbind.adb: Minor comment improvement + +2003-12-08 Javier Miranda + + * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded + aggregate in the parent. Otherwise constants with limited aggregates + are not supported. Add new formal to pass the component type (Ctype). + It is required to call the corresponding IP subprogram in case of + default initialized components. + (Gen_Assign): In case of default-initialized component, generate a + call to the IP subprogram associated with the component. + (Build_Record_Aggr_Code): Remove the aggregate from the parent in case + of aggregate with default initialized components. + (Has_Default_Init_Comps): Improve implementation to recursively check + all the present expressions. + + * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal + to indicate that the initialization call corresponds to a + default-initialized component of an aggregate. + In case of default initialized aggregate with tasks this parameter is + used to generate a null string (this is just a workaround that must be + improved later). In case of discriminants, this parameter is used to + generate a selected component node that gives access to the discriminant + value. + + * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New + subprogram, based on Build_Task_Allocate_Block, but adapted to expand + allocated aggregates with default-initialized components. + + * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if + the box notation is used in positional aggregates. + +2003-12-08 Samuel Tardieu + + * lib.ads: Fix typo in comment + +2003-12-08 Vincent Celier + + * prj.adb (Project_Empty): New component Unkept_Comments + (Scan): Remove procedure; moved to Prj.Err. + + * prj.ads (Project_Data): New Boolean component Unkept_Comments + (Scan): Remove procedure; moved to Prj.Err. + + * prj-dect.adb: Manage comments for the different declarations. + + * prj-part.adb (With_Record): New component Node + (Parse): New Boolean parameter Store_Comments, defaulted to False. + Set the scanner to return ends of line and comments as tokens, if + Store_Comments is True. + (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that + comments are associated with these nodes. Store the node IDs in the + With_Records. + (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the + With_Records. + (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating + the N_Project node. Call Tree.Save and Tree.Reset before scanning the + current project. Call Tree.Restore afterwards. Set the various nodes + for comment storage (Next_End, End_Of_Line, Previous_Line, + Previous_End). + + * prj-part.ads (Parse): New Boolean parameter Store_Comments, + defaulted to False. + + * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted + to False. When Truncated is True, truncate the string, never go to the + next line. + (Write_End_Of_Line_Comment): New procedure + (Print): Process comments for nodes N_With_Clause, + N_Package_Declaration, N_String_Type_Declaration, + N_Attribute_Declaration, N_Typed_Variable_Declaration, + N_Variable_Declaration, N_Case_Construction, N_Case_Item. + Process nodes N_Comment. + + * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node + without comments and there are some comments, set the flag + Unkept_Comments to True. + (Scan): If there are comments, set the flag Unkept_Comments to True and + clear the comments. + (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment + (Next_End_Nodes: New table + (Comment_Zones_Of): New function + (Scan): New procedure; moved from Prj. Accumulate comments in the + Comments table and set end of line comments, comments after, after end + and before end. + (Add_Comments): New procedure + (Save, Restore, Seset_State): New procedures + (There_Are_Unkept_Comments): New function + (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures + (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New + procedures. + (First_Comment_After, First_Comment_After_End): New functions + (First_Comment_Before, First_Comment_Before_End): New functions + (Next_Comment): New function + (End_Of_Line_Comment, Follows_Empty_Line, + Is_Followed_By_Empty_Line): New functions + (Set_First_Comment_After, Set_First_Comment_After_End): New procedures + (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures + (Set_Next_Comment): New procedure + (Default_Project_Node): Associate comment before if the node can store + comments. + + * scans.ads (Token_Type): New enumeration value Tok_Comment + (Comment_Id): New global variable + + * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable, + defaulted to False. + (Scan): Store position of start of comment. If comments are tokens, set + Comment_Id and set Token to Tok_Comment when scanning a comment. + (Set_Comment_As_Token): New procedure + + * sinput-p.adb: Update Copyright notice + (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan + that no longer exists. + +2003-12-08 Javier Miranda + + * sem_aggr.adb: Add dependence on Exp_Tss package + Correct typo in comment + (Resolve_Aggregate): In case of array aggregates set the estimated + type of the aggregate before calling resolve. This is needed to know + the name of the corresponding IP in case of limited array aggregates. + (Resolve_Array_Aggregate): Delay the resolution to the expansion phase + in case of default initialized array components. + + * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited + types. Required to give support to limited aggregates in generic + formals. + +2003-12-08 Ed Schonberg + + * sem_ch3.adb (Check_Initialization): For legality purposes, an + inlined body functions like an instantiation. + (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype + until bounds are analyzed, to diagnose premature use of type. + + * sem_util.adb (Wrong_Type): Improve error message when the type of + the expression is used prematurely. + +2003-12-08 GNAT Script + + * Make-lang.in: Makefile automatically updated + +2003-12-08 Arnaud Charlet + + * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since + they are automatically generated by Make-lang.in and cause nothing but + maintenance troubles. + +2003-12-05 Thomas Quinot + + * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare, + version of this unit). + +2003-12-05 Olivier Hainque + + * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads, + 5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads, + 5tosinte.ads: Define the SA_SIGINFO constant, to allow references from + the body of System.Interrupt_Management common to several targets. + Update copyright notice when appropriate. + + * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO + constant. + + * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags, + to ensure that the kernel fills in the interrupted context structure + before calling a signal handler, which is necessary to be able to + unwind past it. Update the copyright notice. + +2003-12-05 Jerome Guitton + + * a-elchha.ads: New file. + + * a-elchha.adb: New default last chance handler. Contents taken from + Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate. + + * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine + is moved to a-elchha.adb to provide a target-independent default last + chance handler. + + * Makefile.rtl: Add a-elchha.o + + * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o. + +2003-12-05 Ed Schonberg + + * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is + declared in an instance, do not inline the call if the instance is not + frozen yet, to prevent order of elaboration problems. + + * sem_prag.adb: Add comments for previous fix. + +2003-12-05 Samuel Tardieu + + * g-table.adb: Use the right variable in Set_Item. + Update copyright notice. + +2003-12-05 Arnaud Charlet + + * Makefile.in: Remove unused rules. + +2003-12-05 Vincent Celier + + * switch-c.adb (Scan_Front_End_Switches): Remove processing of + -nostdlib. Not needed here after all. + +2003-12-03 Thomas Quinot + + 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. + Introduce a __gnat_lseek wrapper in adaint.c to allow for portability. + +2003-12-03 Arnaud Charlet + + * gnatvsn.ads (Library_Version): Now contain only the relevant + version info. + (Verbose_Library_Version): New constant. + + * g-spipat.adb, g-awk.adb, g-debpoo.adb, + g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb, + s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa. + + * gnatlbr.adb: Clean up: replace Library_Version by + Verbose_Library_Version. + + * make.adb, lib-writ.adb, exp_attr.adb: + Clean up: replace Library_Version by Verbose_Library_Version. + + * 5lintman.adb: Removed. + + * Makefile.in: + Update and simplify computation of LIBRARY_VERSION. + Fix computation of GSMATCH_VERSION. + 5lintman.adb is no longer used: replaced by 7sintman.adb. + +2003-12-03 Robert Dewar + + * exp_ch5.adb: + (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new + name. Modified to consider small non-bit-packed arrays as troublesome + and in need of component-by-component assigment expansion. + +2003-12-03 Vincent Celier + + * lang-specs.h: Process nostdlib as nostdinc + + * back_end.adb: Update Copyright notice + (Scan_Compiler_Arguments): Process -nostdlib directly. + +2003-12-03 Jose Ruiz + + * Makefile.in: + When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the + redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always + included in HIE_NONE_TARGET_PAIRS. + +2003-12-03 Ed Schonberg + + * sem_attr.adb: + (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it + is legal in an instance, because legality is cheched in the template. + + * sem_prag.adb: + (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be + appplied to an unchecked conversion of a formal parameter. + + * sem_warn.adb: + (Output_Unreferenced_Messages): Suppress "not read" warnings on imported + variables. + +2003-12-03 Olivier Hainque + + * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New + routines. The second one is new functionality to deal with backtracing + through signal handlers. + (unwind): Split into the two separate subroutines above. + Update the documentation, and deal properly with sizeof (REG) different + from sizeof (void*). + +2003-12-01 Nicolas Setton + + * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point, + so that the debugger can reliably access the value of the parameter, + and therefore is able to display the exception name when an exception + breakpoint is reached. + +2003-12-01 Thomas Quinot + + * fmap.adb: Fix typo in warning message. + + * g-socket.ads, g-socket.adb: Make Free a visible instance of + Ada.Unchecked_Deallocation (no need to wrap it in a subprogram). + +2003-12-01 Vincent Celier + + * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if + ther is no Afile. + (Build_Library): Get the switches only if Default_Switches is declared + in package Binder. + +2003-12-01 Ed Schonberg + + * exp_ch6.adb (Expand_Actuals): When applying validity checks to + actuals that are indexed components, reanalyze actual to ensure that + packed array references are properly expanded. + + * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for + attempted assignment to a discriminant. + +2003-12-01 Robert Dewar + + * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor + reformatting. + + * switch-c.adb: Minor reformatting of comments + +2003-12-01 Arnaud Charlet + + * Makefile.in: Clean ups. + +2003-12-01 GNAT Script + + * Make-lang.in: Makefile automatically updated + +2003-12-01 Arnaud Charlet + + * 5wsystem.ads: Disable zero cost exception, not ready yet. + +2003-11-29 Ulrich Weigand + + * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb + to force serialization. + +2003-11-26 Thomas Quinot + + * g-socket.ads, g-socket.adb: + Clarify documentation of function Stream. Introduce a Free procedure + to release the returned Stream once it becomes unused. + + * 5asystem.ads: For Alpha Tru64, enable ZCX by default. + +2003-11-26 Arnaud Charlet + + (Cond_Timed_Wait): Introduce new constant Time_Out_Max, + since NT 4 cannot handle timeout values that are too large, + e.g. DWORD'Last - 1. + +2003-11-26 Ed Schonberg + + * exp_ch4.adb: + (Expand_N_Slice): Recognize all cases of slices that appear as actuals + in procedure calls and whose expansion must be deferred. + + * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix + is in exp_ch4. + + * sem_ch3.adb: + (Build_Derived_Array_Type): Create operator for unconstrained type + if ancestor is unconstrained. + +2003-11-26 Vincent Celier + + * make.adb (Project_Object_Directory): New global variable + (Change_To_Object_Directory): New procedure + (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead + of Change_Dir directly. Do not change working directory to object + directory of main project after each compilation. + (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir + directly. + Change to object directory of main project before binding step. + (Initialize): Initialize Project_Object_Directory to No_Project + + * mlib-prj.adb: + (Build_Library): Take into account Builder'Default_Switches ("Ada") when + binding a Stand-Alone Library. + + * output.adb: Update Copyright notice + (Write_Char): Output buffer when full + +2003-11-26 Robert Dewar + + * sem_ch13.adb: (Check_Size): Reset size if size is too small + + * sem_ch13.ads: + (Check_Size): Fix documentation to include bit-packed array case + + * sem_res.adb: Implement restriction No_Direct_Boolean_Operators + + * s-rident.ads: Put No_Direct_Boolean_Operators in proper order + + * s-rident.ads: Add new restriction No_Direct_Boolean_Operators + +2003-11-24 Arnaud Charlet + + PR ada/13142 + * utils.c (init_gigi_decls): Change name of built-in setjmp to + __builtin_setjmp, since this is apparently needed by recent + non Ada changes. + +2003-11-24 Rainer Orth + + * adadecode.c: Only include ctype.h if not IN_GCC. + (__gnat_decode): Use ISDIGIT from safe-ctype.h. + +2003-11-24 Jose Ruiz + + * Makefile.in: + Use 5zintman.ads for VxWorks targets. This file avoid confusion between + signals and interrupts. + + * 5zintman.ads: New File. + + * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and + add exception signals to the set of unmasked signals. + + * 5ztaprop.adb: + Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion + between signals and interrupts. + Add to Unblocked_Signal_Mask the set of signals that are in + Keep_Unmasked. + + * 7sinmaop.adb: + Adding a check to see whether the Interrupt_ID we want to unmask is in + the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The + reason is that the index type of the Keep_Unmasked array is not always + Interrupt_ID; it may be a subtype of Interrupt_ID. + +2003-11-24 Gary Dismukes + + * exp_util.adb: + (Remove_Side_Effects): Condition constantness of object created for a + an unchecked type conversion on the constantness of the expression + to ensure the correct value for 'Constrained when passing components + of view-converted class-wide objects. + +2003-11-24 Robert Dewar + + * par-load.adb (Load): Improve handling of misspelled and missing units + Removes several cases of compilation abandoned messages + + * lib.adb: (Remove_Unit): New procedure + + * lib.ads: (Remove_Unit): New procedure + + * lib-load.adb: Minor reformatting + +2003-11-24 Vincent Celier + + * make.adb: + (Gnatmake, Initialize): Call Usage instead of Makeusg directly + (Marking_Label): Label to mark processed source files. Incremented for + each executable. + (Gnatmake): Increase Marking_Labet for each executable + (Is_Marked): Compare against marking label + (Mark): Mark with marking label + +2003-11-24 Jerome Guitton + + * s-thread.ads: + Move the declaration of the TSD for System.Threads to System.Soft_Links. + Add some comments. + + * Makefile.in: Added target pair for s-thread.adb for cert runtime. + (rts-cert): build a single relocatable object for the run-time lib. + Fix perms. + +2003-11-24 Vasiliy Fofanov + + * Make-lang.in: + Use gnatls rather than gcc to obtain the location of GNAT RTL for + crosstools build. + +2003-11-24 Sergey Rybin + + * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we + can not use it as before (that is, as a variable) when dumping it into + the tree file. Add a local variable to store the result of this + function and to be used as the string to be written into the tree. + + * scn.adb (Initialize_Scanner): Add comments explaining the recent + changes. + + * sinput.adb (Source_First, Source_Last): In case of + Internal_Source_File, replace returning attributes of + Internal_Source_Ptr (which is wrong) with returning attributes of + Internal_Source. + +2003-11-24 Ed Schonberg + + * sem_ch3.adb: + (New_Concatenation_Op): Proper name for New_Binary_Operator, only + used for implicit concatenation operators. + Code cleanup. + + * sem_elab.adb: + (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in + task bodies that are in the scope of a Suppress pragma. + (Check_A Call): Use the flag to prevent spurious elaboration checks. + + * sinfo.ads, sinfo.adb: + New flag No_Elaboration_Check on function/procedure calls, to properly + suppress checks on calls in task bodies that are within a local suppress + pragma. + + * exp_ch4.adb: + (Expand_Concatenate_Other): Use the proper integer type for the + expression for the upper bound, to avoid universal_integer computations + when possible. + +2003-11-21 Kelley Cook + + * .cvsignore: Delete. + +2003-11-21 Andreas Schwab + + * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True. + +2003-11-21 Vasiliy Fofanov + + * 5wsystem.ads: Enable zero cost exception. + +2003-11-21 Jerome Guitton + + * 5ztiitho.adb: Remove an unreferenced variable. + +2003-11-21 Thomas Quinot + + * adaint.c: For FreeBSD, use mkstemp. + +2003-11-21 Arnaud Charlet + + * gnatlbr.adb: Now reference Gnat_Static_Version_String. + +2003-11-21 Robert Dewar + + * bld.adb: Remove useless USE of gnatvsn + + * gnatchop.adb: Minor reformatting + Clean up version handling to be more consistent + + * gnatxref.adb: Minor reformatting + + * gprcmd.adb: Minor reformatting + Fix output of copyright to be more consistent with other tools + +2003-11-21 Vincent Celier + + * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink + +2003-11-21 Sergey Rybin + + * atree.adb (Initialize): Add initializations for global variables + used in New_Copy_Tree. + + * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with + Internal_Source_File as the actual). + Put the set of statements creating Any_Character before the set of + statements creating Any_Array to have Any_Character fully initialized + when it is used in creating Any_Array. + + * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do + not call Scan in case if the actual is Internal_Source_File + Add 2003 to copyright note. + + * sinput.adb (Source_First, Source_Last, Source_Text): Add code for + processing Internal_Source_File. + + * types.ads: Add the constant Internal_Source_File representing the + source buffer for artificial source-code-like strings created within + the compiler (the definition of Source_File_Index is changed). + +2003-11-20 Arnaud Charlet + + * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads, + 56system.ads: New file, FreeBSD version. + +2003-11-20 Joseph S. Myers + + * Make-lang.in (ada.extraclean): Delete. + +2003-11-19 Arnaud Charlet + + * gnatmem.adb: Clean up verbose output. + + * gprcmd.adb: Change copyright to FSF. + +2003-11-19 Vincent Celier + + * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy + and Version (ignored). + + * symbols.ads: (Policy): New type + (Initialize): New parameter Reference, Symbol_Policy and + Library_Version. + Remove parameter Force. + Minor reformatting. + + * snames.ads, snames.adbadb: New standard names + Library_Reference_Symbol_File and Library_Symbol_Policy + + * mlib-prj.adb: + (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the + project. + + * mlib-tgt.adb: + (Build_Dynamic_Library): New parameter Symbol_Data (ignored) + + * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data + + * prj.adb: (Project_Empty): New component Symbol_Data + + * prj.ads: (Policy, Symbol_Record): New types + (Project_Data): New component Symbol_Data + + * prj-attr.adb: + New attributes Library_Symbol_File, Library_Symbol_Policy and + Library_Reference_Symbol_File. + + * prj-nmsc.adb: + (Ada_Check): When project is a Stand-Alone library project, process + attribute Library_Symbol_File, Library_Symbol_Policy and + Library_Reference_Symbol_File. + + * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, + 5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb, + 5sml-tgt.adb (Build_Dynamic_Library): New parameter + Symbol_Data (ignored). + + * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0 + (Build_Dynamic_Library): New parameter Symbol_Data. New internal + functions Option_File_Name and Version_String. Set new options of + gnatsym related to symbol file, symbol policy and reference symbol + file. + + * 5vsymbol.adb: + Extensive modifications to take into account the reference symbol file, + the symbol policy, the library version and to put in the symbol file the + minor and major IDs. + + * bld.adb (Process_Declarative_Items): Put second argument of + gprcmd to_absolute between single quotes, to avoid problems with + Windows. + + * bld-io.adb: Update Copyright notice. + (Flush): Remove last character of a line, if it is a back slash, to + avoid make problems. + + * gnatsym.adb: + Implement new scheme with reference symbol file and symbol policy. + + * g-os_lib.ads: (Is_Directory): Clarify comment + +2003-11-19 Robert Dewar + + * atree.adb: Move New_Copy_Tree global variables to head of package + + * errout.adb: Minor reformatting + +2003-11-19 Javier Miranda + + * sem_ch4.adb: (Diagnose_Call): Improve error message. + Add reference to Ada0Y (AI-50217) + + * sem_ch6.adb, sem_ch8.adb, sem_type.adb, + sem_util.adb: Add reference to AI-50217 + + * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217 + + * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287) + + * sem_aggr.adb: Complete documentation of AI-287 changes + + * par-ch4.adb: Document previous changes. + + * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb, + sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to + Ada0Y (AI-50217) + + * exp_aggr.adb: Add references to AI-287 in previous changes + +2003-11-19 Ed Schonberg + + * exp_ch6.adb: + (Add_Call_By_Copy_Node): Do not original node of rewritten expression + in the rewriting is the result of an inlined call. + + * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out + parameter is a type conversion, use original node to construct the + post-call assignment, because expression may have been rewritten, e.g. + if it is a packed array. + + * sem_attr.adb: + (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined + body, just as it is in an instance. + Categorization routines + + * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram, + Instantiate_Object): Set proper sloc reference for message on missing + actual. + +2003-11-19 Thomas Quinot + + * Makefile.in: Add FreeBSD libgnat pairs. + + * usage.adb: Fix typo in usage message. + +2003-11-19 Jerome Guitton + + * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?, + s-thrini.ad? and s-tiitho.adb to the full runtime, to support the + pragma Thread_Body. + Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore. + + * s-thread.adb: This file is now a dummy implementation of + System.Thread. + +2003-11-19 Sergey Rybin + + * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available + +2003-11-19 Emmanuel Briot + + * xref_lib.adb (Parse_Identifier_Info): Add handling of generic + instanciation references in the parent type description. + +2003-11-18 Richard Kenner + + * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s". + + * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set + TYPE_PRECISION directly from esize. + +2003-11-18 Thomas Quinot + + * cstreams.c: + Use realpath(3) on FreeBSD. Fix typo in comment while we are at it. + + * init.c: Initialization routines for FreeBSD + + * link.c: Link info for FreeBSD + + * sysdep.c: Add the case of FreeBSD + +2003-11-17 Jerome Guitton + + * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is + already called in System.Threads. + + * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the + environment task, as it has been moved to System.Threads.Initialization. + +2003-11-17 Arnaud Charlet + + * adaint.c (__gnatlib_install_locks): Only reference + __gnat_install_locks on VMS, since other platforms can avoid using + --enable-threads=gnat + +2003-11-17 Richard Kenner + + * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro. + + * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set + TYPE_PACKED_ARRAY_TYPE_P. + (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P. + + Part of PR ada/12806 + * utils.c (float_type_for_precision): Renamed from float_type_for_size. + Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE. + +2003-11-17 Vincent Celier + + * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted + to False. + Do not set exit status to Failure when Warning is True. + (Gnatchop): Make errors "no compilation units found" and + "no source files written" warnings only. + + * make.adb (Gnatmake): When using a project file, set + Look_In_Primary_Dir to False. + (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas + and Local_Configuration_Pragmas in the project where they are declared + not an extending project which might have inherited them. + + * osint.adb (Locate_File): If Name is already an absolute path, do not + look for a directory. + + * par-ch10.adb (P_Compilation_Unit): If source contains no token, and + -gnats (Check_Syntax) is used, issue only a warning, not an error. + + * prj.adb (Register_Default_Naming_Scheme): Add new component Project + in objects of type Variable_Value. + + * prj.ads: (Variable_Value): New component Project + + * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source + is in a project extended by Project. + + * prj-proc.adb (Add_Attributes): New parameter Project. Set component + Project of Variable_Values to this new parameter value. + (Expression): Set component Project of Variable_Values. + (Process_Declarative_Items): Call Add_Attributes with parameter Project. + Set the component Project in array elements. + +2003-11-17 Sergey Rybin + + * errout.adb: (Initialize): Add initialization for error nodes. + + * sem_ch12.adb (Initialize): Add missing initializations for + Exchanged_Views and Hidden_Entities. + +2003-11-17 Ed Schonberg + + * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an + already instantiated tree for use in subsequent inlining. + (Analyze_Associations, Instantiate_Formal_Subprogram, + Instantiate_Object): improve error message for mismatch in + instantiations. + + * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle + instantiations of subprograms declared in instances. + +2003-11-17 Javier Miranda + + * sem_ch4.adb (Analyze_Allocator): Previous modification must be + executed only under the Extensions_Allowed flag. + +2003-11-17 Robert Dewar + + * a-exexda.adb (Address_Image): Fix documentation to indicate leading + zeroes suppressed. + (Address_Image): Fix bug of returning 0x instead of 0x0 + Minor reformatting (function specs). + + * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array + (missed case of 33-63) + + * freeze.adb, sem_ch13.adb: Properly check size of packed bit array + + * s-thread.adb: Add comments for pragma Restriction + + * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb, + sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting + +2003-11-17 Ed Falis + + * s-thread.adb: Added No_Tasking restriction for this implementation. + +2003-11-17 Emmanuel Briot + + * xref_lib.adb (Parse_Identifier_Info): Add handling of generic + instanciation references in the parent type description. + +2003-11-17 GNAT Script + + * Make-lang.in: Makefile automatically updated + +2003-11-16 Jason Merrill + + * Make-lang.in (ada.tags): Create TAGS.sub files in each directory + and TAGS files that include them for each front end. + +2003-11-14 Andreas Jaeger + + * lang.opt: Change -Wno-long-long to -Wlong-long since the latter + is the canonical version. + * misc.c (gnat_handle_option): Likewise. + + * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux. + + * 5nsystem.ads: New file for x86_64-linux-gnu. + +2003-11-14 Arnaud Charlet + + * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated. + + * comperr.adb: Fix logic in previous change. + +2003-11-13 Vincent Celier + + * 5bml-tgt.adb (Build_Dynamic_Library): Use + Osint.Include_Dir_Default_Prefix instead of + Sdefault.Include_Dir_Default_Name. + + * gnatlbr.adb: Update Copyright notice + (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of + Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix + instead of Sdefault.Object_Dir_Default_Name + + * gnatlink.adb: + (Process_Binder_File): Never suppress the option following -Xlinker + + * mdll-utl.adb: + (Gcc): Use Osint.Object_Dir_Default_Prefix instead of + Sdefault.Object_Dir_Default_Name. + + * osint.ads, osint.adb: + (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions + Minor reformatting. + + * vms_conv.ads: Minor reformating + Remove GNAT STANDARD and GNAT PSTA + + * vms_conv.adb: + Allow GNAT MAKE to have several files on the command line. + (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of + Sdefault.Object_Dir_Default_Name. + Minor Reformating + Remove data for GNAT STANDARD + + * vms_data.ads: + Add new compiler qualifier /PRINT_STANDARD (-gnatS) + Remove data for GNAT STANDARD + Remove options and documentation for -gnatwb/-gnatwB: these warning + options no longer exist. + +2003-11-13 Ed Falis + + * 5zthrini.adb: (Init_RTS): Made visible + + * 5zthrini.adb: + (Register): Removed unnecessary call to taskVarGet that checked whether + an ATSD was already set as a task var for the argument thread. + + * s-thread.adb: + Updated comment to reflect that this is a VxWorks version + Added context clause for System.Threads.Initialization + Added call to System.Threads.Initialization.Init_RTS + +2003-11-13 Jerome Guitton + + * 5zthrini.adb: + (Init_RTS): New procedure, for the initialization of the run-time lib. + + * s-thread.adb: + Remove dependancy on System.Init, so that this file can be used in the + AE653 sequential run-time lib. + +2003-11-13 Robert Dewar + + * bindgen.adb: Minor reformatting + +2003-11-13 Ed Schonberg + + * checks.adb: + (Apply_Discriminant_Check): Do no apply check if target type is derived + from source type with no applicable constraint. + + * lib-writ.adb: + (Ensure_System_Dependency): Do not apply the style checks that may have + been specified for the main unit. + + * sem_ch8.adb: + (Find_Selected_Component): Further improvement in error message, with + RM reference. + + * sem_res.adb: + (Resolve): Handle properly the case of an illegal overloaded protected + procedure. + +2003-11-13 Javier Miranda + + * exp_aggr.adb: + (Has_Default_Init_Comps): New function to check the presence of + default initialization in an aggregate. + (Build_Record_Aggr_Code): Recursively expand the ancestor in case of + extension aggregate of a limited record. In addition, a new formal + was added to do not initialize the record controller (if any) during + this recursive expansion of ancestors. + (Init_Controller): Add support for limited record components. + (Expand_Record_Aggregate): In case of default initialized components + convert the aggregate into a set of assignments. + + * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment + describing the new syntax. + Nothing else needed to be done because this subprogram delegates part of + its work to P_Precord_Or_Array_Component_Association. + (P_Record_Or_Array_Component_Association): Give support to the new + syntax for default initialization of components. + + * sem_aggr.adb: + (Resolve_Aggregate): Relax the strictness of the frontend in case of + limited aggregates. + (Resolve_Record_Aggregate): Give support to default initialized + components. + (Get_Value): In case of default initialized components, duplicate + the corresponding default expression (from the record type + declaration). In case of default initialization in the *others* + choice, do not check that all components have the same type. + (Resolve_Extension_Aggregate): Give support to limited extension + aggregates. + + * sem_ch3.adb: + (Check_Initialization): Relax the strictness of the front-end in case + of aggregate and extension aggregates. This test is now done in + Get_Value in a per-component manner. + + * sem_ch4.adb (Analyze_Allocator): Don't post an error if the + expression corresponds to a limited aggregate. This test is now done + in Get_Value. + + * sinfo.ads, sinfo.adb (N_Component_Association): Addition of + Box_Present flag. + + * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if + present in an N_Component_Association node + +2003-11-13 Thomas Quinot + + * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a + type-conformant entry only if they are homographs. + +2003-11-13 GNAT Script + + * Make-lang.in: Makefile automatically updated + +2003-11-12 Rainer Orth + + * adadecode.c: Use <> form of include for ctype.h. + * sysdep.c [IN_RTS]: Use <> form of include for time.h. + +2003-11-12 Rainer Orth + + * 5gsystem.ads (Functions_Return_By_DSP): Set to False. + Works around PR middle-end/6552. + +2003-11-10 Ed Falis + + * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted + + * 5zinit.adb: (Install_Handler): Moved back to spec + (Install_Signal_Handlers): Deleted + + * 5zthrini.adb: Added context clause for System.Storage_Elements + (Register): Only handles creation of taskVar; initialization moved to + Thread_Body_Enter. + (Reset_TSD): Deleted; replaced by Thread_Body_Enter + Added declaration of environment task secondary stack and + initialization. + + * s-thread.adb: Implement bodies for thread body processing + + * s-thread.ads: + Added comment identifying supported targets for pragma Thread_Body. + +2003-11-10 Pascal Obry + + * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than + GNAT_MAX_PATH_LEN. + + * s-fileio.adb: + (Open): Properly check for string length before copying into the buffer. + Raises Name_Error if buffer is too small. Note that this was a potential + buffer overflow. + +2003-11-10 Romain Berrendonner + + * bindgen.adb, comperr.adb: Code clean ups. + * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function. + +2003-11-10 Sergey Rybin + + * gnat1drv.adb: Add call to Sem_Elim.Initialize. + +2003-11-10 Vincent Celier + + * gprcmd.adb: + (Gprcmd): Add new command "prefix" to get the prefix of the GNAT + installation. + + * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler + + * prj.adb: (Project_Empty): Add new boolean component Virtual + + * prj.ads: (Virtual_Prefix): New constant string + (Project_Data): New boolean component Virtual + + * prj-nmsc.adb (Language_Independent_Check): Adjust error message when + a library project is extended by a virtual extending project. + + * prj-part.adb: + Modifications throughout to implement extending-all project, including: + (Virtual_Hash, Processed_Hash): New hash tables + (Create_Virtual_Extending_Project): New procedure + (Look_For_Virtual_Projects_For): New procedure + + * prj-proc.adb: + (Process): After checking the projects, if main project is an + extending-all project, set the object directory of all virtual extending + project to the object directory of the main project. + Adjust error message when a virtual extending project has the same + object directory as an project being extended. + (Recursive_Process): If name starts with the virtual prefix, set Virtual + to True in the project data. + + * prj-tree.adb: + (Default_Project_Node): Add new boolean component Extending_All + (Is_Extending_All): New function + (Set_Is_Extending_All): New procedure + + * prj-tree.ads: (Is_Extending_All): New function + (Set_Is_Extending_All): New procedure + (Project_Node_Record): New boolean component Extending_All + + * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib + + * vms_data.ads: + Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler + + * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call + "gprcmd prefix" to define it. + +2003-11-10 Thomas Quinot + + * einfo.ads: Fix a typo and remove an extraneous word in comments. + + * lib-load.adb: + (Create_Dummy_Package_Unit): Set the scope of the entity for the + created dummy package to Standard_Standard, not to itself, to + defend other parts of the front-end against encoutering a cycle in + the scope chain. + + * sem_ch10.adb: + (Analyze_With_Clause): When setting the entities for the successive + N_Expanded_Names that constitute the name of a child unit, do not + attempt to go further than Standard_Standard in the chain of scopes. + This case arises from the placeholder units created by + Create_Dummy_Package_Unit in the case of a with_clause for a + nonexistent child unit. + +2003-11-10 Ed Schonberg + + * exp_ch6.adb: + (Expand_Thread_Body): Place subprogram on scope stack, so that new + declarations are given the proper scope. + + * sem_ch13.adb: + (Check_Expr_Constants): Reject an expression that contains a constant + created during expansion, and that appears after the object to which + the address clause applies. + + * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of + Analyze_Iteration_Scheme, to rewrite a loop parameter specification + that uses 'Range of a function call with controlled components, so + that the function result can be finalized before starting the loop. + + * sem_ch8.adb: + (Find_Selected_Component): Improve error message when prefix is + an implicit dereference of an incomplete type. + +2003-11-10 Robert Dewar + + * opt.ads: New Print_Standard flag for -gnatS switch + + * sem_ch13.adb: Remove some additional checks for unaligned arrays + + * cstand.adb (Create_Standard): Print out package standard if -gnatS + switch set + + * debug.adb: Update doc for -gnatds to discuss relationship with new + -gnatS flag + + * sinfo.adb: Add new field Entity_Or_Associated_Node + + * sinfo.ads: Add new field Entity_Or_Associated_Node + Update documentation for Associated_Node and Entity fields to clarify + relationship and usage. + + * sprint.adb: + (Write_Id): Properly process Associated_Node field in generic template + + * switch-c.adb: + Recognize new -gnatS switch for printing package Standard + This replaces gnatpsta + + * usage.adb: + Add line for new -gnatS switch for printing package Standard + This replaces gnatpsta + +2003-11-10 Andreas Jaeger + + * 7sosprim.adb: tv_usec of struct_timeval and time_t are long + integer. + +2003-11-10 Arnaud Charlet + + * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed + by gnat1. + +2003-11-10 Arnaud Charlet + + * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta, + no longer needed. + + * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed. + + * sysdep.c: Add handling of cygwin. + +2003-11-10 GNAT Script + + * Make-lang.in: Makefile automatically updated + +2003-11-10 Arnaud Charlet + + PR 12950 + * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New + functions. Used to handle dynamic prefix relocation, via set_std_prefix. + Replace GNAT_ROOT by GCC_ROOT. + + * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb + +2003-11-06 Zack Weinberg + + * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION + and update for changed meaning of GET_MODE_BITSIZE. + +2003-11-04 Doug Rupp + + * sysdep.c: Problem discovered during IA64 VMS port. + [VMS] #include to get proper prototypes. + + * adaint.c: + Issues discovered/problems fixed during IA64 VMS port. + [VMS] #define _POSIX_EXIT for proper semantics. + [VMS] #include for proper prototypes. + [VMS] (fork): #define IA64 version. + (__gnat_os_exit): Remove unnecessary VMS specific code. + +2003-11-04 Richard Kenner + + Part of PR ada/12806 + * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as + tree, not integer. + + * decl.c: + (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree, + not integer. + + * targtyps.c, decl.c, misc.c, + gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary + routines to work around change in FP sizing semantics in GCC. + + * utils.c: + (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer. + + * gigi.h: (enumerate_modes): New function. + + * Make-lang.in: (ada/misc.o): Add real.h. + + * misc.c: (enumerate_modes): New function. + +2003-11-04 Robert Dewar + + * 3vtrasym.adb: Minor reformatting + Use terminology encoded/decoded name, rather than C++ specific notion + of mangling (this is the terminology used throughout GNAT). + + * einfo.h: Regenerated + + * einfo.ads, einfo.adb: Add new flag Is_Thread_Body + + * exp_ch6.adb: + (Expand_N_Subprogram_Body): Handle expansion of thread body procedure + + * par-prag.adb: Add dummy entry for Thread_Body pragma + + * rtsfind.ads: + Add entries for System.Threads entities for thread body processing + + * sem_attr.adb: + (Analyze_Pragma, Access attributes): Check these are not applied to a + thread body, since this is not permitted + + * sem_prag.adb: Add processing for Thread_Body pragma. + Minor comment fix. + + * sem_res.adb: + (Resolve_Call): Check for incorrect attempt to call a thread body + procedure with a direct call. + + * snames.ads, snames.adb: Add entry for Thread_Body pragma + Add names associated with thread body expansion + + * snames.h: Add entry for Thread_Body pragma + + * s-thread.adb: Add entries for thread body processing + These are dummy bodies so far + + * s-thread.ads: Add documentation on thread body handling. + Add entries for thread body processing. + +2003-11-04 Javier Miranda + + * sem_ch10.adb: + (Build_Limited_Views): Return after posting an error in case of limited + with_clause on subprograms, generics, instances or generic renamings + (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause + on subprograms, generics, instances or generic renamings + +2003-11-04 Arnaud Charlet + + * raise.c (setup_to_install): Correct mistake in last revision; two + arguments out of order. + + * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c, + gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright + notice, missed in previous change. + Remove trailing blanks and other style errors introduced in previous + change. + +2003-11-04 Olivier Hainque + + * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get + rid of the wrapper for a LJM type, ensuring we don't do that if the + field is addressable. This avoids potential low level type view + mismatches later on, for instance in a by-reference argument passing + process. + +2003-11-04 Richard Kenner + + * decl.c (gnat_to_gnu_field): No longer check for BLKmode being + aligned at byte boundary. + +2003-11-04 Joel Brobecker + + * decl.c (components_to_record): Do not delete the empty variants from + the end of the union type. + +2003-11-04 Ed Schonberg + + * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive + operation for a derived type, an explicit declaration may use a local + subtype of Boolean. + +2003-11-04 Vincent Celier + + * make.adb (Gnatmake): Allow main sources on the command line with a + library project when it is only for compilation (no binding or + linking). + +2003-11-04 Rainer Orth + + * Makefile.in: Remove many duplicate variables. + +2003-11-03 Kelley Cook + + * Make-lang.in (dvi): Move targets to $(docobjdir). + (gnat_ug_vms.dvi): Simplify rule and adjust target. + (gnat_ug_wnt.dvi): Likewise. + (gnat_ug_unx.dvi): Likewise. + (gnat_ug_vxw.dvi): Likewise. + (gnat_rm.dvi): Likewise. + (gnat-style.dvi): Likewise. + +2003-10-31 Kelley Cook + + * gigi.h: Missed commit from update for C90. + +2003-10-31 Kelley Cook + + * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error. + +2003-10-31 Andreas Schwab + + * raise.c (get_action_description_for): Fix typo in last change. + +2003-10-31 Nathanael Nerode + + PR ada/12761 + * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS, + T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in. + +2003-10-30 Kelley Cook + + * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c, + ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c, + gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c, + sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c, + trans.c, utils.c, utils2.c: Convert function prototypes to C90. + +2003-10-30 Vasiliy Fofanov + + * 3vtrasym.adb: + Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line + numbers when symbol name is too long. + +2003-10-30 Ed Falis + + * g-signal.ads, g-signal.adb: New files + + * impunit.adb: (Non_Imp_File_Names): Added "g-signal" + + * Makefile.rtl: Introduce GNAT.Signals + +2003-10-30 Robert Dewar + + * freeze.adb: Minor reformatting + + * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified + + * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb, + par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb: + New handling of Id_Check parameter to improve recognition of keywords + used as identifiers. + Update copyright notice to include 2003 + +2003-10-29 Robert Dewar + + * 3vtrasym.adb, 5vtraent.ads, sprint.adb, + sem_ch10.adb: Minor reformatting + + * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands + (Expand_Assign_Record): Test right hand side for bit unaligned as well + +2003-10-29 Vasiliy Fofanov + + * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c: + Support for TBK$SYMBOLIZE-based symbolic traceback. + +2003-10-29 Jose Ruiz + + * exp_disp.adb: + Revert previous change, that did not work well when pragma No_Run_Time + was used in conjunction with a run-time other than ZFP. + +2003-10-29 Vincent Celier + + * make.adb: + (Gnatmake): When there are no Ada mains in attribute Main, disable the + bind and link steps only is switch -z is not used. + +2003-10-29 Arnaud Charlet + + * Makefile.generic: Remove duplicated setting of CC. + + * Makefile.prolog: Set CC to gcc by default, to override make's + default (cc). + + * einfo.h: Regenerated. + +2003-10-29 Ed Schonberg + + * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for + current body, after compiling subunit. + + * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype + when in deleted code, because gigi needs properly ordered freeze + actions to annotate types. + + * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to + prevent the premature freezing of record type that contains + subcomponents with a private type that does not yet have a completion. + +2003-10-29 Javier Miranda + + * sem_ch12.adb: + (Analyze_Package_Instantiation): Check that instances can not be used in + limited with_clauses. + + * sem_ch8.adb: + (Analyze_Package_Renaming): Check that limited withed packages cannot + be renamed. Improve text on error messages related to limited + with_clauses. + + * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute. + + * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses. + Update copyright notice. + + * sem_ch10.adb: (Build_Limited_Views): Complete its documentation. + (Install_Limited_Context_Clauses): New subprogram that isolates all the + checks required for limited context_clauses and installs the limited + view. + (Install_Limited_Withed_Unit): Complete its documentation. + (Analyze_Context): Check that limited with_clauses are only allowed in + package specs. + (Install_Context): Call Install_Limited_Context_Clauses after the + parents have been installed. + (Install_Limited_Withed_Unit): Add documentation. Mark the installed + package as 'From_With_Type'; this mark indicates that the limited view + is installed. Used to check bad usages of limited with_clauses. + (Build_Limited_Views): Do not add shadow entities to the scope's list + of entities. Do not add real entities to the Non_Limited_Views chain. + Improve error notification. + (Remove_Context_Clauses): Remove context clauses in two phases: + limited views first and regular views later (to maintain the + stack model). + (Remove_Limited_With_Clause): If the package is analyzed then reinstall + its visible entities. + +2003-10-29 Thomas Quinot + + * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible + with any type that Is_Fixed_Point_Type. + + * sinfo.ads: Fix documentation for Associated_Node attribute. + +2003-10-29 Sergey Rybin + + * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when + both '-gnatc' and '-gnatt' are specified. + + * atree.adb (Initialize): Add initialization for Node_Count (set to + zero). + +2003-10-29 Richard Kenner + + * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value, + do not consider as Pure. + + Part of implementation of function-at-a-time: + + * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt. + (tree_transform): Add new argument to build_component_ref. + (tree_transform, case N_Assignment_Statement): Make and return an + EXPR_STMT. + (tree_transform): If result IS_STMT, set flags and return it. + (gnat_expand_stmt, set_lineno_from_sloc): New functions. + + * utils2.c (build_simple_component_ref, build_component_ref): Add new + arg, NO_FOLD_P. + (build_binary_op, case EQ_EXPR): Pass additional arg to it. + (build_allocator): Likewise. + + * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert): + Add new arg to build_component_ref. + (maybe_unconstrained_array, unchecked_convert): Likewise. + + * ada-tree.def (EXPR_STMT): New code. + + * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros. + + * decl.c (gnat_to_gnu_entity, case object): Add extra arg to + build_component_ref calls. + + * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt. + + * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions. + (build_component_ref): Add new argument, NO_FOLD_P. + +2003-10-27 Arnaud Charlet + + * Makefile.generic: Add missing substitution on object_deps handling. + + PR ada/5909 + * Make-lang.in (check-ada): Enable ACATS test suite. + +2003-10-27 Robert Dewar + + * exp_ch3.adb: + (Freeze_Array_Type): We do not need an initialization routine for types + derived from String or Wide_String. They should be treated the same + as String and Wide_String themselves. This caused problems with the + use of Initialize_Scalars. + + * exp_ch5.adb: + (Expand_Assign_Record): Do component-wise assignment of non-byte aligned + composites. This allows use of component clauses that are not byte + aligned. + + * sem_prag.adb: + (Analyze_Pragma, case Pack): Generate warning and ignore pack if there + is an attempt to pack an array of atomic objects. + + * make.adb, prj-env.adb, prj-env.ads: Minor reformatting + +2003-10-27 Pascal Obry + + * g-dirope.adb: + (Basename): Check for drive letters in a pathname only on DOS based OS. + +2003-10-27 Vincent Celier + + * make.adb: + (Gnatmake): When unable to change dir to the object dir, display the + content of the parent dir of the obj dir, to try to understand why this + happens. + +2003-10-27 GNAT Script + + * Make-lang.in: Makefile automatically updated + +2003-10-27 Ed Schonberg + + * sem_ch12.adb: + (Inline_Instance_Body): Indicate that the save/restore of use_clauses + should not be done in Save/Restore_Scope_Stack, because it is performed + locally. + + * sem_ch8.adb: + (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate + whether use clauses should be removed/restored. + + * sem_ch8.ads: + (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate + whether use clauses should be removed/restored. + +2003-10-26 Andreas Jaeger + + * Makefile.in: Remove duplicated lines. + +2003-10-24 Arnaud Charlet + + * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to + minimize the differences with ACT tree. + + * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb, + gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of + Gnatvsn.Gnat_Static_Version_String to reduce differences between + ACT and FSF trees. + +2003-10-24 Pascal Obry + + 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. + +2003-10-24 Jose Ruiz + + * exp_disp.adb: + Remove the test against being in No_Run_Time_Mode before generating a + call to Register_Tag. It is redundant with the test against the + availability of the function Register_Tag. + +2003-10-24 Vincent Celier + + * g-catiio.adb: (Month_Name): Correct spelling of February + + * make.adb: (Mains): New package + (Initialize): Call Mains.Delete + (Gnatmake): Check that each main on the command line is a source of a + project file and, if there are several mains, each of them is a source + of the same project file. + (Gnatmake): When a foreign language is specified in attribute Languages, + no main is specified on the command line and attribute Mains is not + empty, only build the Ada main. If there is no Ada main, just compile + the Ada sources and their closure. + (Gnatmake): If a main is specified on the command line with directory + information, check that the source exists and, if it does, that the path + is the actual path of a source of a project. + + * prj-env.adb: + (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When + Full_Path is True, return the full path instead of the simple file name. + (Project_Of): New function + + * prj-env.ads: + (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path, + defaulted to False. + (Project_Of): New function + +2003-10-24 Arnaud Charlet + + * Makefile.generic: + Ensure objects of main project are always checked and rebuilt if needed. + Set CC to gcc by default. + Prepare new handling of link by creating a global archive (not activated + yet). + + * adadecode.h, atree.h, elists.h, nlists.h, raise.h, + stringt.h: Update copyright notice. Remove trailing blanks. + Fix source name in header. + +2003-10-24 Robert Dewar + + * sem_ch12.adb: Minor reformatting + + * sem_ch3.adb: + Minor reformatting (including new function return style throughout) + + * sem_ch3.ads: + Minor reformatting (including new function return style throughout) + +2003-10-24 Arnaud Charlet + + * adadecode.h, atree.h, elists.h, nlists.h, raise.h, + stringt.h: Update copyright notice. Remove trailing blanks. + Fix source name in header. + +2003-10-24 GNAT Script + + * Make-lang.in: Makefile automatically updated + +2003-10-23 Nathanael Nerode + + * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h, + stringt.h: Convert to ISO C90 declarations and definitions. + +2003-10-23 Thomas Quinot + + PR ada/11978 + * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited + External_Tag attribute definition clauses. + +2003-10-23 Ed Schonberg + + 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 + the same simple name. + + * exp_dbug.ads: Add documentation on name qualification for renamings + of child units. + +2003-10-23 Robert Dewar + + * g-regpat.ads, g-regpat.adb: Minor reformatting + +2003-10-23 Jose Ruiz + + * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times. + +2003-10-23 Richard Kenner + + * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to + Machine call. + + * urealp.h: (Machine): Update to proper definition. + +2003-10-23 Arnaud Charlet + + * init.c, adaint.c: Minor reformatting. + +2003-10-23 Danny Smith + + * adaint.c (w32_epoch_offset): Define static const at file level. + (win32_filetime): Replace offset with w32_epoch_offset. Use NULL + rather than t_create, t_access in call to GetFileTime. Use union + to convert between FILETIME and unsigned long long. + (__gnat_file_time_name): Test for invalid file handle. + (__gnat_set_filetime_name): Support win32 targets using + w32api SetFileTime. + +2003-10-22 Danny Smith + + * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW. + + * ctrl_c.c (__gnat_int_handler): Remove declaration. + + * decl.c (creat_concat_name): Const-ify prefix. + + * adaint.c: Include ctype.h if __MINGW32__. + (__gnat_readlink): Mark arguments as possibly unused. + (__gnat_symlink): Likewise. + (__gnat_is_symbolic_link): Likewise. + (__gnat_portable_spawn): Likewise. Cast last arg of spawnvp to match + declaration + (__gnat_file_time_name): Don't declare struct stat statbuf when + not needed. + (__gnat_is_absolute_path): Add parenthesis around condition of + 'if' statement to avoid warning. + (__gnat_plist_init): Specify void as parameter. + (plist_enter): Likewise. + (plist_leave): Likewise. + (remove_handle): Make static. Initialize prev. + +2003-10-22 Arnaud Charlet + + PR ada/10110 + * Makefile.in: Disable build of gnatpsta. + * cstreams.c (__gnat_full_name): Minor improvements and clean up + of previous change. + +2003-10-22 Rainer Orth + + * tracebak.c (MAX): Avoid redefinition warning. + + * init.c [sgi] (__gnat_error_handler): Remove i, unused. + Change msg to const char *. + (__gnat_install_handler): Remove ss, unused. + [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg + to const char *. + * cstreams.c (__gnat_full_name): Declare p only when used. + (__gnat_full_name) [sgi] Return buffer. + +2003-10-22 Arnaud Charlet + + * mingw32.h: New file. + * gnat_wrapper.adb: New file. + +2003-10-22 Jerome Roussel + + * g-regpat.ads, g-regpat.adb (Match): new function, to know if a + string match a pre compiled regular expression (the corresponding + version of the function working on a raw regular expression) + Fix typos in various comments + Update copyright notice in spec + +2003-10-21 Gary Dismukes + + * exp_ch3.adb: + (Component_Needs_Simple_Initialization): Return False when the type is a + packed bit array. Revise spec comments to document this case. + + * exp_prag.adb: + (Expand_Pragma_Import): Set any expression on the imported object to + empty to avoid initializing imported objects (in particular this + covers the case of zero-initialization of bit arrays). + Update copyright notice. + +2003-10-21 Ed Schonberg + + * sem_ch12.adb: + (Load_Parent_Of_Generic): If parent is compilation unit, stop search, + a subunit is missing. + (Instantiate_Subprogram_Body): If body of function is missing, set type + of return expression explicitly in dummy body, to prevent cascaded + errors when a subunit is missing. + Fixes PR 5677. + + * sem_ch3.adb: + (Access_Subprogram_Declaration): Verify that return type is valid. + Fixes PR 8693. + + * sem_elab.adb: + (Check_Elab_Calls): Do not apply elaboration checks if the main unit is + generic. + Fixes PR 12318. + + * sem_util.adb: + (Corresponding_Discriminant): If the scope of the discriminant is a + private type without discriminant, use its full view. + Fixes PR 8247. + +2003-10-21 Arnaud Charlet + + * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads, + 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads, + 3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads, + 55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb, + 56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads, + 59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads, + 5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb, + 5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads, + 5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads, + 5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb, + 5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads, + 5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb, + 5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb, + 5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb, + 7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb, + a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb, + a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb, + a-stwisu.ads, bld.adb, bld.ads, bld-io.adb, + bld-io.ads, clean.adb, clean.ads, ctrl_c.c, + erroutc.adb, erroutc.ads, errutil.adb, errutil.ads, + err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads, + g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb, + g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads, + g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb, + g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb, + g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb, + g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads, + gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb, + g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads, + g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb, + i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl, + prep.adb, prep.ads, prepcomp.adb, prepcomp.ads, + prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb, + s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb, + s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb, + s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb, + s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb, + s-caun64.ads, scng.adb, scng.ads, s-exnint.adb, + s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb, + s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb, + s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads, + socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb, + s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads, + s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads, + s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb, + styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb, + s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads, + tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads, + vms_conv.ads, vms_conv.adb, vms_data.ads, + vxaddr2line.adb: Files added. Merge with ACT tree. + + * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads, + 5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb, + 5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads, + 5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c, + g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb, + s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads, + s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads, + s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads, + s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads, + s-expssi.ads, style.adb: Files removed. Merge with ACT tree. + + * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads, + 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads, + 3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, + 3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads, + 4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, + 4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads, + 4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, + 4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads, + 51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads, + 53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads, + 5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads, + 5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads, + 5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb, + 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads, + 5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads, + 5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads, + 5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads, + 5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb, + 5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads, + 5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads, + 5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads, + 5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb, + 5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb, + 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads, + 5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb, + 5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads, + 5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb, + 5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads, + 5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb, + 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb, + 5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb, + 5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, + 5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb, + 5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, + 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, + 7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb, + 7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb, + a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads, + a-comlin.adb, adaint.c, adaint.h, ada-tree.def, + a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb, + a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads, + a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads, + ali.adb, ali.ads, ali-util.adb, ali-util.ads, + a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb, + a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb, + a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb, + a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb, + a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads, + a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb, + a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, + a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb, + a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb, + a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb, + a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, + a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads, + atree.adb, atree.ads, a-witeio.adb, a-witeio.ads, + a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb, + a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb, + bcheck.adb, binde.adb, bindgen.adb, bindusg.adb, + checks.adb, checks.ads, cio.c, comperr.adb, + comperr.ads, csets.adb, cstand.adb, cstreams.c, + debug_a.adb, debug_a.ads, debug.adb, decl.c, + einfo.adb, einfo.ads, errout.adb, errout.ads, + eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb, + expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb, + exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, + exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads, + exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb, + exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c, + exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb, + exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb, + exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb, + fe.h, fmap.adb, fmap.ads, fname.adb, + fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb, + freeze.ads, frontend.adb, g-awk.adb, g-awk.ads, + g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads, + g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, + g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, + g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads, + g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads, + g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads, + g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads, + g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb, + g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb, + g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h, + g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, + g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads, + gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb, + gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb, + gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb, + gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb, + gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb, + g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb, + g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads, + g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads, + g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads, + g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads, + g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb, + g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb, + g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads, + i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads, + i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c, + inline.adb, interfac.ads, i-pacdec.ads, itypes.adb, + itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h, + layout.adb, lib.adb, lib.ads, lib-list.adb, + lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb, + lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads, + link.c, live.adb, make.adb, make.ads, + Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb, + mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, + mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb, + misc.c, mkdir.c, mlib.adb, mlib.ads, + mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, + mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, + namet.adb, namet.ads, namet.h, nlists.ads, + nlists.h, nmake.adt, opt.adb, opt.ads, + osint.adb, osint.ads, osint-b.adb, osint-c.adb, + par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb, + par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, + par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb, + par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb, + prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, + prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads, + prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads, + prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads, + prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads, + prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads, + prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads, + prj-util.adb, prj-util.ads, raise.c, raise.h, + repinfo.adb, repinfo.h, restrict.adb, restrict.ads, + rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads, + s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb, + s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb, + scans.ads, scn.adb, scn.ads, s-crc32.adb, + s-crc32.ads, s-direio.adb, sem.adb, sem.ads, + sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb, + sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb, + sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb, + sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, + sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads, + sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, + sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb, + sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb, + sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads, + sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads, + sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb, + s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads, + s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads, + s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads, + s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb, + s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb, + s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads, + s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb, + sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb, + sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads, + sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads, + s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads, + s-memory.adb, s-memory.ads, snames.adb, snames.ads, + snames.h, s-osprim.ads, s-parame.ads, s-parint.ads, + s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb, + s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads, + s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads, + s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads, + s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads, + s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads, + s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, + s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads, + s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb, + s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb, + s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, + s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads, + s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads, + s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads, + s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, + s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads, + stringt.adb, stringt.ads, stringt.h, style.ads, + stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads, + s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb, + s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb, + switch.ads, switch-b.adb, switch-c.adb, switch-m.adb, + s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads, + table.adb, table.ads, targparm.adb, targparm.ads, + targtyps.c, tbuild.adb, tbuild.ads, tracebak.c, + trans.c, tree_io.adb, treepr.adb, treeprs.adt, + ttypes.ads, types.ads, types.h, uintp.adb, + uintp.ads, uintp.h, uname.adb, urealp.adb, + urealp.ads, urealp.h, usage.adb, utils2.c, + utils.c, validsw.adb, validsw.ads, widechar.adb, + xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads, + xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb, + einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb, + gnatvsn.ads: Merge with ACT tree. + + * gnatvsn.adb: Rewritten in a simpler and more efficient way. + +2003-10-20 Mark Mitchell + + * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir. + (gnat_ug_vmx.info): Likewise. + (gnat_ug_vxw.info): Likewise. + (gnat_ug_wnt.info): Likewise. + (gnat_rm.info): Likewise. + (gnat-style.info): Likewise. + + * Make-lang.in (ada.install-info): Remove target. + (info): New target. + (install-info): Likewise. + (gnat_ug_unx.info): Simplify rule. + (gnat_ug_vmx.info): Likewise. + (gnat_ug_vxw.info): Likewise. + (gnat_ug_wnt.info): Likewise. + (gnat_rm.info): Likewise. + (gnat-style.info): Likewise. + +2003-10-14 Nathanael Nerode + + * Make-lang.in: Replace uses of $(target_alias) with + $(target_noncanonical). + * ada/Makefile.in: Remove unused mention of $(target_alias). + +2003-10-06 Mark Mitchell + + * Make-lang.in (ada.info): Replace with ... + (info): ... this. + (ada.dvi): Replace with ... + (dvi): ... this. + +2003-09-29 Zack Weinberg + + * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to + initialize dconstp5 and dconstmp5. + +2003-09-28 Richard Henderson + + * trans.c (tree_transform): Update call to expand_asm_operands. + +2003-09-21 Richard Henderson + + * trans.c, utils.c: Revert. + +2003-09-21 Richard Henderson + + * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and + change to const. + +2003-09-04 Michael Matz + + * misc.c: Include "target.h". + * Make-lang.in (misc.o): Add dependency on target.h. + +2003-09-03 DJ Delorie + + * misc.c (default_pass_by_ref): Convert to calls.return_in_memory + hook. + +2003-08-30 Zack Weinberg + + * Makefile.in: Update substitutions to match changes to + configure. Use include directives instead of @-insertions + to read in host and target fragments. Add a rule to + regenerate ada/Makefile. + +2003-07-18 Neil Booth + + * lang-options.h: Remove. + * lang.opt: Add help text. + +2003-07-07 Nathan Sidwell + + * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note + calls. + +2003-07-06 Neil Booth + + * misc.c (gnat_handle_option): Don't handle filenames. + +2003-07-04 H.J. Lu + + * Make-lang.in: Replace PWD with PWD_COMMAND. + * Makefile.adalib: Likewise. + * Makefile.in: Likewise. + +2003-07-04 Matt Kraai + + * misc.c (gnat_argv): Revert last change. + (gnat_handle_option, gnat_init_options): Copy arguments. + +2003-07-03 Neil Booth + + * misc.c (gnat_argv): Make const. + +2003-07-02 Neil Booth + + * misc.c (save_argc, save_argv): Keep non-static! + +2003-07-02 Neil Booth + + * misc.c (save_argc, save_argv): Make static. + (gnat_init_options): New prototype. + (gnat_init_options): Update. + +2003-07-01 Matt Kraai + + * gnat_ug.texi: Remove unlikely characters from @vars. + * gnat_ug_vms.texi: Regenerate. + +2003-06-27 Nathan Sidwell + + * misc.c (record_code_position): Adjust emit_note call. + +2003-06-26 Neil Booth + + * misc.c (gnat_handle_option): Don't check for missing arguments. + +2003-06-20 Nathan Sidwell + + * utils.c (end_subprog_body): Adjust expand_function_end call. + +2003-06-16 Matt Kraai + + * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test + Bind_Main_Program. + +2003-06-15 Neil Booth + + * lang.opt: Declare Ada. + * misc.c (gnat_init_options): Update. + +2003-06-14 Nathan Sidwell + + * utils.c (begin_subprog_body): Adjust init_function_start call. + +2003-06-14 Neil Booth + + * Make-lang.in: Update to use options.c and options.h. + * misc.c: Include options.h not aoptions.h. + (gnat_handle_option): Abort on unrecognized switch. + (gnat_init_options): Request Ada switches. + +2003-06-14 Neil Booth + + * lang.opt: Add -Wall. + * misc.c (gnat_handle_option): Handle it. + +2003-06-12 Neil Booth + + * misc.c (gnat_handle_option): Fix warnings. + +2003-06-11 Matt Kraai + + * Make-lang.in (gnatbind): Remove $(LIBIBERTY). + +2003-06-11 Neil Booth + + * Make-lang.in: Update to handle command-line options. + * lang.opt: New file. + * misc.c: Include aoptions.h. + (cl_options_count, cl_options): Remove. + (gnat_handle_option): New. + (gnat_decode_option): Remove. + (LANG_HOOKS_DECODE_OPTION): Remove. + (LANG_HOOKS_HANDLE_OPTION): Override. + +2003-06-10 Nathanael Nerode + + * init.c, misc.c, trans.c, utils.c: Remove dead code. + +2003-06-09 Nathanael Nerode + + * Makefile.in: Replace "host_canonical" with "host" for autoconf + substitution. + +2003-06-08 Neil Booth + + * Make-lang.in: Update. + * misc.c: Include opts.h. Define cl_options_count and cl_options. + +2003-06-07 Neil Booth + + * misc.c (gnat_init_options): Update. + +2003-06-05 Matt Kraai + + * Make-lang.in (ada/b_gnatb.o-warn): Remove. + * bindgen.adb (Gen_Main_C): Mark ensure_reference with + __attribute__ ((__unused__)). + +2003-06-05 Jan Hubicka + + * Make-lang.in: Add support for stageprofile and stagefeedback + +2003-06-05 Matt Kraai + + * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C) + (Gen_Main_C, Gen_Output_File_C): Generate ISO C. + +2003-06-04 Matt Kraai + + * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr): + Remove non-VMS directive. + (Switches for gnatlbr, Optimization Levels): Remove non-VMS + alternatives. + (Examples of gnatls Usage): Remove VMS alternative. + +2003-06-04 Olivier Hainque + + 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-06-01 Andreas Jaeger + + * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE + and ROUND_TYPE_SIZE_UNIT. + +2003-05-22 Geert Bosch + + * gnat_rm.texi : Remove reference to Ada Core Technologies. + +2003-05-03 Nathan Sidwell + + * trans.c (tree_transform): Use location_t and input_location + directly. + (build_unit_elab): Likewise. + * utils.c (create_label_decl): Likewise. + +2003-05-01 Nathan Sidwell + + * trans.c (tree_transform, build_unit_elab, + set_lineno): Rename lineno to input_line. + * utils.c (pushdecl, create_label_decl, begin_subprog_body, + end_subprog_body): Likewise. + * utils2.c (build_call_raise): Likewise. + +2003-05-01 Laurent Guerby + + PR ada/10546 + * 5iosinte.ads: Increase pthread_cond_t size to match recent + LinuxThread and NPTL version, merge from ACT. + +2003-04-28 Zack Weinberg + + * utils.c (convert): No need to clear TREE_CST_RTL. + +2003-04-23 Geert Bosch + + * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb, + 1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads, + 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads, + 3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, + 3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads, + 4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb, + 4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads, + 4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads, + 4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb, + 4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, + 4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, + 4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb, + 52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads, + 5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads, + 5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb, + 5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads, + 5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb, + 5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, + 5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb, + 5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads, + 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb, + 5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads, + 5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb, + 5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads, + 5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads, + 5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb, + 5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads, + 5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads, + 5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb, + 5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads, + 5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb, + 5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb, + 5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb, + 5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads, + 5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads, + 5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb, + 5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb, + 5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads, + 5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, + 5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb, + 5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb, + 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads, + 5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads, + 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, + 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb, + 7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads, + 7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads, + 9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb, + a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb, + a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, + a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads, + a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads, + a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads, + a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads, + a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads, + a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb, + a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads, + a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads, + a-intnam.ads, a-intsig.adb, a-intsig.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.adb, a-ngcefu.ads, + a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, 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-nudira.adb, a-nudira.ads, + a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads, + a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb, + a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads, + a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads, + a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads, + a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads, + a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb, + a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads, + a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads, + a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads, + a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads, + a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads, + a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads, + a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb, + a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb, + a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb, + a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb, + a-ticoau.ads, a-ticoio.adb, a-ticoio.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.adb, + a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb, + a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb, + a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb, + a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb, + a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads, + a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb, + a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb, + a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb, + a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb, + 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.ads, a-wtgeau.adb, 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, a-wttest.adb, + a-wttest.ads, ada-tree.h, ada.ads, ada.h, + adadecode.c, adadecode.h, ali-util.adb, ali-util.ads, + ali.adb, ali.ads, alloc.ads, argv.c, + atree.adb, atree.ads, atree.h, aux-io.c, + back_end.adb, back_end.ads, bcheck.adb, bcheck.ads, + binde.adb, binde.ads, binderr.adb, binderr.ads, + bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, + butil.adb, butil.ads, cal.c, calendar.ads, + casing.adb, casing.ads, ceinfo.adb, checks.adb, + checks.ads, cio.c, comperr.adb, comperr.ads, + config-lang.in, csets.adb, csets.ads, csinfo.adb, + cstand.adb, cstand.ads, cuintp.c, debug.adb, + debug.ads, debug_a.adb, debug_a.ads, dec-io.adb, + dec-io.ads, dec.ads, deftarg.c, directio.ads, + einfo.adb, einfo.ads, elists.adb, elists.ads, + elists.h, errno.c, errout.adb, errout.ads, + eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb, + exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads, + exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads, + exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, + exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads, + exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads, + exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, + exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads, + exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads, + exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads, + exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, + exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads, + exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads, + exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads, + exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads, + fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads, + fname-uf.adb, fname-uf.ads, fname.adb, fname.ads, + freeze.adb, freeze.ads, frontend.adb, frontend.ads, + g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads, + g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads, + g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, + g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, + g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads, + g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb, + g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb, + g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb, + g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb, + g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads, + g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, + g-htable.adb, g-htable.ads, g-io.adb, g-io.ads, + g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb, + g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb, + g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads, + g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb, + g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads, + g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb, + g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, + g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads, + g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads, + g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads, + get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads, + gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads, + gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads, + gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads, + gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, + gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb, + gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads, + gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb, + hlo.adb, hlo.ads, hostparm.ads, i-c.adb, + i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads, + i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads, + i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads, + i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb, + i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb, + i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads, + inline.adb, inline.ads, interfac.ads, ioexcept.ads, + itypes.adb, itypes.ads, krunch.adb, krunch.ads, + layout.adb, layout.ads, lib-list.adb, lib-load.adb, + lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads, + lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads, + lib.adb, lib.ads, live.adb, live.ads, + machcode.ads, make.adb, make.ads, makeusg.adb, + makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads, + mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads, + memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb, + mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb, + mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb, + mlib.ads, namet.adb, namet.ads, nlists.adb, + nlists.ads, opt.adb, opt.ads, osint-b.adb, + osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb, + osint-l.ads, osint-m.adb, osint-m.ads, osint.adb, + osint.ads, output.adb, output.ads, par-ch10.adb, + par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, + par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, + par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb, + par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, + par-tchk.adb, par-util.adb, par.adb, par.ads, + prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads, + prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads, + prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads, + prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads, + prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads, + prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads, + prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads, + prj.adb, prj.ads, repinfo.adb, repinfo.ads, + restrict.adb, restrict.ads, rident.ads, rtsfind.adb, + rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb, + s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb, + s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb, + s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads, + s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads, + s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb, + s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads, + s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads, + s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads, + s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads, + s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads, + s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads, + s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb, + s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads, + s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads, + s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads, + s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads, + s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads, + s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, + s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, + s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads, + s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads, + s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads, + s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, + s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, + s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads, + s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb, + s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb, + s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads, + s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads, + s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads, + s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, + s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, + s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads, + s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads, + s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads, + s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, + s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, + s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads, + s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads, + s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads, + s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, + s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, + s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads, + s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads, + s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads, + s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, + s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, + s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads, + s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads, + s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads, + s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, + s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, + s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads, + s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads, + s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads, + s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, + s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads, + s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads, + s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb, + s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads, + s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, + s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads, + s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads, + s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads, + s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads, + s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb, + s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb, + s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb, + s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads, + s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, + s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads, + s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads, + s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb, + s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb, + s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb, + s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb, + s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb, + s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads, + s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads, + s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads, + s-valenu.adb, s-valenu.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, + s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads, + s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads, + s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, + s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb, + s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, + s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb, + s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, + s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, + s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb, + scn-slit.adb, scn.adb, scn.ads, sdefault.ads, + sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads, + sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads, + sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads, + sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads, + sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, + sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads, + sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads, + sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, + sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads, + sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads, + sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads, + sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads, + sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, + sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads, + sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads, + sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads, + sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb, + sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb, + sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb, + sinput-p.ads, sinput.adb, sinput.ads, snames.adb, + snames.ads, sprint.adb, sprint.ads, stand.adb, + stand.ads, stringt.adb, stringt.ads, style.adb, + style.ads, stylesw.adb, stylesw.ads, switch-b.adb, + switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb, + switch-m.ads, switch.adb, switch.ads, system.ads, + table.adb, table.ads, targparm.adb, targparm.ads, + tbuild.adb, tbuild.ads, text_io.ads, trans.c, + tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads, + tree_io.adb, tree_io.ads, treepr.adb, treepr.ads, + ttypef.ads, ttypes.ads, types.adb, types.ads, + uintp.adb, uintp.ads, uname.adb, uname.ads, + unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads, + usage.adb, usage.ads, validsw.adb, validsw.ads, + widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb, + xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads, + xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header, + formatting and other trivial changes from ACT. + +2003-04-12 Zack Weinberg + + * gigi.h, utils2.c (build_constructor): + Rename gnat_build_constructor. Use build_constructor. + * decl.c (gnat_to_gnu_entity) + * trans.c (tree_transform, pos_to_constructor, extract_values) + * ada/utils.c (build_template, convert_to_fat_pointer, convert) + (unchecked_convert) + * ada/utils2.c (build_binary_op, build_call_raise, build_allocator) + (fill_vms_descriptor): + Update to match. + +2003-04-06 Zack Weinberg + + * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero. + * misc.c (gnat_tree_size): New function. + (LANG_HOOKS_TREE_SIZE): Override. + +2003-04-03 Jason Merrill + + * misc.c (gnat_adjust_rli): #if 0. + +2003-03-31 Geert Bosch + + PR ada/10020 + * link.c : Fix misspelled "const" keyword + +2003-03-23 Mark Mitchell + + PR c++/7086 + * utils2.c: Adjust calls to put_var_into_stack. + +2003-03-12 Nathanael Nerode + + * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC. + +2003-03-08 Neil Booth + + * misc.c (gnat_init): Update for new prototype. + +2003-03-05 Olivier Hainque + + ada/9961 + * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid + warning, and fix return type for the IN_RTS && !SJLJ case. + +2003-03-04 Tom Tromey + + * Make-lang.in (ada.tags): New target. + +2003-03-04 Olivier Hainque + + ada/9911 + * a-except.adb (Unwind_RaiseException): Import a GNAT specific + wrapper, which name remains constant whatever underlying GCC + scheme. + + * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing + the stable interface needed for a-except. + +2003-03-02 Andreas Jaeger + + * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi, + gnat_ug_wnt.texi: Regenerate. + +2003-03-02 Laurent Guerby + + * Makefile.in (install-gnatlib): Match previous change there + so it works. + +2003-02-28 Andreas Schwab + + * Make-lang.in (install-gnatlib): Change to ada directory before + running make instead of using ada/Makefile directly. + +2003-02-18 Ben Elliston + + Part of PR ada/9406 + * gnat_ug.texi (Binder output file): Grammar fix. + +2003-02-18 Ben Elliston + + PR other/7350 + * 5qtaprop.adb (Sleep): Fix typo in comment. + +2003-02-04 Joseph S. Myers + + * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2. + * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi, + gnat_ug_wnt.texi: Regenerate. + +2003-02-03 Christian Cornelssen + + * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir) + be created if necessary. + (ada.install-common): Let $(DESTDIR)$(bindir) be created + if necessary. Remove erroneous and redundant gnatchop + installation commands. Test for gnatdll before attempting + to install it. + (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr, + and gnatdll from all plausible locations. + +2003-02-01 Richard Sandiford + + * utils2.c (build_unary_op): Don't check flag_volatile. + * gnat_ug.texi: Remove -fvolatile from example. + * gnat_ug_vxw.texi: Likewise. + +2003-01-29 Laurent Guerby + + PR ada/8344 + * final.c: rename to adafinal.c to avoid file name conflicts with gcc file. + * Makefile.in: match previous change. + * Make-lang.in: match previous change. + +2003-01-29 Joel Sherrill + + * 5rosinte.ads: Add SIGXCPU. + * 5rtpopsp.adb: New file. + * Make-lang.in: Do not build gnatpsta and gnatpsys when cross. + * Makefile.in: Recognize more RTEMS targets and add the RTEMS + specific file 5rtpopsp.adb. + * adaint.h: Add include of when target is RTEMS. This + is likely needed for all newlib targets. + * init.c: Add RTEMS specific version of __gnat_initialize(). + +2003-01-28 Rainer Orth + + * adaint.c, adaint.h, gmem.c, init.c: Update copyright year. + +2003-01-27 Rainer Orth + + * init.c (__gnat_error_handler): Make msg const. + + * gmem.c (convert_addresses): Move declaration ... + * adaint.h: ... here. + * adaint.c (convert_addresses): Adapt addrs type to match + prototype. + + * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format. + +2003-01-24 Andreas Schwab + + * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to + size_t to avoid warning. + +2003-01-21 Zack Weinberg + + * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c. + +2003-01-09 Geoffrey Keating + + * gnat_rm.texi: Remove RCS version number. + + * ada-tree.h (union lang_tree_node): Add chain_next option. + +2003-01-09 Christian Cornelssen + + * Make-lang.in (ada.install-info, ada.install-common, + ada.uninstall): Prepend $(DESTDIR) to the destination + directory in all (un)installation commands. + * Makefile.in (install-gnatlib, install-rts): Ditto. + + + +Copyright (C) 2003 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff --git a/gcc/ada/ChangeLog-2004 b/gcc/ada/ChangeLog-2004 new file mode 100644 index 00000000000..aee7b460d12 --- /dev/null +++ b/gcc/ada/ChangeLog-2004 @@ -0,0 +1,8347 @@ +2004-12-30 Sohail Somani + + PR ada/19128 + * trans.c (gnat_to_gnu): Fix typo: Use correct return variable. + +2004-12-23 Eric Botcazou + + * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference. + * utils2.c (build_unary_op): Likewise. + +2004-12-22 Richard Kenner + + * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED. + +2004-12-19 Richard Henderson + + * trans.c (gigi): Update gimplify_body call. + +2004-12-09 Nathan Sidwell + + * decl.c (gnat_substitute_in_type): Remove SET_TYPE case. + +2004-12-07 Ed Falis + + * s-intman-vxworks.adb (Notify_Exception): removed useless check for + current task being suspended. + + * init.c (__gnat_clear_exception): added to reset VxWorks exception + count. + (__gnat_map_signal): removed test for current task being suspended. + +2004-12-07 Gary Dismukes + + * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values + from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit + targets (such as AAMP). + +2004-12-07 Ed Schonberg + + * atree.adb (Visit_Itype): Create a new name for the generated itype, + because the back-end may otherwise treat it as a redefinition of the + old symbol. + +2004-12-07 Eric Botcazou + + * back_end.adb (Scan_Back_End_Switches): Accept --param. + + * lang-specs.h: Accept --param. + +2004-12-07 Vincent Celier + + * make.adb (Check_Mains, Switches_Of): Adapt to name changes in + package Prj (Current_Spec_Suffix => Ada_Spec_Suffix, + Current_Body_Suffix => Ada_Body_Suffix). + Take into account Externally_Built attribute. + + * clean.adb (In_Extension_Chain): Always return False when one of the + parameter is No_Project. + (Clean_Project): Adapt to changes in package Prj (Lang_Ada => + Ada_Language_Index). + (Gnatclean): Adapt to change in package Prj.Pars (no parameter + Process_Languages for procedure Parse). + + * gnatcmd.adb (Carg_Switches): New table. + (GNATCmd): Put all switches following -cargs in the Carg_Switches table. + Adapt to name changes in package Prj (Current_Spec_Suffix => + Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix). + + * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type + Header_Num and function Hash are now declared in package Prj, + not Prj.Com. + + * prj.adb (Suffix_Of): New function. + (Set (Suffix)): New procedure. + (Hash): One function moved from Prj.Com + (Is_Present, Language_Processing_Data_Of): New functions + (Set): Two new procedures + (Add_Language_Name, Display_Language_Name): New procedures + + * prj.ads: (Suffix_Of): New function + (Set (Suffix)): New procedure + Add several types and tables for multi-language support. + (Header_Num): Type moved from Prj.Com + (Hash): Two functions moved from Prj.Com + (Is_Present, Language_Processing_Data_Of): New functions + (Set): Two new procedures + (Add_Language_Name, Display_Language_Name): New procedures + (Naming): Component name changes: + Current_Spec_Suffix => Ada_Spec_Suffix, + Current_Body_Suffix => Ada_Body_Suffix. Add new components: + Impl_Suffixes, Supp_Suffixes. + (Project_Data): New components: Externally_Built, Supp_Languages, + First_Language_Processing, Supp_Language_Processing, Default_Linker, + Default_Linker_Path. + + * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and + new package Language_Processing with its attributes (Compiler_Driver, + Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option, + Binder_Driver, Default_Linker). + + * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj. + (Header_Num): Type moved to package Prj + + * prj-env.adb: Adapt to name changes in package Prj + (Current_Spec_Suffix => Ada_Spec_Suffix, + Current_Body_Suffix => Ada_Body_Suffix). + + * prj-ext.adb: Add the default project dir (/log/gnat) by + default to the project path, except the "-" is one of the directories + in env var ADA_PROJECT_PATH. + (Current_Project_Path): Global variable, replacing Project_Path + that was in the body of Prj.Part. + (Project_Path): New function + (Set_Project_Path): New procedure + Initialize Current_Project_Path during elaboration of the package + Remove dependency on Prj.Com, no longer needed + + * prj-ext.ads (Project_Path): New function + (Set_Project_Path): New procedure + + * prj-nmsc.adb (Body_Suffix_Of): New function. Returns . when no + suffix is defined for language . + (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of + accessing directly the components of Naming. + (Look_For_Sources): Use Set (Suffix) to set the suffix of a language. + Reorganise of this package. + Break procedure Check in several procedures. + + * prj-nmsc.ads: Replace all procedures (Ada_Check, + Other_Languages_Check and Language_Independent_Check) with a single + procedure Check. + + * prj-pars.ads, prj-pars.adb (Parse): Remove parameter + Process_Languages, no longer needed. + + * prj-part.adb (Project_Path): Move to the body of Prj.Ext as + Current_Project_Path. + Remove elaboration code, moved to the body of Prj.Ext + Use new function Prj.Ext.Project_Path instead of old variable + Project_Path. + (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path. + When comparing with project paths on the stack, first put the resolved + path in canonical case. + (Parse_Single_Project): Set the path name of the project file in the + tree to the normalized path. + + * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove + parameter Process_Languages, no longer needed. + (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and + Other_Languages_Check. + + * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path + to store the resolved canonical path of the project file. + Remove dependency to Prj.Com, no longer needed + + * prj-util.adb: Adapt to name changes in package Prj + (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix => + Ada_Body_Suffix). + + * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver, + Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker, + Externally_Built, Include_Option, Language_Processing. + + * makegpr.adb: Numerous changes due to changes in packages + Prj and Prj.Nmsc. + + * gnatls.adb: Add the default project dir (/log/gnat) by + default to the project path, except whe "-" is one of the directories + in env var ADA_PROJECT_PATH. + (Gnatls): In verbose mode, add the new section "Project Search Path:" + +2004-12-07 Robert Dewar + + * debug.adb: Document that -gnatdA automatically sets -gnatR3m + + * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically + set -gnatR3m mode. + + * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA + flag. No longer needed now that we handle this in gnat1drv.adb. + + * repinfo.ads: Minor reformatting + +2004-12-07 Richard Kenner + Olivier Hainque + Eric Botcazou + + * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for + TYPE_SIZE_UNIT of result type if SIZE is not specified. + (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation + of a bitfield, which we know is useless and causes trouble because of + alignment implications. + + * utils.c (create_var_decl): Set DECL_COMMON again on targets without + BSS sections. + (process_attributes): Clear DECL_COMMON again when a section attribute + is present. + (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or + SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT. + (create_field_decl): Special case ADDRESSABLE negative to mean + "no bitfield creation", to be used by make_aligning_type. Don't + restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode + fields claimed addressable still have to be bitfields. Use + value_factor_p instead of a raw binop construction to check for the + position's alignment. + +2004-12-07 Geert Bosch + + * eval_fat.adb: Revert previous change. + +2004-12-07 Thomas Quinot + Ed Schonberg + + * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component + with an implicit dereference as its prefix, use + Insert_Explicit_Dereference instead of merely rewriting the prefix into + an explicit dereference. This ensures that a reference to the original + prefix is generated, if appropriate. + + * sem_util.adb (Insert_Explicit_Dereference): When an implicit + dereference is rewritten to an explicit one, generate a reference to + the entity denoted by its prefix using the original prefix node, so + the dereference can be properly recorded as a read of the denoted + access value, if appropriate. + + * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from + emitting 'assigned but never read' warning on a variable on the basis + that it has an access type. + (Check_References): Emit unreferenced warning when the scope is a + subprogram body. + +2004-12-07 Robert Dewar + Ed Schonberg + + * exp_ch6.adb (Expand_Call): Add comment on handling of back end + intrinsic + + * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic, + leaving call unchanged. + This deals with the case where the pragma Import specified + an external name, to be handled by the back end. + + * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of + subprogram which is Imported with convention Intrinsic if an + External_Name argument is specified. + (Process_Import_Or_Interface): Properly diagnose link name argument. + (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion + with Sem_Ch6.Cannot_Inline. + (Process_Inline): Provide separate warning for inapplicable inline + pragma. + (Cannot_Inline): Reject subprograms that have an at_end handler, so that + treatment is uniform on different targets. + +2004-12-07 Ed Schonberg + + * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of + construct is rewritten, preserve end label to permit source navigation. + +2004-12-07 Thomas Quinot + + * exp_dist.adb (Specific_Build_General_Calling_Stubs, + Specific_Build_Stub_Target): New subprograms. + (Build_Subprogram_Calling_Stubs): Make this procedure independent from + the PCS implementation used, using the above PCS-customized subprograms. + Minor reformatting. + (PolyORB_Support.Helpers): New subunit containing supporting subprograms + for generation of DSA code targeted to the PolyORB PCS. + (Add_Stub_Type): Rewrite to isolate the parts that are specific to one + implementation of the partition communication subsystem in ancillary + subprograms. + (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type, + PolyORB_Support.Build_Stub_Type): New subrograms containing the + PCS-specific part of Add_Stub_Type. + (Insert_Partition_Check): Use runtime library function to perform + E.4(19) check. + + * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref + (RE_Same_Partition): New entity, from s-parint. + + * s-parint.ads, s-parint.adb (Same_Partition): New subprogram. + +2004-12-07 Gary Dismukes + + * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb: + Output the copyright message on a separate line from the version + message. + +2004-12-07 Joel Brobecker + + * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a + compile-time warning. + +2004-12-07 Robert Dewar + + * g-regpat.adb: (Match): Change a misuse of or to or else + +2004-12-07 Ed Schonberg + + * lib-xref.adb: + (Generate_Reference): Handle properly a reference to an entry formal, + when an accept statement has a pragma Unreferenced for it. + + * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag + and the Has_Pragma_Unreferenced flag for each formal before analyzing + the body, to ensure that warnings are properly emitted for each accept + statement of a given task entry. + +2004-12-07 Vasiliy Fofanov + + * Makefile.in: Add support for foreign threads on VMS. + +2004-12-07 Richard Kenner + + * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P): + Remove. + (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New. + + * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls. + + * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed + exception. + (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it. + +2004-12-07 Robert Dewar + + * nlists.adb (Prepend_Debug): Remove parameters and nest within + Prepend. + (Remove_Next_Debug): Same fix + + * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do + maintain back pointers now, though we did not used to, and comments + were out of date). + (Prepend): Remove pragma Inline. + (Remove_Next): Same cleanup + +2004-12-07 Thomas Quinot + + * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram + used to record an implicit dereference as a read operation on its + prefix when operating under -gnatc. Necessary to avoid spurious + 'variable assigned but never read' warnings in that mode. + (Process_Indexed_Component, Analyze_Selected_Component): When the prefix + is a non-overloaded implicit dereference, call the above subprogram to + ensure proper recording of references. + +2004-12-07 Gary Dismukes + + * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs + to be resolved later as part of Analyze_Iteration_Scheme's call to + Make_Index. + +2004-12-07 Ed Schonberg + + * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the + prefix is not a scalar type, place error message on prefix, not on + type entity. + +2004-12-07 Bernard Banner + + * vxaddr2line.adb: Add support for x86 vxworks + +2004-12-07 Thomas Quinot + + * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify + documentation of the behaviour of these functions when passed an IP + address that has no record in the system hosts database and no reverse + record in the DNS. + + * cstand.adb, a-tags.ads: Fix typos in comment. + +2004-12-07 Robert Dewar + + * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb, + exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb, + sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb, + s-poosiz.ads: Minor reformatting + + * make.adb: Minor reformatting + Add some ??? comments asking for more comments + + * s-poosiz.adb: Minor reformatting + Add comments on alignment requirement + + * sinfo.ads: Remove obsolete comment and fix typo. + +2004-12-07 Vincent Celier + Sergey Rybin + + * gnat_ugn.texi: Update the section "The GNAT Driver and Project + Files" with the new tool and package names. + Reformatting to suppress most of the warnings for line too long + Document the new section "Project Search Path:" in the output of + gnatls -v. + Add gnatmetric section + +2004-12-07 Vincent Celier + + * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and + -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps + and -eit to -ept. Added qualifier + /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec. + +2004-11-27 Andreas Schwab + + * Make-lang.in (ada/trans.o): Depend on $(EXPR_H). + +2004-11-25 Arnaud Charlet + + * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from + internal implementation unit GNAT.Sockets.Thin, + as their usage for sockets is non-portable (using the read and write + functions from the system runtime library is fine on UNIX but won't + work under Windows). + + * mingw32.h: Update copyright notice. + +2004-11-25 Arnaud Charlet + + * ada-tree.h: Minor reformatting of previous change to avoid lines + longer than 79 characters. + +2004-11-25 Olivier Hainque + + * tb-gcc.c: GCC infrastructure based implementation of + __gnat_backtrace. + +2004-11-24 Steven Bosscher + + * misc.c (gnat_post_options): Don't clear + flag_inline_functions. + +2004-11-22 Andrew Pinski + + PR ada/17986 + * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the + tree. + +2004-11-21 Andreas Jaeger + + * stylesw.adb: Change Style_Check_Subprogram_Order to + Style_Check_Order_Subprograms. + +2004-11-18 Arnaud Charlet + + * adaint.h, adaint.c + (__gnat_portable_spawn): Fix cast of spawnvp third parameter + to avoid warnings. + Add also a cast to kill another warning. + (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags + parameter with the priority class of the parent process instead of + always using the NORMAL_PRIORITY_CLASS. + (__gnat_dup): New function. + (__gnat_dup2): New function. + (__gnat_is_symbolic_link): Enable the effective body of this + function when __APPLE__ is defined. + + * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures. + Update comments. + +2004-11-18 Olivier Hainque + + * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the + address of which may be used to represent "others" and "all others" + choices in exception tables, instead of the current harcoded + (void *)0 and (void *)1. + (Setup_Exception): Do nothing in the GNAT SJLJ case. + + * gigi.h (others_decl, all_others_decl): New decls representing the + new Others_Value and All_Others_Value objects. + (struct attrib): Rename "arg" component as "args", since GCC expects a + list of arguments in there. + + * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the + corresponding objects exported by a-exexpr, instead of hardcoded dummy + addresses. + + * trans.c (Exception_Handler_to_gnu_zcx): Use the address of + others_decl and all_others_decl instead of hardcoded dummy addresses + to represent "others" and "all others" choices, which is cleaner and + more flexible with respect to the possible eh pointer encoding policies. + + * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl. + (process_attributes): Account for the naming change of the "args" + attribute list entry component. + + * decl.c (build_attr_list): Rename into prepend_attributes to allow + cumulating attributes for different entities into a single list. + (gnat_to_gnu_entity): Use prepend_attributes to build the list of + attributes for the current entity and propagate first subtype + attributes to other subtypes. + : Attribute arguments are attr->args and not + attr->arg any more. + (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an + argument provided, as this is what GCC expects. Use NULL_TREE instead + of 0 for trees. + +2004-11-18 Robert Dewar + + * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb: + Minor reformatting througout (including new function specs) + Add ??? comments asking for clarification. + +2004-11-18 Thomas Quinot + + * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove + incomplete duplicate implementation of this subprogram from butil. + +2004-11-18 Thomas Quinot + + * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This + procedures factors the common processing for building an RPC receiver + for an RCI package or an RACW type. + Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of + Build_Remote_Subprogram_Proxy_Type into proper alphabetical order. + (Get_PCS_Name): New subprogram. Returns the name of the PCS currently + in use. + (Specific_Add_RACW_Features): New subprogram. PCS-specific part of + Add_RACW_Features. + (Specific_Add_RAST_Features): New subprogram. PCS-specific part of + Add_RAST_Features. + (Assign_Subprogram_Identifier): New subprogram. Provision for assigning + distribution subprogram identifiers that are either subprogram numbers + or strings. + (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and + string distribution identifiers assigned to a given subprogram. + (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids. + (Add_RAS_Dereference_TSS): Add comments. + (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter + is not referenced yet because it will be used by the PolyORB DSA + implementation. + (Insert_Partition_Check): Remove fossile code. + (First_RCI_Subprogram_Id): Document this constant. + (Add_RAS_Access_TSS): Correct the setting of the Etype of the + RAS_Access TSS. + (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are + replaced with calls to Get_Library_Unit_Name_String. Previously there + were several instances of the same code in different locations in the + compiler; this checkin completes the replacement of all of these + instances with calls to a common subprogram. + Minor reformatting. + + * sem_dist.adb: Remove comment noting that RPC receiver generation + should be disabled for RACWs that implement RASs. + (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String. + + * sem_util.ads, sem_util.adb (Has_Stream): New function + (Get_Library_Unit_Name_String): New subprogram to retrieve the fully + qualified name of a library unit into the name buffer. + (Note_Possible_Modification): Generate a reference only + if the context comes from source. + + * snames.ads (PCS_Names): New subtype corresponding to names of + supported implementations of the Partition Communication Subsystem + (PCS) (i.e. the runtime library support modules for the distributed + systems annex). + +2004-11-18 Robert Dewar + Ed Schonberg + + * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used + (Has_Rep_Pragma): New function + (Has_Attribute_Definition_Clause): New function + (Record_Rep_Pragma): Moved here from sem_ch13.adb + (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma + + * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb + + * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure + (Expand_Pragma_Psect_Object): New procedure + These procedures contain the revised and cleaned up processing for + these two pragmas. This processing was formerly in Sem_Prag, but + is more appropriately moved here. The cleanup involves making sure + that the pragmas are properly attached to the tree, and that no + nodes are improperly shared. + + * sem_prag.adb: Move expansion of Common_Object and Psect_Object + pragmas to Exp_Prag, which is more appropriate. + Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to + check for duplicates Remove use of Is_Psected flag, no longer needed. + Use new Make_String_Literal function with string. + + * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes + that are functions return universal values, that have to be converted + to the context type. + Use new Make_String_Literal function with string. + (Get_Stream_Convert_Pragma): New function, replaces the use of + Get_Rep_Pragma, which had to be kludged to work in this case. + + * freeze.adb: Use new Has_Rep_Pragma function + + * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal + function with string. + Use new Has_Rep_Pragma function. + + * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes + string argument. + +2004-11-18 Robert Dewar + + * errout.ads, errout.adb: (First_Sloc): New function + + * par-ch5.adb (P_Condition): Check for redundant parens is now a style + check (-gnatyx) instead of being included as a redundant construct + warning. + + * sem_ch6.adb: Change name Style_Check_Subprogram_Order to + Style_Check_Order_Subprograms. + + * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads, + stylesw.adb: Add Style_Check_Xtra_Parens + + * usage.adb: Add line for -gnatyx (check extra parens) + + * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx + +2004-11-18 Ed Schonberg + Robert Dewar + + * exp_ch4.adb (Expand_N_Selected_Component): If the component is the + discriminant of a constrained subtype, analyze the copy of the + corresponding constraint, because in some cases it may be only + partially analyzed. + Removes long-lived ??? comments. + + * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that + handled controlled or secondary-stack expressions within the + iteration_scheme of a loop. + + * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate + bounds that may contain functions calls, to prevent memory leaks when + the bound contains a call to a function that uses the secondary stack. + (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to + generate temporaries for loop bounds that might contain function calls + that require secondary stack and/or finalization actions. + + * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a + selected component and the selector is overloadable (not just a + function) treat as function call, Analyze_Call will disambiguate if + necessary. + (Analyze_Selected_Component): Do not generate an actual subtype for the + selected component if expansion is disabled. The actual subtype is only + needed for constraint checks. + (Analyze_Allocator): If restriction No_Streams is set, then do + not permit objects to be declared of a stream type, or of a + composite type containing a stream. + + * restrict.ads: Remove the a-stream entry from Unit_Array, since + No_Streams no longer prohibits with'ing this package. + + * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has + discriminants, but the parent base has unknown discriminants, there is + no discriminant constraint to inherit. Such a discrepancy can arise + when the actual for a formal type with unknown discriminants is a + similar private type whose full view has discriminants. + (Analyze_Object_Declaration): If restriction No_Streams is set, then + do not permit objects to be declared of a stream type, or of a + composite type containing a stream. + +2004-11-18 Ed Schonberg + + * exp_dbug.ads: Update documentation to reflect simpler encoding for + protected operations. + + * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in + generated name, it complicates decoding in gdb and hinders debugging + of protected operations. + (Build_Barrier_Function_Specification): Set the Needs_Debug_Info + flag for the protected entry barrier function. + (Build_Protected_Entry_Specification): Set the Needs_Debug_Info + flag for the protected entry function. + +2004-11-18 Nicolas Setton + + * expect.c: Define __unix__ when __APPLE__ is defined. + + * Makefile.in: Inform the value of the variable GMEM_LIB in the + Darwin-specific section. + + * lang-specs.h: Change the placement of the %1 marker. + Works around the fact that gcc adds -fPIC by default under Darwin. + +2004-11-18 Ed Schonberg + + * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original + type of the object with the packed array type, set the Analyzed flag + on the object if it is an entity or simple indexed component, to avoid + spurious type errors. + +2004-11-18 Gary Dismukes + + * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb, + gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a + separate line from the version message. + +2004-11-18 Ed Falis + + * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653 + vthreads. + (init_float): Eliminate initialization of floating point status for + AE653. The instructions have no effect for vThreads. + +2004-11-18 Vincent Celier + + * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when + gnatbind is invoked with -shared. + +2004-11-18 Jose Ruiz + + * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error + for Detect_Blocking which is redundant with the check done within the + procedure Protected_Single_Entry_Call. + (Lock_Read_Only_Entry): Remove the code for raising Program_Error for + Detect_Blocking which is redundant with the check done within the + procedure Protected_Single_Entry_Call. + +2004-11-18 Vincent Celier + + * makegpr.adb (Compile): Put the compiling switches (in package + Compiler and on the command line) immediately after "-c", instead of + at the end of the command line invocation of the compiler, when + compiling a non-Ada file. + (Build_Global_Archive): When there is no need to rebuild the archive, + set Global_Archive_Exists, so that the archive is passed to the linker + if one is needed. + +2004-11-18 Robert Dewar + Sergey Rybin + + * gnat_ugn.texi: + Remove extra paren check from list of checks for redundant constructs + Add documentation of new -gnatyx style check (check extra parens) + Remove paragraph about gnatelim debug options. + + * gnat_rm.texi: Document that Ada.Streams now forbids creating stream + objects rather than forbidding dependencies on the package Ada.Streams. + + * sinfo.ads: Add ??? note that we should document pragmas passed to + back end. + + * g-expect.ads: Fix a few typos in the comments. + +2004-11-09 Joseph S. Myers + + * misc.c (gnat_handle_option): Use %< and %> for quoting in + warning message. + +2004-11-08 Rainer Orth + + * a-numaux-x86.adb (Tan): Fix fdivp syntax. + +2004-11-07 Andreas Schwab + + * Makefile.in (install-gnatlib): Remove spurious hyphen. + +2004-11-02 Andrew Pinski + + PR ada/18228 + * Makefile.in (darwin): Set soext to .dylib. + +2004-10-26 Vincent Celier + Thomas Quinot + + * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads: + (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as + there is no use of GNAT.Sockets.Constants. + Remove remaining pragma Import for C_Write + Remove C_Read and C_Write from internal implementation unit + GNAT.Sockets.Thin, as their usage for sockets is non-portable (using + the read and write functions from the system runtime library is fine + on UNIX but won't work under Windows). + + * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write. + (Check_Selector): Use C_Recv instead of C_Read. + Selectors are the GNAT.Sockets abstraction to perform a select() + call on a set of descriptors. To allow abortion of an ongoing + select operation, some data is written to a dedicated socket that + is always monitored. + Under Windows, the write and read library functions cannot operate + on sockets, so we need to use send and recv instead, which is portable + across all supported platforms. + + * g-socthi.ads: Remove C_Read and C_Write from internal implementation + unit GNAT.Sockets.Thin, as their usage for sockets is non-portable + (using the read and write functions from the system runtime library is + fine on UNIX but won't work under Windows). + +2004-10-26 Nicolas Setton + + * mlib-tgt-darwin.adb: New file. + + * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, + mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb, + mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, + mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New + subprogram body. + + * Makefile.in: Add support for building shared libraries under Darwin. + (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing + the low level EH init subprogram to be called from __gnat_initialize. + + * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram, + indicates which options to pass to the archive indexer. + + * mlib-utl.adb: Add support for calling ranlib with additional + options. This is needed for instance under Mac OS X. + (Ranlib_Options): New global variable, used to store the potential + options to pass to ranlib. + (Ar): Use Ranlib_Options when spawning ranlib. + (Initialize): Set the value of ranlib option. + +2004-10-26 Olivier Hainque + + * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K + instead of 8K, to reflect the real potential needs for stack-checking + in the ZCX case. + +2004-10-26 Pascal Obry + + * s-parame-mingw.adb (Default_Stack_Size): Add some comments. + + * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On + Windows only the initial thread stack size can be set so it is good to + start we a low stack size. + The OS will adjust the size as needed. + +2004-10-26 Olivier Hainque + Nicolas Setton + + * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with + "__unix__" instead of "unix". + The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the + sections were just mistakenly ignored. The former is + implicitely defined by gcc2.8, gcc3.2 and gcc3.4. + Update #ifdef preprocessor macro to detect the symbol __hpux__ instead + of hpux. This prevents an unwanted definition of the symbol + convert_addresses in adaint.o. + +2004-10-26 Gary Dismukes + + * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for + compatibility with type Unwind_Word on 16-bit targets such as AAMP. + +2004-10-26 Cyrille Comar + + * a-filico.ads, a-filico.adb: fix incorrect header. + +2004-10-26 Javier Miranda + + * a-ststio.ads: Fix typo in identifier + +2004-10-26 Thomas Quinot + + * sem_ch4.adb: Minor reformatting. + +2004-10-26 Ed Schonberg + + * checks.adb (Expr_Known_Valid): If floating-point validity checks are + enabled, check the result of unary and binary operations when the + expression is the right-hand side of an assignment. + +2004-10-26 Vincent Celier + + * clean.adb (Delete): Do not output warnings when in quiet output and + not in verbose mode. + (Force_Deletions): New Boolean flag, defaulted to False + (Delete): Only delete a file if it is writable, and when + Force_Deletions is True. + (Parse_Cmd_Line): New switch -f: set Force_Deletions to True + (Usage): Line for new switch -f + (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our + own. + +2004-10-26 Eric Botcazou + + * decl.c (gnat_to_gnu_field): Use the type of the inner object for a + JM type only if its size matches that of the wrapper. When a size is + prescribed and the field is not aliased, remove the wrapper of a JM + type only if the size is not greater than that of the packed array. + (gnat_to_gnu_entity): Change the extension of packed array wrappers + from LJM to JM. + +2004-10-26 Geert Bosch + + * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used. + (Succ): Re-implement using Scaling, Exponent and Ceiling attributes. + (Pred): Implement in terms of Succ. + +2004-10-26 Ed Schonberg + + * exp_aggr.adb (Safe_Component): An aggregate component that is an + unchecked conversion is safe for in-place use if the expression of the + conversion is safe. + (Expand_Array_Aggregate): An aggregate that initializes an allocator may + be expandable in place even if the aggregate does not come from source. + (Convert_Array_Aggr_In_Allocator): New procedure to initialize the + designated object of an allocator in place, rather than building it + first on the stack. The previous scheme forces a full copy of the array, + and may be altogether unsusable if the size of the array is too large + for stack allocation. + +2004-10-26 Robert Dewar + + * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array + compares if the component is atomic. + + * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for + array assignment if the component type is atomic. + +2004-10-26 Ed Schonberg + Eric Botcazou + + * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter + is aliased and is a by_reference type, do not pass by copy. + (Expand_N_Function_Call) : New function to + detect whether the call is in the right side of an assignment or + the expression of an object declaration. Recurse on component + association within aggregates. + Call it in the condition that determines whether the temporary is + necessary for correct stack-checking. + +2004-10-26 Thomas Quinot + + * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter + RACW_Type, used in the PolyORB version. + Rename RCI_Info to RCI_Locator, for consistency between the PolyORB + version and the GARLIC version. + + * snames.ads, snames.adb, s-parint.ads, s-parint.adb: + Rename RCI_Info to RCI_Locator for better consistency between the + GARLIC and PolyORB versions of the distributed systems annex. + (DSA_Implementation_Name): This enumeration lists the possible + implementations of the Partition Communication Subsystem for the + Distributed Systems Annex (DSA). The three available implementations + are the dummy stub implementation (No_DSA), and two versions based on + two different distribution runtime libraries: GARLIC and PolyORB. Both + the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution + technology. + Change the literal GLADE_DSA to GARLIC_DSA to accurately describe + that organization. + + * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency + between the GARLIC and PolyORB versions of the distributed systems + annex. + Remove RE_Unbounded_Reclaim_Pool since it is unused. + +2004-10-26 Gary Dismukes + + * gnat1drv.adb: Suppress calling the back end when + Frontend_Layout_On_Target is true. + +2004-10-26 Thomas Quinot + + * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable, + Set_Read_Only): New subprograms. + These new routines allow the user to set or unset the Owner execute + and Owner write permission flags on a file. + + * makegpr.adb, mlib.adb, mlib-prj.adb: Use + GNAT.OS_Lib.Set_Executable instead of rolling our own. + +2004-10-26 Matthew Gingell + + * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI. + +2004-10-26 Pascal Obry + + * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the + memory before the faulting page we properly test the process read + access for this address using appropriate Win32 routine. + (HPUX sections): guard with "__hpux__" instead of "hpux". + +2004-10-26 Robert Dewar + + * lib-xref.adb (Generate_Reference): Don't complain about reference to + entry parameter if pragma Unreferenced set, since we do not properly + handle the case of multiple parameters. + +2004-10-26 Vincent Celier + + * prj-env.adb: (Contains_ALI_Files): New Boolean function + (Ada_Objects_Path.Add): For a library project, add to the object path + the library directory only if there is no object directory or if the + library directory contains ALI files. + (Set_Ada_Paths.Add.Recursive_Add): Ditto + +2004-10-26 Vincent Celier + + * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual + extension of library projects. + + * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project + path defaults to ".:/lib/gnat". + (Parse): For an extending all project, allow direct import of a project + that is virtually extended. + + * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with + the specified name is directly imported, return its ID. Otherwise, if + an extension of this project is imported, return the ID of the + extension. + +2004-10-26 Robert Dewar + + * s-arit64.adb: (Le3): New function, used by Scaled_Divide + (Sub3): New procedure, used by Scaled_Divide + (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also + correct more than one instance of failure to propagate carries + correctly. + (Double_Divide): Handle overflow case of largest negative number + divided by minus one. + + * s-arit64.ads (Double_Divide): Document that overflow can occur in + the case of a quotient value out of range. + Fix comments. + +2004-10-26 Robert Dewar + + * s-bitops.adb (Bit_Eq): Remove redundant check. + + * s-bitops.ads: Minor comment updates + Change some occurrences of Address to System.Address + + * s-carsi8.ads: Fix minor cut-and-paste error in comments + +2004-10-26 Ed Schonberg + + * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper + accessibility check to prefix that is a protected operation. + +2004-10-26 Ed Schonberg + + * sem_ch10.adb (Optional_Subunit): If file of expected subunit is + empty, post message on stub. + +2004-10-26 Ed Schonberg + Javier Miranda + + * sem_ch12.adb (In_Main_Context): Predicate to determine whether the + current instance appears within a unit that is directly in the context + of the main unit. + Used to determine whether the body of the instance should be analyzed + immediately after its spec, to make its subprogram bodies available + for front-end inlining. + (Analyze_Formal_Array_Type): Cleanup condition that checks that range + constraint is not allowed on the component type (AARM 12.5.3(3)) + +2004-10-26 Cyrille Comar + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case + 'Storage_Pool): enhance, document & limit detection of non-sharable + internal pools. + + * impunit.adb: Make System.Pool_Global and System.Pool_Local visible. + + * s-pooglo.ads: Add more documentation now that this pool is properly + documented. + +2004-10-26 Ed Schonberg + + * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task + or protected type with discriminants, do not constrain the + corresponding record type if the subtype declaration has no + discriminant constraints. This can be the case in source code, or in + the subtype declaration created to rename an actual type within an + instantiation. + +2004-10-26 Ed Schonberg + + * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a + different kind of stub (possibly wrong name for file), do not check + for conformance. + (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body + includes call to some function that returns an unconstrained type, do + not inline. + +2004-10-26 Ed Schonberg + + * sem_elab.adb (Check_Elab_Call): Do not check a call that does not + appear in the code for the main unit. Dependencies among units in the + context of the main unit are established when those other units are + compiled. Otherwise spurious elaboration constraints can generate + incorrect elaboration circularities. + +2004-10-26 Thomas Quinot + Ed Schonberg + + * sem_util.adb (Is_Aliased_View): Defend against the case where this + subprogram is called with a parameter that is not an object name. This + situation arises for some cases of illegal code, which is diagnosed + later, and in this case it is wrong to call Is_Aliased, as that might + cause a compiler crash. + (Explain_Limited_Type): Refine previous fix to include + inherited components of derived types, to provide complete information. + + * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that + is the prival for a protected object. + It is necessary to mark this entity as a variable, in addition to + flagging it as Aliased, because Sem_Util.Is_Aliased_View has been + modified to avoid checking the Aliased flag on entities that are not + objects. (Checking that flag for non-objects is erroneous and could + lead to a compiler crash). + +2004-10-26 Robert Dewar + + * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if + X_Frac = 0.5, then we know that the number X must be positive. + (Succ): Remove the same redundant test, and also fix the primary test + to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong. + Minor reformatting + (Decompose): Add fuller comments to spec + +2004-10-26 Pascal Obry + + * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr + validity (process must have read access). Set to 0 in all other cases. + (STOP_FRAME): Now check for ptr validity to avoid a segmentation + violation on Win32. + (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a + segmentation violation. + +2004-10-26 Eric Botcazou + + * trans.c (call_to_gnu): For an (in-)out parameter passed by reference + whose type is a constructed subtype of an aliased object with an + unconstrained nominal subtype, convert the actual to the constructed + subtype before taking its address. + +2004-10-26 Vincent Celier + + * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb + (Is_Path_Name_Case_Sensitive): New function + + * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure + (Base_Name, Simple_Name, Current_Directory, Compose, + Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on + the result. + +2004-10-26 Cyrille Comar + Vasiliy Fofanov + Vincent Celier + + * gnat_ugn.texi: Generalize "finding memory problems" section into a + "memory management issues" section and document some of the useful + memory pools provided as part of the GNAT library. + Remove "virtual" from declaration of A::method2 in + the simple example of Ada/C++ mixed system. + Library Projects may be virtually extended: their virtual extensions + are not Library Projects. + Added section on extending project hierarchies. + +2004-10-19 Aaron W. LaFramboise + + * adaint.c (__gnat_get_libraries_from_registry): Cast value + to LPBYTE. + (__gnat_portable_spawn): Remove const. + + * mingw32.h (MAXPATHLEN): Check for previous definition. + +2004-10-17 Matthias Klose + + * gnatvsn.ads: Set gnat library version to 4.0. + +2004-10-05 Vincent Celier + + * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2 + +2004-10-04 Laurent Guerby + + PR ada/15156 + * Makefile.in: Define and use RANLIB_FLAGS. + +2004-10-04 Pascal Obry + + * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all + other x86 platforms). + +2004-10-04 Olivier Hainque + + * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense + in general and triggers stack alignment adjustment for thread entry + points on targets where this is necessary. + +2004-10-04 Bernard Banner + + PR ada/13897 + * Makefile.in: Add section for powerpc linux + Add variant i-vxwork-x86.ads + + * i-vxwork-x86.ads, system-linux-ppc.ads: New files. + +2004-10-04 Olivier Hainque + + * init.c (__gnat_initialize): Call an Ada subprogram to perform the + table registration calls when need be. Ensures no reference to the crt + ctors symbol are issued in the SJLJ case, which avoids possible + undefined symbol errors in the case of modules to be statically linked + with the kernel. + +2004-10-04 Javier Miranda + + * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand + in-line the code corresponding to subprogram Analyze_Actuals. In + addition, analyze the actuals only in case of subprogram call. + +2004-10-04 Ed Falis + + * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size + +2004-10-04 Sergey Rybin + + * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter + in the documentation. + +2004-10-04 Robert Dewar + + * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as + IF and CASE. + (Analyze_Block_Statement): Add circuitry to detect following dead code + (Check_Unreachable_Code): Handle case of block exit + +2004-10-04 Robert Dewar + + * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call + (XMatchD): Avoid warning for Logic_Error call + +2004-10-04 Robert Dewar + + * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not + consider expressions buried within a procedure actual to be an actual. + This caused some blowups with uses of packed slices within a procedure + actual. + +2004-10-04 Robert Dewar + + * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no + longer need to be initialized to zero. + (Get_Simple_Init_Val): Modular packed arrays no longer need to be + initialized to zero. + + * checks.adb (Expr_Known_Valid): Packed arrays are now always + considered valid, even if the representation is modular. That's correct + now that we no longer initialize packed modular arrays to zero. + + * exp_dbug.ads: Clarify documentation on handling of PAD and JM + suffixes. These are now documented as the only cases in which the + debugger ignores outer records. + Previously, the spec allowed arbitrary suffixes for this purpose. + Change name of LJM to JM for packed array pad records + Create separate section on packed array handling, and add a whole new + set of comments to this section describing the situation with packed + modular types and justification requirements depending on endianness. + +2004-10-04 Robert Dewar + + * a-except.adb: Add a comment for last change + + * einfo.ads: Minor spelling correction in comment + + * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting + + * sem_ch11.adb: Fix a case of using | instead of \ for continuation + messages. + + * sem_util.ads: Minor comment update + +2004-10-04 Ed Schonberg + + * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as + Inline_Always when in Configurable_Run_Time mode. + + * sem_prag.adb (Process_Convention): If entity is an inherited + subprogram, apply convention to parent subprogram if in same scope. + (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always + when in Configurable_Run_Time mode. + +2004-10-04 Ed Schonberg + + * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of + class_wide type after component list has been inherited. + +2004-10-04 Ed Schonberg + + * sem_ch12.adb (Check_Generic_Actuals): New predicate + Denotes_Previous_Actual, to handle properly the case of a private + actual that is also the component type of a subsequent array actual. + The visibility status of the first actual is not affected when the + second is installed. + (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to + make fully recursive the treatment of formals of packages declared + with a box. + (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo + the above on exit from an instantiation. + (Denotes_Formal_Package): When called from Restore_Private_Views, ignore + current instantiation which is now complete. + (Analyze_Package_Instantiation): No instantiated body is needed if the + main unit is generic. Efficient, and avoid anomalies when a instance + appears in a package accessed through rtsfind. + +2004-10-04 Ed Schonberg + + * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled, + do not generate a declaration for a temporary if the call is part of a + library-level instantiation. + +2004-10-04 Ed Schonberg + + * sem_util.adb (Explain_Limited_Type): Ignore internal components when + searching for a limited component to flag. + + * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to + expansion of Input, to account for the fact that the implicit call + generated by the attribute reference must freeze the user-defined + stream subprogram. This is only relevant to 'Input, because it can + appear in an object declaration, prior to the body of the subprogram. + + * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that + expansion can proceed and further errors uncovered. + (Minor clean up): Fix cases of using | instead of \ for continuation + messages. + +2004-10-04 Richard Kenner + + * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable. + + * trans.c (assoc_to_constructor): Fix unused var warning if no checking. + (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change. + Use gcc_assert and gcc_unreachable. + + * decl.c (gnat_to_gnu_entity, case object): Check and process a + specified alignment before validating size. + (gnat_to_gnu_entity) : Create a + stripped-down declaration for the type of the inner field when making + a JM type. + + * utils.c (finish_record_type): Do not compute the size in units + incrementally. Instead compute it once for the rep clause case. + Use gcc_assert and gcc_unreachable. + +2004-10-04 Vincent Celier + + * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character + in file name. + (Is_Valid_Path_Name): Take '/' as a directory separator. + +2004-10-04 Vincent Celier + + * prj-part.adb (Parse_Single_Project): Call Is_Extending_All + (Extended_Project) only if Extended_Project is defined, to avoid + assertion error. + (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a + resolved path. + (Parse_Single_Project): Ditto. + + * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call + Add_To_Project_Path for virtual projects. + +2004-10-04 Vincent Celier + + * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, + mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb, + mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, + mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New + parameter Options_2. + + * mlib-prj.ads, mlib-prj.adb (Build_Library): Call + Build_Dynamic_Library with an empty Options_2. + + * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no + default anymore. + + * makegpr.adb (Get_Imported_Directories.add): Remove trailing + directory separator, if any. + (Gprmake): Do not allow mains on the command line for library projects. + Do not attempt to link when the project is a library project. + (Library_Opts): New table to store Library_Options. + (Build_Library): If Library_Options is specified, pass these options + when building a shared library. + +2004-10-04 Jose Ruiz + + * s-tposen.adb (Service_Entry): The object must be always unlocked at + the end of this procedure now that the unlock operation was inserted + by the expander. + +2004-10-04 Jose Ruiz + + * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value + corresponding to the Preallocated_Stacks flags in System. + (Get_Target_Parameters): Including the processing for + Preallocated_Stacks. + + * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads, + system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads, + system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads, + system-linux-x86_64.ads, system-tru64.ads, system-aix.ads, + system-vxworks-sparcv9.ads, system-vxworks-xscale.ads, + system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads, + system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads, + system-vxworks-mips.ads, system-os2.ads, system-interix.ads, + system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, + system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, + system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is + used to signal whether the compiler creates the required stacks and + descriptors for the different tasks (when True) or it is done by the + underlying operating system at run time (when False). + It is initially set to False in all targets. + + * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack + if it is supported by the target. + (Make_Task_Create_Call): Pass the stack address if it has been + previously created. Otherwise pass a Null_Address. + + * snames.adb: Add _stack. + + * snames.ads: Add Name_uStack. Required to allow the expander to + statically allocated task stacks. + + * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add + Stack_Address argument. + Check that its value is equal to Null_Address because this target does + not support the static stack allocation. + +2004-10-04 Thomas Quinot + + * usage.adb: Change "pragma inline" to "pragma Inline" in information + and error messages + +2004-10-04 Thomas Quinot + + * exp_dist.adb: Split declaration of asynchronous flag out of + Add_RACW_Read_Attribute. + Minor reformatting for better alignment with PolyORB version. + Store the entity for the asynchronous flag of an RACW, rather than the + expression, in the asynchronous flags table. This will allow this flag + to be used in other subprograms beside Add_RACW_Read_Attribute. + +2004-10-04 Thomas Quinot + + * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c, + g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads, + g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb, + g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads, + g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads: Add new + sockets constant MSG_NOSIGNAL (Linux-specific). + Add new sockets constant MSG_Forced_Flags, list of flags to be set on + all Send operations. + For Linux, set MSG_NOSIGNAL on all send operations to prevent them + from trigerring SIGPIPE. + Rename components to avoid clash with Ada 2005 possible reserved + word 'interface'. + (Check_Selector): When the select system call returns with an error + condition, propagate Socket_Error to the caller. + +2004-10-01 Jan Hubicka + + * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation. + +2004-09-23 Robert Dewar + + PR ada/17540 + * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here, + instead do this at freeze time (we won't do it if there is an address + clause). + Change "pragma inline" to "pragma Inline" in information and error + messages. + Minor reformatting. + + * freeze.adb (Check_Address_Clause): Remove previous change, not the + right way of doing things after all. + (Freeze_Entity): For object, set Is_Public for imported entities + unless there is an address clause present. + +2004-09-21 Olivier Hainque + + * decl.c (gnat_to_gnu_entity) : Check for a + dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This + ensures proper handling of types with rep clauses, which might have + their TYPE_SIZE set already. + +2004-09-21 Robert Dewar + + * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular + packed array types in both little- and big-endian cases. This change + ensures that we no longer count on the unused bits being initialized + for such types (and in particular ensures that equality testing will + only read the relevant bits). + Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P + These changes mean that we no longer need to initialize small packed + arrays. + (gnat_to_gnu_entity) : Apply the same + optimization to an LJM field as to its parent field. + + * ada-tree.h, trans.c, utils.c, utils2.c: + Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P + +2004-09-20 Jan Hubicka + + * utils.c (gnat_finalize): Remove. + (end_subprog_body): Directly call cgraph_finalize_function; + do not lower the nested functions. + +2004-09-20 Robert Dewar + + PR ada/17540 + * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public + if an address clause is present, since that means that the Import + should be ignored. + +2004-09-20 Arnaud Charlet + + * 5tsystem.ads: Removed, no longer used. + +2004-09-17 Jeffrey D. Oldham + Zack Weinberg + + * ada-tree.def: Use tree_code_class enumeration constants + instead of code letters. + * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c: + Update for new tree-class enumeration constants. + +2004-09-17 Vincent Celier + + * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private + capabilities of the general project manager. + +2004-09-09 Vincent Celier + + * a-direct.ads: Add pragma Ada_05 + (Directory_Entry_Type): Give default value to component Kind to avoid + not initialized warnings. + + * a-direct.adb (Current_Directory): Remove directory separator at the + end. + (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not + an existing directory. + (Fetch_Next_Entry): Give default value to variable Kind to avoid warning + (Size (String)): Function C_Size returns Long_Integer, not File_Size. + Convert the result to File_Size. + + * prj.ads: (Project_Error): New exception + + * prj-attr.adb: Except in procedure Initialize, Fail comes from + Prj.Com, not from Osint. + (Attrs, Package_Attributes): Tables moved to private part of spec + (Add_Attribute, Add_Unknown_Package): Moved to new child package + Prj.Attr.PM. + (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise + Prj.Project_Error after call to Fail. + (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling + Fail. Check that package name is not already in use. + + * prj-attr.ads: Comment updates to indicate that all subprograms may be + used by tools, not only by the project manager, and to indicate that + exception Prj.Prj_Error may be raised in case of problem. + (Add_Unknown_Package, Add_Attribute): Moved to new child package + Prj.Attr.PM. + (Attrs, Package_Attributes): Table instantiations moved from the body to + the private part to be accessible from Prj.Attr.PM body. + + * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package + from new package Prj.Attr.PM. + (Parse_Attribute_Declaration): Call Add_Attribute from new package + Prj.Attr.PM. + + * Makefile.in: Add prj-attr-pm.o to gnatmake object list + + * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check + instead of Elaboration_Checks). + + * a-calend.adb: Minor reformatting + +2004-09-09 Richard Kenner + + * gigi.h (maybe_pad_type): New declaration. + (create_subprog_type): New arg RETURNS_BY_TARGET_PTR. + + * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro. + + * cuintp.c: Convert to use buildN. + + * decl.c (maybe_pad_type): No longer static. + (gnat_to_gnu_entity, case E_Function): Handle case of returning by + target pointer. + Convert to use buildN. + + * trans.c (call_to_gnu): Add arg GNU_TARGET; support + TYPE_RETURNS_BY_TARGET_PTR_P. All callers changed. + (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on + RHS. + (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P. + (gnat_gimplify_expr, case ADDR_EXPR): New case. + Convert to use buildN. + + * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and + TREE_READONLY for const. + Convert to use buildN. + + * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR. + (create_var_decl): Refine when TREE_STATIC is set. + Convert to use buildN. + +2004-09-09 Gary Dismukes + + * gnat_ugn.texi: Delete text relating to checking of ali and object + consistency. + + * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these + routines. + +2004-09-09 Jose Ruiz + + * gnat_ugn.texi: Add Detect_Blocking to the list of configuration + pragmas recognized by GNAT. + + * gnat_rm.texi: Document pragma Detect_Blocking. + + * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active, + raise Program_Error if called from a protected operation. + + * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase + the protected action nesting level. + (Lock_Read_Only): When pragma Detect_Blocking is active increase the + protected action nesting level. + (Unlock): When pragma Detect_Blocking is active decrease the protected + action nesting level. + + * s-taskin.adb (Initialize_ATCB): Initialize to 0 the + Protected_Action_Nesting. + + * s-taskin.ads: Adding the field Protected_Action_Nesting to the + Common_ATCB record. It contains the dynamic level of protected action + nesting for each task. It is needed for checking whether potentially + blocking operations are called from protected operations. + (Detect_Blocking): Adding a Boolean constant reflecting whether pragma + Detect_Blocking is active or not in the partition. + + * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active, + raise Program_Error if called from a protected operation. + (Task_Entry_Call): When pragma Detect_Blocking is active, raise + Program_Error if called from a protected operation. + (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise + Program_Error if called from a protected operation. + + * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active, + raise Program_Error if called from a protected operation. + + * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active, + raise Program_Error if called from a protected operation, and increase + the protected action nesting level. + (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise + Program_Error if called from a protected operation, and increase the + protected action nesting level. + (Unlock_Entries): When pragma Detect_Blocking is active decrease the + protected action nesting level. + + * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active, + raise Program_Error if called from a protected operation, and increase + the protected action nesting level. + (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise + Program_Error if called from a protected operation, and increase the + protected action nesting level. + (Protected_Single_Entry_Call): When pragma Detect_Blocking is active, + raise Program_Error if called from a protected operation. + (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is + active, raise Program_Error if called from a protected operation. + (Unlock_Entry): When pragma Detect_Blocking is active decrease the + protected action nesting level. + + * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the + insertion of the statement raising Program_Error. The run time + contains the required machinery for handling that. + + * sem_util.ads: Change comment associated to procedure + Check_Potentially_Blocking_Operation. + This procedure does not insert a call for raising the exception because + that is currently done by the run time. + + * raise.h (__gnat_set_globals): Pass the detect_blocking parameter. + + * init.c: Add the global variable __gl_detect_blocking that indicates + whether pragma Detect_Blocking is active (1) or not (0). Needed for + making the pragma available at run time. + (__gnat_set_globals): Pass and update the detect_blocking parameter. + + * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if + pragma Detect_Blocking is active. + + * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files. + + * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag + DB is found in the ali file. Any unit compiled with pragma + Detect_Blocking active forces its effect in the whole partition. + + * a-retide.adb (Delay_Until): Raise Program_Error if pragma + Detect_Blocking is active and delay is called from a protected + operation. + + * bindgen.adb (Gen_Adainit_Ada): When generating the call to + __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma + Detect_Blocking is active (0 otherwise). + (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1 + as Detect_Blocking parameter if pragma Detect_Blocking is active (0 + otherwise). + +2004-09-09 Thomas Quinot + + * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to + GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash + package. + + * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram. + (Register_Receiving_Stub): Add Subp_Info formal parameter. + Update API in placeholder implemetation of s-parint to reflect changes + in distribution runtime library. + + * sem_ch3.adb (Expand_Derived_Record): Rename to + Expand_Record_Extension. + + * sem_disp.adb (Check_Controlling_Formals): Improve error message for + primitive operations of potentially distributed object types that have + non-controlling anonymous access formals. + + * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New + subprogram. + New implementation of expansion for remote access-to-subprogram types, + based on the RACW infrastructure. + This version of sem_dist is compatible with PolyORB/DSA as well as + GLADE. + + * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma + Asynchrronous that applies to a remote access-to-subprogram type, mark + the underlying RACW type as asynchronous. + + * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and + __gnat_using_gnu_linker to 1. + + * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads, + g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to + GNAT.Perfect_Hash_Generators, and remove the empty + GNAT.Perfect_Hash package. + + * atree.adb: Minor reformatting + + * exp_ch3.adb (Expand_Derived_Record): Rename to + Expand_Record_Extension. + (Build_Record_Init_Proc.Build_Assignment): The default expression in + a component declaration must remain attached at that point in the + tree so New_Copy_Tree copies it if the enclosing record type is derived. + It is therefore necessary to take a copy of the expression when building + the corresponding assignment statement in the init proc. + As a side effect, in the case of a derived record type, we now see the + original expression, without any rewriting that could have occurred + during expansion of the ancestor type's init proc, and we do not need + to go back to Original_Node. + + * exp_ch3.ads (Expand_Derived_Record): Rename to + Expand_Record_Extension. + + * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram. + Returns the RACW type used to implement a remote access-to-subprogram + type. + (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type): + New subprograms. Used to create a proxy tagged object for a remote + subprogram. The proxy object is used as the designated object + for RAS values on the same partition (unless All_Calls_Remote applies). + (Build_Get_Unique_RP_Call): New subprogram. Build a call to + System.Partition_Interface.Get_Unique_Remote_Pointer. + (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS): + Renamed from Add_RAS_*_Attribute. + (Add_Receiving_Stubs_To_Declarations): Generate a table of local + subprograms. + New implementation of expansion for remote access-to-subprogram types, + based on the RACW infrastructure. + + * exp_dist.ads (Copy_Specification): Update comment to note that this + function can copy the specification from either a subprogram + specification or an access-to-subprogram type definition. + +2004-09-09 Ed Schonberg + + * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity + in an instance, between an explicit subprogram an one inherited from a + type derived from an actual. + + * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not + add a polling call if the subprogram is to be inlined by the back-end, + to avoid repeated calls with multiple inlinings. + + * checks.adb (Apply_Alignment_Check): If the expression in the address + clause is a call whose name is not a static entity (e.g. a dispatching + call), treat as dynamic. + +2004-09-09 Robert Dewar + + * g-trasym.ads: Minor reformatting + + * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except + packed arrays, since unused bits are expected to be zero for a + comparison. + +2004-09-09 Eric Botcazou + + * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head + comment. + +2004-09-09 Pascal Obry + + * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to + enable map file generation. Add the right option to generate the map + file if Map_File is set to True. + + * gnatdll.adb (Gen_Map_File): New variable. + (Syntax): Add info about new -m (Map_File) option. + (Parse_Command_Line): Add support for -m option. + (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls. + Minor reformatting. + +2004-09-09 Laurent Pautet + + * gnatls.adb: Add a very verbose mode -V. Such mode is required by the + new gnatdist implementation. + Define a subpackage isolating the output routines specific to this + verbose mode. + +2004-09-09 Joel Brobecker + + * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta. + + * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted. + +2004-09-09 Cyrille Comar + + * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile + internal unit. + + * opt.ads: Add Ada_Version_Runtime constant used to decide which + version of the language is used to compile the run time. + +2004-09-09 Arnaud Charlet + + * sem_util.adb (Requires_Transient_Scope): Re-enable handling + of variable length temporaries for function return now that the + back-end and gigi support it. + +2004-09-01 Richard Kenner + + * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM. + + * trans.c (struct stmt_group): Delete field GLOBAL. + (gnat_init_stmt_group): Do not initialize it. + (call_to_gnu): Use save_expr, not protect_multiple_eval. + (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2 + (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise. + (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group. + (start_stmt_group): Likewise. + (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs. + + * utils2.c (ggc.h): Include. + (build_call_raise): Call build_int_cst, not build_int_2. + + * utils.c (gnat_init_decl_processing): Fix arg to + build_common_tree_nodes. + (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST. + (gnat_define_builtin): Set built_in_decls. + (init_gigi_decls): Call build_int_cst, not build_int_2. + + * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree. + (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros. + (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise. + (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE, + SET_TYPE_MODULE): Use them. + (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise. + (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise. + (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE, + SET_TYPE_ADA_SIZE): Likewise. + (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise. + (DECL_CONST_CORRESPONDING_VAR, + SET_DECL_CONST_CORRESPONDING_VAR): Likewise. + (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise. + (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted. + (TYPE_RM_SIZE_NUM): New macro. + (TYPE_RM_SIZE): Modified to use above. + + * cuintp.c: (build_cst_from_int): New function. + (UI_To_gnu): Use it. + + * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM. + (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type. + (gnat_substitute_in_type, case ARRAY_TYPE): If old had a + MIN_EXPR for the size, copy it into new. + +2004-09-01 Robert Dewar + + * exp_ch6.adb (Expand_Call): Properly handle validity checks for + packed indexed component where array is an IN OUT formal. This + generated garbage code previously. + + * gnat_ugn.texi: Document -fverbose-asm + + * gnat-style.texi: Minor updates (note that boolean constants and + variables are joined with AND/OR rather than short circuit forms). + +2004-09-01 Ed Schonberg + + * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if + it is an upward conversion of an untagged type with no representation + change. + +2004-09-01 Thomas Quinot + + * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to + System.Partition_Interface. + + * checks.adb (Apply_Access_Checks): Do not generate checks when + expander is not active (but check for unset reference to prefix of + dereference). + + * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite + pragma Debug as an if statement with a constant condition, for + consistent treatment of entity references contained within the + enclosed procedure call. + +2004-09-01 Vincent Celier + + * bindgen.adb: (Set_EA_Last): New procedure + (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure + Set_EA_Last. + (Gen_Adafinal_Ada): If no finalization, adafinal does nothing + (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be + linked without errors. + (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays + ST and EA. + (Gen_Exception_Table_C): Correct same bugs + + * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches + + * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty, + on Windows, make sure that the drive letter is in upper case. + + * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on + Windows, when the drive letter is added and Case_Sensitive is True, the + drive letter is forced to upper case. + + * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options + to Options_2 for the call to MLib.Utl.Gcc. + + * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as + directory separator when defining BASE_DIR. + +2004-09-01 Pascal Obry + + * gprcmd.adb (Extend): Do not output trailing directory separator. This + is not needed and it confuses Windows GNU/make which does not report + directory terminated by a slash as a directory. + (gprcmd): Idem for "pwd" internal command. + + * Makefile.generic: Use __GPRCOLON__ instead of pipe character in + target names rewrite to fix regressions with recent version of + GNU/make. Starting with GNU/make 3.80 the pipe character was not + handled properly anymore. + +2004-09-01 Andreas Schwab + + * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change. + * raise.c [!IN_RTS]: Undef abort. + +2004-08-27 Nathan Sidwell + + * utils2.c (build_allocator): Use ssize_int. + + * utils.c (gnat_init_decl_processing): Ada has a signed sizetype. + +2004-08-27 Andreas Schwab + + * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o. + +2004-08-25 Nathan Sidwell + Richard Kenner + + * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1. + +2004-08-25 Nathan Sidwell + + * cuintp.c (UI_To_gnu): Adjust build_int_cst calls. + * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise. + * utils.c (init_gigi_decls): Likewise. + * utils2.c (build_call_raise, build_allocator): Likewise. + +2004-08-24 Nathan Sidwell + + * utils.c (gnat_init_decl_processing): Adjust + build_common_tree_nodes call. + +2004-08-20 Nathan Sidwell + + * utils2.c (build_allocator): Use build_int_cst for negative + size types. + +2004-08-18 Richard Henderson + + * misc.c (LANG_HOOKS_HONOR_READONLY): Remove. + +2004-08-16 Nathan Sidwell + + * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst + call.s + * trans.c (Exception_Handler_to_gnu_sjlj): Likewise. + (gnat_to_gnu): Likewise. + +2004-08-16 Pascal Obry + + * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC + backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared + option and not mdll anymore. Update comment. + +2004-08-16 Pascal Obry + + * bld.adb (Put_Include_Project): Properly handle directory separators + on Windows. + +2004-08-16 Ed Schonberg + + * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by + decreasing the number of allocated junk nodes while searching for the + appropriate subprogram. + +2004-08-15 Nathan Sidwell + + * cuintp.c (UI_To_gnu): Use build_int_cst.. + * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise. + * utils.c (init_gigi_decls): Likewise. + * utils2.c (build_call_raise): Likewise. + +2004-08-13 Olivier Hainque + + * decl.c (gnat_to_gnu_entity) : When building an allocator + for a global aliased object with a variable size and an unconstrained + nominal subtype, pretend there is no initializer if the one we have is + incomplete, and avoid referencing an inexistant component in there. The + part we have will be rebuilt anyway and the reference may confuse + further operations. + +2004-08-13 Thomas Quinot + + * einfo.ads: Minor reformatting + + * lib-writ.adb (Output_Main_Program_Line): Do not set parameter + restrictions in the ALI if we only want to warn about violations. + +2004-08-13 Vincent Celier + + * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False + when creating a new Unit_Record in table Units. + + * gnatls.adb (Output_Unit): In verbose mode, output the restrictions + that are violated, if any. + + * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not + add directory separator if path already ends with a directory separator. + +2004-08-13 Ed Schonberg + + * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined + unit, this is an attempt to inline a construct that is not available in + the current restricted mode, so abort rather than trying to continue. + + * sem_ch3.adb (Build_Underlying_Full_View): If the new type has + discriminants that rename those of the parent, recover names of + original discriminants for the constraint on the full view of the + parent. + (Complete_Private_Subtype): Do not create a subtype declaration if the + subtype is an itype. + + * gnat_rm.texi: Added section on implementation of discriminated + records with default values for discriminants. + +2004-08-13 Ed Schonberg + + PR ada/15601 + * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where + the second operand is overloaded. + +2004-08-10 Richard Henderson + + * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc, + add __builtin_alloca. + +2004-08-10 Richard Henderson + + * config-lang.in (boot_language): Yes. + +2004-08-09 Thomas Quinot + + * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind + from complaining on potential uninitialized reference. + Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for + new specification and test explicitly for non-zero return value. + + * g-socthi.ads (Is_Socket_In_Set): Declare imported function as + returning C.int, to avoid using a derived boolean type. + + * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use + Duplicate_Subexpr_No_Checks in preference to direct use of + Remove_Side_Effects and New_Copy_Tree. + Clear Comes_From_Source on prefix of 'Size attribute reference. + + * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb, + g-socthi-vxworks.adb: Change calls to + GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification + and test explicitly for non-zero return value. + + * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads: + (Is_Socket_In_Set): Declare imported function as returning C.int, to + avoid using a derived boolean type. + +2004-08-09 Albert Lee + + * system-irix-n32.ads: Refine tasking priority constants for IRIX. + +2004-08-09 Pascal Obry + + * gnat_ugn.texi: Document new way to build DLLs on Windows using + GCC's -shared option. + + * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into + Options_2 parameter (options put after object files). + +2004-08-09 Olivier Hainque + + * decl.c (gnat_to_gnu_entity) : Adjust condition to + ignore overflows on low and high bounds of an index to also account for + differences in signedness between sizetype and gnu_index_subtype. + These are as legitimate as the ones caused by a lower TYPE_PRECISION + on sizetype. + +2004-08-09 Robert Dewar + + * s-solita.ads, s-solita.adb: Minor reformatting + + * gnat_rm.texi: Add documentation for pragma Profile (Restricted) + Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new + obsolescent section + Add note that No_Implicit_Conditionals does not suppress + run time constraint checks. + + * vms_conv.ads: Minor reformatting + + * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup + and necessary for following change). + (Mark): Return new format Mark_Id containing sec stack address + (Release): Use sec stack address from Mark_Id avoiding Self call + + * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack + pointer (cleanup and necessary for following change). + Define Mark_Id as record containing address of secondary stack, that way + Release does not need to find the stack again, decreasing the number of + calls to Self and improving efficiency. + + * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference + + * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of + case variable into the individual case branches when possible. + + * sem_ch11.adb: Minor reformatting + + * prj.ads: Correct spelling of suffixs + + * prj-nmsc.adb: Minor reformatting + Correct spelling suffixs throughout (also in identifiers) + + * freeze.adb: Minor spelling correction + + * exp_ch2.adb: Cleanups to handling of Current_Value + (no functional effect). + + * bld.adb: Correct spelling of suffixs + + * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument + +2004-08-09 Ed Schonberg + + PR ada/15408 + * sem_ch7.adb (Install_Private_Declarations): In the body of the + package or of a child, private entities are both immediately_visible + and not hidden. + +2004-08-09 Ed Schonberg + + * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer, + there are no range checks on the value of the literal. + + * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being + wrapped is the triggering alternative of an asynchronous select, action + statements mustbe inserted before the select itself. + + * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the + case where the prefix is a protected function call. + (Resolve_Attribute, case 'Access): The attribute reference on a + subprogram is legal in a generic body if the subprogram is declared + elsewhere. + +2004-08-09 Vincent Celier + + * makegpr.adb (Build_Library): Link with g++ if C++ is one of the + languages, otherwise building the library may fail with unresolved + symbols. + (Compile_Sources): Do not build libraries if -c switch is used + + * gnatlink.adb (Process_Args): New switches -M and -Mmap + (Write_Usage): If map file creation is supported, output new switches + -M and -Mmap. + (Gnatlink): When -M is specified, add the necessary switch(es) to the + gcc call, when supported. + + * Makefile.in: Added indepsw.o to the object list for gnatlink + Specified the AIX, GNU/Linux and Windows versions of indepsw.adb + + * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb, + indepsw.adb, indepsw.ads: New files. + +2004-08-09 Bernard Banner + + * system-vxworks-x86.ads, s-vxwork-x86.ads: New files. + + * Makefile.in: add section for vxworks x86 + +2004-08-09 Hristian Kirtchev + + * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with + per-object constrained components where the discriminant is of an + Access type. + (Build_Record_Init_Proc): Add condition to prevent the inheritance of + the parent initialization procedure for derived Unchecked_Unions. + Instead, derived Unchecked_Unions build their own initialization + procedure. + (Build_Variant_Record_Equality): Implement Unchecked_Union equality. + Check the body of the subprogram for details. + (Freeze_Record_Type): Prevent the inheritance of discriminant checking + functions for derived Unchecked_Union types by introducing a condition. + Allow the creation of TSS equality functions for Unchecked_Unions. + (Make_Eq_Case): Rename formal parameter Node to E in function signature. + Add formal parameter Discr to function signature. Discr is used to + control the generated case statement for Unchecked_Union types. + (Make_Eq_If): Rename formal parameter Node to E in function signature. + + * exp_ch4.adb (Build_Equality_Call): Implement equality calls for + Unchecked_Unions. + Check the body of the subprogram for details. + (Expand_Composite_Equality): Augment composite type equality to include + correct handling of Unchecked_Union components. + (Expand_N_In): Add condition to detect illegal membership tests when the + subtype mark is a constrained Unchecked_Union and the expression lacks + inferable discriminants, and build a Raise_Program_Error node. + (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used + to detect types that contain components of unconstrained Unchecked_Union + subtype. Add condition to detect equality between types that have an + unconstrained Unchecked_Union component, and build a Raise_Program_Error + node. Add condition to detect equality between Unchecked_Union types + that lack inferable discriminants, and build a Raise_Program_Error node. + Otherwise build a TSS equality function call. + (Expand_N_Type_Conversion): Add condition to detect illegal conversions + from a derived Unchecked_Union to an unconstrained non-Unchecked_Union + with the operand lacking inferable discriminants, and build a Raise_ + Program_Error node. + (Expand_Record_Equality): Remove guard that prevents Unchecked_Union + composite equality. + (Has_Inferable_Discriminants): Implement new predicate for objects and + expressions of Unchecked_Union type. Check the body of subprogram for + details. + (Has_Unconstrained_UU_Components): Add function + Component_Is_Unconstrained_UU. It is used to detect whether a single + component is of an unconstrained Unchecked_Union subtype. Add function + Variant_Is_Unconstrained_UU. It is used to detect whether a single + component inside a variant is of an unconstrained Unchecked_Union type. + + * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the + inferred discriminant values. Add condition to generate a case + statement with an inferred discriminant as the switch. + (Make_Component_List_Assign): Introduce a Boolean flag that determines + the behaviour of the subprogram in the presence of an Unchecked_Union. + Add condition to trigger the usage of the inferred discriminant value + as the generated case statement switch. + (Make_Field_Assign): Introduce a Boolean flag that determines the + behaviour of the subprogram in the presence of an Unchecked_Union. Add + condition to trigger the usage of the inferred discriminant value as + the right-hand side of the generated assignment. + + * exp_ch6.adb (Expand_Call): Add condition to skip extra actual + parameter generation when dealing with Unchecked_Unions. + + * checks.adb (Apply_Discriminant_Check): Do not apply discriminant + checks for Unchecked_Unions. + + * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint + + * exp_attr.adb (Expand_N_Attribute_Reference): Produce + Raise_Program_Error nodes for the execution of Read and Write + attributes of Unchecked_Union types and the execution of Input and + Output attributes of Unchecked_Union types that lack default + discriminant values. + + * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma + Unchecked_Union. Add procedure Check_Component. It is used to inspect + per-object constrained components of Unchecked_Unions for being + Unchecked_Unions themselves. Add procedure Check_Variant. It is used to + check individual components withing a variant. + + * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents + comparison of Unchecked_Unions. + (Resolve_Equality_OP): Remove guard that prevents equality between + Unchecked_Unions. + + * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation + of component subtypes for Unchecked_Union components. + (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type + since it is the actual subtype. + + * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct + pass of Unchecked_Union subtypes as generic actuals to formal types + that lack known_discriminant_parts or that are derived Unchecked_Union + types, and do nothing. In any other case, produce an error message. + + * sem_ch3.adb (Analyze_Component_Declaration): Add function + Contains_POC. It determines whether a constraint uses the discriminant + of an enclosing record type. + Add condition to detect per-object constrained component and set the + appropriate flag. + (Derived_Type_Declaration): Remove guard that prevents derivation from + Unchecked_Union types. + (Process_Subtype): Remove quard that prevents the creation of Unchecked_ + Union subtypes. + + * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of + references to Unchecked_Union discriminants. + + * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra + formal generation when dealing with Unchecked_Unions. + (Set_Actual_Subtypes): Add condition to prevent generation of actual + subtypes for Unchecked_Unions. + + * sem_ch7.adb (Analyze_Package_Specification): Add procedure + Inspect_Unchecked_Union_Completion. It is used to detect incorrect + completions of discriminated partial views by Unchecked_Unions and + produce an error message. + +2004-08-09 Richard Kenner + + * trans.c (struct stmt_group): New field, GLOBAL. + (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted. + (struct elab_info): New struct. + (elab_info_list, gnu_elab_proc_stack): New variables. + (Compilation_Unit_to_gnu): New procedure. + (gigi): Call it and also handle elaboration procs we've saved. + (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize + global field from parent. + (gnat_to_gnu): Get decl from gnu_elab_proc_stack. + (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu. + (start_stmt_group): Initialize global field from parent. + (add_decl_expr): Set to global for current statement group. + (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not + post. + + * utils.c (global_bindings_p): True when no current_function_decl; no + longer check current_binding_level. + +2004-08-09 Ben Brosgol + + * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition + choice. + + * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic. + +2004-08-06 Andreas Schwab + + * utils.c (gnat_define_builtin): Remove second parameter of + make_decl_rtl. + (begin_subprog_body): Likewise. + +2004-07-26 Arnaud Charlet + + * sem_util.adb (Requires_Transient_Scope): Temporarily disable + optimization, not supported by the tree-ssa back-end. + +2004-07-26 Olivier Hainque + + * s-mastop-irix.adb: Update comments. + + * a-except.adb (Exception_Information): Raise Constraint_Error if + exception Id is Null_Id. + This is required behavior, which is more reliably and clearly checked + at the top level interface level. + +2004-07-26 Javier Miranda + + * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization + call if a component has no default_expression and the box is used. + + * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no + default_expression and you use box, it behaves as if you had declared a + stand-alone object. + (Resolve_Record_Aggregate): If a component has no default_expression and + you use box, it behaves as if you had declared a stand-alone object. + + * sem_ch10.adb (Install_Siblings): Do not make visible the private + entities of private-with siblings. + +2004-07-26 Ed Schonberg + + * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view + for a component of an itype, set the parent pointer for analysis, + there is no list in which to insert it. + + * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for + bona-fide renamings, not for inherited operations. + + * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an + actual for a formal that is an access parameter, create local + finalization list even if the expression is not an aggregate. + +2004-07-26 Ed Schonberg + + PR ada/16213 + * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming): + Diagnose properly illegal subprogram renamings that are library units. + +2004-07-26 Ed Schonberg + + PR ada/15588 + * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type + conversion rewritten as an unchecked conversion, check that original + expression is a variable. + + * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an + unchecked_conversion, create new node rather than rewriting in place, + to preserve original construct. + +2004-07-26 Richard Kenner + + * gigi.h (gnat_expand_body): Deleted. + + * Make-lang.in: (trans.o): Depends on function.h. + + * misc.c: (gnat_expand_body): Moved to here. + + * trans.c (gnat_expand_body_1): Deleted. + (gnat_expand_body): Moved from here. + (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc. + (add_stmt): Check for marked visited with global_bindings_p. + (gnat_gimplify_expr, case COMPONENT_REF): New case. + (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp. + + * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a + VIEW_CONVERT_EXPR if not operation type. + + * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for + fat pointer. + + * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor + changes: reformatting of negation operators, removing unneeded + inequality comparison with zero, converting equality comparisons with + zero to negations, changing int/0/1 to bool/false/true, replace calls + to gigi_abort with abort, and various other similar changes. + +2004-07-26 Vincent Celier + + * gnatcmd.adb (GNATCmd): Add processing for new built-in command + "setup". + + * make.adb (Gnatmake): Fail when a library is not present and there is + no object directory. + + * mlib-prj.adb (Check_Library): No need to check if the library needs + to be rebuilt if there is no object directory, hence no object files + to build the library. + + * opt.ads (Setup_Projects): New Boolean flag. + + * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and + Location. + Create directory when Kind /= "" and in "gnat setup". Report error if + directory cannot be created. + (Ada_Check): Create library interface copy dir if it does not exist + and we are in "gnat setup". + (Find_Sources): No error if in "gnat setup" and no Ada sources were + found. + (Language_Independent_Check): Create object directory, exec directory + and/or library directory if they do not exist and we are in + "gnat setup". + + * vms_conv.ads: (Command_Type): New command Setup. + + * vms_conv.adb (Initialize): Add Setup component of Cammand_List. + + * vms_data.ads: Add qualifiers/switches for new built-in command + "setup". + +2004-07-25 Richard Henderson + + * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and + DECL_IGNORED_P on RESULT_DECL. + +2004-07-20 Olivier Hainque + + * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic + allocation and potentially overflowing update with + Tailored_Exception_Information. Use the sec-stack free procedural + interface to output Exception_Information instead. + + * a-except.adb (To_Stderr): New subprogram for character, and string + version moved from a-exextr to be visible from other separate units. + (Tailored_Exception_Information): Remove the procedural version, + previously used by the default Last_Chance_Handler and not any more. + Adjust various comments. + + * a-exexda.adb: Generalize the exception information procedural + interface, to minimize the use of secondary stack and the need for + local buffers when the info is to be output to stderr: + (Address_Image): Removed. + (Append_Info_Character): New subprogram, checking for overflows and + outputing to stderr if buffer to fill is of length 0. + (Append_Info_String): Output to stderr if buffer to fill is of length 0. + (Append_Info_Address, Append_Info_Exception_Name, + Append_Info_Exception_Message, Append_Info_Basic_Exception_Information, + Append_Info_Basic_Exception_Traceback, + Append_Info_Exception_Information): New subprograms. + (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character. + (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength, + Exception_Info_Maxlength, Exception_Name_Length, + Exception_Message_Length): New subprograms. + (Exception_Information): Use Append_Info_Exception_Information. + (Tailored_Exception_Information): Use + Append_Info_Basic_Exception_Information. + Export services for the default Last_Chance_Handler. + + * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by + other separate units. + +2004-07-20 Vincent Celier + + * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting. + +2004-07-20 Ed Schonberg + + * freeze.adb (Freeze_Entity): If entity is a discriminated record type, + emit itype references for the designated types of component types that + are declared outside of the full record declaration, and that may + denote a partial view of that record type. + +2004-07-20 Ed Schonberg + + PR ada/15607 + * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype + which is the designated type in an access component declaration, to the + list of incomplete dependents of the parent type, to avoid elaboration + issues with out-of-scope subtypes. + (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the + full view of the parent. + +2004-07-20 Ed Schonberg + + PR ada/15610 + * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject + entities that are hidden, such as references to generic actuals + outside an instance. + +2004-07-20 Javier Miranda + + * sem_ch4.adb (Try_Object_Operation): New subprogram that gives + support to the new notation. + (Analyze_Selected_Component): Add call to Try_Object_Operation. + +2004-07-20 Jose Ruiz + + * s-taprob.adb: Adding the elaboration code required for initializing + the tasking soft links that are common to the full and the restricted + run times. + + * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the + restricted run time has been moved to the package + System.Soft_Links.Tasking. + + * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the + restricted run time has been moved to the package + System.Soft_Links.Tasking. + + * Makefile.rtl: Add entry for s-solita.o in run-time library list. + + * s-solita.ads, s-solita.adb: New files. + +2004-07-20 Richard Kenner + + * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu, + Case_Statement_to_gnu): Split off from gnat_to_gnu. + (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu, + Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj, + Exception_Handler_to_gnu_zcx): Likewise. + +2004-07-17 Joseph S. Myers + + * gigi.h (builtin_function): Declare. + +2004-07-15 Robert Dewar + + * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor + reformatting + + * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with + access values as an example of a warning. + + * gnat_rm.texi: Document new attribute Has_Access_Values + + * gnat-style.texi: Document that box comments belong on nested + subprograms + + * sem_util.ads (Has_Access_Values): Improved documentation + + * s-finimp.ads, s-finimp.adb: Fix spelling error in comment + + * sem_prag.adb (Check_Duplicated_Export_Name): New procedure + (Process_Interface_Name): Call to this new procedure + (Set_Extended_Import_Export_External_Name): Call to this new procedure + + * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment + + * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values + + * einfo.ads: Minor comment typo fixed + +2004-07-15 Jose Ruiz + + * snames.adb: Add _atcb. + + * snames.ads: Add Name_uATCB. + + * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated + (in the expanded code) when using the restricted run time. + + * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into + a in parameter in order to allow ATCBs to be preallocated (in the + expanded code). + + * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in + order to allow ATCBs to be preallocated. In case of error, the ATCB is + deallocated in System.Tasking.Stages. + + * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in + order to allow ATCBs to be preallocated. + + * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated + here. It was previously done in Initialize_ATCB. + + * rtsfind.ads: Make the Ada_Task_Control_Block visible. + + * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the + Restricted run time. + + * exp_ch3.adb: When using the Restricted run time, pass the + preallocated Ada_Task_Control_Block when creating a task. + +2004-07-15 Ed Schonberg + + * sem_util.adb (Normalize_Actuals): If there are no actuals on a + function call that is itself an actual in an enclosing call, diagnose + problem here rather than assuming that resolution will catch it. + + * sem_ch7.adb (Analyze_Package_Specification): If the specification is + the local copy of a generic unit for a formal package, and the generic + is a child unit, install private part of ancestors before compiling + private part of spec. + + * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to + use scope entities rather than tree structures, to handle properly + parent units that are instances rewritten as bodies for inlining + purposes. + + * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent, + Remove_Parents): Handle properly a parent unit that is an + instantiation, when the unit has been rewritten as a body for inlining + purposes. + + * par.adb (Goto_List): Global variable to collect goto statements in a + given unit, for use in detecting natural loops. + + * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for + use in detecting natural loops. + + * par-labl.adb (Find_Natural_Loops): Recognize loops create by + backwards goto's, and rewrite as a infinite loop, to improve locality + of temporaries. + + * exp_util.adb (Force_Evaluation): Recognize a left-hand side + subcomponent that includes an indexed reference, to prevent the + generation of copies that would miscompile the desired assignment + statement. + (Build_Task_Image_Decls): Add a numeric suffix to + generated name for string variable, to avoid spurious conflicts with + the name of the type of a single protected object. + + * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a + loop with an explicit exit statement, to avoid generating an + out-of-range value with 'Succ leading to spurious constraint_errors + when compiling with -gnatVo. + +2004-07-15 Thomas Quinot + + * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it + might not be analyzed yet, even if its Etype is already set (case of an + unchecked conversion built using Unchecked_Convert_To, for example). + If the prefix has already been analyzed, this will be a nop anyway. + + * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a + controller type, or an assignment of a record type with controlled + components, copy only user data, and leave the finalization chain + pointers untouched. + +2004-07-15 Vincent Celier + + * make.adb (Collect_Arguments): Improve error message when attempting + to compile a source not part of any project, when -x is not used. + + * prj.ads: (Defined_Variable_Kind): New subtype + + * prj-attr.adb (Register_New_Package): Two new procedures to register + a package with or without its attributes. + (Register_New_Attribute): Mew procedure to register a new attribute in a + package. + New attribute oriented subprograms: Attribute_Node_Id_Of, + Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of, + Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of, + Next_Attribute. + New package oriented subprograms: Package_Node_Id_Of, + Add_Unknown_Package, First_Attribute_Of, Add_Attribute. + + * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized + type. + (Package_Node_Id): Now a private, self initialized type + (Register_New_Package): New procedure to register a package with its + attributes. + New attribute oriented subprograms: Attribute_Node_Id_Of, + Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of, + Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of, + Next_Attribute. + New package oriented subprograms: Package_Node_Id_Of, + Add_Unknown_Package, First_Attribute_Of, Add_Attribute. + + * prj-dect.adb (Parse_Attribute_Declaration, + Parse_Package_Declaration): Adapt to new spec of Prj.Attr. + + * prj-makr.adb (Make): Parse existing project file before creating + other files. Fail if there was an error during parsing. + + * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to + new spec of Prj.Attr. + + * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt + to new spec of Prj.Attr. + +2004-07-15 Richard Kenner + + * utils2.c: Fix typo in comment. + +2004-07-14 Richard Kenner + + * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL. + * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs. + +2004-07-14 Andreas Schwab + + * trans.c (gnat_init_stmt_group): Remove duplicate definition. + +2004-07-13 Richard Kenner + + * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to + object type. + (gnat_to_gnu_entity, case E_Record_Subtype): Properly set + TYPE_STUB_DECL. + + * misc.c (gnat_types_compatible_p): New function. + (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it. + (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New. + + * trans.c (gigi): Move processing of main N_Compilation_Unit here. + (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here. + (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR. + (mark_visited): Don't mark dummy type. + (tree_transform ): Unless this is an In + parameter, we must remove any LJM building from GNU_NAME. + (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR. + (pos_to_constructor): Use int_const_binop. + (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of + PARM_DECL. + + * utils.c (gnat_init_decl_processing): Don't make two "void" decls. + (gnat_pushlevel): Set TREE_USE on BLOCK node. + (gnat_install_builtins): Add __builtin_memset. + +2004-07-13 Olivier Hainque + + * decl.c (gnat_to_gnu_entity ): If we are making a pointer + for a renaming, stabilize the initialization expression if we are at a + local level. At the local level, uses of the renaming may be performed + by a direct dereference of the initializing expression, and we don't + want possible variables there to be evaluated for every use. + + * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1): + Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing + them on the way. Account for the fact that we may introduce side + effects in the process. + +2004-07-13 Richard Henderson + + * misc.c (default_pass_by_ref): Use pass_by_reference. + +2004-07-11 Joseph S. Myers + + * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL, + LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove. + +2004-07-08 Richard Henderson + + * trans.c (gnat_to_gnu ): Update + commentary. + +2004-07-06 Vincent Celier + + * vms_conv.ads: Minor reformatting. + Alphabetical order for enumerated values of type Command_Type, to have + the command in alphabetical order for the usage. + + * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for + the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters). + + * gnat_ugn.texi: Document new switch -dn for the GNAT driver. + + * makegpr.adb (Global_Archive_Exists): New global Boolean variable + (Add_Archive_Path): Only add the global archive if there is one. + (Build_Global_Archive): Set Global_Archive_Exists depending if there is + or not any object file to put in the global archive, and don't build + a global archive if there is none. + (X_Switches): New table + (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored + in the X_Switches table, if any. + (Initialize): Make sure the X_Switches table is empty + (Scan_Arg): Record -X switches in table X_Switches + + * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False. + + * make.adb: Minor comment fix + + * gnatname.adb (Gnatname): When not on VMS, and gnatname has been + invoked with directory information, add the directory in front of the + path. + + * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been + invoked with directory information, add the directory in front of the + path. + + * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files + when Keep_Temporary_Files is False. + (GNATCmd): When not on VMS, and the GNAT driver has been invoked with + directory information, add the directory in front of the path. + When not on VMS, handle new switch -dn before the command to set + Keep_Temporary_Files to True. + (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid + everywhere. + + * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been + invoked with directory information, add the directory in front of the + path. + +2004-07-06 Thomas Quinot + + * snames.ads, snames.adb (Name_Stub): New name for the distributed + systems annex. + + * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB. + New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA. + + * g-socket.adb (To_Timeval): Fix incorrect conversion of + Selector_Duration to Timeval for the case of 0.0. + + * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of + documentation from Evolve_And_Then. + +2004-07-06 Jose Ruiz + + * s-taprop-tru64.adb, s-taprop-os2.adb, + s-taprop-mingw.adb, s-taprop-posix.adb: Update comment. + +2004-07-06 Robert Dewar + + * s-osinte-hpux.ads, s-osinte-freebsd.ads, + s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads, + s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb, + s-interr-sigaction.adb, s-taprop-irix-athread.adb, + s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb, + s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb, + s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb, + s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb, + a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb, + a-tags.ads, bindgen.ads, checks.adb, checks.adb, + csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb, + exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb, + g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb, + i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb, + sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb, + sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb, + sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads, + s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads, + s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb, + s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb, + vms_data.ads: Minor reformatting, + Fix bad box comment format. + + * gnat_rm.texi: Fix minor grammatical error + + * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values + + * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many + more cases of discriminated records to be recognized as not needing a + secondary stack. + (Has_Access_Values): New function. + + * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values + + * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name + Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence + with LRM terminology). + Change terminology in comments primitive type => elementary type. + +2004-07-06 Ed Schonberg + + PR ada/15602 + * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal + parameters do not impose any requirements on the presence of a body. + +2004-07-06 Ed Schonberg + + PR ada/15593 + * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a + compilation unit and is in an open scope at the point of instantiation, + assume that a body may be present later. + +2004-07-06 Ed Schonberg + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size): + Improve error message when specified size is not supported. + + * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram + is never a primitive operation. + +2004-07-05 Andreas Schwab + + * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use + RECORD_OR_UNION_CHECK. + (TYPE_CONTAINS_TEMPLATE_P): Likewise. + +2004-07-04 Kelley Cook + + * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit + dependency on xgnatugn, instead build it via a submake. + (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi. + +2004-07-04 Richard Henderson + + * utils2.c (gnat_mark_addressable): Don't put_var_into_stack. + +2004-07-01 Richard Henderson + + * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR. + * utils.c (max_size): Likewise. + +2004-06-28 Richard Kenner + + * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation, + and rest_of_type_compilation; add arg to create_*_decl. + (annotate_decl_with_node): Deleted. + (gnat_to_gnu_entity, case E_Array_Type): Set location of fields. + * gigi.h (get_decls, block_has_vars, pushdecl): Deleted. + (get_current_block_context, gnat_pushdecl): New declarations. + (gnat_init_stmt_group): Likewise. + (create_var_decl, create_type_decl, create_subprog_decl): Add new arg. + * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted. + (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted. + (gnat_init): Call gnat_init_stmt_group. + * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables. + (gnu_pending_elaboration_list): Deleted. + (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions. + (gigi): Rearrange initialization calls and move some to last above. + (gnat_to_gnu): If statement and not in procedure, go into elab proc. + Delete calls to add_decl_expr; add arg to create_*_decl. + (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR. + (gnat_to_gnu, case N_Subprogram_Body): Move some code to + begin_subprog_body and call it. + Don't push and pop ggc context. + (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc. + (add_stmt): Remove handling of DECL_EXPR from here. + If not in function, mark visited. + (add_decl_expr): Put global at top level. + Check for cases of DECL_INITIAL we have to handle here. + (process_type): Add extra arg to create_type_decl. + (build_unit_elab): Rework to just gimplify. + * utils.c (pending_elaborations, elist_stack, getdecls): Deleted. + (block_has_vars, mark_visited, add_pending_elaborations): Likewise. + (get_pending_elaborations, pending_elaborations_p): Likewise. + (push_pending_elaborations, pop_pending_elaborations): Likewise. + (get_elaboration_location, insert_elaboration_list): Likewise. + (gnat_binding_level): Renamed from ada_binding_level. + (init_gnat_to_gnu): Don't clear pending_elaborations. + (global_bindings_p): Treat as global if no current_binding_level. + (set_current_block_context): New function. + (gnat_pushdecl): Renamed from pushdecl; major rework. + All callers changed. + (create_type_decl, create_var_decl, create_subprog_decl): Add new arg. + (finish_record_type): Call call pushdecl for stub decl. + (function_nesting_depth): Deleted. + (begin_subprog_body): Delete obsolete code. + * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl. + +2004-06-28 Robert Dewar + + * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, + mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb, + mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb, + mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, + a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting + + * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to + deal with problem of inefficient slices on machines with strict + alignment, when the slice is a component of a composite. + + * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit + machines, we need the check there as well. + +2004-06-28 Ed Schonberg + + * exp_ch5.adb (Expand_Assign_Array): Use correct condition to + determine safe copying direction for overlapping slice assignments + when component is controlled. + + * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a + formal derived type in the actual for a formal package are visible in + the enclosing instance. + +2004-06-28 Ed Schonberg + + PR ada/15600 + * sem_util.adb (Trace_Components): Diagnose properly an illegal + circularity involving a private type whose completion includes a + self-referential component. + (Enter_Name): Use Is_Inherited_Operation to distinguish a source + renaming or an instantiation from an implicit derived operation. + +2004-06-28 Pascal Obry + + * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from + DLL. + (Library_File_Name_For): Idem. + +2004-06-28 Matthew Gingell + + * g-traceb.ads: Add explanatory note on the format of addresses + expected by addr2line. + +2004-06-28 Jerome Guitton + + * Makefile.in: Force debugging information on s-tasdeb.adb, + a-except.adb and s-assert.adb needed by the debugger. + +2004-06-28 Vincent Celier + + * make.adb (Collect_Arguments_And_Compile): Change Flag1 to + Need_To_Build_Lib. + (Gnatmake): Ditto. + + * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib + + * prj.adb: Minor reformatting + (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2. + + * prj.ads: Comment updates + Minor reformatting + (Project_Data): Change Flag1 to Need_To_Build_Lib. + Remove Flag2: not used. + + * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a + declaration. + + * gnat_ugn.texi: Put a "null;" declaration in one project file example + + * gnat_rm.texi: Document Empty declarations "null;". + + * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in + front of the linker options. + (Link_Foreign): Put the global archives and the libraries in front of + the linker options. + +2004-06-28 Javier Miranda + + * rtsfind.adb: (Get_Unit_Name): Fix typo in comment + (RTU_Loaded): Code cleanup + (Set_RTU_Loaded): New procedure to register as *loaded* explicitly + withed predefined units. + + * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded* + explicitly withed predefined units. + Fix typo in comment + + * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded* + explicitly withed predefined units. + +2004-06-26 Richard Kenner + + * ada-tree.def (DECL_STMT): Deleted. + * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT. + (DECL_STMT_VAR): Deleted. + * decl.c: add_decl_stmt now add_decl_expr. + * gigi.h: Likewise. + * trans.c: Likewise. + (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted. + (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus. + (add_stmt): Only handle padded type here. + (add_stmt_with_node): Allow gnat_node to not be present. + (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null. + (gnat_gimplify_stmt, case DECL_STMT): Deleted. + (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer, + make a SAVE_EXPR for the entire fat pointer. + * utils.c (pushdecl): Walk a DECL_EXPR in global case. + (create_index_type): Make a DECL_EXPR. + (end_subprog_body): Don't call allocate_struct_function here but + do clear cfun. + +2004-06-25 Pascal Obry + + * makegpr.adb (Build_Library): Remove parameter Lib_Address and + Relocatable from Build_Dynamic_Library call. + + * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and + Relocatable are now synonym. + + * Makefile.in: Use s-parame-mingw.adb on MingW platform. + + * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition. + Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library + call. + + * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter + Lib_Address and Relocatable. + (Default_DLL_Address): Removed. + + * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, + mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb, + mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb: + (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable. + (Default_DLL_Address): Removed. + + * mlib-tgt-mingw.adb: Ditto. + (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name. + + * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute + the initial thread stack size. + + * a-strmap.ads: Move package L to private part as it is not used in + the spec. Found while reading code. + +2004-06-25 Olivier Hainque + + * tracebak.c: Introduce support for a GCC infrastructure based + implementation of __gnat_backtrace. + + * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record + any more. Use accessors instead. This eases maintenance and relaxes + some alignment constraints. + (_GNAT_Exception structure): Remove the Ada specific fields + (EID_For, Adjust_N_Cleanups_For): New accessors, exported by + a-exexpr.adb. + (is_handled_by, __gnat_eh_personality): Replace component references to + exception structure by use of the new accessors. + + * init.c (__gnat_initialize): Adjust comments to match the just + reverted meaning of the -static link-time option. + + * adaint.c (convert_addresses): Arrange not to define a stub for + mips-irix any more, as we now want to rely on a real version from a + recent libaddr2line. + + * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that + the personality routine can use them and not have to rely on a C + counterpart of the record anymore. This simplifies maintenance and + relaxes the constraint of having Standard'Maximum_Alignment match + BIGGEST_ALIGNMENT. + Update comments, and add a section on the common header alignment issue. + +2004-06-25 Geert Bosch + + * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in + polynomial approximation. Fixes inconsistency with Cody/Waite algorithm. + +2004-06-25 Robert Dewar + + * gnat_rm.texi: Fix section on component clauses to indicate that the + restriction on byte boundary placement still applies for bit packed + arrays. + Add comment on stack usage from Initialize_Scalars + + * gnat_ugn.texi: Add documentation for -gnatyLnnn + + * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for + limiting nesting level. + + * usage.adb: Add line for -gnatyLnnn switch + + * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads, + sem_ch13.adb, exp_aggr.adb: Minor reformatting + + * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base + type as well as on the subtype. This corrects a problem in freeze in + setting alignments of atomic types. + + * sem_eval.ads: Minor comment typo fixed + + * par-util.adb (Push_Scope_Stack): Check for violation of max nesting + level. Minor reformatting. + + * fname.adb (Is_Predefined_File_Name): Require a letter after the + minus sign. This means that file names like a--b.adb will not be + considered predefined. + + * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing + record Test new flag and give diagnostic for bad component clause. + (Freeze_Entity): Set alignment of array from component alignment in + cases where this is safe to do. + + * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed + arrays. + + * cstand.adb: (Create_Standard): Set alignment of String to 1 + + * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary + + * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated + code in the common constrained array cases. + + * a-storio.adb: Change implementation to avoid possible alignment + problems on machines requiring strict alignment (data should be moved + as type Buffer, not type Elmt). + + * checks.adb (Apply_Array_Size_Check): Improve these checks by + killing the overflow checks which we really do not need (64-bits is + enough). + +2004-06-25 Vincent Celier + + * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function + (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path + inconditionally for the main project. + (Recursive_Add_Archives.Add_Archive_Path): New procedure + (Link_Executables.Check_Time_Stamps): New procedure + (Link_Executables.Link_Foreign): New procedure + Changes made to reduce nesting level of this package + (Check): New procedure + (Add_Switches): When not in quiet output, check that a switch is not + the concatenation of several valid switches. If it is, issue a warning. + (Build_Global_Archive): If the global archive is rebuilt, linking need + to be done. + (Compile_Sources): Rebuilding a library archive does not imply + rebuilding the global archive. + (Build_Global_Archive): New procedure + (Build_Library): New name for Build_Archive, now only for library + project + (Check_Archive_Builder): New procedure + (Create_Global_Archive_Dependency_File): New procedure + (Gprmake): Call Build_Global_Archive before linking + * makegpr.adb: Use Other_Sources_Present instead of Sources_Present + throughout. + (Scan_Arg): Display the Copyright notice when -v is used + + * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=) + for gnatls. + + * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT + COMPILE. + Add new GNAT LIST qualifier /FILES= + Added qualifier /DIRECTORY= to GNAT METRIC + Added qualifier /FILES= to GNAT METRIC + Added qualifier /FILES to GNAT PRETTY + + * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS, + to take into account both versions of the switch. + + * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should + always be the last switch to the gcc driver. Disable switch storing so + that switches automatically added by the gcc driver are not put in the + ALI file. + + * prj.adb (Project_Empty): Take into account changes in components of + Project_Data. + + * prj.ads (Languages_Processed): New enumaration value All_Languages. + + * prj.ads (Project_Data): Remove component Lib_Elaboration: never + used. Split Boolean component Ada_Sources_Present in two Boolean + components Ada_Sources_Present and Other_Sources_Present. + Minor reformatting + + * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present + instead of Sources_Present. + (Set_Ada_Paths.Add.Recursive_Add): Ditto + + * prj-nmsc.adb: Minor reformatting + (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme + (Check_Ada_Naming_Scheme_Validity): New name of previous procedure + Check_Ada_Naming_Scheme. + Change Sources_Present to Ada_Sources_Present or Other_Sources_Present + throughout. + + * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter + In_Limited. + Make sure that all cycles where there is at least one "limited with" + are detected. + (Parse_Single_Project): New Boolean parameter In_Limited + + * prj-proc.adb (Recursive_Check): When Process_Languages is + All_Languages, call first Prj.Nmsc.Ada_Check, then + Prj.Nmsc.Other_Languages_Check. + + * prj-proc.adb (Process): Use Ada_Sources_Present or + Other_Sources_Present (instead of Sources_Present) depending on + Process_Languages. + + * lang-specs.h: Keep -g and -m switches in the same order, and as the + last switches. + + * lib.adb (Switch_Storing_Enabled): New global Boolean flag + (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to + False. + (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is + False. + + * lib.ads (Disable_Switch_Storing): New procedure. + + * make.adb: Modifications to reduce nesting level of this package. + (Check_Standard_Library): New procedure + (Gnatmake.Check_Mains): New procedure + (Gnatmake.Create_Binder_Mapping_File): New procedure + (Compile_Sources.Compile): Add switch -gnatez as the last option + (Display): Never display -gnatez + + * Makefile.generic: + When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT) + + * gnatcmd.adb (Check_Project): New function + (Process_Link): New procedure to reduce nesting depth + (Check_Files): New procedure to reduce the nesting depth. + For GNAT METRIC, include the inherited sources in extending projects. + (GNATCmd): When GNAT LS is invoked with a project file and no files, + add the list of files from the sources of the project file. If this list + is too long, put it in a temp text files and use switch -files= + (Delete_Temp_Config_Files): Delete the temp text file that contains + a list of source for gnatpp or gnatmetric, if one has been created. + (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources + in the project file is too large, create a temporary text file that + list them and pass it to the tool with "-files=". + (GNATCmd): For GNAT METRIC add "-d=" as the first switch + + * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the + generated file is in not in Ada. + + * gnatls.adb: Remove all parameters And_Save that are no longer used. + (Scan_Ls_Arg): Add processing for -files= + (Usage): Add line for -files= + + * g-os_lib.adb (On_Windows): New global constant Boolean flag + (Normalize_Pathname): When on Windows and the path starts with a + directory separator, make sure that the resulting path will start with + a drive letter. + + * clean.adb (Clean_Archive): New procedure + (Clean_Project): When there is non-Ada code, delete the global archive, + the archive dependency files, the object files and their dependency + files, if they exist. + (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only. + +2004-06-25 Thomas Quinot + + * sinfo.ads: Fix typo in comment. + + * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses + the TSS for remote access-to-subprogram types, since these TSS are + always present once the type has been analyzed. + (RAS_E_Dereference): Same. + + * sem_attr.adb (Analyze_Attribute): When analysis of an attribute + reference raises Bad_Attribute, mark the reference as analyzed so the + node (and any children resulting from rewrites that could have occurred + during the analysis that ultimately failed) is not analyzed again. + + * exp_ch7.ads (Find_Final_List): Fix misaligned comment. + + * exp_dist.adb: Minor comment fix. + + * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected + type is an anonymous access type, no unchecked deallocation of the + allocated object can occur. If the object is controlled, attach it with + a count of 1. This allows attachment to the Global_Final_List, if + no other relevant list is available. + (Get_Allocator_Final_List): For an anonymous access type that is + the type of a discriminant or record component, the corresponding + finalisation list is the one of the scope of the type. + +2004-06-25 Ed Schonberg + + * sem_ch3.adb (Replace_Type): When computing the signature of an + inherited subprogram, use the first subtype if the derived type + declaration has no constraint. + + * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array + before applying previous optimization. Minor code cleanup. + + * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is + placed at the beginning of an unpacked record without explicit + alignment, a slice of it will be aligned and does not need a copy when + used as an actual. + +2004-06-25 Ed Schonberg + + PR ada/15591 + PR ada/15592 + * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute + reference is written with expressions mimicking parameters. + +2004-06-25 Hristian Kirtchev + + PR ada/15589 + * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to + STEP 2a. The constraints of a full type declaration of a derived record + type are checked for conformance with those declared in the + corresponding private extension declaration. The message + "not conformant with previous declaration" is emitted if an error is + detected. + +2004-06-25 Vasiliy Fofanov + + * g-traceb.ads: Document the need for -E binder switch in the spec. + + * g-trasym.ads: Document the need for -E binder switch in the spec. + +2004-06-25 Jose Ruiz + + * sem_prag.adb: Add handling of pragma Detect_Blocking. + + * snames.h, snames.ads, snames.adb: Add entry for pragma + Detect_Blocking. + + * s-rident.ads: Change reference to pragma Detect_Blocking. + + * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in + system.ads. + + * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False) + to indicate whether pragma Detect_Blocking is active. + + * par-prag.adb: Add entry for pragma Detect_Blocking. + + * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug + of not handling WITH. + Note that this replaces the previous update which was incorrect. + +2004-06-25 Javier Miranda + + * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the + use-clauses to have a clean environment. + + * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force + the installation of the use-clauses to stablish a clean environment in + case of compilation of a separate unit; otherwise the call to + use_one_package is protected by the barrier Applicable_Use. + + * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force + the installation of the use-clauses to stablish a clean environment in + case of compilation of a separate unit. + (End_Use_Clauses): Minor comment cleanup. + +2004-06-25 Sergey Rybin + + * gnat_ugn.texi: Add description of the gnatpp 'files' switch + +2004-06-23 Richard Henderson + + * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call. + +2004-06-20 Richard Kenner + + * decl.c (elaborate_expression, elaborate_expression_1): Arguments + now bool instead of int. + (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF. + * trans.c (gnu_switch_label_stack): New function. + (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the + elaboration of renamed entity returns. + (gnat_to_gnu, case N_Case_Statement): Add branches to end label. + (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE. + (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt. + (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and + DECL_SIZE_UNIT and simplify variable-sized case. + (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted. + Callers changes to call gimplify_type_sizes and gimplify_one_sizepos. + (gnat_stabilize_reference): Add arg to COMPONENT_REF. + (build_unit_elab): Disable for now. + * utils.c (mark_visited): New function. + (pushdecl): Walk tree to call it for global decl. + (update_pointer_to): Update all variants of pointer and ref types. + Add arg to COMPONENT_REF. + (convert): Likewise. + Move check for converting between variants lower down. + * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF. + (build_allocator): Don't force type of MODIFY_EXPR. + (gnat_mark_addressable, case VAR_DECL): Unconditionally call + put_var_into_stack. + +2004-06-14 Richard Kenner + + * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation. + * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP. + * decl.c (gnat_to_gnu_entity): Also set force_global for imported + subprograms. + * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack; + all callers changed. + (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change + the way that EXIT_STMT finds the loop label. + (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise. + (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here. + (add_stmt): Use annotate_with_locus insted of setting directly. + (pos_to_construct): Set TREE_PURPOSE of each entry to index. + (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF. + * utils.c (gnat_install_builtins): Install __builtin_memcmp. + (build_vms_descriptor): Add extra args to ARRAY_REF. + (convert): Use VIEW_CONVERT_EXPR between aggregate types. + * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST): + New cases. + (build_binary_op): Don't make explicit CONVERT_EXPR. + Add extra rgs to ARRAY_REF. + +2004-06-14 Pascal Obry + + * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on + Windows. Fix minor typo. + + * mlib-tgt-mingw.adb: New implementation using the GCC -shared option + which is now supported on Windows. With this implementation using the + Library Project feature is no different on Windows than on UNIX. + +2004-06-14 Vincent Celier + + * makegpr.adb (Compile_Sources): Nothing to do when there are no + non-Ada sources. + + * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment + + * prj-part.adb (Parse_Single_Project): When a duplicate project name is + found, show the project name and the path of the previously parsed + project file. + +2004-06-14 Ed Schonberg + + * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an + array, avoid copying the actual before the call. + +2004-06-14 Thomas Quinot + + * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools. + Instead, allocate memory on worst-case alignment assumptions, and then + return an aligned address within the allocated zone. + +2004-06-14 Robert Dewar + + * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to + elab entities in predefined units in No_Run_Time_Mode. + (Gen_Adainit_C): Same fix + (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined + units in No_Run_Time_Mode + (Gen_Elab_Calls_C): Same fix + + * symbols-vms-alpha.adb: Minor reformatting + + * g-debpoo.ads: Minor reformatting + + * lib.adb (In_Same_Extended_Unit): Version working on node id's + + * lib.ads (In_Same_Extended_Unit): Version working on node id's + + * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit + working on nodes. + + * make.adb: Minor reformatting + + * par-ch12.adb: Minor reformatting + + * par-prag.adb: Add dummy entry for pragma Profile_Warnings + + * prj-strt.adb: Minor reformatting + + * restrict.ads, restrict.adb: Redo handling of profile restrictions to + be more general. + + * sem_attr.adb: Minor reformatting + + * sem_ch7.adb: Minor reformatting + + * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc + for type in the same unit as the object declaration. + + * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows + static string expressions and not just string literals. + Minor reformatting + (Set_Warning): Reset restriction warning flag for restriction pragma + Implement pragma Profile_Warnings + Implement pragma Profile (Restricted) + Give obolescent messages for old restrictions and pragmas + + * snames.h, snames.ads, snames.adb: Add new entry for pragma + Profile_Warnings. + + * s-rident.ads: Add declarations for restrictions required by profile + Restricted and profile Ravenscar. + + * targparm.ads, targparm.adb: Allow pragma Profile in system.ads + + * gnat_ugn.texi: Correct some missing entries in the list of GNAT + configuration pragmas. + +2004-06-11 Vincent Celier + + * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to + gnatsym, when symbol policy is Restricted. + + * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to + gnatsym, when symbol policy is Restricted. + + * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted, + read the symbol file. + (Finalize): Fail in symbol policy Restricted if a symbol in the original + symbol file is not in the object files. Do not create a new symbol file + when symbol policy is Restricted. + + * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used + in Scng. + + * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy + Restricted. + (Usage): Line for new switch -R + + * make.adb (Initialize): When the platform is not VMS, add the + directory where gnatmake is invoked in the front of the path, if + gnatmake is invoked with directory information. Change the Scan_Args + while loop to a for loop. + (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency: + if Depth is equal or greater than the proposed depth, there is nothing + to do. + (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1 + instead of 0. + + * prj.ads: Add new symbol policy Restricted. + + * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction + with the new parameters Check_All_Labels and Case_Location. + + * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted + (Library_Symbol_File needs to be defined). + + * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels + and Case_Location If Check_All_Labels is True, check that all values of + the string type are used, and output warning(s) if they are not. + + * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels + and Case_Location. + + * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc" + + * gnat_ugn.texi: Update documentation about the library directory in + Library Projects. + + * makegpr.adb (Display_Command): In verbose mode, also display the + value of the CPATH env var, when the compiler is gcc. + (Initialize): Change the Scan_Args while loop to a for loop + (Compile_Individual_Sources): Change directory to object directory + before compilations. + + * symbols.ads: New symbol policy Restricted. + +2004-06-11 Olivier Hainque + + * a-except.adb (Raise_After_Setup family): Remove. The responsibility + is now taken care of internally in the Exception_Propagation package + and does not require clients assistance any more. + + * a-exexpr.adb (Is_Setup_And_Not_Propagated, + Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New + functions. Helpers to maintain a predicate required in the handling of + occurrence transfer between tasks. + This is now handled internally and does not require clients assistance + for the setup/propagate separation anymore. + (Setup_Exception, Propagate_Exception): Simplify the Private_Data + allocation strategy, handle the Setup_And_Not_Propagated predicate and + document. + + * s-taenca.adb (Check_Exception): Use raise_with_msg instead of + raise_after_setup, now that everything is handled internally within the + setup/propagation engine. + +2004-06-11 Hristian Kirtchev + + * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once. + Add additional conditions for the case of an actual being a simple + name or literal. Improve inlining by preventing the generation + of temporaries with a short lifetime (one use). + +2004-06-11 Hristian Kirtchev + + PR ada/15587 + * einfo.ads: Minor comment updates for Has_Completion and + E_Constant list of flags. + + * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations + and constant redeclarations now set the Has_Completion flag of their + defining identifiers. + + * sem_ch7.adb (Analyze_Package_Spec): Add procedure + Inspect_Deferred_Constant_Completion. + Used to detect private deferred constants that have not been completed + either by a constant redeclaration or pragma Import. Emits error message + "constant declaration requires initialization expression". + + * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now + completes a deferred constant. + +2004-06-11 Geert Bosch + + * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers. + + * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in + calculating exponent for scaling denormal numbers. + (Leading_Part): Properly raise Constraint_Error for zero or negative + Adjustment. + (Remainder): Properly raise Constraint_Error for zero divisor. + +2004-06-11 Thomas Quinot + + * sem_util.adb: Minor reformatting. + + * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit + dereference when accessing the entry parameter record. + (Check_Array_Type): Always check for possible implicit dereference. + (maybe_implicit_dereference): Rename to check_no_implicit_derefence. + Abort if a pointer is still present (denoting that an implicit + dereference was left in the tree by the front-end). + + * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit + dereference when accessing the entry parameter record. + (Check_Array_Type): Always check for possible implicit dereference. + (maybe_implicit_dereference): Rename to check_no_implicit_derefence. + Abort if a pointer is still present (denoting that an implicit + dereference was left in the tree by the front-end). + +2004-06-11 Emmanuel Briot + + * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error + message, like the compiler itself does. Easier to parse the output. + + * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments. + + * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should + be base names, and not includes directories. + +2004-06-11 Arnaud Charlet + + * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES), + so that dependencies are properly taken into account by make. + +2004-06-11 Arnaud Charlet + + PR ada/15622 + * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads, + exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic + +2004-06-11 Jerome Guitton + + * Makefile.in (install-gnatlib): install target-specific run-time files. + + * Make-lang.in: Remove obsolete targets. + +2004-06-11 Ed Schonberg + + * par-ch12.adb (P_Generic): Add scope before analyzing subprogram + specification, to catch misuses of program unit names. + + * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on + superfluous conversions in an instance. + +2004-06-11 Ed Schonberg + + PR ada/15403 + * sem_ch12.adb (Save_References): If operator node has been folded to + enumeration literal, associated_node must be discarded. + +2004-06-11 Jose Ruiz + + * s-stchop-vxworks.adb: Add required pragma Convention to + Task_Descriptor because it is updated by a C function. + +2004-06-08 Arnaud Charlet + + PR ada/15568 + * Makefile.in: Remove target specific SO_OPT on IRIX + +2004-06-07 Richard Kenner + + * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted. + (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise. + (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise. + (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise. + (STMT_STMT, USE_STMT): New statement codes. + (LOOP_STMT, EXIT_STMT): Make slight semantic changes. + * ada-tree.h: Reflect above changes. + (struct tree_loop_id): Deleted. + (union lang_tree_node, struct lang_decl, struct lang_type): + Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC + and DECL_LANGUAGE_SPECIFIC to reflect these changes. + (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted. + (IS_ADA_STMT): New macro. + * decl.c (annotate_decl_with_node): New function. + (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno. + (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR. + Call add_stmt_with_node to do needed assignments. + Add call to update setjmp buffer directly, not via EXPR_STMT. + (maybe_variable): Argment GNAT_NODE deleted. + * gigi.h (maybe_variable): Likewise. + (make_transform, add_stmt_with_node, set_block_for_group): New. + (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise. + (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise. + (discard_file_names, gnu_block_stack, gnat_to_code): Deleted. + (set_lineno, set_lineno_from_sloc): Likewise. + (record_code_position, insert_code_for): Likewise. + (gnat_poplevel): Now returns void. + (end_subprog_body): Now takes argument. + * misc.c (cgraph.h, tree-inline.h): New includes. + (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted. + (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New. + (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise. + (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise. + (gnat_parse_file): Don't set immediate_size_expand. + Call cgraph functions. + (gnat_expand_expr): Remove most cases. + (record_code_position, insert_code_for): Remove from here. + * trans.c (toplev.h, tree-gimple.h): Now included. + (discard_file_names): Deleted. + (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del. + (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise. + (struct stmt_group, current_stmt_group, stmt_group_free_list): New. + (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise. + (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise. + (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise. + (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise. + (set_block_for_group, add_stmt_list): Likewise. + (start_stmt_group): Renamed from start_block_stmt. + (end_stmt_group): Likewise, from end_block_stmt. + (build_stmt_group): Likewise, from build_block_stmt, also add arg. + (gigi): Don't set discard_file_names or call set_lineno. + Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code. + (tree_transform): Deleted, now renamed to be gnat_to_gnu. + Numerous changes throughout to reflect new names and complete + function-at-a-time implementation. + (gnat_expand_stmt): Delete or comment out all cases. + (process_inlined_subprograms): Use add_stmt. + (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't + call set_lineno; also remove unneeded block handling. + (process_type): Remove unneeded block handling. + (build_unit_elab): Remove calls to deleted functions. + * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include. + (tree-dump.h): Likewise. + (struct ada_binding_level): Add field jmpbuf_decl. + (gnat_define_builtin, gnat_install_builtins): New. + (gnat_gimplify_function, gnat_finalize): Likewise. + (gnat_poplevel): No longer return BLOCK, set it instead. + Remove code dealing with nested functions. + (gnat_init_decl_processing): Also set size_type_node. + Call gnat_install_builtins. + (create_var_decl): Don't set DECL_INIT_BY_ASSIGN. + (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC. + Remove special-case for "main". + (end_subprog_body): Add arg and rework for tree-ssa. + (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR. + Add case for BOOLEAN_TYPE. + * utils2.c (rtl.h): Now include. + (build_call_raise): Test Debug_Flag_NN directly. + (build_call_alloc_dealloc): Don't use local stack allocation for now. + (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted. + (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases. + +2004-06-07 Robert Dewar + + * a-direct.ads, einfo.ads: Minor comment updates + + * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb, + s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, + s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb, + s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb, + s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting. + + * s-interr-sigaction.adb: Remove unreferenced variable + (Attached_Interrupts). Minor reformatting. + Avoid use of variable I (replace by J). + + * par-ch10.adb: Fix text of one error message + + * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads, + exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb, + exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb, + opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb, + par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb, + par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb, + sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb, + sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, + sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb, + sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb, + snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada + 2005 support. + +2004-06-07 Doug Rupp + + * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb + + * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb + + * mlib-tgt-vms-ia64.adb: New file. + + * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb + Add mlib-tgt-vms-ia64.adb + Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb. + Move to alpha specific ifeq section. + Add VMS specific versions of symbols.adb + Renaming of 5q vms files. + + * 5qsystem.ads renamed to system-vms_64.ads. + +2004-06-07 Vincent Celier + + * a-calend.ads: Add a GNAT Note comment after function Time_Of to + explain that when a time of day corresponding to the non existing hour + on the day switching to DST is specified, Split may return a different + value for Seconds. + + * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar + to GNAT PRETTY. + + * g-os_lib.adb (OpenVMS): New Boolean value imported from System. + (Normalize_Pathname): Only resolve VMS logical names when on VMS. + + * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize + to False. + If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to + the linking options. + (Build_Library.Check_Libs): On VMS, if there is a dependency on + g-trasym.ads, set Gtrasymobj_Needed to True. + + * prj-attr.adb: Add new package Metrics for gnatmetric + + * prj-nmsc.adb (Record_Other_Sources): Put source file names in + canonical case to take into account files with upper case characters on + Windows. + (Ada_Check): Load the reference symbol file name in the name buffer to + check it, not the symbol file name. + + * snames.ads, snames.adb: Add standard name Metrics (name of project + file package for gnatmetric). + + * vms_conv.ads: Add Metric to Comment_Type + + * vms_conv.adb (Initialize): Add component dor Metric in Command_List + + * vms_data.ads: Add qualifiers for GNAT METRIC + + * makegpr.adb (Link_Executables): Take into account the switches + specified in package Linker of the main project. + +2004-06-07 Thomas Quinot + + * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so + the index of the last element is Units.Last, not Units.Table'Last + (which is usually not a valid index within the actually allocated + storage for the table). + + * exp_ch4.adb (Insert_Dereference_Action): Change predicate that + determines whether to generate a call to a checked storage pool + Dereference action. + Generate such a call only for a dereference that either comes from + source, or is the result of rewriting a dereference that comes from + source. + +2004-06-07 Romain Berrendonner + + * bindgen.adb (Gen_Output_File): Add support for GAP builds. + +2004-06-07 Eric Botcazou + + (gnat_to_gnu_entity) : For multi-dimensional arrays at + file level, elaborate the stride for inner dimensions in alignment + units, not bytes. + + * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned + in a comment. + +2004-06-07 Javier Miranda + + * exp_ch6.adb: Correct wrong modification in previous patch + +2004-06-07 Vasiliy Fofanov + + * g-trasym.ads: Corrected comment to properly reflect level of support + on VMS. + +2004-06-07 Hristian Kirtchev + + * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It + includes case of a variable referenced on the left hand side of an + assignment, therefore remove redundant code. Variables and prefixes of + indexed or selected components are now marked as referenced on left + hand side. Warnings are now properly emitted when variables or prefixes + are assigned but not read. + + * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to + left hand side referenced variables. Private access types do not + produce the warning "variable ... is assigned but never read". + Add also additional checks to left hand side referenced variables. + Aliased, renamed objects and access types do not produce the warning + "variable ... is assigned but never read" since other entities may read + the memory location. + +2004-06-07 Jerome Guitton + + * Makefile.in: In the powerpc/vxworks-specific section, restore + EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed + by mistake). + +2004-06-07 Ed Schonberg + + * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of + predefined operators. + Removes spurious type errors from g-trasym-vms.adb. + + * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is + distinct from the operator appearing in the source, call appropriate + routine to insert conversions when needed, and complete resolution of + node. + (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of + interpretations for rewritten right operand. + (Set_Mixed_Mode_Operand): Handle properly a universal real operand when + the other operand is overloaded and the context is a type conversion. + +2004-06-07 Richard Kenner + + * ada-tree.def (BLOCK_STMT): Now has two operands. + (BREAK_STMT): New. + + * ada-tree.h: (BLOCK_STMT_BLOCK): New macro. + + * gigi.h: (gnat_poplevel): Now returns a tree. + + * trans.c (end_block_stmt): Add arg; all callers changed. + (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN. + (start_block_stmt): Clear BLOCK_STMT_BLOCK. + (add_stmt): Set TREE_TYPE. + (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK. + (gnat_expand_stmt, case BREAK_STMT): New case. + + * utils.c (gnat_poplevel): Return a BLOCK, if we made one. + +2004-06-07 Jose Ruiz + + * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the + procedure Set_Stack_Size that is not needed. + +2004-06-07 Sergey Rybin + + * gnat_ugn.texi: Clarify the case when non-standard naming scheme is + used for gnatpp input file and for the files upon which it depends + +2004-06-07 Ben Brosgol + + * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter + +2004-06-07 Arnaud Charlet + + * gnatvsn.ads: Bump version numbers appropriately. + Add new build type. + +2004-06-07 Pascal Obry + + * gnat_ugn.texi: Improve comments about imported names and link names + on Windows. Add a note about the requirement to use -k gnatdll's option + when working with a DLL which has stripped stdcall symbols (no @nn + suffix). + +2004-05-27 Vincent Celier + + * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and + COMMENTS_LAYOUT=UNTOUCHED + + * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to + symbols-vms-alpha.adb + +2004-05-27 Thomas Quinot + + * sem.ads: Clarify documentation on checks suppression. + + * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing. + +2004-05-27 Ed Schonberg + + * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in + the case of multiple derivations. + (Is_Object_Reference): For a selected component, verify that the prefix + is itself an object and not a value. + + * sem_ch12.adb (Same_Instantiated_Constant): New name for + Same_Instantiated_Entity. + (Same_Instantiated_Variable): Subsidiary to + Check_Formal_Package_Instance, to recognize actuals for in-out generic + formals that are obtained from a previous formal package. + (Instantiate_Subprogram_Body): Emit proper error when + generating code and the proper body of a stub is missing. + + * sem_ch4.adb (Remove_Address_Interpretations): If the operation still + has a universal interpretation, do the disambiguation here. + + * exp_ch4.adb (Expand_N_Type_Conversion, + Expand_N_Unchecked_Type_Conversion): Special handling when target type + is Address, to avoid typing anomalies when Address is a visible integer + type. + + * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address + to determine whether a subprogram should not be marked Pure, even when + declared in a pure package. + +2004-05-27 Jose Ruiz + + * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile. + + * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length + Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts. + Update the documentation about the Ravenscar profile, following the + definition found in AI-249. + + * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when + setting the Profile (Ravenscar). This must be done in addition to + setting the required restrictions. + + * rtsfind.ads: Add the set of operations defined in package + Ada.Interrupts. + + * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment + restriction. + +2004-05-27 Eric Botcazou + + lang-specs.h: Always require -c or -S and always redirect to /dev/null + if -gnatc or -gnats is passed. + +2004-05-27 Hristian Kirtchev + + * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as + a significant reference. Warnings are now properly emitted when a + discriminated type is not referenced. + + * lib-xref.adb (Generate_Reference): A deferred constant completion, + record representation clause or record type discriminant does not + produce a reference to its corresponding entity. Warnings are now + properly emitted when deferred constants and record types are not + referenced. + +2004-05-27 Geert Bosch + + * Makefile.in: Use long version of libm routines on ia64 gnu/linux. + Fixes ACATS Annex G tests. + +2004-05-27 Robert Dewar + + * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not + handling WITH + +2004-05-27 Arnaud Charlet + + * s-interr.adb (Server_Task): Take into account case of early return + from sigwait under e.g. linux. + +2004-05-27 Sergey Rybin + + * gnat_ugn.texi: Add description for the new gnatpp options: + -rnb - replace the original source without creating its backup copy + -c0 - do not format comments + +2004-05-24 Geert Bosch + + * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi + with 192 bits of precision, sufficient to reduce a double-extended + arguments X with a maximum relative error of T'Machine_Epsilon, for X + in -2.0**32 .. 2.0**32. + (Cos, Sin): Always reduce arguments of 1/4 Pi or larger, to prevent + reduction by the processor, which only uses a 68-bit approximation of + Pi. + (Tan): Always reduce arguments and compute function either using + the processor's fptan instruction, or by dividing sin and cos as needed. + +2004-05-24 Doug Rupp + + * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid + gcc error on 32/64 bit VMS. + +2004-05-24 Olivier Hainque + + * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs, + since this is what we get for stack overflows although not documented + as such. + Document the issues which may require adjustments to our signal + handlers. + +2004-05-24 Ed Schonberg + + * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the + enclosing dynamic scope if the instantiation is within a generic unit. + +2004-05-24 Arnaud Charlet + + * exp_dbug.ads: Fix typo. + + * Makefile.in: s-osinte-linux-ia64.ads was misnamed. + Rename it to its proper name: system-linux-ia64.ads + (stamp-gnatlib1): Remove extra target specific run time files when + setting up the rts directory. + +2004-05-24 Javier Miranda + + * einfo.ads, einfo.adb (Limited_Views): Removed. + (Limited_View): New attribute that replaces the previous one. It is + now a bona fide package with the limited-view list through the + first_entity and first_private attributes. + + * sem_ch10.adb (Install_Private_With_Clauses): Give support to + limited-private-with clause. + (Install_Limited_Withed_Unit): Install the private declarations of a + limited-private-withed package. Update the installation of the shadow + entities according to the new structure (see Build_Limited_Views) + (Build_Limited_Views): Replace the previous implementation of the + limited view by a package entity that references the first shadow + entity plus the first shadow private entity (required for limited- + private-with clause) + (New_Internal_Shadow_Entity): Code cleanup. + (Remove_Limited_With_Clause): Update the implementation to undo the + new work carried out by Build_Limited_Views. + (Build_Chain): Complete documentation. + Replace Ada0Y by Ada 0Y in comments + Minor reformating + + * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access + types the level of accessibility depends on the enclosing type + declaration. + + * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow + entities. Complete documentation of previous change. + +2004-05-24 Robert Dewar + + * namet.adb: Minor reformatting + Avoid use of name I (replace by J) + Minor code restructuring + + * sem_ch6.adb: Minor reformatting + + * lib-writ.adb: Do not set restriction as active if this is a + Restriction_Warning case. + + * sem_prag.adb: Reset restriction warning flag if real pragma + restriction encountered. + + * s-htable.adb: Minor reformatting + Change rotate count to 3 in Hash (improves hash for small strings) + + * 5qsystem.ads: Add comments for type Address (no literals allowed). + + * gnat_ugn.texi: Add new section of documentation "Code Generation + Control", which describes the use of -m switches. + +2004-05-24 Eric Botcazou + + trans.c (tree_transform) : Do the dereference directly + through the DECL_INITIAL for renamed variables. + +2004-05-24 Arnaud Charlet + + * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads + +2004-05-19 Joel Brobecker + + * exp_dbug.ads: Correct comments concerning handling of overloading, + since we no longer use $ anymore. + +2004-05-19 Sergey Rybin + + * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not + ignore errors if ASIS_Mode is set. This prevents creating ASIS trees + with illegal subunits. + +2004-05-19 Ed Schonberg + + * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram + body with front-end inlining enabled, check whether an inline pragma + appears immediately after the body and applies to it. + + * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is + enabled and the pragma appears after the body of the subprogram. + +2004-05-17 Richard Kenner + + Part of function-at-a-time conversion + + * misc.c (adjust_decl_rtl): Deleted. + (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): + Define. + + * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted. + (add_decl_stmt, add_stmt, block_has_vars): New functions. + (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel. + + * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt + when making a decl. + (gnat_to_gnu_entity): Likewise. + Use add_stmt to update setjmp buffer. + Set TREE_ADDRESSABLE instead of calling put_var_into_stack and + flush_addressof. + No longer call adjust_decl_rtl. + (DECL_INIT_BY_ASSIGN_P): New macro. + (DECL_STMT_VAR): Likewise. + + * trans.c (gigi): Call start_block_stmt to make the outermost + BLOCK_STMT. + (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type): + Call start_block_stmt and end_block_stmt temporarily. + Use gnat_expand_stmt instead of expand_expr_stmt. + (add_decl_stmt): New function. + (tree_transform): Call it. + (add_stmt): Also emit initializing assignment for DECL_STMT if needed. + (end_block_stmt): Set type and NULL_STMT. + (gnat_expand_stmt): Make recursize call instead of calling + expand_expr_stmt. + (gnat_expand_stmt, case DECL_STMT): New case. + (set_lineno_from_sloc): Do nothing if global. + (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables. + (start_block_stmt, add_stmt, end_block_stmt): New functions. + (build_block_stmt): Call them. + (gnat_to_code): Don't expand NULL_STMT. + (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change + args. + (tree_transform): Likewise. + (tree_transform, case N_Null_Statement): Return NULL_STMT. + (gnat_expand_stmt, case NULL_STMT): New case. + (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no + IF_STMT_TRUE. + + * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set + TREE_ADDRESSABLE. + + * utils.c (create_var_decl): Do not call expand_decl or + expand_decl_init. + Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable. + Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR + here. + (struct e_stack): Add chain_next to GTY. + (struct binding_level): Deleted. + (struct ada_binding_level): New struct. + (free_block_chain): New. + (global_binding_level, clear_binding_level): Deleted. + (global_bindings_p): Rework to see if no chain. + (kept_level_p, set_block): Deleted. + (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use + new data structure and work directly on BLOCK node. + (gnat_poplevel): Similarly. + (get_decls): Look at BLOCK_VARS. + (insert_block): Work directly on BLOCK node. + (block_has_var): New function. + (pushdecl): Rework for new binding structures. + (gnat_init_decl_processing): Rename and rework calls to pushlevel and + poplevel. + (build_subprog_body): Likewise. + (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL. + + * ada-tree.def (DECL_STMT, NULL_STMT): New codes. + + * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro. + (DECL_STMT_VAR): Likewise. + +2004-05-17 Robert Dewar + + * restrict.ads, restrict.adb (Process_Restriction_Synonym): New + procedure + + * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling + of restriction synonyums by using + Restrict.Process_Restriction_Synonyms. + + * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym + + * s-restri.ads (Tasking_Allowed): Correct missing comment + + * s-rident.ads: Add entries for restriction synonyms + + * ali.adb: Fix some problems with badly formatted ALI files that can + result in infinite loops. + + * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb, + s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb, + s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, + s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb, + s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb, + s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb, + s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb, + s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb, + s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb, + a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb, + exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb, + s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb, + s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads, + s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, + s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads, + s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads, + s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads, + s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads, + s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb, + s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID + to Task_Id (minor cleanup). + +2004-05-17 Vincent Celier + + * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing + directory separator. + + * prj-proc.adb (Recursive_Process): Inherit attribute Languages from + project being extended, if Languages is not declared in extending + project. + +2004-05-17 Javier Miranda + + * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the + limited view of a visible sibling. + +2004-05-14 Robert Dewar + + * gnat_ugn.texi: Minor change to -gnatS documentation + + * sprint.adb: Remove some instances of Assert (False) and for this + purpose replace them by output of a ??? string. + + * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma + Assert (False). + + * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit + flag processing. This was suppressing required dependencies in + No_Run_Time mode and is not needed since the binder does not generate + references for things in libgnat anyway. + + * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC + warning. + +2004-05-14 Thomas Quinot + + * gnat_ugn.texi: Document AIX-specific issue with initialization of + resolver library. + + * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference + action for the case of an actual parameter in an init proc call. + +2004-05-14 Ed Schonberg + + * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected + subtype, check visible entities in base type. + + * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup + actions if the object is a renaming. + + * sem_ch12.adb (Same_Instantiated_Entity): Predicate for + Check_Formal_Package_Instance, to determine more precisely when the + formal and the actual denote the same entity. + +2004-05-14 Javier Miranda + + * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262 + + * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity + corresponding to a private_with must be removed from visibility; it + will be made visible later, just before we analyze the private part of + the package. + (Check_Private_Child_Unit): Allow private_with clauses in public + siblings. + (Install_Siblings): Make visible the private entities of private-withed + siblings. + (Install_Withed_Unit): Do not install the private withed unit if we + are compiling a package declaration and the Private_With_OK flag was + not set by the caller. These declarations will be installed later, + just before we analyze the private part of the package. + + * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected + during the evaluation of the expression that initializes the object, + decorate it with the expected type to avoid cascade errors. + Code cleanup. + + * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library + subprogram we have to install the private_with clauses after its + specification has been analyzed (as documented in AI-262.TXT). + + * sem_ch8.adb (Has_Private_With): New function. Determines if the + current compilation unit has a private with on a given entity. + (Find_Direct_Name): Detect the Beaujolais problem described in + AI-262.TXT + + * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It + provides the functionality of the function Is_Ancestor that was + previously available in sem_ch10. It has been renamed to avoid + overloading. + + * sprint.adb (Sprint_Node_Actual): Print limited_with clauses + +2004-05-14 Richard Kenner + + * utils.c (build_vms_descriptor): Use SImode pointers. + +2004-05-14 Vasiliy Fofanov + + * gnat_ugn.texi: Revised chapter "GNAT and Libraries". + +2004-05-14 GNAT Script + + * Make-lang.in: Makefile automatically updated + +2004-05-14 Arnaud Charlet + + Renaming of target specific files for clarity + + * Makefile.in: Rename GNAT target specific files. + + * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads, + 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads, + 3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb, + 3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, + 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads, + 3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads, + 42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads, + 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads, + 4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads, + 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads, + 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads, + 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads, + 51osinte.adb, 51osinte.ads, 51system.ads, + 52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads, + 55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb, + 56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads, + 56tpopsp.adb, 57system.ads, 58system.ads, + 5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads, + 5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads, + 5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb, + 5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads, + 5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb, + 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads, + 5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb, + 5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads, + 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb, + 5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads, + 5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb, + 5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads, + 5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads, + 5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads, + 5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads, + 5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb, + 5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb, + 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads, + 5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb, + 5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb, + 5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb, + 5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads, + 5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb, + 5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads, + 5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads, + 5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb, + 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb, + 5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb, + 5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb, + 5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads, + 5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads, + 5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb, + 5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb, + 5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb, + 5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb, + 5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, + 7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb, + 7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb, + 7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads, + 7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below. + + * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb, + a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb, + a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads, + a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads, + a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads, + a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads, + a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads, + a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads, + a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads, + a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb, + g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads, + g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads, + g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads, + g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads, + g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb, + g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads, + g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads, + g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb, + interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb, + mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb, + mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb, + mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb, + s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb, + s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb, + s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb, + s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb, + s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads, + s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb, + s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb, + s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads, + s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb, + s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads, + s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads, + s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads, + s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads, + s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb, + s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb, + s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb, + s-osinte-solaris.ads, s-osinte-solaris-fsu.ads, + s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads, + s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb, + s-osinte-vms.ads, s-osinte-vxworks.adb, + s-osinte-vxworks.ads, s-osprim-mingw.adb, + s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb, + s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads, + s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads, + s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb, + s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads, + s-proinf-irix-athread.adb, s-proinf-irix-athread.ads, + s-stchop-vxworks.adb, s-taprop-dummy.adb, + s-taprop-hpux-dce.adb, s-taprop-irix.adb, + s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb, + s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb, + s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb, + s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb, + s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads, + s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads, + s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads, + s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads, + s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads, + s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb, + s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb, + s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb, + s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb, + s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb, + s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb, + s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads, + s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads, + symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads, + system-hpux.ads, system-interix.ads, system-irix-n32.ads, + system-irix-o32.ads, system-linux-x86_64.ads, + system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads, + system-mingw.ads, system-os2.ads, system-solaris-sparc.ads, + system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads, + system-unixware.ads, system-vms.ads, system-vms-zcx.ads, + system-vxworks-alpha.ads, system-vxworks-m68k.ads, + system-vxworks-mips.ads, system-vxworks-ppc.ads, + system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files + above. + +2004-05-13 Zack Weinberg + + * trans.c (gnat_stabilize_reference_1): Remove case 'b'. + +2004-05-13 Diego Novillo + + Merge from tree-ssa-20020619-branch. + + * config-lang.in (boot_language, build_by_default): Set + to no. + * utils.c (unchecked_convert): Use OEP_ONLY_CONST. + (max_size): Add static chain op for call_expr. + +2004-05-12 Richard Sandiford + + PR target/15331 + * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '. + +2004-05-11 Roger Sayle + + * utils.c (max_size): Use MIN_EXPR to find the minimum value of a + COND_EXPR. + +2004-05-10 Doug Rupp + + * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to + system.aux_dec. + + * s-auxdec.ads: Add Short_Address subtype (moved here from System). + + * Makefile.in: [VMS]: Add translation for 5qauxdec.ads. + + * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha. + Fixes undefined symbols in IA64 gnatlib. + + * 5vinmaop.adb: Reference s-auxdec for Short_Address. + + * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype + Short_Address). This will be moved to system.auxdec. + +2004-05-10 Thomas Quinot + + * sem_util.adb: Replace test for presence of a node that is always + present with a call to Discard_Node. + + * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to + Analyze on the library unit node after generation of distribution stub + constructs. The call was a no-op because Unit_Node has already been + Analyzed, and the tree fragments for the distribution stubs are + analyzed as they are inserted in Exp_Dist. + Update comment regarding to distribution stubs to reflect that we + do not generate stub in separate files anymore. + + * einfo.ads: Clarify the fact that a tagged private type has the + E_Record_Type_With_Private Ekind. + + * erroutc.adb: Minor reformatting + + * erroutc.ads (Max_Msg_Length): Increase to cover possible larger + values if line length is increased using -gnatyM (noticed during code + reading). + + * eval_fat.adb: Minor reformatting + Put spaces around exponentiation operator + +2004-05-10 Ed Schonberg + + PR ada/15005 + * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix + has been rewritten as an explicit dereference, retrieve type of + original node to check for possibly unconstrained record type. + +2004-05-10 Ed Schonberg + + * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not + overriding, use the operation of the parent unconditionally. + + * sem_ch4.adb (Remove_Address_Interpretations): Remove address + operation when either operand is a literal, to avoid further + ambiguities. + + * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and + overridden by a previous explicit declaration, mark the previous entity + as overriding. + + * sem_disp.adb (Check_Dispatching_Operation): New predicate + Is_Visibly_Controlled, to determine whether a declaration of a + primitive control operation for a derived type overrides an inherited + one. Add warning if the explicit declaration does not override. + +2004-05-10 Vincent Celier + + * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in + some cases when the sources are no longer present. + + * make.adb (Collect_Arguments): Fail if an external source, not part + of any project need to be compiled, when switch -x has not been + specified. + + * makeusg.adb: Document new switch -x + + * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag, + defaulted to False. + + * switch-m.adb (Scan_Make_Switches): New switch -x + + * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for + gnatmake switch -x. + + * gnat_ugn.texi: Document new gnatmake switch -x + +2004-05-10 Eric Botcazou + + * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0. + + * utils.c (create_var_decl): Do not modify the DECL_COMMON flag. + (process_attributes): Likewise. + +2004-05-10 Joel Brobecker + + * s-inmaop.ads: Fix spelling mistake in one of the comments. + +2004-05-10 Robert Dewar + + * gnat_ugn.texi: Document that for config pragma files, the maximum + line length is always 32767. + + * gnat_rm.texi: For pragma Eliminate, note that concatenation of string + literals is now allowed. + + * gnat-style.texi: Remove statement about splitting long lines before + an operator rather than after, since we do not follow this rule at all. + Clarify rule (really lack of rule) for spaces around exponentiation + + * sem_elim.adb: Allow concatenation of string literals as well as a + single string literal for pragma arguments. + + * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function + + * a-textio.adb (Terminate_Line): Do not add line feed if nothing + written for append case. + + * frontend.adb: Changes to avoid checking max line length in config + pragma files. + + * g-os_lib.ads: Minor reformatting + + * mlib-utl.adb: Do not define Max_Line_Length locally (definition was + wrong in any case. Instead use standard value. Noticed during code + reading. + + * opt.ads (Max_Line_Length): New field, used to implement removal of + limitation on length of lines when scanning config pragma files. + + * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb, + makeutl.ads, makeutl.adb: Minor reformatting + + * scn.adb: Do not check line length while scanning config pragma files + Do not check line length while scanning out license information + + * scng.adb: Changes to avoid line length checks while parsing config + pragma files. + +2004-05-10 GNAT Script + + * Make-lang.in: Makefile automatically updated + +2004-05-05 Arnaud Charlet + + * osint.adb (Find_Program_Name): Fix handling of VMS version + number. + +2004-05-05 Emmanuel Briot + + * g-os_lib.ads (Invalid_Time): New constant + + * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now + return OS_Time instead of time_t to match what is imported by Ada. + Now return -1 if the file doesn't exist, instead of a random value + +2004-05-05 Robert Dewar + + * usage.adb: Add line for -gnatR?s switch + + * sem_ch13.adb, exp_ch2.adb: Minor reformatting + + * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size + and for Match (Data_First, Data_last) + + * lib-writ.adb (Write_With_Lines): Ensure that correct index number is + written when we are dealing with multi-unit files. + +2004-05-05 Jerome Guitton + + * Makefile.in: Remove unused targets and variables. + +2004-05-05 Vincent Celier + + * switch-m.adb: New gnatmake switch -eI + + * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and + of new gnatmake switch -eInnn. + + * makegpr.adb: Take into account new parameters Index and Src_Index in + Prj.Util. + + * clean.adb: Implement support for multi-unit sources, including new + switch -i. + + * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter + Src_Index. + + * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0 + (Extract_From_Q): New out parameter Index + (Mark, Is_Marked): Subprograms moved to Makeutl + (Switches_Of): New parameter Source_Index + (Add_Switch): New parameter Index + (Check): New parameter Source_Index + (Collect_Arguments): New parameter Source_Index + (Collect_Arguments_And_Compile): New parameter Source_Index + (Compile): New parameter Source_Index + Put subprograms in alphabetical order + Add support for multi-source sources, including in project files. + + * makeutl.ads, makeutl.adb (Unit_Index_Of): New function + (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from + Make. + + * makeusg.adb: New gnatmake switch -eInnn + + * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to + Prj.Util.Value_Of. + + * opt.ads (Main_Index): New variable, defaulted to 0. + + * osint.ads, osinte.adb (Add_File): New parameter Index + (Current_Source_Index): New function + + * prj.adb: Take into account new components Index and Src_Index + + * prj.ads (String_Element): New component Index + (Variable_Value): New component Index + (Array_Element): New component Src_Index + + * prj-attr.adb: Indicate that optional index may be specified for + attributes Main, Executable, Spec, Body and some of Switches. + + * prj-attr.ads (Attribute_Kind): New values for optional indexes + (Attribute_Record): New component Optional_Index + + * prj-com.ads (File_Name_Data): New component Index + + * prj-dect.adb (Parse_Attribute_Declaration): Process optional index + + * prj-env.adb (Put): Output optional index + + * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and + attributes Spec and Body. + + * prj-nmsc.adb: Process optional indexes + + * prj-pp.adb: Ouput "at" for optional indexes + + * prj-proc.adb: Take into account optional indexes + + * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter + Optional_Index. For string literal, + process optional index when Optional_Index is True. + (Parse_Expresion): New Boolean parameter Optional_Index + + * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function + (Set_Source_Index_Of): New procedure + + * prj-util.adb (Executable_Of, Value_Of): Take into account optional + index. + + * prj-util.ads (Executable_Of): New parameter Index + (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value): + New parameter Src_Index, defaulted to 0. + +2004-05-05 Ed Schonberg + + PR ada/15257 + * sem_ch3.adb (Access_Definition): If this is an access parameter + whose designated type is imported through a limited_with clause, do + not add the enclosing subprogram to the list of private dependents of + the type. + +2004-05-05 Ed Schonberg + + PR ada/15258 + * sem_ch6.adb (Base_Types_Match): True if one type is imported through + a limited_with clause, and the other is its non-limited view. + +2004-05-05 Thomas Quinot + + * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals. + + * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb, + exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use + Stand.Boolean_Literals to produce references to entities + Standard_False and Standard_True from compile-time computed boolean + values. + + * stand.ads (Boolean_Literals): New variable, provides the entity + values for False and True, for use by the expander. + +2004-05-05 Doug Rupp + + * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype + 5vinmaop.adb: Unchecked convert Short_Address vice Address + + * adaint.c, raise.c: Caste CRTL function return value + to avoid gcc error on 32/64 bit IVMS. + + * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and + target = IA64/VMS. + + * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS. + + * 5qsystem.ads (Address): Declare as Long_Integer + (Short_Address): Declare as 32 bit subtype of Address + Declare abstract address operations to avoid gratuitous ambiguities. + +2004-05-05 Jose Ruiz + + * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249) + instead of the old Boolean_Entry_Barriers. + Ditto for No_Task_Attributes_Package instead of No_Task_Attributes. + +2004-05-05 GNAT Script + + * Make-lang.in: Makefile automatically updated + +2004-05-03 Arnaud Charlet + + * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used. + +2004-05-03 Olivier Hainque + + 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-05-03 Arnaud Charlet + + * a-exexpr.adb: Add comments + +2004-05-03 Joel Brobecker + + * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to + declare the Ancestor_Tags array in Type_Specific_Data with a small size + without risking a bounds check error when accessing one of its + components. + (Type_Specific_Data): Define Ancestor_Tags as a small array. + This prevents us from hitting a limitation during the debug info + generation when using stabs. + + * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a + small array. + This prevents us from hitting a limitation during the debug info + generation when using stabs. + +2004-05-03 Eric Botcazou + + lang-specs.h: Remove -gnatz* from specs. + +2004-05-03 Vincent Celier + + * gprmake.adb, makegpr.ads, makegpr.adb: New files. + + * Make-lang.in, Makefile.in: Add gprmake + +2004-05-03 Thomas Quinot + + * sem_aggr.adb: Fix typo in comment. + +2004-05-03 Robert Dewar + + * make.adb: Minor reformatting + + * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function + + * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address + so that it works when address is not a private type. + + * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal + properly with rewritten unchecked conversions. This prevents + order-of-elaboration issues that can otherwise arise. + (Minimum_Size): Don't check size of access types under VMS + + * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove + interpretations of integer literals as type System.Address. + + * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function + (Is_Descendent_Of): New function + +2004-05-03 Jose Ruiz + + * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers. + Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length. + No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment. + + * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead + of the old Max_Entry_Queue_Depth. + + * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers. + Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length + No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment + + * snames.ads: New entry for proper handling of Boolean_Entry_Barriers. + New entry for proper handling of Max_Entry_Queue_Depth. + New entry for proper handling of No_Dynamic_Interrupts. + + * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that + supersedes the GNAT specific restriction Boolean_Entry_Barriers. + Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes + the GNAT specific restriction Max_Entry_Queue_Depth. + Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes + the GNAT specific restriction No_Dynamic_Interrupts. + + * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers + instead of the old Boolean_Entry_Barriers. + Use the new restriction No_Dynamic_Attachment instead of the old + No_Dynamic_Interrupts. + + * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that + supersedes the GNAT specific restriction Boolean_Entry_Barriers. + + * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead + of the old Max_Entry_Queue_Depth. + +2004-05-03 GNAT Script + + * Make-lang.in: Makefile automatically updated + +2004-04-29 Ed Schonberg + + * checks.adb (Enable_Range_Check): If the prefix of an index component + is an access to an unconstrained array, perform check unconditionally. + +2004-04-29 Richard Kenner + + * decl.c (gnat_to_gnu_field): Also call make_packable_type if + Component_Clause. + +2004-04-29 Olivier Hainque + + * init.c (__gnat_install_handler, __gnat_error_handler): Remove + alternate stack setting. There was no support for the tasking cases + and the changes eventually caused a number of side-effect failures in + the non-tasking case too. + +2004-04-29 Eric Botcazou + + lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or + -gnats is passed. + +2004-04-29 Vincent Celier + + * make.adb (Gnatmake): Increase max size of argument array for + gnatbind for the potential addition of -F. + If there are Stand-Alone Library projects, invoke gnatbind with -F to + be sure that elaboration flags will be checked. + + * switch-c.adb: Correct call to Scan_Pos for -gnateI + +2004-04-29 Thomas Quinot + + * sem_warn.adb (Check_References): Move ' may be + null' warning out of under Warn_On_No_Value_Assigned. + +2004-04-29 Ed Falis + + * gnat_ugn.texi: Fixed texi error + +2004-04-29 Robert Dewar + + * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove + abstract operations if they come from predefined files. + + * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be + Dynamic, not RM). + + * s-addope.adb: Correct obvious error in mod function + +2004-04-28 Andrew W. Reynolds + + * Makefile.in: Add target pairs for powerpc darwin* + tasking support. + + * a-intnam-darwin.ads, s-osinte-darwin.adb, + s-osinte-darwin.ads, system-darwin-ppc.ads: New files. + +2004-04-28 Ulrich Weigand + + * Makefile.in: Add target macro definitions for s390*-linux*. + * system-linux-s390.ads: New file. + * system-linux-s390x.ads: New file. + +2004-04-28 Joseph S. Myers + + * gnat_ugn.texi: Correct argument to @setfilename. + +2004-04-28 Ulrich Weigand + + * a-exexpr.adb (Unwind_Word): New data type. + (Unwind_Exception): Use it as type of Private1 and Private2. + + * raise.c (db_action_for): Fix debug printf. + +2004-04-27 Ed Schonberg + + * a-wtmoio.ads: Formal type must be a modular type, not a signed + integer type. + +2004-04-27 Richard Kenner + + * decl.c (gnat_to_gnu_entity, case object): Call + __builtin_update_setjmp_buf. + + * gigi.h (update_setjmp_buf): Deleted. + (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New. + + * misc.c: (update_setjmp_buf): Deleted. + + * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue + around block of RTL. + + * utils.c (init_gigi_decls): Initialize update_setjmp_buf. + +2004-04-26 Thomas Quinot + + * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local + subprogram for which no pragma All_Calls_Remote applies, store the + address of the real subprogram in the underlying record type, so local + dereferences do not go through the PCS. + +2004-04-26 Robert Dewar + + * i-c.ads: Add some type qualifications to avoid ambiguities when + compiling with s-auxdec.ads and a non-private address type. + +2004-04-26 Arnaud Charlet + + * Makefile.rtl: Fix error in previous check-in: + Add s-addope.o to non tasking object list (rather than tasking object + list). + +2004-04-26 Javier Miranda + + * sem_aggr.adb: Fix typo in comments + (Resolve_Aggr_Expr): Propagate the type to the nested aggregate. + Required to check the null-exclusion attribute. + + * sem_attr.adb (Resolve_Attribute): Check the accessibility level in + case of anonymous access types in record and array components. For a + component definition the level is the same of the enclosing composite + type. + + * sem_ch3.adb (Analyze_Component_Declaration): In case of components + that are anonymous access types the level of accessibility depends on + the enclosing type declaration. In order to have this information, set + the scope of the anonymous access type to the enclosing record type + declaration. + (Array_Type_Declaration): In case of components that are anonymous + access types the level of accessibility depends on the enclosing type + declaration. In order to have this information, set the scope of the + anonymous access type to the enclosing array type declaration. + + * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous + access type. + + * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that + renaming of anonymous access-to-constant types allowed if and only if + the renamed object is access-to-constant. + + * sem_util.adb (Type_Access_Level): In case of anonymous access types + that are component_definition or discriminants of a nonlimited type, + the level is the same as that of the enclosing component type. + +2004-04-26 Sergey Rybin + + * sem_elim.adb: Some minor code reorganization from code reading. Fix + misprint in the function name (File_Name_Match). + +2004-04-23 Laurent Guerby + + * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after + install. + +2004-04-23 Rainer Orth + + * Make-lang.in (GNATBIND_OBJS): Add s-addope.o. + +2004-04-23 Emmanuel Briot + + * adaint.c (__gnat_try_lock): No longer requires that the parent + directory be writable, the directory itself is enough. + (gnat_is_absolute_path): Change profile, so that the call from + GNAT.OS_Lib can be made more efficient. + + * adaint.h (gnat_is_absolute_path): Change profile, so that the call + from GNAT.OS_Lib can be made more efficient. + + * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid + one copy of the file name. Found by code reading. + +2004-04-23 Vincent Celier + + * gnat_ugn.texi: Add documentation for gnatmake switch -eL + Correct documentation on gnatmake switches transmitted to the compiler + + * ali.ads: Minor comment fix + +2004-04-23 Javier Miranda + + * sem_ch6.adb: (Confirming Types): Code cleanup + + * decl.c (gnat_to_gnu_entity): Give support to anonymous access to + subprogram types: E_Anonymous_Access_Subprogram_Type and + E_Anonymous_Access_Protected_Subprogram_Type. + +2004-04-23 Thomas Quinot + + * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating + whether a pragma All_Calls_Remote applies to the subprogram on which + 'Access is taken. + No functional change is introduced by this revision; the new parameter + will be used to allow calls to local RCI subprograms to be optimized + to not use the PCS in the case where no pragma All_Calls_Remote applies, + as is already done in the PolyORB implementation of the DSA. + + * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating + whether a pragma All_Calls_Remote applies to the subprogram on which + 'Access is taken. + No functional change is introduced by this revision; the new parameter + will be used to allow calls to local RCI subprograms to be optimized + to not use the PCS in the case where no pragma All_Calls_Remote applies, + as is already done in the PolyORB implementation of the DSA. + +2004-04-23 Robert Dewar + + * Makefile.rtl: Add entry for s-addope.o in run time library list + * Make-lang.in: Add entry for s-addope.o to GNAT1 objects + * s-addope.ads, s-addope.adb: New files. + + * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb, + s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb, + s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow + System.Address to be non-private and signed. + + * sem_elim.adb: Minor reformatting (fairly extensive) + Some minor code reorganization from code reading + Add a couple of ??? comments + +2004-04-23 Richard Kenner + + * trans.c (tree_transform, build_unit_elab): Don't call getdecls. + (tree_transform, case N_If_Statement): Remove non-determinism. + + * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL. + +2004-04-23 Sergey Rybin + + * gnat_rm.texi: Small fixes in the changes made in the 'pragma + Eliminate' section. + + * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is + no longer used as a parameter name for Eliminate pragma). + +2004-04-22 Laurent Guerby + + PR optimization/14984 + PR optimization/14985 + * trans.c (gigi): Fix non determinism leading to bootstrap + comparison failures. + +2004-04-21 Pascal Obry + + * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0]) + passed to spawnvp() to properly handle program pathname with spaces on + Win32. + +2004-04-21 Emmanuel Briot + + * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False. + (Allocate, Deallocate, Free_Physically): Make sure the tasks are + unlocked in case of exceptions. + +2004-04-21 Joel Brobecker + + * gigi.h (get_target_no_dollar_in_label): Remove extern declaration. + This function does not exist anymore. + +2004-04-21 Thomas Quinot + + * gnatbind.adb, gnatlink.adb: Update name of imported C symbol. + + * link.c: Move variables to the __gnat name space. + + * Makefile.in: list link.o explicitly when needed. + + * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib. + +2004-04-21 Javier Miranda + + * einfo.adb (Original_Access_Type): New subprogram + (Set_Original_Access_Type): New subprogram + (Write_Field21_Name): Write the name of the new field + + * einfo.ads (Original_Access_Type): New field present in access to + subprogram types. + Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and + E_Anonymous_Access_Protected_Subprogram_Type. + + * lib-xref.adb (Output_One_Ref): Give support to anonymous access to + subprogram types. + + * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding + to anonymous access to subprogram types. + + * sem_attr.adb (Resolve_Attribute): Give support to anonymous access + to subprogram types. + + * sem_ch3.adb (Access_Definition): Complete decoration of entities + corresponding to anonymous access to subprogram types. + (Analyze_Component_Declaration): Add new actual to the call to + subprogram replace_anonymous_access_to_protected_subprogram. + (Array_Type_Declaration): Add new actual to the call to subprogram + replace_anonymous_access_to_protected_subprogram. + (Process_Discriminants): Add new actual to the call to subprogram + replace_anonymous_access_to_protected_subprogram. + (Replace_Anonymous_Access_To_Protected_Subprogram): New formal. + + * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New + formal. + + * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous + access to subprogram types. + + * sem_util.adb (Has_Declarations): Addition of package_specification + nodes. + +2004-04-21 Ed Schonberg + + * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate + inlined flags to renamed entity only if in current unit. + +2004-04-21 Thomas Quinot + + * s-parint.ads: Add DSA implementation marker. + + * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the + value of System.Partition_Interface.DSA_Implementation to determine + what version of the distributed systems annex is available (no + implementation, GLADE, or PolyORB). + +2004-04-21 Joel Brobecker + + * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used. + +2004-04-21 Richard Kenner + + * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node + with new type if alias sets differ. + Fixes ACATS c41103b. + +2004-04-21 Vincent Celier + + * prj.ads: Remove FORTRAN as an accepted language: not tested yet. + Add array Lang_Args for the language specific compiling argument + switches. + + * gnat_ugn.texi: Explain in more details when a library is rebuilt. + +2004-04-21 Sergey Rybin + + * gnat_rm.texi: Update the descripton of the Eliminate pragma + according to the recent changes in the format of the parameters of the + pragma (replacing Homonym_Number with Source_Location). + +2004-04-19 Arnaud Charlet + + * 5isystem.ads: Removed, unused. + + * gnat_rm.texi: Redo 1.13 change. + +2004-04-19 Robert Dewar + + * s-stoele.ads: Clean up definition of Storage_Offset (the new + definition is cleaner, avoids the kludge of explicit Standard operator + references, and also is consistent with a visible System.Address with + no visible operations. + + * s-geveop.adb: Add declarations to avoid assumption of visible + operations on type System.Address (since these might not be available + if Address is a non-private type for which the operations + are made abstract). + + * sem_eval.adb: Minor reformatting + + * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads, + s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor + reformatting (new function spec format). + + * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb, + s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, + s-caun64.adb: Add declarations to avoid assumption of visible + operations on type System.Address (since these might not be available + if Address is a non-private type for which the operations are made + abstract). + + * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure. + + * exp_intr.adb: Minor comment update + + * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting. + + * 5omastop.adb: Add declarations to avoid assumption of visible + operations on type System.Address (since these might not be available + if Address is a non-private type for which the operations + are made abstract). + +2004-04-19 Vincent Celier + + * switch-m.adb: (Scan_Make_Switches): Process new switch -eL + + * prj-pars.ads (Parse): New Boolean parameter Process_Languages, + defaulted to Ada. + + * prj-proc.adb (Process): New Boolean parameter Process_Languages, + defaulted to Ada. + Call Check with Process_Languages. + (Check): New Boolean parameter Process_Languages. Call Recursive_Check + with Process_Languages. + (Recursive_Check): New Boolean parameter Process_Languages. Call + Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to + Process_Languages. + + * prj-proc.ads (Process): New Boolean parameter Process_Languages, + + * prj-util.ads, prj-util.adb (Executable_Of): New Boolean + parameter Ada_Main, defaulted to True. + Check for Ada specific characteristics only when Ada_Main is True. + + * opt.ads: (Follow_Links): New Boolean flag for gnatmake + + * prj.adb: (Project_Empty): Add new Project_Data components. + + * prj.ads: New types and tables for non Ada languages. + (Project_Data): New components Languages, Impl_Suffixes, + First_Other_Source, Last_Other_Source, Imported_Directories_Switches, + Include_Path, Include_Data_Set. + + * prj-env.ads, prj-env.adb: Minor reformatting + + * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure + Put subprograms in alphabetical order + + * prj-pars.adb (Parse): New Boolean parameter Process_Languages, + defaulted to Ada; Call Prj.Proc.Process with Process_Languages and + Opt.Follow_Links. + + * mlib-prj.adb: Back out modification in last version, as they are + incorrect. + (Build_Library.Check_Libs): Remove useless pragma Warnings (Off) + + * make.adb: (Mains): Moved to package Makeutl + (Linker_Opts): Moved to package Makeutl + (Is_External_Assignment): Moved to package Makeutl + (Test_If_Relative_Path): Moved to package Makeutl + (Gnatmake): Move sorting of linker options to function + Makeutl.Linker_Options_Switches. + + * makeutl.ads, makeutl.adb: New files. + + * Makefile.in: Add makeutl.o to the object files for gnatmake + + * makeusg.adb: Add line for new switch -eL. + + * gnatls.adb (Image): New function. + (Output_Unit): If in verbose mode, output the list of restrictions + specified by pragmas Restrictions. + + * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use + Text_IO. + + * a-calend.adb (Split): Shift the date by multiple of 56 years, if + needed, to put it in the range 1970 (included) - 2026 (excluded). + (Time_Of): Do not shift Unix_Min_Year (1970). + Shift the date by multiple of 56 years, if needed, to put it in the + range 1970 (included) - 2026 (excluded). + + * adaint.h, adaint.c (__gnat_set_executable): New function. + +2004-04-19 Richard Kenner + + * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push + and pop GC context. + (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE. + (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH. + (tree_transform, case N_Procedure_Call_Statement): Build a tree. + (tree_transform, case N_Code_Statement): Likewise. + (gnat_expand_stmt, case LABEL_STMT): Don't look at + LABEL_STMT_FIRST_IN_EH. + (gnat_expand_stmt, case ASM_STMT): New case. + + * utils2.c (build_unary_op): Properly set TREE_READONLY of + UNCONSTRAINED_ARRAY_REF. + + * utils.c (poplevel): Temporarily push/pop GC context around inline + function expansion. + + * decl.c (maybe_variable): Properly set TREE_READONLY of + UNCONSTRAINED_ARRAY_REF. + (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE. + + * ada-tree.def: (ASM_STMT): New. + + * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted. + (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT, + ASM_STMT_INPUT): New. + (ASM_STMT_CLOBBER): Likewise. + +2004-04-19 Thomas Quinot + + * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use + general rcheck mechanism to raise Program_Error for E.4(18), instead + of a custom raiser in System.Partition_Interface. + Part of general cleanup work before PolyORB integration. + + * snames.ads, snames.adb: Add new runtime library entities and names + for PolyORB DSA. + + * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to + exp_dist. + (Build_Subprogram_Id): New subprogram provided by exp_dist + Code reorganisation in preparation for PolyORB integration. + + * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to + exp_dist. + (Build_Subprogram_Id): New subprogram provided by exp_dist + + * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in + actual parameter types for call to dereference of an + access-to-subprogram type. + + * rtsfind.ads: Add new runtime library entities and names for PolyORB + DSA. + + * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value + instead, which has the same behaviour here since we never pass it a + NULL pointer. + + * link.c (run_path_option, Solaris case): Use -Wl, as for other + platforms. + + * Makefile.in: adjust object file lists for gnatlink and gnatmake + to account for new dependency upon Interfaces.C.Strings + link.o + For x86 FreeBSD, use 86numaux. + + * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up + from Mlib.Tgt to Mlib. + + * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now + target-independent. + + * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove + target-specific versions of this subprogram, now implemented as a + target-independent function in Mlib. + + * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb, + 5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb + (Linker_Library_Path_Option): Remove target-specific versions of this + subprogram, now implemented as a target-independent function in Mlib. + + * atree.adb: (Allocate_Initialize_Node): New subprogram. + Factors out node table slots allocation. + (Fix_Parents): New subprogram. + Encapsulate the pattern of fixing up parent pointers for syntactic + children of a rewritten node. + (New_Copy_Tree): Use New_Copy to copy non-entity nodes. + (Rewrite): Use New_Copy when creating saved copy of original node. + (Replace): Use Copy_Node to copy nodes. + +2004-04-19 Javier Miranda + + * sprint.adb (Sprint_Node_Actual): Give support to the new + Access_To_Subprogram node available in Access_Definition nodes. In + addition, give support to the AI-231 node fields: null-exclusion, + all-present, constant-present. + + * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram + + * sinfo.ads, sinfo.adb: + New field Access_To_Subprogram_Definition in Access_Definition nodes + + * sem_ch6.adb (Process_Formals): Move here the code that creates and + decorates internal subtype declaration corresponding to the + null-excluding formal. This code was previously in Set_Actual_Subtypes. + In addition, carry out some code cleanup on this code. In case of + access to protected subprogram call + Replace_Anonymous_Access_To_Protected_Subprogram. + (Set_Actual_Subtypes): Code cleanup. + + * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to + Find_Type in case of anonymous access renamings. Add warning in case of + null-excluding attribute used in anonymous access renaming. + + * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New + subprogram + + * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New + subprogram. + (Access_Definition): In case of anonymous access to subprograms call + the corresponding semantic routine to decorate the node. + (Access_Subprogram_Declaration): Addition of some comments indicating + some code that probably should be added here. Detected by comparison + with the access_definition subprogram. + (Analyze_Component_Declaration): In case of access to protected + subprogram call Replace_Anonymous_Access_To_Protected. + (Array_Type_Declaration): In case of access to protected subprogram call + Replace_Anonymous_Access_To_Protected_Subprogram. + (Process_Discriminants): In case of access to protected subprogram call + Replace_Anonymous_Access_To_Protected_Subprogram. + + * par.adb (P_Access_Definition): New formal that indicates if the + null-exclusion part was present. + (P_Access_Type_Definition): New formal that indicates if the caller has + already parsed the null-excluding part. + + * par-ch3.adb (P_Subtype_Declaration): Code cleanup. + (P_Identifier_Declarations): Code cleanup and give support to renamings + of anonymous access to subprogram types. + (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup. + (P_Array_Type_Definition): Give support to AI-254. + (P_Component_Items): Give support to AI-254. + (P_Access_Definition): New formal that indicates if the header was + already parsed by the caller. + (P_Access_Type_Definition): New formal that indicates if the caller has + already parsed the null-excluding part. + + * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the + call to P_Access_Definition. + +2004-04-19 Geert Bosch + + * checks.adb (Apply_Float_Conversion_Check): New procedure to implement + the delicate semantics of floating-point to integer conversion. + (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check. + + * eval_fat.adb (Machine_Mantissa): Moved to spec. + (Machine_Radix): New function. + + * eval_fat.ads (Machine_Mantissa): Moved from body for use in + conversion checks. + (Machine_Radix): New function also for use in conversion checks. + +2004-04-19 Ed Schonberg + + * par-prag.adb (Source_File_Name_Project): Fix typo in error message. + + * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze + to decorate the access-to-protected subprogram and the equivalent type. + + * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support + to anonymous access to subprogram types. + + * exp_ch4.adb (Expand_N_In): Preserve Static flag before + constant-folding, for legality checks in contexts that require an RM + static expression. + + * exp_ch6.adb (Expand_N_Function_Call): If call may generate large + temporary but stack checking is not enabled, increment serial number + to so that symbol generation is consistent with and without stack + checking. + + * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is + independent on whether stack checking is enabled, caller must check + the corresponding flag. + + * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need + range checks. + (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from + parent if it has discriminants. + (Build_Derived_Private_Type): Constructed full view does + not come from source. + (Process_Discriminants): Default discriminants on a tagged type are + legal if this is the internal completion of a private untagged + derivation. + + * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs + no constraint checks, because it corresponds to an existing object. + + * sem_prag.adb (Process_Convention): Pragma applies + only to subprograms in the same declarative part, i.e. the same unit, + not the same scope. + + * sem_res.adb (Valid_Conversion): In an instance or inlined body, + ignore type mismatch on a numeric conversion if expression comes from + expansion. + +2004-04-19 Sergey Rybin + + * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for + Homonym_Number parameter, add processing for Source_Location parameter + corresponding. + (Check_Eliminated): Remove the check for homonym numbers, add the check + for source location traces. + + * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number + with Arg_Source_Location corresponding to the changes in the format of + the pragma. + + * sem_prag.adb: (Analyze_Pragma): Changes in the processing of + Eliminate pragma corresponding to the changes in the format of the + pragma: Homonym_Number is replaced with Source_Location, two ways of + distinguishing homonyms are mutially-exclusive. + +2004-04-19 Joel Brobecker + + * get_targ.ads (Get_No_Dollar_In_Label): Remove. + + * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of + No_Dollar_In_Label, no longer necessary, as it is always True. + (Strip_Suffixes): Likewise. + +2004-04-19 Gary Dismukes + + * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of + modulus for compatibility with size clause on targets with 16-bit + Integer. + + * layout.adb (Discrimify): In the case of private types, set Vtyp to + full type to fix type mismatches on calls to size functions for + discriminant-dependent array components. + +2004-04-19 Jerome Guitton + + * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time + lib. + +2004-04-19 Pascal Obry + + * mdll-utl.adb (Locate): New version is idempotent. + +2004-04-17 Laurent Guerby + + PR ada/14988 (partial) + * impunit.adb: Fix typo. + +2004-04-14 Nathanael Nerode + + * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none, + and install-rts-cert targets. Remove all gnatlib and gnattools + targets and all other rts-* targets (moved to libada). Remove (now) + unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND, + TRACE, GNATLIBFLAGS, GNATLIBCFLAGS. + +2004-04-08 Richard Kenner + + * trans.c (tree_transform): Shortcut returning error_mark_node for + statements in annotate_only_mode. + (tree_transform, case N_Label, case N_Return_Statement, + N_Goto_Statement): Make statement tree instead of generating code. + (tree_transform, case N_Assignment_Statement): No longer check + type_annotate_only. + (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case + RETURN_STMT): New. + (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl): + New fcns. + (gnat_to_gnu): Collect any RTL generated and deal with it. + (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR. + (tree_transform case N_If_Statement): Rewrite to make IF_STMT. + (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases. + + * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes. + + * ada-tree.def (EXPR_STMT): Fix typo in name. + (BLOCK_STMT, IF_STMT): New nodes. + + * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL, + LABEL_STMT_FIRST_IN_EH): New macros. + (RETURN_STMT_EXPR): Likewise. + + * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE, + IF_STMT_ELSEIF, IF_STMT_ELSE): New macros. + +2004-04-08 Thomas Quinot + + * atree.ads: Correct documentation on extended nodes. + + * link.c: Set run_path_option for FreeBSD. + +2004-04-08 Vincent Celier + + * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is + one of the ALI file, do not link with DEC lib. + + * par.adb Remove the last two characters ("%s" or "%b") when checking + if a language defined unit may be recompiled. + +2004-04-08 Ed Schonberg + + * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when + removal of abstract operation leaves no possible interpretation for + expression. + + * sem_eval.adb (Eval_Qualified_Expression): Use + Set_Raises_Constraint_Error on node when needed, so that it does not + get optimized away by subsequent optimizations. + + * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of + operands even when they are not wrapped in a type conversion. + +2004-04-08 Olivier Hainque + + * sem_prag.adb (Set_Exported): Warn about making static as result of + export only when the export is coming from source. This may be not + be true e.g. on VMS where we expand export pragmas for exception codes + together with imported or exported exceptions, and we don't want the + user to be warned about something he didn't write. + +2004-04-08 Thomas Quinot + + * sem_util.adb (Note_Possible_Modification): Reorganize to remove code + duplication between normal entities and those declared as renamings. + No functional change. + + * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently + inline functions returning an unconstrained result. + +2004-04-08 Eric Botcazou + + * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to + conform to what other front-ends do. + +2004-04-08 Doug Rupp + + * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared + libraries. + +2004-04-06 Pascal Obry + + * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32. + + * osint.adb (Program_Name): Do not look past a directory separator. + +2004-04-06 Thomas Quinot + + * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists). + + * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of + requirement for preserving a copy of the original assignment node. + + * sinfo.ads: Update comment (Original_Tree -> Original_Node). + +2004-04-06 Olivier Hainque + + (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits + when supported. + +2004-04-06 Ed Schonberg + + * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to + operator calls in functional notation, and apply + Universal_Interpretation to operands, not to their type. + +2004-04-06 Robert Dewar + + * 5wdirval.adb: Minor reformatting + +2004-04-06 Ed Falis + + * gnat_rm.texi: Improve a reference to the GCC manual + +2004-04-05 Vincent Celier + + * adaint.h, adaint.c: Add function __gnat_named_file_length + + * impunit.adb: Add Ada.Directories to the list + + * Makefile.in: Add VMS and Windows versions of + Ada.Directories.Validity package body. + + * Makefile.rtl: Add a-direct and a-dirval + + * mlib-tgt.ads: Minor comment update. + + * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb, + a-direct.ads, a-direct.adb: New files. + +2004-04-05 Vincent Celier + + PR ada/13620 + * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not + just to the compiler. + +2004-04-05 Robert Dewar + + * a-except.adb (Exception_Name_Simple): Make sure lower bound of + returned string is 1. + + * ali-util.adb: Use proper specific form for Warnings (Off, entity) + + * eval_fat.ads: Minor reformatting + + * g-curexc.ads: Document that lower bound of returned string values + is always one. + + * gnatlink.adb: Add ??? comment for previous change + (need to document why this is VMS specific) + + * s-stoele.ads: Minor reformatting + + * tbuild.ads: Minor reformatting throughout (new function specs) + + * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon + after WITH. + + * scng.adb: Minor reformatting + +2004-04-05 Geert Bosch + + * eval_fat.adb (Machine): Remove unnecessary suppression of warning. + (Leading_Part): Still perform truncation to machine number if the + specified radix_digits is greater or equal to machine_mantissa. + +2004-04-05 Javier Miranda + + * par-ch3.adb: Complete documentation of previous change + Correct wrong syntax documentation of the OBJECT_DECLARATION rule + (aliased must appear before constant). + + * par-ch4.adb: Complete documentation of previous change. + + * par-ch6.adb: Complete documentation of previous change. + + * sinfo.ads: Fix typo in commment. + +2004-04-05 Ed Schonberg + + * sem_ch3.adb (Inherit_Components): If derived type is private and has + stored discriminants, use its discriminants to constrain parent type, + as is done for non-private derived record types. + + * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement + Ada 2005 AI-310: an abstract non-dispatching operation is not a + candidate interpretation in an overloaded call. + + * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if + expression is Null and target type is not an access type (e.g. a + non-private address type). + +2004-04-05 Thomas Quinot + + * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment + statement whose right-hand side is an inlined call, save a copy of the + original assignment subtree to preserve enough consistency for + Analyze_Assignment to proceed. + + * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the + complete assignment subtree which is now unnecessary, as the expansion + of inlined call has been improved to preserve a consistent assignment + tree. Note_Possible_Modification must be called only + after checks have been applied, or else unnecessary checks will + be generated. + + * sem_util.adb (Note_Possible_Modification): Reorganise the handling + of explicit dereferences that do not Come_From_Source: + - be selective on cases where we must go back to the dereferenced + pointer (an assignment to an implicit dereference must not be + recorded as modifying the pointer); + - do not rely on Original_Node being present (Analyze_Assignment + calls Note_Possible_Modification on a copied tree). + + * sem_warn.adb (Check_References): When an unset reference to a pointer + that is never assigned is encountered, prefer ' may be null' + warning over ' is never assigned a value'. + +2004-04-05 Ramon Fernandez + + * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with + the ABI. + +2004-04-05 Olivier Hainque + + * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for + libexc. We currently don't reference anything in this library and + linking it in triggers linker warnings we don't want to see. + + * init.c: Update comments. + +2004-04-05 Richard Kenner + + * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY. + * utils.c (create_field_decl): Likewise. + * utils2.c (build_unary_op, gnat_build_constructor): Likewise. + +2004-04-02 Arnaud Charlet + + * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags. + Replace ifinfo by ifnottex, to make makeinfo --html happy again. + Add info directory entry and category. + +2004-04-02 Jan Hubicka + + * utils.c: Include function.h + (end_subprog_body): Clear DECL_STRUCT_FUNCTION. + +2004-04-01 Arnaud Charlet + + PR ada/14150 + * Make-lang.in: Clean up generation of documentation + + * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version + + * xgnatug.adb: Removed, replaced by xgnatugn.adb + + * xgnatugn.adb: Replaces xgnatug.adb + + * gnat_ug.texi: Removed, replaced by gnat_ugn.texi + + * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version + + * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi, + gnat_ug_wnt.texi: Removed. + +2004-04-01 Arnaud Charlet + + * utils2.c: Update copyright notice. + +2004-04-01 Robert Dewar + + * checks.adb: Minor reformatting throughout + Note that prev checkin added RM reference to alignment warning + +2004-04-01 Ed Schonberg + + * exp_aggr.adb (Get_Component_Val): Treat a string literal as + non-static when building aggregate for bit-packed array. + + * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a + function call that is itself the actual in a procedure call, build + temporary for it. + + * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is + a string literal, create a temporary for it, constant folding only + handles scalars here. + +2004-04-01 Vincent Celier + + * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC, + Error_Msg_SP): New empty procedures to instantiate the Scanner. + (Style, Scanner): Instantiations of Styleg and Scng to be able to scan + tokens. + (Accumulate_Checksum, Initialize_Checksum): Remove procedures. + (Get_File_Checksum): Use the instantiated scanner to scan all the tokens + and get the checksum. + + * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is + already in the Q. + Increase the Marking_Label at the end of the Multiple_Main_Loop, + instead of at the beginning. + + * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~' + directly. + (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if + on VMS. + + * osint.ads (Multi_Unit_Index_Character): New Character global variable + + * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character, + not '~' directly. + + * par.adb: Remove test on file name to detect language defined units. + Add test on unit name, after parsing, to detect language defined units + that are not compiled with -gnatg (except System.RPC and its children) + + * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the + following units without style checking. + + * switch-c.adb: Change -gnatC to -gnateI + + * usage.adb: Document new switch -gnateInnn + + * scng.adb (Accumulate_Token_Checksum): New procedure + (Scan): Call Accumulate_Token_Checksum after each identifier, reserved + word or literal number. + (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral + numbers. + +2004-04-01 Thomas Quinot + + * a-tasatt.adb, + g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb, + switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb, + 5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, + 5vtpopde.adb: Add missing 'constant' keywords. + +2004-04-01 Javier Miranda + + * par-ch4.adb: (P_Allocator): Code cleanup + + * sem_ch3.adb (Access_Definition): Properly set the null-excluding + attribute. + + * sinfo.ads: Complete documentation of previous change + +2004-04-01 Pascal Obry + + * gnatlink.adb (Process_Binder_File): Remove duplicate linker options + only on VMS. This special handling was done because an old GNU/ld bug + on Windows which has been fixed. + +2004-04-01 GNAT Script + + * Make-lang.in: Makefile automatically updated + +2004-03-31 Richard Kenner + + * decl.c (gnat_to_gnu_entity, make_type_from_size): + Use TYPE_UNSIGNED, not TREE_UNSIGNED. + * trans.c (tree_transform, convert_with_check): Likewise. + * utils.c (gnat_signed_or_unsigned_type): Likewise. + (build_vms_descriptor, unchecked_convert): Likewise. + * utils2.c (nonbinary_modular_operation): Likewise. + +2004-03-29 Javier Miranda + + * checks.adb (Null_Exclusion_Static_Checks): New subprogram + (Install_Null_Excluding_Check): Local subprogram that determines whether + an access node requires a runtime access check and if so inserts the + appropriate run-time check. + (Apply_Access_Check): Call Install_Null_Excluding check if required + (Apply_Constraint_Check): Call Install_Null_Excluding check if required + + * checks.ads: (Null_Exclusion_Static_Checks): New subprogram + + * einfo.ads: Fix typo in comment + + * exp_ch3.adb (Build_Assignment): Generate conversion to the + null-excluding type to force the corresponding run-time check. + (Expand_N_Object_Declaration): Generate conversion to the null-excluding + type to force the corresponding run-time check. + + * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to + the null-excluding type to force the corresponding run-time check. + + * exp_ch6.adb (Expand_Call): Do not generate the run-time check in + case of access types unless they have the null-excluding attribute. + + * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing + part. + + * exp_util.ads: Fix typo in comment + + * par.adb (P_Null_Exclusion): New subprogram + (P_Subtype_Indication): New formal that indicates if the null-excluding + part has been scanned-out and it was present + + * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231 + + * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram + (Aggregate_Constraint_Checks): Generate conversion to the null-excluding + type to force the corresponding run-time check + (Resolve_Aggregate): Propagate the null-excluding attribute to the array + components + (Resolve_Array_Aggregate): Carry out some static checks + (Resolve_Record_Aggregate.Get_Value): Carry out some static check + + * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null + attribute must be set only if specified by means of the null-excluding + part. In addition, we must also propagate the access-constant attribute + if present. + (Access_Subprogram_Declaration, Access_Type_Declaration, + Analyze_Component_Declaration, Analyze_Object_Declaration, + Array_Type_Declaration, Process_Discriminants, + Analyze_Subtype_Declaration): Propagate the null-excluding attribute + and carry out some static checks. + (Build_Derived_Access_Type): Set the null-excluding attribute + (Derived_Type_Declaration, Process_Subtype): Carry out some static + checks. + + * sem_ch4.adb (Analyze_Allocator): Carry out some static checks + + * sem_ch5.adb (Analyze_Assignment): Carry out some static checks + + * sem_ch6.adb (Process_Formals): Carry out some static checks. + (Set_Actual_Subtypes): Generate null-excluding subtype if the + null-excluding part was present; it is not required to be done here in + case of anonymous access types. + (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null + value. + + * sem_res.adb (Resolve_Actuals): Carry out some static check + (Resolve_Null): Allow null in anonymous access + + * sinfo.adb: New subprogram Null_Exclusion_Present + All_Present and Constant_Present available on access_definition nodes + + * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration, + object_declaration, derived_type_definition, component_definition, + discriminant_specification, access_to_object_definition, + access_function_definition, allocator, access_procedure_definition, + access_definition, parameter_specification, All_Present and + Constant_Present flags available on access_definition nodes. + +2004-03-29 Robert Dewar + + * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads, + gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb, + opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb, + par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb, + sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb, + sem_prag.adb: Updates to handle multiple units/file + + * par.adb: Change test for s-rpc to s-rp for detecting rpc and children + + * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb, + sem_util.adb: Minor reformatting + + * sem_ch12.adb: Add comment for previous change + +2004-03-29 Laurent Pautet + + * osint.adb (Executable_Prefix): Set Exec_Name to the current + executable name when not initialized. Otherwise, use its current value. + + * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to + initialize it to another executable name than the current one. This + allows to configure paths for an executable name (gnatmake) different + from the current one (gnatdist). + +2004-03-29 Ed Schonberg + + * exp_ch6.adb (Expand_Call): A call to a function declared in the + current unit cannot be inlined if it appears in the body of a withed + unit, to avoid order of elaboration problems in gigi. + + * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging + information for protected (wrapper) operation as well, to simplify gdb + use. + + * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a + protected body, indicate that the entity for the generated spec comes + from source, to ensure that references are properly generated for it. + (Build_Body_To_Inline): Do not inline a function that returns a + controlled type. + + * sem_prag.adb (Process_Convention): If subprogram is overloaded, only + apply convention to homonyms that are declared explicitly. + + * sem_res.adb (Make_Call_Into_Operator): If the operation is a function + that renames an equality operator and the operands are overloaded, + resolve them with the declared formal types, before rewriting as an + operator. + +2004-03-29 GNAT Script + + * Make-lang.in: Makefile automatically updated + +2004-03-25 Vasiliy Fofanov + + * memtrack.adb: Log realloc calls, which are treated as free followed + by alloc. + +2004-03-25 Vincent Celier + + * prj-makr.adb (Process_Directories): Detect when a file contains + several units. Do not include such files in the config pragmas or + in the naming scheme. + + * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode. + Resolve links only when not in Trusted_Mode. + (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory): + Do not resolve links for the display names. + + * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not + resolve links when computing the display names. + +2004-03-25 Thomas Quinot + + * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag + attribute reference does not denote a subtype, it can be any + expression that has a classwide type, potentially after an implicit + dereference. In particular, the prefix can be a view conversion for + a classwide type (for which Is_Object_Reference holds), but it can + also be a value conversion for an access-to-classwide type. In the + latter case, there is an implicit dereference, and the original node + for the prefix does not verify Is_Object_Reference. + + * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view + conversion of a discriminant-dependent component of a mutable object + is one itself. + +2004-03-25 Ed Schonberg + + * freeze.adb (Freeze_Entity): When an inherited subprogram is + inherited, has convention C, and has unconstrained array parameters, + place the corresponding warning on the derived type declaration rather + than the original subprogram. + + * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default + indication on renaming declaration, if formal has a box and actual + is absent. + + * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to + determine whether to generate an implicit or explicit reference to + the renamed entity. + + * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a + subprogram renaming comes from a defaulted formal subprogram in an + instance. + +2004-03-25 Gary Dismukes + + * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default + value expressions to ensure that calls within a component definition + will be checked (since those are evaluated during the record type's + elaboration). + +2004-03-25 Arnaud Charlet + + * s-tpobop.adb: Code clean up: + (Requeue_Call): Extract from PO_Service_Entries to remove duplicated + code. + (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call. + +2004-03-25 Jose Ruiz + + * Makefile.in: Clean up in the ravenscar run time. + +2004-03-23 Richard Kenner + + * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value + of No_Strict_Aliasing to build_pointer_type_for_mode. + * utils.c (update_pointer_to): Walk pointer and ref chains. + +2004-03-22 Cyrille Comar + + * ali.ads: Fix Comment about Dynamic_Elab. + + * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab, + Has_RACW, Is_Generic, etc.) + (Output_Object, Gnatls): Take into account ALI files not attached to + an object. + +2004-03-22 Vincent Celier + + * gprep.adb: Change all String_Access to Name_Id + (Is_ASCII_Letter): new function + (Double_File_Name_Buffer): New procedure + (Preprocess_Infile_Name): New procedure + (Process_Files): New procedure + (Gnatprep): Check if output and input are existing directories. + Call Process_Files to do the real job. + +2004-03-22 Robert Dewar + + * prj-env.adb, prj-nmsc.ads, prj-proc.ads, + s-stache.ads, s-stache.adb: Comment updates. Minor reformatting. + +2004-03-22 Sergey Rybin + + * scn.adb (Contains): Add check for EOF, is needed for a degenerated + case when the source contains only comments. + +2004-03-22 Ed Schonberg + + * sem_ch10.adb (Analyze_Compilation_Unit): When generating a + declaration for a child subprogram body that acts as a spec, indicate + that the entity in the declaration needs debugging information. + + * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying + full view if the subtype is created for a constrained record component; + gigi has enough information to construct the record, and there is no + place in the tree for the declaration. + + * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without + serial number for the dummy body that is built for analysis, to avoid + inconsistencies in the generation of internal names when compiling + with -gnatN. + +2004-03-22 Thomas Quinot + + * sem_util.adb (Is_Object_Reference): A view conversion denotes an + object. + +2004-03-22 GNAT Script + + * Make-lang.in: Makefile automatically updated + +2004-03-21 Richard Kenner + + * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR. + * trans.c (tree_transform, emit_index_check): Likewise. + * utils.c (build_template): Likewise. + (max_size, convert): Remove handling of WITH_RECORD_EXPR. + (maybe_unconstrained_array, unchecked_convert): Likewise. + * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise. + (build_unary_op): Likewise. + (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR. + (fill_vms_descriptor): Likewise. + (build_call_alloc_dealloc): Likewise. + ALIGN is unsigned. + * gigi.h (build_call_alloc_dealloc): Alignment is unsigned. + +2004-03-20 Joseph S. Myers + + PR other/14630 + * gnat_ug.texi: Add info directory category and entry. + * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi, + gnat_ug_wnt.texi: Regenerate. + +2004-03-19 Arnaud Charlet + + * ada-tree.h: Update copyright notice. + Minor reformatting. + +2004-03-19 Olivier Hainque + + * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions + as regular exception objects and not as mere integers representing the + condition code. The latter approach required some dynamics to mask off + severity bits, which did not fit well into the GCC table based model. + (gnat_to_gnu_entity, objects): Don't supply an external name for VMS + exception data objects. We don't it and it would conflict with the other + external symbol we have to generate for such exceptions. + + * trans.c (tree_transform, case N_Exception_Handler): Remove part of + the special code for VMS exceptions, since these are now represented + as regular exceptions objects. + +2004-03-19 Richard Kenner + + * decl.c (debug_no_type_hash): Remove. + (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it. + * misc.c (LANG_HOOK_HASH_TYPE): Redefine. + +2004-03-19 Laurent Guerby + + * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of + aggregate, allows bootstrap from 3.3 on powerpc-darwin. + +2004-03-18 Richard Kenner + + * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking. + (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise. + (TYPE_RM_SIZE_INT): Directly use type.values. + (TREE_LOOP_ID): Clean up check. + * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use + TYPE_VALUES, not TYPE_FIELDS. + * trans.c (convert_with_check): Delay access of bounds of basetype + until sure is numeric. + +2004-03-18 Arnaud Charlet + + * 5atpopsp.adb: Remove RTEMS from list of platforms using this file. + + Code clean up: + * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb, + 5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use + Specific.Set instead of direct call to e.g pthread_setspecific. + +2004-03-18 Thomas Quinot + + * adaint.c: Update comments. + + * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and + GNATLIB_SHARED for FreeBSD. + +2004-03-18 Jose Ruiz + + * init.c [VxWorks]: Do not fix the stack size for the environment task. + When needed (stack checking) the stack size is retrieved + from the VxWorks kernel. + + * Makefile.in: Flag -nostdinc is required when building the run time + for avoiding looking for files in the base compiler. + Add the VxWorks specific version of the package body for + System.Stack_checking.Operations (5zstchop.adb). + + * Make-lang.in: Add the object file for + System.Stack_Checking.Operations. + + * Makefile.rtl: Add object file for the package + System.Stack_Checking.Operations. + + * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files. + + * s-stache.ads, s-stache.adb: Move the operations related to stack + checking from this package to package System.Stack_Checking.Operations. + This way, stack checking operations are only linked in the final + executable when using the -fstack-check flag. + +2004-03-18 Doug Rupp + + * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads). + Reorganize ifeq's. + + * 5qsystem.ads, 5xcrtl.ads: New files. + +2004-03-18 Vincent Celier + + * prj.adb (Reset): Reset hash table Files_Htable + + * prj-env.adb (Source_Paths, Object_Paths): New tables. + (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace + the procedures Add_To_Path_File. + (Set_Ada_Paths): Accumulate source and object dirs in the tables, + making sure that each directory is present only once and, for object + dirs, when a directory already present is added, the duplicate is + removed and the directory is always put as the last in the table. + Write the path files at the end of these accumulations. + + * prj-nmsc.adb (Record_Source): Add source file name in hash table + Files_Htable for all sources. + + * prj-proc.adb (Process): Remove restrictions between not directly + related extending projects. + +2004-03-18 Emmanuel Briot + + * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode. + (Find_Sources): Minor speed optimization. + + * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New + parameter Trusted_Mode. + +2004-03-18 Sergey Rybin + + * scn.adb (Determine_License): Take into account a degenerated case + when the source contains only comments. + +2004-03-18 Ed Schonberg + + * sem_warn.adb (Check_References): For a warning on a selected + component that does not come from source, locate an uninitialized + component of the record type to produce a more precise error message. + +2004-03-15 Jerome Guitton + + * 3zsoccon.ads: Fix multicast options. + + * s-thread.ads: Move unchecked conversion from ATSD_Access to Address + in the spec. + +2004-03-15 Robert Dewar + + * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when + pragma used for a private type. + + * lib-xref.adb (Generate_Reference): Do not generate warning if + reference is in a different unit from the pragma Unreferenced. + + * 5vtpopde.adb: Minor reformatting + Fix casing of To_Task_ID + + * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing + flag if we have an unchecked conversion to an access type in the same + unit. + +2004-03-15 Geert Bosch + + * a-ngcoty.adb (Modulus): In alternate formula for large real or + imaginary parts, use Double precision throughout. + + * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only + we want to be able to compile run-time with -gnata for testing, but + this may also be instantiated in user code that is compiled with -gnata. + +2004-03-15 Olivier Hainque + + * s-stalib.ads (Exception_Code): New type, to represent Import/Export + codes. Having a separate type for this is useful to enforce consistency + throughout the various run-time units. + (Exception_Data): Use Exception_Code for Import_Code. + + * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of + Natural and Integer in various places. + (Register_VMS_Exception): Use Base_Code_In to compute the exception code + with the severity bits masked off. + (Register_VMS_Exception): Handle the additional exception data pointer + argument. + + * raise.c (_GNAT_Exception structure): Remove the handled_by_others + component, now reflected by an exported accessor. + (is_handled_by): New routine to compute whether the propagated + occurrence matches some handler choice specification. Extracted out of + get_action_description_for, and expanded to take care of the VMS + specifities. + (get_action_description_for): Use is_handled_by instead of an explicit + complex condition to decide if the current choice at hand catches the + propagated occurrence. + + * raise.h (Exception_Code): New type for C. + + * rtsfind.ads (RE_Id, RE_Unit_Table): Add + System.Standard_Library.Exception_Code, to allow references from the + pragma import/export expander. + + * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For): + New accessors to allow easy access to GNAT exception data + characteristics. + (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the + redundant Handled_By_Others component, helper for the personality + routine which will now be able to call the appropriate exception data + accessor instead. + + * cstand.adb (Create_Standard): Adjust the type of the Import_Code + component of Standard_Exception_Type to be the closest possible to + Exception_Code in System.Standard_Library, that we cannot get at this + point. Expand a ??? comment to notify that this type node should + probably be rewritten later on. + + * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the + registration call to include a pointer to the exception object in the + arguments. + + * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In + instead of int and explicit bitmasks. + +2004-03-15 Vincent Celier + + * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED + equivalent to /STATIC and /NOSTATIC equivalent to /SHARED. + + * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no + longer needed now that it is in the spec of + System.Tasking.Task_Attributes. + + * adaint.h, adaint.c: (__gnat_create_output_file): New function + + * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of = + + * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function. + + * make.adb (Gnatmake): Do not check the executable suffix; it is being + taken care of in Scan_Make_Arg. + (Scan_Make_Arg): Add the executable suffix only if the argument + following -o, in canonical case, does not end with the executable + suffix. When in verbose mode and executable file name does not end + with executable suffix, output the executable name, in canonical case. + + * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing + to avoid warnings when instantiating Ada.Task_Attributes. + Minor reformating. + + * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries + in the correct order. + + * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but + redirect standard output and error to a file for the invocation of the + compiler, then read the file. + + * prj-nmsc.adb (Find_Sources): Use the Display_Value for each + directory, instead of the Value. + (Find_Source_Dirs): Remove useless code & comments. + +2004-03-15 Ed Schonberg + + * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a + tagged type is inherited, and the parent operation is not frozen yet, + force generation of a freeze node for the inherited operation, so the + corresponding dispatch entry is properly initialized. + (Make_Predefined_Primitive_Specs): Check that return type is Boolean + when looking for user-defined equality operation. + + * exp_ch4.adb (Expand_Composite_Equality): Check that return type is + boolean when locating primitive equality of tagged component. + + * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a + bit-aligned field and the right-hand side a string literal, introduce + a temporary before expanding assignment into a loop. + + * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for + priority in full, to ensure that any expanded subepxressions of it are + elaborated in the scope of the init_proc. + + * exp_prag.adb (Expand_Pragma_Import): Search for initialization call + after object declaration, skipping over code that may have been + generated for validity checks. + + * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown + discriminants, ignore the known discriminants of its full view, if + any, to check legality. + + * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained + component if type has unknown discriminants. + (Analyze_Private_Extension_Declaration): Discriminant constraint is + null if type has unknown discriminants. + + * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference + for end label when present. + + * s-fileio.adb (Open): When called with a C_Stream, use given name for + temporary file, rather than an empty string. + +2004-03-15 Ed Falis + + * s-thread.adb: Removed, no longer used. + +2004-03-15 Richard Kenner + + * decl.c (target.h): Now include. + (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE + in new build_pointer_from_mode calls for non-fat/non-thin pointer. + (validate_size): For POINTER_TYPE, get smallest size permitted on + machine. + + * fe.h: Sort Einfo decls and add Set_Mechanism. + + * Makefile.in: (LIBGNAT_SRCS): Remove types.h. + (ada/decl.o): Depends on target.h. + + * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use + FUNCTION_BOUNDARY; always use TYPE_ALIGN. + +2004-03-15 Thomas Quinot + + * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID. + + * exp_ch4.adb (Expand_N_Indexed_Component): Do not call + Insert_Dereference_Action when rewriting an implicit dereference into + an explicit one, this will be taken care of during expansion of the + explicit dereference. + (Expand_N_Slice): Same. Always do the rewriting, even for the case + of non-packed slices, since the dereference action generated by + expansion of the explicit dereference is needed in any case. + (Expand_N_Selected_Component): When rewriting an implicit dereference, + analyze and resolve the rewritten explicit dereference so it is seen + by the expander. + (Insert_Dereference_Action): This procedure is now called only for the + expansion of an N_Explcit_Dereference_Node. Do insert a check even for + dereferences that do not come from source (including explicit + dereferences resulting from rewriting implicit ones), but do not + recursively insert a check for the dereference nodes contained within + the check. + (Insert_Dereference_Action): Clarify and correct comment. + +2004-03-08 Paolo Bonzini + + PR ada/14131 + Move language detection to the top level. + * config-lang.in: Build by default. + +2004-03-05 Robert Dewar + + * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions + + * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads, + i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads, + 5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb, + 5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move + unchecked conversion to spec to avoid warnings. + + * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id + to Task_ID + + * 7stpopsp.adb: Correct casing in To_Task_ID call + + * a-strsea.ads, a-strsea.adb: Minor reformatting + + * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing + + * errout.ads: Switch for VMS is now NO_STRICT_ALIASING. + Adjust Max_Msg_Length to be clearly large enough. + + * fe.h: Define In_Same_Source_Unit + + * osint.adb: Add pragma Warnings Off to suppress warnings + * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill + aliasing warnings. + + * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing + + * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma + + * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc. + + * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set. + + * sem_prag.adb: Implement pragma No_Strict_Aliasing. + + * sinfo.ads: Remove obsolete comment on validate unchecked conversion + node. We now do generate them for gcc back end. + + * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing + warning. + + * sinput-c.adb: Fix bad name in header. + Add pragma Warnings Off to suppress aliasing warning. + + * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning. + + * snames.h, snames.ads, snames.adb: Add entry for pragma + No_Strict_Aliasing. + +2004-03-05 Vincent Celier + + * prj-com.ads: Add hash table Files_Htable to check when a file name + is already a source of another project. + + * prj-nmsc.adb (Record_Source): Before recording a new source, check + if its file name is not already a source of another project. Report an + error if it is. + + * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no + source file name, call gnatpp with all the sources of the main project. + + * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number + of file names. + + * vms_data.ads: Correct documentation of new /OPTIMIZE keyword + NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY: + /RUNTIME_SYSTEM=, converted to --RTS= + /NOTABS, converted to -notabs + +2004-03-05 Pascal Obry + + * make.adb: Minor reformatting. + +2004-03-05 Ed Schonberg + + Part of implemention of AI-262. + * par-ch10.adb (P_Context_Clause): Recognize private with_clauses. + + * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New + procedure. + + * sem_ch3.adb (Analyze_Component_Declaration): Improve error message + when component type is a partially constrained class-wide subtype. + (Constrain_Discriminated_Type): If parent type has unknown + discriminants, a constraint is illegal, even if full view has + discriminants. + (Build_Derived_Record_Type): Inherit discriminants when deriving a type + with unknown discriminants whose full view is a discriminated record. + + * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants + flag, to handle properly derivations of tagged types with unknown + discriminants. + (Analyze_Package_Spec, Analyze_Package_Body): Install + Private_With_Clauses before analyzing private part or body. + + * einfo.ads: Indicate that both Has_Unknown_Discriminants and + Has_Discriminants can be true for a given type (documentation). + +2004-03-05 Arnaud Charlet + + * s-restri.ads: Fix license (GPL->GMGPL). + + * s-tassta.adb: Minor reformatting. + + * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level + by calls to Exit_One_ATC_Level, since additional clean up is performed + by this function. + + * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level + by calls to Exit_One_ATC_Level, since additional clean up is performed + by this function. + +2004-03-05 Richard Kenner + + * trans.c: Reflect GCC changes to fix bootstrap problem. + Add warning for suspicious aliasing unchecked conversion. + +2004-03-05 GNAT Script + + * Make-lang.in: Makefile automatically updated + +2004-03-02 Emmanuel Briot + + * ali.adb (Read_Instantiation_Instance): Do not modify the + current_file_num when reading information about instantiations, since + this corrupts files in later references. + +2004-03-02 Vincent Celier + + * bcheck.adb (Check_Consistency): Get the full path of an ALI file + before checking if it is read-only. + + * bld.adb (Recursive_Process): Concatenate .src_dirs in front + of SRC_DIRS and eliminate duplicates. + + * gprcmd.adb: Replace command "path" with command "path_sep" to return + the path separator. + (Usage): Document path_sep + + * Makefile.generic: For Ada and GNU C++ cases, link directly with the + C++ compiler. No need for a script. + Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH. + Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function + subst. + + * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project + where there are Ada sources. + (Set_Ada_Paths): Only add to the include path the source dirs of project + with Ada sources. + (Add_To_Path): Add the Display_Values of the directories, not their + Values. + + * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project + data. + + * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value + is not No_Name. + (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only + Value is canonicalized. + (Language_Independent_Check): Do not copy Value to Display_Value when + canonicalizing Value. + + * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased + path to find limited with cycles. + (Parse_Single_Project): Use canonical cased path to find the end of a + with cycle. + +2004-03-02 Ed Schonberg + + * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit + and not a child unit. + + * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can + appear in a with_clause. + + * decl.c (gnat_to_gnu_type): If entity is a generic type, which can + only happen in type_annotate mode, do not try to elaborate it. + + * exp_util.adb (Force_Evaluation): If expression is a selected + component on the left of an assignment, use a renaming rather than a + temporary to remove side effects. + + * freeze.adb (Freeze_Entity): Do not freeze a global entity within an + inlined instance body, which is analyzed before the end of the + enclosing scope. + +2004-03-02 Robert Dewar + + * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb, + sem_ch4.adb: Use new feature for substitution of keywords in VMS + + * errout.ads, errout.adb: Implement new circuit for substitution of + keywords in VMS. + + * sem_case.adb (Analyze_Choices): Place message properly when case is + a subtype reference rather than an explicit range. + + * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting + +2004-03-02 Doug Rupp + + * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF. + +2004-03-02 Thomas Quinot + + * s-tporft.adb: Add missing locking around call to Initialize_ATCB. + +2004-03-02 Richard Kenner + + * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a + BLKmode bitfield. + +2004-02-25 Robert Dewar + + * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads, + 55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads, + 5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads, + 5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads, + 5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads, + 5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to + the defining instance of the type to avoid aliasing problems. + Fix copyright header. Fix bad comments in package header. + + * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting + +2004-02-25 Ed Schonberg + + * exp_ch2.adb (Param_Entity): Handle properly formals that have been + rewritten as references when aliased through an address clause. + + * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking + whether call can be interpreted as an indirect call to the result of a + parameterless function call returning an access subprogram. + +2004-02-25 Arnaud Charlet + + Code clean up: + * exp_ch7.adb (Make_Clean): Remove generation of calls to + Unlock[_Entries], since this is now done by Service_Entries directly. + + * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto. + + * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure + Requeue_Call for better code readability. Change spec and update calls: + PO_Service_Entries now unlock the PO on exit. + (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to + PO_Service_Entries. + + * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit. + + * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries. + +2004-02-25 Sergey Rybin + + * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the + protected subprogram call and analyzing the result of such expanding + in case when the called protected subprogram is eliminated. + + * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope + names. + +2004-02-25 Jerome Guitton + + * Makefile.in: Clean ups. + +2004-02-23 Ed Schonberg + + * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create + protected operations if original subprogram is flagged as eliminated. + (Expand_N_Subprogram_Body): For a protected operation, create + discriminals for next operation before checking whether the operation + is eliminated. + + * exp_ch9.adb (Expand_N_Protected_Body, + Expand_N_Protected_Type_Declaration): Do not generate specs and bodies + for internal protected operations if the original subprogram is + eliminated. + + * sem_elim.adb (Check_Eliminated): Handle properly protected operations + declared in a single protected object. + +2004-02-23 Vincent Celier + + * prj-attr.adb: Make attribute Builder'Executable an associative array, + case insensitive if file names are case insensitive, instead of a + standard associative array. + + * prj-attr.adb (Initialize): For 'b' associative arrays, do not set + them as case insensitive on platforms where the file names are case + sensitive. + + * prj-part.adb (Parse_Single_Project): Make sure, when checking if + project file has already been parsed that canonical path are compared. + +2004-02-23 Robert Dewar + + * sinput-c.ads: Correct bad unit title in header + + * freeze.adb: Minor reformatting + +2004-02-23 Richard Kenner + + * trans.c (tree_transform, case N_Procedure_Call_Statement): For + nonaddressable COMPONENT_REF that is removing padding that we are + taking the address of, take the address of the padded record instead + if item is variable size. + +2004-02-20 Robert Dewar + + * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting + +2004-02-20 Ed Schonberg + + * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates + itype references for the constrained designated type of a component + whose base type is already frozen. + +2004-02-20 Arnaud Charlet + + * init.c (__gnat_error_handler [tru64]): Rewrite previous change to + avoid GCC warnings. + +2004-02-20 Sergey Rybin + + * sem_ch12.adb (Analyze_Formal_Package): Create a new defining + identifier for a phantom package that rewrites the formal package + declaration with a box. The Add semantic decorations for the defining + identifier from the original node (that represents the formal package). + +2004-02-19 Matt Kraai + + * Make-lang.in (ada/stamp-sdefault): Use the top level + move-if-change. + +2004-02-19 Richard Henderson + + * misc.c (record_code_position): Add third build arg for RTL_EXPR. + +2004-02-18 Emmanuel Briot + + * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that + Scan_ALI can be used for multiple ALI files without reinitializing + between calls. + +2004-02-18 Robert Dewar + + * debug.adb: Minor reformatting. + +2004-02-18 Richard Kenner + + * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET + to zero if there is an address clause. + +2004-02-18 Thomas Quinot + + * exp_util.adb (Side_Effect_Free): Any literal is side effects free. + +2004-02-18 Gary Dismukes + + * layout.adb (Layout_Component_List): Revise generation of call to + discriminant-checking function to pass selections of all of the type's + discriminants rather than just the variant-controlling discriminant. + +2004-02-18 Olivier Hainque + + * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to + fail in the current setup and triggers spurious system error messages. + Pretend it occurred and failed instead. + +2004-02-18 Vincent Celier + + * bld.adb: Mark FLDFLAGS as saved + (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when + it is not the root project. Put each directory to be + extended between double quotes to prevent it to be expanded on Windows. + (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing + the project file. Set them back to their initial values if they have not + been set in the project file. + + * gprcmd.adb: (Gprdebug, Debug): New global variables + (Display_Command): New procedure + (Usage): Document new command "linkopts" + Call Display_Command when env var GPRDEBUG has the value "TRUE" + Implement new command "linkopts" + Remove quotes that may be around arguments for "extend" + Always call Normalize_Pathname with arguments formatted for the platform + + * Makefile.generic: Link C/C++ mains with $(FLDFLAGS) + Change @echo to @$(display) in target clean to be able to clean silently + + * Makefile.prolog: Save FLDFLAGS and give it an initial empty value + + * prj-part.adb (Project_Path_Name_Of): Do not put final result in + canonical case. + + * prj-part.adb (Parse_Single_Project): Always call with From_Extended + = Extending_All when current project is an extending all project. + + * vms_conv.adb (Output_File_Expected): New Boolean global variable, + set to True only for LINK command, after Unix switch -o. + (Process_Arguments): Set Output_File_Expected to True for LINK command + after Unix switch -o. When Output_File_Expected is True, never add an + extension to a file name. + + * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the + option file name, only to the --for-linker= switch. + (Option_File_Name): If option file name do not end with ".opt", append + "/OPTIONS". + +2004-02-18 GNAT Script + + * Make-lang.in: Makefile automatically updated + +2004-02-17 Matt Kraai + + * Make-lang.in (stamp-sdefault): Do not depend on + move-if-change. + +2004-02-12 Zack Weinberg + + * config-lang.in: Disable Ada by default until probe logic for + a bootstrap Ada compiler can be moved to the top level configure + script. + +2004-02-12 Olivier Hainque + + * decl.c (components_to_record): Don't claim that the internal fields + we make to hold the variant parts are semantically addressable, because + they are not. + + * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and + adjust the comment describing the modular type form when we can use it. + (Install_PAT): Account for the Esiz renaming. + + * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the + sc_onstack context indication before raising the exception to which + the signal is mapped. Allows better handling of later signals possibly + triggered by the resumed user code if the exception is handled. + +2004-02-12 Arnaud Charlet + + * 5zinit.adb: Removed, no longer used. + +2004-02-12 Robert Dewar + + * ali.adb: Remove separating space between parameters on R line. Makes + format consistent with format used by the binder for Set_Globals call. + + * atree.ads, atree.adb: Minor reformatting (new function header format) + + * bindgen.adb: Add Run-Time Globals documentation section containing + detailed documentation of the globals passed from the binder file to + the run time. + + * gnatls.adb: Minor reformatting + + * init.c (__gnat_set_globals): Add note pointing to documentation in + bindgen. + + * lib-writ.ads, lib-writ.adb: Remove separating space between + parameters on R line. + Makes format consistent with format used by the binder for Set_Globals + call. + + * osint.ads: Add 2004 to copyright notice + Minor reformatting + + * snames.ads: Correct capitalization of FIFO_Within_Priorities + Noticed during code reading, documentation issue only + + * usage.adb: Remove junk line for obsolete C switch + Noticed during code reading + +2004-02-12 Vincent Celier + + * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd + extend for each directory, so that multiple /** directories are + extended individually. + (Recursive_Process): Set the default for LANGUAGES to ada + + * gprcmd.adb: Define new command "ignore", to do nothing. + Implement new comment "path". + + * Makefile.generic: Suppress output when SILENT is set + Make sure that when compiler for C/C++ is gcc, the correct -x switch is + used, so that the correct compiler is invoked. + When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/ + CXX_INCLUDE_PATH, to avoid failure with too long command lines. + +2004-02-12 Jerome Guitton + + * Makefile.in: Clean ups and remove obsolete targets. + +2004-02-12 Ed Schonberg + + * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar + predicate declared in exp_util. + + * exp_util.adb: Add comments. + + * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from + visibility before compiling context of the subunit. + + * sem_res.adb (Check_Parameterless_Call): If the context expects a + value but the name is a procedure, do not attempt to analyze as a call, + in order to obtain more telling diagnostics. + + * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing + 'Access on parameterless function calls. + (Normalize_Actuals): For a parameterless function call with missing + actuals, defer diagnostic until resolution of enclosing call. + + * sem_util.adb (Wrong_Type): If the context type is an access to + subprogram and the expression is a procedure name, suggest a missing + 'attribute. + +2004-02-10 Arnaud Charlet , + Nathanael Nerode + + PR ada/6637 + PR ada/5911 + Merge with libada-branch: + * config-lang.in: Build libada only when ada is built. + +2004-02-09 Ed Schonberg + + * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality + for a tagged type, verify that both formals have the same type. + + * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the + temporary when the formal is an in-parameter and the actual a possibly + unaligned slice. + + * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even + when expansion is disabled, to ensure proper name capture with + overloaded literals. Condition can be of any boolean type, resolve + accordingly. + + * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the + renaming is for a formal subprogram with a default operator name, and + there is a usable operator that is visible at the point of + instantiation. + +2004-02-09 Robert Dewar + + * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major + rewrite to ignore errors in ali files, intended to allow tools downward + compatibility with new versions of ali files. + + * ali.ads: Add new parameter Ignore_Errors + + * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes + duplicating the error message giving the file with restrictions. + + * debug.adb: Add debug flag I for gnatbind + + * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around + operators for the case where the operator is a defining operator. + + * exp_ch3.adb: Minor reformatting (new function spec format). + + * exp_ch4.adb: Add comment for previous change, and make minor + adjustment to loop to always check for improper loop termination. + Minor reformatting throughout (new function spec format). + + * gnatbind.adb: Implement -di debug flag for gnatbind + + * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True + + * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True + + * lib-load.adb: Fix bad assertion. + Found by testing and code reading. + Minor reformatting. + + * lib-load.ads: Minor reformatting. + + * lib-writ.adb: There is only one R line now. + + * lib-writ.ads: Add documentation on making downward compatible changes + to ali files so old tools work with new ali files. + There is only one R line now. + Add documentation on format incompatibilities (with special GPS note) + + * namet.ads, namet.adb: (Is_Operator_Name): New procedure + + * par-load.adb: Minor reformatting + + * sem_ch8.adb: Fix to error message from last update + Minor reformatting and restructuring of code from last update + + * par-prag.adb, snames.adb, snames.ads, snames.h, + sem_prag.adb: Implement pragma Profile. + + * stylesw.adb: Implement -gnatyN switch to turn off all style check + options. + + * usage.adb: Add line for -gnatyN switch + + * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN + +2004-02-09 Albert Lee + + * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX + +2004-02-09 Ed Schonberg + + * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null + slices. + + * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram + is nested in an instance that is not frozen yet, to avoid + order-of-elaboration problems in gigi. + + * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined + body the attribute is legal. + +2004-02-09 Robert Dewar + + * s-rident.ads: Minor comment correction + + * targparm.adb: Remove dependence on uintp completely. There was + always a bug in Make in that it called Targparm before initializing + the Uint package. The old code appeared to get away with this, but + the new code did not! This caused an assertion error in gnatmake. + + * targparm.ads: Fix bad comment, restriction pragmas with parameters + are indeed fully supported. + +2004-02-06 Alan Modra + + * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call. + +2004-02-05 Kazu Hirata + + * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES + with targetm.calls.promote_prototypes. + +2004-02-04 Robert Dewar + + * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb, + ali.ads, gprcmd.adb: Minor reformatting + + * bindgen.adb: Output restrictions string for new style restrictions + handling + + * impunit.adb: Add s-rident.ads (System.Rident) and + s-restri (System.Restrictions) + + * lib-writ.adb: Fix bug in writing restrictions string (last few + entries wrong) + + * s-restri.ads, s-restri.adb: Change name Restrictions to + Run_Time_Restrictions to avoid conflict with package name. + Add circuit to read and acquire run time restrictions. + +2004-02-04 Jose Ruiz + + * restrict.ads, restrict.adb: Use the new restriction + No_Task_Attributes_Package instead of the old No_Task_Attributes. + + * sem_prag.adb: No_Task_Attributes is a synonym of + No_Task_Attributes_Package. + + * snames.ads, snames.adb: New entry for proper handling of + No_Task_Attributes. + + * s-rident.ads: Adding restriction No_Task_Attributes_Package + (AI-00249) that supersedes the GNAT specific restriction + No_Task_Attributes. + +2004-02-04 Ed Schonberg + + * sem_prag.adb: + (Analyze_Pragma, case Warnings): In an inlined body, as in an instance + body, an identifier may be wrapped in an unchecked conversion. + +2004-02-04 Vincent Celier + + * lib-writ.ads: Comment update for the W lines + + * bld.adb: (Expression): An empty string list is static + + * fname-uf.adb: Minor comment update + + * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail + + * gnatbind.adb: Initialize Cumulative_Restrictions with the + restrictions on the target. + +2004-02-03 Kazu Hirata + + * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of + gen_rtx. + +2004-02-02 Arnaud Charlet + + * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded. + +2004-02-02 Vincent Celier + + * gprcmd.adb (Check_Args): If condition is false, print the invoked + comment before the usage. + Gprcmd: Fail when command is not recognized. + (Usage): Document command "prefix" + + * g-md5.adb (Digest): Process last block. + (Update): Do not process last block. Store remaining characters and + length in Context. + + * g-md5.ads (Update): Document that several call to update are + equivalent to one call with the concatenated string. + (Context): Add fields to allow new Update behaviour. + + * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail, + defaulted to False. + When May_Fail is True and no existing file can be found, return No_File. + + * 6vcstrea.adb: Inlined functions are now wrappers to implementation + functions. + + * lib-writ.adb (Write_With_Lines): When body file does not exist, use + spec file name instead on the W line. + +2004-02-02 Robert Dewar + + * ali.adb: Read and acquire info from new format restrictions lines + + * bcheck.adb: Add circuits for checking restrictions with parameters + + * bindgen.adb: Output dummy restrictions data + To be changed later + + * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb, + exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb, + freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb, + sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb, + sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling. + + * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses + the warning message on access to possibly uninitialized variable S) + Minor changes for new restrictions handling. + + * gnatbind.adb: Minor reformatting + Minor changes for new restrictions handling + Move circuit for -r processing here from bcheck (cleaner) + + * gnatcmd.adb, gnatlink.adb: Minor reformatting + + * lib-writ.adb: Output new format restrictions lines + + * lib-writ.ads: Document new R format lines for new restrictions + handling. + + * s-restri.ads/adb: New files + + * Makefile.rtl: Add entry for s-restri.ads/adb + + * par-ch3.adb: Fix bad error messages starting with upper case letter + Minor reformatting + + * restrict.adb: Major rewrite throughout for new restrictions handling + Major point is to handle restrictions with parameters + + * restrict.ads: Major changes in interface to handle restrictions with + parameters. Also generally simplifies setting of restrictions. + + * snames.ads/adb: New entry for proper handling of No_Requeue + + * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks + restriction counting. + Other minor changes for new restrictions handling + + * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements. + Restriction_Warnings now allows full parameter notation + Major rewrite of Restrictions for new restrictions handling + +2004-02-02 Javier Miranda + + * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y + syntax rule for object renaming declarations. + (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for + component definitions. + + * sem_ch3.adb (Analyze_Component_Declaration): Give support to access + components. + (Array_Type_Declaration): Give support to access components. In addition + it was also modified to reflect the name of the object in anonymous + array types. The old code did not take into account that it is possible + to have an unconstrained anonymous array with an initial value. + (Check_Or_Process_Discriminants): Allow access discriminant in + non-limited types. + (Process_Discriminants): Allow access discriminant in non-limited types + Initialize the new Access_Definition field in N_Object_Renaming_Decl + node. Change Ada0Y to Ada 0Y in comments + + * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in + equality operators. + Change Ada0Y to Ada 0Y in comments + + * sem_ch8.adb (Analyze_Object_Renaming): Give support to access + renamings Change Ada0Y to Ada 0Y in comments + + * sem_type.adb (Find_Unique_Type): Give support to the equality + operators for universal access types + Change Ada0Y to Ada 0Y in comments + + * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms + + * sinfo.ads (N_Component_Definition): Addition of Access_Definition + field. + (N_Object_Renaming_Declaration): Addition of Access_Definition field + Change Ada0Y to Ada 0Y in comments + + * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for + component definition and object renaming nodes + Change Ada0Y to Ada 0Y in comments + +2004-02-02 Jose Ruiz + + * restrict.adb: Use the new restriction identifier + No_Requeue_Statements instead of the old No_Requeue for defining the + restricted profile. + + * sem_ch9.adb (Analyze_Requeue): Check the new restriction + No_Requeue_Statements. + + * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249) + that supersedes the GNAT specific restriction No_Requeue. The later is + kept for backward compatibility. + +2004-02-02 Ed Schonberg + + * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads, + 5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant + pragma and fix incorrect ones. + + * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a + warning if the pragma is redundant. + +2004-02-02 Thomas Quinot + + * 5staprop.adb: Add missing 'constant' keywords. + + * Makefile.in: use consistent value for SYMLIB on + platforms where libaddr2line is supported. + +2004-02-02 Richard Kenner + + * utils.c (end_subprog_body): Do not call rest_of_compilation if just + annotating types. + +2004-02-02 Olivier Hainque + + * init.c (__gnat_install_handler): Setup an alternate stack for signal + handlers in the environment thread. This allows proper propagation of + an exception on stack overflows in this thread even when the builtin + ABI stack-checking scheme is used without support for a stack reserve + region. + + * utils.c (create_field_decl): Augment the head comment about bitfield + creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P + here, because the former is not accurate enough at this point. + Let finish_record_type decide instead. + Don't make a bitfield if the field is to be addressable. + Always set a size for the field if the record is packed, to ensure the + checks for bitfield creation are triggered. + (finish_record_type): During last pass over the fields, clear + DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is + not covered by the calls to layout_decl. Adjust DECL_NONADDRESSABLE_P + from DECL_BIT_FIELD. + +2004-01-30 Kelley Cook + + * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir). + (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise. + (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise. + +2004-01-26 Rainer Orth + + * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB. + + * 5fsystem.ads (Functions_Return_By_DSP): Set to False. + (ZCX_By_Default): Likewise. + (Front_End_ZCX_Support): Likewise. + + * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced. + (Initialize_Lock): Mark Level unreferenced. + (Sleep): Mark Reason unreferenced. + (Timed_Sleep): Likewise. + (Wakeup): Likewise. + (Exit_Task): Use Result. + (Check_No_Locks): Mark Self_ID unreferenced. + + * 5gtasinf.adb (New_Sproc): Make Attr constant. + (Bound_Thread_Attributes): Make Sproc constant. + (New_Bound_Thread_Attributes): Likewise. + +2004-01-26 Ed Schonberg + + * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for + one-dimensional array an slice assignments, when component type is + controlled. + + * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional, + component type is controlled, and control_actions are in effect, use + TSS procedure rather than generating inline code. + + * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional + arrays with controlled components. + +2004-01-26 Vincent Celier + + * gnatcmd.adb (GNATCmd): Add specification of argument file on the + command line for the non VMS case. + + * gnatlink.adb (Process_Binder_File): When building object file, if + GNU linker is used, put all object paths between quotes, to prevent ld + error when there are unusual characters (such as '!') in the paths. + + * Makefile.generic: When there are sources in Ada and the main is in + C/C++, invoke gnatmake with -B, instead of -z. + + * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted + from VMS_Conversion. + (Process_Argument): New procedure, extracted from VMS_Conversion. Add + specification of argument file on the command line. + +2004-01-26 Bernard Banner + + * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64 + +2004-01-26 Ed Schonberg + + * snames.adb: Update copyright notice. + Add info on slice assignment for controlled arrays. + +2004-01-23 Robert Dewar + + * exp_aggr.adb: Minor reformatting + + * exp_ch9.adb: Minor code clean up + Minor reformatting + Fix bad character in comment + + PR ada/13471 + * targparm.adb (Get_Target_Parameters): Give clean abort error on + unexpected end of file, along with more detailed message. + +2004-01-23 Richard Kenner + + * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of + PAT. + + * decl.c (copy_alias_set): New function. + (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it. + +2004-01-23 Doug Rupp + + * Makefile.in (install-gnatlib): Change occurrences of lib$$file to + lib$${file} in case subsequent character is not a separator. + +2004-01-23 Vincent Celier + + * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc + when the GCC version is at least 3. + + * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches + Remove all "Opt.", to prepare for opt split + + * prj-part.adb (Parse_Single_Project): New Boolean out parameter + Extends_All. Set to True when the project parsed is an extending all + project. Fails for importing an extending all project only when the + imported project is an extending all project. + (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause, + depending on the value of Extends_All returned. + + * prj-proc.adb (Process): Check that no project shares its object + directory with a project that extends it, directly or indirectly, + including a virtual project. + Check that no project extended by another project shares its object + directory with another also extended project. + + * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for + Kind = N_With_Clause + + * prj-tree.ads: Minor reformatting + Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All). + +2004-01-23 Ed Schonberg + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute + applies to a type with an incomplete view, use full view in Name of + clause, for consistency with uses of Get_Attribute_Definition_Clause. + +2004-01-23 Arnaud Charlet + + * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using + SCHED_RR, since other values are not supported by this policy. + (Initialize): Move initialization of mutex attribute to package + elaboration, to prevent early access to this variable. + + * Makefile.in: Remove mention of Makefile.adalib, unused. + + * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb, + 1ssecsta.ads: Removed, unused. + +2004-01-21 Javier Miranda + + * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master + entity if already built in the current scope. + + * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity + reminder in internal scopes. Required for nested limited aggregates. + +2004-01-21 Doug Rupp + + * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on + VMS. Replace all occurences of libgnat- and libgnarl- with + libgnat$(hyphen) and libgnarl$(hyphen). + Fixed shared library build problem on VMS. + +2004-01-21 Robert Dewar + + * mlib-prj.adb: Minor reformatting + +2004-01-21 Thomas Quinot + + * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing + 'constant' keywords for declaration of pointers that are not modified. + + * exp_pakd.adb: Fix English in comment. + +2004-01-21 Ed Schonberg + + PR ada/10889 + * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype, + copy all attributes of the parent, including the foreign language + convention. + +2004-01-21 Sergey Rybin + + PR ada/10565 + * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check + for 'delay until' statement. + +2004-01-20 Kelley Cook + + * Make-lang.in: Replace $(docdir) with doc. + (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info + doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update + to use consistent MAKEINFO rule. + (ada.man, ada.srcman): Dummy entry. + (ADA_INFOFILES): Define. + (ada.info, ada.srcinfo): New rules. + +2004-01-19 Arnaud Charlet + + * utils.c: Update copyright notice, missed in previous change. + +2004-01-19 Vincent Celier + + * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the + args if Bind is True. Set First_ALI, if not already done. + (Build_Library): For Stand Alone Libraries, extract from one ALI file + an eventual --RTS switch, for gnatbind, and all backend switches + + --RTS, for linking. + +2004-01-19 Robert Dewar + + * sem_attr.adb, memtrack.adb: Minor reformatting + +2004-01-19 Ed Schonberg + + * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions + that rename enumeration literals. This is properly done in sem_eval. + + * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls + to functions that rename enumeration literals. + + * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to + functions that rename enumeration literals. + +2004-01-16 Kazu Hirata + + * Make-lang.in (utils.o): Depend on target.h. + * utils.c: Include target.h. + (process_attributes): Use targetm.have_named_sections instead + of ASM_OUTPUT_SECTION_NAME. + +2004-01-16 Andreas Jaeger + + * Makefile.in: Add $(DESTDIR). + +2004-01-15 Olivier Hainque + + * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size + also when not defining if a Size clause applies. That information is + not to be ignored. + +2004-01-15 Arnaud Charlet + + * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up + symbolic links for the shared gnat run time when needed. + +2004-01-15 Vasiliy Fofanov + + * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened + for writing, and terminate with an error message if not. + +2004-01-15 Ed Schonberg + + * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious + warning on an access to subprogram in an instance, when the target + type is declared in the same generic unit. + (Eval_Attribute): If 'access is known to fail accessibility check, + rewrite as a raise statement. + +2004-01-15 GNAT Script + + * Make-lang.in: Makefile automatically updated + +2004-01-15 Kelley Cook + + * Make-lang.in (ada.srcextra): Dummy entry. + +2004-01-14 Kelley Cook + + * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode. + +2004-01-13 Ed Schonberg + + * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled + components that are initialized with aggregates. + +2004-01-13 Vincent Celier + + * gnatlink.adb (Process_Binder_File): To find directory of shared + libgcc, if "gcc-lib" is not a subdirectory, look for the last + subdirectory "lib" in the path of the shared libgnat or libgnarl. + + * make.adb (Gnatmake): If GCC version is at least 3, link with + -shared-libgcc, when there is at least one shared library project. + + * opt.ads (GCC_Version): New integer constant. + + * adaint.c (get_gcc_version): New function. + +2004-01-13 Robert Dewar + + * sem_dist.adb, sem_res.adb, sem_util.adb, + sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb, + exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting + +2004-01-13 Thomas Quinot + + * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb, + g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object + declarations. + +2004-01-12 Arnaud Charlet + + * misc.c: Remove trailing spaces. + Update copyright notice missed in previous change. + + PR ada/13572 + * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of + prefix/share/make + + * Makefile.generic: Update copyright. + Add license notice. + + * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead + of prefix/share/make. + + * Makefile.prolog: Update copyright. + Add license notice. + +2004-01-12 Laurent Pautet + + * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb, + 3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb, + g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr + instead of String. + + * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message + signature. + +2004-01-12 Javier Miranda + + * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb, + exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb, + sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb, + sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of + Component_Definition node. + +2004-01-12 Ed Falis + + * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit + +2004-01-12 Thomas Quinot + + * link.c: Change default libgnat kind to STATIC for FreeBSD. + +2004-01-12 Bernard Banner + + * Makefile.in: map 86numaux to a-numaux for x86_64 + +2004-01-12 Ed Schonberg + + * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity + generated to rename a generic actual, go to the actual itself, the + subtype is not a user-visible entity. + + * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible + part is a private subtype, reset the visibility of its full view, if + any, to be consistent. + + PR ada/13417 + * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt + to use a generic package G as a formal package for another generic + declared within G. + +2004-01-12 Robert Dewar + + * trans.c (Eliminate_Error_Msg): New procedure called to generate msg + + * usage.adb: Remove mention of obsolete -gnatwb switch + Noticed during code reading + +2004-01-12 Jerome Guitton + + * 1ssecsta.adb: Minor changes for -gnatwa warnings + +2004-01-12 GNAT Script + + * Make-lang.in: Makefile automatically updated + +2004-01-09 Mark Mitchell + + * misc.c (gnat_expand_expr): Add alt_rtl parameter. + +2004-01-07 Rainer Orth + + * link.c [sgi] (shared_libgnat_default): Change to STATIC. + +2004-01-05 Kelley Cook + + * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18. + Update comment and copyright date. + * stamp-xgnatug: Delete. + +2004-01-05 Robert Dewar + + * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may + be modified by the binder generated main program if the -D switch is + used. + + * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all + imported functions (since now we expect this to be done for imported + functions) + + * 5vtaprop.adb: Add several ??? for sections requiring more comments + Minor reformatting throughout + + * 5zinit.adb: Minor reformatting + Add 2004 to copyright date + Minor changes to avoid -gnatwa warnings + Correct some instances of using OR instead of OR ELSE (noted while + doing reformatting) + + * sprint.adb: Minor updates to avoid -gnatwa warnings + + * s-secsta.ads, s-secsta.adb: + (SS_Get_Max): New function to obtain high water mark for ss stack + Default_Secondary_Stack is not a constant since it may be modified by + the binder generated main program if the -D switch is used. + + * switch-b.adb: New -Dnnn switch for binder + + * switch-c.adb: + Make -gnatg imply all warnings currently in -gnatwa + + * vms_conv.adb: Minor reformatting + Add 2004 to copyright notice + Add 2004 to printed copyright notice + + * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb, + 3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb, + 5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb, + 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb, + 5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb, + 5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb, + 5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb, + 5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb, + 5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb, + 5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb, + 6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb, + vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb, + xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads, + sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb, + checks.adb, clean.adb, cstand.adb, einfo.ads, + einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb, + exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb, + prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb, + sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb, + g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb, + lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb: + Minor reformatting and code clean ups. + Minor changes to prevent -gnatwa warnings + + * ali.adb: Minor reformatting and cleanup of code + Acquire new SS indication of secondary stack use from ali files + + * a-numaux.ads: Add Pure_Function pragmas for all imported functions + (since now we expect this to be done for imported functions) + + * bindgen.adb: Generate call to modify default secondary stack size if + -Dnnn switch given + + * bindusg.adb: Add line for new -D switch + + * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate + replacement name for Type_May_Have_Non_Bit_Aligned_Components! + Add circuitry for both records and arrays to avoid gigi + processing if the type involved has non-bit-aligned components + + * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that + N_String_Literal node always references an E_String_Literal_Subtype + entity. This may not be true in the future. + (Possible_Bit_Aligned_Component): Move processing of + Component_May_Be_Bit_Aligned from exp_ch5 to exp_util + + * exp_ch6.adb (Expand_Thread_Body): Pick up + Default_Secondary_Stack_Size as variable so that we get value modified + by possible -Dnnn binder parameter. + + * exp_util.adb (Component_May_Be_Bit_Aligned): New function. + (Type_May_Have_Bit_Aligned_Components): New function. + + * exp_util.ads (Component_May_Be_Bit_Aligned): New function. + (Type_May_Have_Bit_Aligned_Components): New function. + + * fe.h: (Set_Identifier_Casing): Fix prototype. + Add declaration for Sem_Elim.Eliminate_Error_Msg. + Minor reformatting. + + * freeze.adb (Freeze_Entity): Add RM reference to error message about + importing constant atomic/volatile objects. + (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram + unless explicit Pure_Function pragma given, to avoid insidious bug of + call to non-pure imported function getting eliminated. + + * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, + gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb, + gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting + Add 2004 to printed copyright notice + + * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary + stack used. + + * Makefile.rtl: Add entry for g-sestin.o + g-sestin.ads: New file. + + * mdll.adb: Minor changes to avoid -gnatwa warnings + + * mlib-tgt.adb: Minor reformatting + + * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND) + New switch Sec_Stack_Used (GNAT, GNATBIND) + Make Default_Secondary_Stack_Size a variable instead of a constant, + so that it can be modified by the new -Dnnn bind switch. + + * rtsfind.adb (Load_Fail): Give full error message in configurable + run-time mode if all_errors mode is set. This was not done in the case + of a file not found, which was an oversight. + Note if secondary stack unit is used by compiler. + + * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put + ineffective elaborate all pragmas on non-visible packages (this + happened when a renamed subprogram was called). Now the elaborate all + always goes on the package containing the renaming rather than the one + containing the renamed subprogram. + + * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure + (Process_Eliminate_Pragma): Add parameter to capture pragma location. + + * sem_eval.adb (Eval_String_Literal): Do not assume that string literal + has an Etype that references an E_String_Literal. + (Eval_String_Literal): Avoid assumption that N_String_Literal node + always references an E_String_Literal_Subtype entity. This may not + be true in the future. + + * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture + pragma location. + + * sem_res.adb (Resolve): Specialize msg for function name used in proc + call. + +2004-01-05 Ed Falis + + * g-debuti.adb: Replaced direct boolean operator with short-circuit + form. + +2004-01-05 Vincent Celier + + * bld.adb: Minor comment updates + (Process_Declarative_Items): Correct incorrect name (Index_Name instead + of Item_Name). + + * make.adb (Gnatmake): Special process for files to compile/check when + -B is specified. Fail when there are only foreign mains in attribute + Main of the project file and -B is not specified. Do not skip bind/link + steps when -B is specified. + + * makeusg.adb: Document new switch -B + + * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag + + * switch-m.adb: (Scan_Make_Switches): Process -B switch + + * vms_data.ads: Add new GNAT PRETTY qualifier + /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff + +2004-01-05 Richard Kenner + + * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer + case. + + * misc.c (gnat_printable_name): If VERBOSITY is 2, call + Set_Identifier_Casing. + + * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type + has size that overflows. + +2004-01-05 Gary Dismukes + + * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid + -gnatwa warning on static condition. + +2004-01-05 Doug Rupp + + * link.c: (shared_libgnat_default) [VMS]: Change to STATIC. + +2004-01-05 Arnaud Charlet + + * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve + all attributes, including read-only attribute. + +2004-01-05 Pascal Obry + + * bindgen.adb (Gen_Object_Files_Options): Generate the new shared + library naming scheme. + + * mlib-prj.adb (Build_Library): Generate different names for the static + or dynamic version of the GNAT runtime. This is needed to support the + new shared library naming scheme. + (Process_Binder_File): Add detection of shared library in binder file + based on the new naming scheme. + + * gnatlink.adb (Process_Binder_File): Properly detect the new naming + scheme for the shared runtime libraries. + + * Makefile.in: + (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming + scheme. + (install-gnatlib): Do not create symlinks for shared libraries. + (gnatlib-shared-default): Idem. + (gnatlib-shared-dual-win32): New target. Not used for now as the + auto-import feature does not support arrays/records. + (gnatlib-shared-win32): Do not create copy for the shared libraries. + (gnatlib-shared-vms): Fix shared runtime libraries names. + + * osint.ads, osint.adb (Shared_Lib): New routine, returns the target + dependent runtime shared library name. + +2004-01-05 Vasiliy Fofanov + + * osint.adb (Read_Library_Info): Remove bogus check if ALI is older + than the object. + +2004-01-05 Ed Schonberg + + * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic + protected objects when allocator has a subtype indication, not a + qualified expression. Note that qualified expressions may have to be + checked when limited aggregates are implemented. + + * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is + pure, emit warning. + (Analyze_Pragma, case Pure_Function): If enclosing package is pure and + subprogram is imported, remove warning. + +2004-01-05 Geert Bosch + + * s-poosiz.adb: Update copyright notice. + (Allocate): Use Task_Lock to protect against concurrent access. + (Deallocate): Likewise. + +2004-01-05 Joel Brobecker + + * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ??? + comment. + + + +Copyright (C) 2004 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff --git a/gcc/ada/ChangeLog-2005 b/gcc/ada/ChangeLog-2005 new file mode 100644 index 00000000000..19301f92360 --- /dev/null +++ b/gcc/ada/ChangeLog-2005 @@ -0,0 +1,8014 @@ +2005-12-28 John David Anglin + + * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t. + +2005-12-12 Arnaud Charlet + + * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer + needed. + +2005-12-12 Arnaud Charlet + + * Make-lang.in: Update dependencies + +2005-12-12 Arnaud Charlet + + * Make-lang.in: Add rule for ada/exp_sel.o + +2005-12-12 Arnaud Charlet + + * Makefile.in (mingw section): Remove EH_MECHANISM setting. + +2005-12-09 Arnaud Charlet + + * gnatvsn.ads (Library_Version): Bump to version 4.2 + (ASIS_Version_Number): Bumped. + +2005-12-09 Doug Rupp + + * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change + Ada bind file prefix on VMS from b$ to b__. + (Build_Dynamic_Library): Change Init file suffix on VMS from $init to + __init. + + * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to + Targparm.OpenVMS_On_Target. + (Object_Suffix): Initialize with target object suffix. + (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__. + + * butil.adb: Change some Hostparm.OpenVMS checks to + Targparm.OpenVMS_On_Target. + + * clean.adb: Change some Hostparm.OpenVMS checks to + Targparm.OpenVMS_On_Target. + (Object_Suffix): Initialize with call to Get_Target_Object_Suffix. + ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change + Ada bind file prefix on VMS from b$ to b__. + + * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in + --GCC so that Get_Target_Parameters can find system.ads. + (Gnatlink): Call Get_Target_Parameters in mainline. + Initialize standard packages for Targparm. + Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target. + (Process_Args): Also Check for object files with target object + extension. + (Make_Binder_File_Names): Create with target object extension. + (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$ + to b__. + + * mlib-prj.adb: Change some Hostparm.OpenVMS checks to + Targparm.OpenVMS_On_Target. + ({declaration},Build_Library,Check_Library): Change Ada bind file + prefix on VMS from b$ to b__. + + * osint-b.adb: Change some Hostparm.OpenVMS checks to + Targparm.OpenVMS_On_Target. + (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to + b__. + + * targext.c: New file. + + * Makefile.in: add support for vxworks653 builds + (../../vxaddr2line): gnatlink with targext.o. + (TOOLS_LIBS): Move targext.o to precede libgnat. + (init.o, initialize.o): Minor clean up in dependencies. + (GNATLINK_OBJS): Add targparm.o, snames.o + Add rules fo building targext.o and linking it explicitly with all + tools. + Also add targext.o to gnatlib. + + * Make-lang.in: Add rules for building targext.o and linking it in + with gnat1 and gnatbind. + Add entry for exp_sel.o. + + * osint.adb Change some Hostparm.OpenVMS checks to + Targparm.OpenVMS_On_Target. + (Object_File_Name): Use target object suffix. + + * osint.ads (Object_Suffix): Remove, no longer used. + (Target_Object_Suffix): Initialize with target object suffix. + + * rident.ads: Add special exception to license. + + * targparm.adb (Get_Target_Parameters): Set the value of + Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive + value. + (Get_Target_Parameters): Set OpenVMS_On_Target if openvms. + + * targparm.ads: Add special exception to license. + + * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New + function. + (Copy_File): Make sure from file is closed if error on to file + (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions. + + * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix. + (Executable_Suffix): Intialize with Get_Target_Executable_Suffix. + + * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with + target object suffix. + +2005-12-09 Jose Ruiz + Quentin Ochem + Florian Villoing + + * 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 + routine is not executed twice for the environment task when finishing + because of an unhandled exception. + + * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination + handler because of an unhandled exception. + + * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from + System.Tasking.Utilities instead of that in System.Tasking.Stages. + + * s-finimp.adb (initialization code): Modify the soft link for the + finalization of the global list instead of Adafinal. + + * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this + non-tasking version of the soft link for task termination. We do + nothing since if we are using the non-tasking version it + means that the task termination functionality is not used. + (Null_Finalize_Global_List): Add this null version for the procedure + in charge of finalizing the global list for controlled objects. + (Null_Adafinal): Remove this procedure. Adafinal_NT has been created + instead for handling run-time termination in a more flexible way. + (Adafinal_NT): This new procedure will take care of finalizing the + global list for controlled objects if needed, but no tasking + finalization. + + * s-tarest.adb (Task_Lock): Do not try to lock again the + Global_Task_Lock if we already own it. Otherwise, we get blocked in + some run-time operations. + (Task_Unlock): Do not try to actually unlock the Global_Task_Lock + until all nested locks have been released. + (Task_Wrapper): Call the fall-back task termination handler. It + applies to all tasks but the environment task. + (Finalize_Global_Tasks): Add the call for the task termination + procedure for the environment task. + (Task_Wrapper): suppress warnings around declaration of + Secondary_Stack_Address. + + * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been + moved to the Common_ATCB record. + (Task_Lock): Global_Task_Lock_Nesting has been moved to the + Common_ATCB record. + (Task_Unlock): Global_Task_Lock_Nesting has been moved to the + Common_ATCB record. + + * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting, + Fall_Back_Handler, and Specific_Handler. + + * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already + defined in Ada.Task_Termination, to avoid circular dependencies. + (Termination_Handler): Redefine this type here, alredy defined in + Ada.Task_Termination, for avoiding circular dependencies. + (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required + for storing task termination handlers. In addition, + Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to + Common_ATCB because it is used by both the regular and the restricted + run times. + (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to + Common_ATCB because it is used by both the regular and the restricted + run times. + (Common_ATCB): Added a dynamic task analyzer field. + + * s-tassta.adb (Abort_Tasks): Move the code in charge of checking + potentially blocking operations to System.Tasking.Utilities.Abort_Tasks. + (Task_Wrapper): Call the task termination handler. It applies to all + tasks but the environment task. + (Finalize_Global_Tasks): Call the task termination procedure for the + environment task. The call to Finalize_Global_List is now performed + using the soft links mechanism. + (Task_Wrapper): added dynamic stack analysis. + + * s-tasuti.adb (Abort_Tasks): The code in charge of checking + potentially blocking operations has been moved from + System.Tasking.Stages.Abort_Tasks to this procedure. There can be + direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass + through System.Tasking.Stages.Abort_Tasks, and we do not want to miss + this run-time check. + + * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version + of task termination procedure. + (Init_Tasking_Soft_Links): Install the task-safe version of the soft + link for the task termination procedure. + + * bindusg.adb: (Bindusg): Added documentation for -u option. + + * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis. + (Get_Main_C): Add handling of dynamic stack analysis. + (Gen_Output_File_C): Add external functions for dynamic stack analysis. + + * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination). + (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis + (GNATRTL_NONTASKING_OBJS): Add AltiVec files. + + * opt.ads: Added flags used by dynamic stack measurement. + (Max_Line_Length): Remove (not used anymore) + + * s-io.ads, s-io.adb (Standard_Error): new subprogram + (Standart_Output): new subprogram + (Set_Output): new subprogram + (Put): now uses the value of Current_Out to know if the output has to be + send to stderr or stdout. + + * s-stausa.ads: Complete implementation. + + * switch-b.adb: Added handling of -u switch for dynamic stack analysis. + + * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the + list of Ada 05 files. + (GNAT Library Units): Add AltiVec files. + + * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb, + g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads + g-alvety.ads, g-alvevi.ads: New files providing altivec API. + +2005-12-09 Nicolas Setton + + * adaint.c (__gnat_locate_regular_file): Return immediately if + file_name is empty. + +2005-12-09 Javier Miranda + Hristian Kirtchev + + * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body + to the specification because the frontend generates code that uses this + subprogram. + (Set_Interface_Table): Add missing assertion. + Update documentation describing the run-time structure. + (Displace): New subprogram that displaces the pointer to the object + to reference one of its secondary dispatch tables. + (IW_Membership): Modified to use the new table of interfaces. + (Inherit_TSD): Modified to use the new table of interfaces. + (Register_Interface_Tag): Use the additional formal to fill the + contents of the new table of interfaces. + (Set_Interface_Table): New subprogram that stores in the TSD the + pointer to the table of interfaces. + (Set_Offset_To_Top): Use the additional formal to save copy of + the offset value in the table of interfaces. + Update structure of GNAT Primary and Secondary dispatch table diagram. + Add comment section on GNAT dispatch table prologue. + (Offset_To_Signature): Update the constant value of the Signature field. + (Dispatch_Table): Update comment on hidden fields in the prologue. + (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD, + Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change + the type of formal parameter T to Tag, introduce additional assertions. + (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type + conversion. + (Get_Tagged_Kind, Set_Tagged_Kind): New bodies. + + * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual + in all the calls to Expand_Interface_Thunk. Instead of referencing the + record component containing the tag of the secondary dispatch table we + have to use the Offset_To_Top run-time function to get this information; + otherwise if the pointer to the base of the object has been displace + we get a wrong value if we use the 'position attribute. + + * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in + all the calls to Expand_Interface_Thunk. + (Make_Secondary_DT): Secondary dispatch tables do not have a table of + interfaces; hence the call to Set_Interface_Table was clearly wrong. + (Collect_All_Interfaces): Modify the internal subprogram Collect to + ensure that the interfaces implemented by the ancestors are placed + at the header of the generated list. + (Expand_Interface_Conversion): Handle the case in which the displacement + associated with the interface conversion is not statically known. In + this case we generate a call to the new run-time subprogram Displace. + (Make_DT): Generate and fill the new table of interfaces. + (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for + Get_Tagged_Kind and Set_Tagged_Kind. + (Tagged_Kind): New function that determines the tagged kind of a type + with respect to limitedness and concurrency and returns a reference to + RE_Tagged_Kind. + (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body, + Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the + primary dispatch table for a type. + (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and + secondary dispatch table respectively of a tagged type. + + * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal. + (Expand_Interface_Conversion): New subprogram to indicate if the + displacement of the type conversion is statically known. + (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind. + + * rtsfind.ads (RE_Offset_To_Top): New entity + (RTU_Id): Add Ada_Task_Termination to the list so that it is made + accessible to users. + (Re_Displace): New entity + (RE_Interface_Data): New entity + (RE_Set_Interface_Data): New_Entity + (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind, + Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged, + RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected, + RE_TK_Tagged, RE_TK_Task. + + * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram + Init_Secondary_Tags_Internal to allow its use with interface types and + also to generate the code for the new additional actual required + by Set_Offset_To_Top. + (Build_Init_Statements): In case of components associated with abstract + interface types there is no need to generate a call to its IP. + (Freeze_Record_Type): Generate Select Specific Data tables only for + concurrent types. + (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate + the bodies and specifications of the predefined primitive operations + dealing with dispatching selects and abort, 'Callable, 'Terminated only + for concurrent types. + + * 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 + properly protected objects and attach handler in the case of the + restricted profile. + Move embeded package Select_Expansion_Utilities into a separate external + package. + (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select, + Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel. + (Build_K, Build_S_Assignment): New subprograms, part of the select + expansion utilities. + (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call, + Expand_N_Timed_Entry_Call): Optimize expansion of select statements + where the trigger is a dispatching procedure of a limited tagged type. + +2005-12-09 Olivier Hainque + + * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand + pointer initialization values. Make a SAVE_EXPR instead. Add comments + about the use and expansion of SAVE_EXPRs in the various possible + renaming handling cases. + (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by + abusing DECL_FCONTEXT. + +2005-12-09 Matthew Heaney + + * a-convec.adb (Merge): Added assertions to check whether vector params + are sorted. + + * a-coinve.adb (Merge): Added assertions to check whether vector params + are sorted. + + * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302 + draft. + (Cursor'Read): raises PE + + * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem + to its default value. + + * a-cihama.adb: Manually check whether cursor's key and elem are + non-null + + * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode + (Merge): Assert that target and source lists are in order + (Swap): Declare non-const temporaries, to pass to Splice + + * a-cdlili.ads: (Splice): Changed param name and param mode + + * a-cdlili.adb: (Splice): Changed param name and param mode + (Merge): Assert that target and source lists are in order + (Swap): Declare non-const temporaries, to pass to Splice + + * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null + (Write): declare Stream param as not null + + * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include + an exception message. + +2005-12-09 Thomas Quinot + Robert Dewar + + * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1, + which is the absolute maximum length we can support. + + * frontend.adb: For the processing of configuration pragma files, + remove references to Opt.Max_Line_Length, which is not checked anymore. + + * namet.ads (Name_Buffer): Adjust size to reflect increase on max line + length. + + * scn.adb, scng.adb: + Always check line length against the absolute supported maximum, + Hostparm.Max_Line_Length. + + * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported + value for the maximum line length is Max_Line_Length (not + Column_Number'Last). + Minor error msg update + (Set_Style_Check_Options): New interface returning error msg + Minor code reorganization (processing for 'M' was out of alpha order) + + * switch-c.adb: New interface for Set_Style_Check_Options + + * stylesw.ads (Set_Style_Check_Options): New interface returning error + msg. + +2005-12-09 Javier Miranda + + * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records + with IP subprogram were only supported if there were limited types. + + * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized + records with IP subprogram were only supported if there were limited + types. + +2005-12-09 Olivier Hainque + Eric Botcazou + + * trans.c (tree_transform, emit_check): Adjust calls to + build_call_raise, passing the now expected GNAT_NODE argument. + + * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better + source line information than what the current global locus indicates + when appropriate. + + * utils2.c (build_simple_component_ref): Return 0 if the offset of the + field has overflowed. + (build_call_raise): Add a GNAT_NODE argument to convey better source + line information than what the current global locus indicates when + appropriate. + (build_component_ref): Adjust call to build_call_raise. + +2005-12-09 Pascal Obry + + * g-diopit.adb (Find): Fix test to exit the iterator and make sure that + the iterator is quitting iteration on parent directory. + +2005-12-09 Javier Miranda + + * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types + and the assignment to a class-wide object, before the assignment we + generate a run-time check to ensure that the tag of the Target is + covered by the tag of the source. + +2005-12-09 Robert Dewar + + * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean + parameter in call to Image_Wide_Character. + + * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean + parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency. + (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with + annoying FFFE/FFFF inconsistency. + +2005-12-09 Robert Dewar + Javier Miranda + Ed Schonberg + + * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case + of type conversion. + (Find_Interface): New subprogram that given a tagged type and one of its + component associated with the secondary table of an abstract interface + type, return the entity associated with such abstract interface type. + (Make_Subtype_From_Expr): If type has unknown discriminants, always use + base type to create anonymous subtype, because entity may be a locally + declared subtype or generic actual. + (Find_Interface): New subprogram that given a tagged type and one of its + component associated with the secondary table of an abstract interface + type, return the entity associated with such abstract interface type. + + * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the + conversion cannot be handled at compile time. In this case we pass this + information to the expander to generate the appropriate code. + +2005-12-09 Robert Dewar + Ed Schonberg + Gary Dismukes + Javier Miranda + Hristian Kirtchev + + * einfo.adb (Itype_Printed): New flag + (Is_Limited_Type): Derived types do not inherit limitedness from + interface progenitors. + (Is_Return_By_Reference_Type): Predicate does not apply to limited + interfaces. + + * einfo.ads (Itype_Printed): New flag + Move Is_Wrapper_Package to proper section + Add missing Inline for Is_Volatile + + * output.ads, output.adb (Write_Erase_Char): New procedure + (Save/Restore_Output_Buffer): New procedures + (Save/Restore_Output_Buffer): New procedures + + * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes + Add missing support for anonymous access type + (Write_Id): Insert calls to Write_Itype + (Write_Itype): New procedure to output itypes + + * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle + use of "limited" in declaration. + + * sinfo.ads, sinfo.adb: + Formal derived types can carry an explicit "limited" indication. + + * sem_ch3.adb: Add with and use of Targparm. + (Create_Component): If Frontend_Layout_On_Target is True and the + copied component does not have a known static Esize, then reset + the size and positional fields of the new component. + (Analyze_Component_Declaration): A limited component is + legal within a protected type that implements an interface. + (Collect_Interfaces): Do not add to the list the interfaces that + are implemented by the ancestors. + (Derived_Type_Declaration): If the parent of the full-view is an + interface perform a transformation of the tree to ensure that it has + the same parent than the partial-view. This simplifies the job of the + expander in order to generate the correct object layout, and it is + needed because the list of interfaces of the full-view can be given in + any order. + (Process_Full_View): The parent of the full-view does not need to be + a descendant of the parent of the partial view if both parents are + interfaces. + (Analyze_Private_Extension_Declaration): If declaration has an explicit + "limited" the parent must be a limited type. + (Build_Derived_Record_Type): A derived type that is explicitly limited + must have limited ancestor and progenitors. + (Build_Derived_Type): Ditto. + (Process_Full_View): Verify that explicit uses of "limited" in partial + and full declarations are consistent. + (Find_Ancestor_Interface): Remove function. + (Collect_Implemented_Interfaces): New procedure used to gather all + implemented interfaces by a type. + (Contain_Interface): New function used to check whether an interface is + present in a list. + (Find_Hidden_Interface): New function used to determine whether two + lists of interfaces constitute a set equality. If not, the first + differing interface is returned. + (Process_Full_View): Improve the check for the "no hidden interface" + rule as defined by AI-396. + +2005-12-09 Robert Dewar + + * freeze.adb (Freeze_Record_Type): Only test for useless pack on record + types, not on record subtypes. + (Freeze_Entity): Code cleanup. Add barrier to the loop + that generates the references for primitive operations. This allows to + remove an unnecessary exception handler. + Code reformatting and comment clean ups. + +2005-12-09 Vincent Celier + + * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U + If GNAT CHECK is called with a project file, but with no + source on the command line, call gnatcheck with all the compilable + sources of the project. + Take into account the new command Check, for gnatcheck. Treat as for + other ASIS tools: take into account project, specific package Check and + Compiler switches. + For ASIS tools, add the switches in package Compiler for + the invocation of the compiler. + + * prj-attr.adb: Add package Check and its attributes + + * vms_conv.ads (Command_Type): New command Check, for gnatcheck + + * vms_conv.adb (Initialize): Change Params of command Check to + unlimited files. + Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target. + Add data for new command Check + + * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT + ELIM. + Add qualifiers for Check command options + (Command_Type): New command Check + +2005-12-09 Thomas Quinot + + * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a + command line switch overruns the output buffer. + +2005-12-09 Robert Dewar + + * sem_prag.adb: Processing for new pragma Complete_Representation + (Analyze_Pragma, case Debug): Implement two argument form. + + * par-prag.adb: Entry for new pragma Complete_Representation + (Prag, case Debug): Recognize two argument form of pragma Debug + New interface for Set_Style_Check_Options. + + * sem_ch13.adb: Implement new pragma Complete_Representation. + + * snames.adb, snames.ads, snames.h: Entry for new pragma + Complete_Representation. + +2005-12-09 Gary Dismukes + + * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for + available user-specified stream attributes on limited parameters to + also test the type directly rather than only its underlying type (for + Ada 95) and, in the case of Ada 2005, to check that the user-specified + attributes are visible at the point of the subprogram declaration. + For Ada 2005, the error message is modified to indicate that the + type's stream attributes must be visible (again, only for -gnat05). + +2005-12-09 Ed Schonberg + + * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of + anonymous access types. + + * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for + matching of anonymous access types and anonymous access to subprogram + types. 'R'M 4.9.1 (2/2). + +2005-12-09 Ed Schonberg + + * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference + rule prematurely when operands are universal, remaining ambiguities + will be removed during resolution. + Code cleanup. + + * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations + that are Ada 2005 functions. + (Has_Abstract_Interpretation): Subsidiary to + Remove_Conversions, to remove ambiguities caused by abstract operations + on numeric types when operands are universal. + +2005-12-09 Robert Dewar + + * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization + for case where spec is categorized. + +2005-12-09 Javier Miranda + + * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent + types use the corresponding record type. This was not needed before + the implementation of Ada 2005 synchronized types because + concurrent types were never tagged types in Ada 95. + +2005-12-09 Ed Schonberg + + * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the + first subtype of the type of the expression to verify that it is a + legal Time type. + +2005-12-09 Robert Dewar + + * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides + decoded names. + +2005-12-09 Quentin Ochem + Robert Dewar + Ed Falis + Florian Villoing + Thomas Quinot + Arnaud Charlet + + * gnat_ugn.texi: Created section "Stack Related Tools" + Moved "Stack Overflow Checking" subsection from "Switches for gcc" to + "Stack Related Tools" + Added subsection "Static Stack Usage Analysis" + Added subsection "Dynamic Stack Usage Analysis" + Include documentation of itypes in sprint listing (-gnatG) + Documented gnatbind -D switch (default sec stack size for fixed sec + stacks). + Added Interrupt_State and Persistent_BSS to list of configuration + pragmas. + Add missing doc for maximum value of nnn in -gnatyMnnn + + * gnat_rm.texi: Document the AltiVec binding. + Add documentation for pragma Complete_Representation + Shortened an overly long line (> 79 chars) + Clarify documentation of unchecked conversion in implementation + defined cases. + Document two argument form of pragma Debug + + * types.ads (Column_Number): Update documentation. + + * exp_ch7.ads (Make_Adjust_Call): Document the special processing for + library level Finalize_Storage_Only objects (these are not attached to + any finalization list). + + * system-mingw.ads: (Underlying_Priorities): Update comment. + +2005-12-09 Robert Dewar + + * 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, + 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, + lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb, + interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads, + s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor + reformatting. + +2005-12-09 Robert Dewar + + * s-vaflop-vms-alpha.adb: (Ne_F): New function + (Ne_G): New function + + * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code + for tag assignment. + (Rewrite_Comparison): Handle case where operation is not a comparison + and ignore, and also handle type conversion case. + +2005-12-09 Thomas Quinot + + * exp_aggr.ads: Fix typo in comment. + ???-mark Convert_Aggr_In_Assignment as needing documentation. + +2005-12-09 Gary Dismukes + + * layout.adb: Replace various uses of byte by storage unit throughout. + (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a + static size, convert to storage units before returning, to conform to + spec. + +2005-12-09 Matthew Gingell + + * g-exctra.ads: Fix typo in comment. + +2005-12-09 Richard Kenner + + * utils.c: Minor reformatting. + +2005-12-09 Robert Dewar + + * g-soccon.ads: + Further comment fixes to make the status of the default file clear + + * s-bitops.adb: Clarify comment for Bits_Array + +2005-12-07 Rafael Ávila de Espíndola + + * Make-lang.in (ada.install-normal): Remove. + +2005-12-07 Rafael Ávila de Espíndola + + * Make-lang.in: Remove all dependencies on s-gtype. + +2005-12-05 Richard Guenther + + * utils.c (convert): Use fold_convert where appropriate. + +2005-12-05 Paolo Bonzini + + * Makefile.in (gnatlib): Fix regex, using \. instead of . when + a period is meant. + +2005-12-02 Richard Guenther + + * trans.c (gnat_gimplify_expr): Use buildN instead of build. + +2005-12-01 Roger Sayle + + * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST + nodes. + +2005-11-23 Laurent Guerby + + * mlib-prj.adb (Build_Library): Initialize Delete. + +2005-11-21 Joel Sherrill + + * socket.c: Add extern int h_errno for rtems since networking header + files are not available at this point in a tool bootstrap. Newlib + only has basic C library header files. + +2005-11-19 Richard Guenther + Roger Sayle + + PR ada/23717 + * misc.c (internal_error_function): Don't use vsprintf to format + the error message text, instead use pp_format_text and the new + pretty printer APIs. This allows handling of %qs, %w, etc. + +2005-11-18 Laurent Guerby + + PR ada/24857 + * Makefile.in: Use s-auxdec-empty for RTEMS. + +2005-11-17 Richard Kenner + + PR ada/22333 + * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make + a temporary if taking the address of something that is neither + reference, declaration, or constant, since the gimplifier + can't handle that case. + +2005-11-17 Laurent Guerby + + PR ada/24857 + * s-auxdec-empty.ads, s-auxdec-empty.adb: New files. + +2005-11-16 Richard Guenther + + * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux. + +2005-11-16 Joel Sherrill + + PR ada/24855 + * raise-gcc.c: Add missing stdarg.h include. + +2005-11-16 Richard Guenther + + * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency. + (ada/misc.o): Likewise. + +2005-11-14 Thomas Quinot + + * g-soccon.ads: Minor reformatting. Update comments. + + * gsocket.h: Include in the VxWorks case, in order to + gain visibility on the declaration of struct timeval. + + * g-soccon-freebsd.ads, + g-soccon-darwin.ads, + g-soccon-tru64.ads, + g-soccon-aix.ads, + g-soccon-irix.ads, + g-soccon-hpux.ads, + g-soccon-solaris.ads, + g-soccon-vms.ads, + g-soccon-mingw.ads, + g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants. + + * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads, + g-soccon-solaris-64.ads, g-soccon-linux-64.ads, + g-soccon-linux-x86.ads: New files. + + * g-socthi-mingw.adb: + (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants + + * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads + (time_t, suseconds_t): New types constructed to match the tv_sec + and tv_usec fields of C struct timeval. + (Timeval): Construct structure in terms of the new types. + (Host_Errno): New function (imported from socket.c), returns last hosts + database error. + + * g-socthi-vxworks.adb: Add error handling circuitry. + + * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for + components of struct timeval. + (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry. + (Check_Selector): In error conditions, clear internal socket sets to + avoid a memory leak. + (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If, + Send_Timeout, Receive_Timeout. + + * g-socthi.ads (time_t, suseconds_t): New types constructed to match + the tv_sec and tv_usec fields of C struct timeval. + (Timeval): Construct structure in terms of the new types. + (Host_Errno): New function (imported from socket.c), returns last hosts + database error. + + * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the + hosts database last error code. + + * gen-soccon.c: Complete value expansion should not be performed on + TARGET, as it has the form of a math expression, and some components + may be platform-defined macros. + For VxWorks, generate the OK and ERROR values. + New constants giving the sizes of the components of C struct timeval. + +2005-11-14 Robert Dewar + Ed Schonberg + + PR ada/18434 + * types.ads: Include All_Checks in Suppress_Array + + * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as + not(a=b), since we no longer do this rewriting, and hence it is not + needed. + (Elaboration_Checks_Suppressed): Add special casing to + deal with different cases of static and dynamic elaboration checks (all + checks does not count in the first case, but does in the second). + (Expr_Known_Valid): Do not assume that the result of any arbitrary + function call is valid, since this is not the case. + (Ensure_Valid): Do not apply validity check to a real literal + in a universal or fixed context + + * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for + elementary types using the operator in standard. It is cleaner not to + modify the programmers intent, especially in the case of floating-point. + (Rewrite_Comparison): Fix handling of /= (this was always wrong, but + it did not matter because we always rewrote a/=b to not(a=b). + (Expand_Allocator_Expression): For an allocator expression whose nominal + subtype is an unconstrained packed type, convert the expression to its + actual constrained subtype. + Implement warning for <= or >= where < or > not possible + Fix to Vax_Float tests (too early in many routines, causing premature + Vax_Float expansions. + + * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma + to be used with packages and generic packages as well as with + subprograms. + (Suppress): Set All_Checks, but not Elaboration_Check, for case + of pragma Suppress (All_Checks) + (Analyze_Pragma, case Warnings): Implement first argument allowed to be + a string literal for precise control over warnings. + Avoid raise of pragma in case of unrecognized pragma and just return + instead. + + * sem_prag.ads: Minor reformatting + + * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;" + with call to new procedure Bad_Switch. Call Scan_Pos with new parameter + Switch. Do not handle any exception. + Include -gnatwx as part of -gnatg (warn on redundant parens) + Allow optional = after -gnatm + (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no + longer sets Elaboration_Checks. + Code to set warning mode moved to Sem_Warn + so that it can be shared by pragma processing. + + * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if + statement. + + * s-taprop-solaris.adb: + Change some <= to =, to avoid new warning + + * a-exexda.adb, prj-proc.adb: + Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0) + Fix obvious typo (Total_Errors_Detected <= 0 should be = 0) + +2005-11-14 Robert Dewar + + * exp_vfpt.adb: Handle /= case + (Expand_Vax_Conversion): Properly recognize Conversion_OK flag + so that we do not get duplicate scaling for fixed point conversions. + + * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function + +2005-11-14 Matthew Gingell + + * system-lynxos-ppc.ads, system-lynxos-x86.ads: + Increase default priority on Lynx from 15 to 17, and meet the Ada + requirement that Default_Priority be ((Priority'First + + Priority'Last) / 2) by increasing the range of Interrupt_Priority. + +2005-11-14 Vincent Celier + + * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, + mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb, + mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, + mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, + mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads, + mlib-tgt-lynxos.adb (DLL_Prefix): New function + +2005-11-14 Doug Rupp + + * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in + private part. + +2005-11-14 Arnaud Charlet + + * s-traces-default.adb, s-trafor-default.ads, + s-tratas-default.adb: Fix compilation errors. + +2005-11-14 Jose Ruiz + + * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before + raising the exception so the memory used is freed. + +2005-11-14 Arnaud Charlet + + * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant. + (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used. + (convert_address): Update comments and list of platforms using this. + + * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed, + no longer used. + +2005-11-14 Pascal Obry + Vincent Celier + + * gnatdll.adb (Parse_Command_Line): Remove redundant use of + GNAT.Command_Line. + + * memroot.adb: Remove redundant with/use clause on + System.Storage_Elements. + +2005-11-14 Arnaud Charlet + + * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used. + (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp + related code to a-exexpr.adb + (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. + + * a-exexpr-gcc.adb, raise-gcc.c: New file. + + * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code + from a-except.adb. + Move GCC EH related code to a-exexpr-gcc.adb + + * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and + 64-bit Solaris + Split the Linux version of g-soccon into separate variants for 32 and 64 + bit platforms. + (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET) + vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS). + install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use + of host variable $(RANLIB_FLAGS). + (alpha64-dec-*vms*): Fix translations for 64 bit compiler. + Code clean up: remove unused/obsolete targets. + (EH_MECHANISM): New variable introduced to differenciate between the + two EH mechanisms statically. + (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually. + (LIBGNAT_OBJS): Add raise-gcc.o + (LIBGNAT_TARGET_PAIRS for ppc-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 ppc-vxworks): Remove the use of + i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs. + + * raise.c: Move all GCC EH-related routines to raise-gcc.c + +2005-11-14 Jose Ruiz + + * s-tassta.adb (Create_Task): Move the code in charge of resetting the + deferral level, when abort is not allowed, to a later stage (the + Task_Wrapper). + (Task_Wrapper): If Abort is not allowed, reset the deferral level since + it will not get changed by the generated code. It was previously done + in Create_Task. + +2005-11-14 Thomas Quinot + Olivier Hainque + Eric Botcazou + + * decl.c: + Factor common code to build a storage type for an unconstrained object + from a fat or thin pointer type and a constrained object type. + (annotate_value): Handle BIT_AND_EXPR. + (annotate_rep): Don't restrict the back annotation of inherited + components to the type_annotate_only case. + (gnat_to_gnu_entity) : Do not invoke create_type_decl if + we are not defining the type. + : Likewise. + (gnat_to_gnu_entity) : Adjust comments and structure + to get advantage of the new maybe_stabilize_reference interface, to + ensure that what we reference is indeed stabilized instead of relying + on assumptions on what the stabilizer does. + (gnat_to_gnu_entity) : If the entity is an incomplete + type imported through a limited_with clause, use its non-limited view. + (Has_Stdcall_Convention): New macro, to centralize the Windows vs others + differentiation. + (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix + of #if sections + explicit comparisons of convention identifiers. + (gnat_to_gnu_entity) : Decrement force_global if necessary + before early-returning for certain types when code generation is + disabled. + (gnat_to_gnu_entity) : Adjust comment attached to the + nullification of gnu_expr we do for objects with address clause and + that we are not defining. + (elaborate_expression_1): Do not create constants when creating + variables needed by the debug info: the dwarf2 writer considers that + CONST_DECLs is used only to represent enumeration constants, and emits + nothing for them. + (gnat_to_gnu_entity) : When turning a non-definition of an + object with an address clause into an indirect reference, drop the + initializing expression. + Include "expr.h". + (STACK_CHECK_BUILTIN): Delete. + (STACK_CHECK_PROBE_INTERVAL): Likewise. + (STACK_CHECK_MAX_FRAME_SIZE): Likewise. + (STACK_CHECK_MAX_VAR_SIZE): Likewise. + (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree + corresponding to the renamed object as ignored for debugging purposes. + + * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size & + related): For a prefix that is a dereference of a fat or thin pointer, + if there is an actual subtype provided by the front-end, use that + subtype to build an actual type with bounds template. + (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype + is provided by the front-end, use that subtype to compute the size of + the deallocated object. + (gnat_to_gnu): When adding a statement into an elaboration procedure, + check for a potential violation of a No_Elaboration_Code restriction. + (maybe_stabilize_reference): New function, like gnat_stabilize_reference + with extra arguments to control whether to recurse through non-values + and to let the caller know if the stabilization has succeeded. + (gnat_stabilize_reference): Now a simple wrapper around + maybe_stabilize, for common uses without restriction on lvalues and + without need to check for the success indication. + (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to + pass false instead of 0 as the FORCE argument which is a bool. + (Identifier_to_gnu): Remove checks ensuring that an renamed object + attached to a renaming pointer has been properly stabilized, as no such + object is attached otherwise. + (call_to_gnu): Invoke create_var_decl to create the temporary when the + function uses the "target pointer" return mechanism. + Reinstate conversion of the actual to the type of the formal + parameter before any other specific treatment based on the passing + mechanism. This turns out to be necessary in order for PLACEHOLDER + substitution to work properly when the latter type is unconstrained. + + * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a + common pattern. + (maybe_stabilize_reference): New function, like gnat_stabilize_reference + with extra arguments to control whether to recurse through non-values + and to let the caller know if the stabilization has succeeded. + + * utils2.c (gnat_build_constructor): Only sort the fields for possible + static output of record constructor if all the components are constant. + (gnat_build_constructor): For a record type, sort the list of field + initializers in increasing bit position order. + Factor common code to build a storage type for an unconstrained object + from a fat or thin pointer type and a constrained object type. + (build_unary_op) : Always recurse down conversions between + types variants, and process special cases of VIEW_CONVERT expressions + as their NOP_EXPR counterpart to ensure we get to the + CORRESPONDING_VARs associated with CONST_DECls. + (build_binary_op) : Do not strip VIEW_CONVERT_EXPRs + on the right-hand side. + + * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring + a common pattern. + (convert) : Return the inner operand directly if we + are converting back to its original type. + (convert) : Fallthrough regular conversion code instead of + extracting the object if converting to a type variant. + (create_var_decl): When a variable has an initializer requiring code + generation and we are at the top level, check for a potential violation + of a No_Elaboration_Code restriction. + (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN + SIZE and SIZE_UNIT which we need for later back-annotations. + * utils.c: (convert) : Remove obsolete code. + : Do not lift the conversion if the target type + is an unchecked union. + (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions. + (convert) : When the types have the same + main variant, just replace the VIEW_CONVERT_EXPR. + : Revert 2005-03-02 change. + + * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR. + + * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions. + +2005-11-14 Matthew Heaney + + * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads, + a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb, + a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads, + a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb, + a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, + a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb: + Compiles against the spec for ordered maps described in sections + A.18.6 of the most recent (August 2005) AI-302 draft. + +2005-11-14 Olivier Hainque + + * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations + to ensure bias adjustments take place when need be and to prevent + occurrences of intermediate overflows. + +2005-11-14 Matthew Gingell + Olivier Hainque + + * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on + ia64 HP-UX. + + * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven + tracebacks on ia64 HP-UX and provide explanatory comment. + Enable backtraces on ia64 GNU/Linux. + (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real + base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly. + +2005-11-14 Hristian Kirtchev + Javier Miranda + + * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads, + exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads, + exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads, + einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces. + + * a-tags.ads, a-tags.adb: Major rewrite and additions to implement + properly new Ada 2005 interfaces (AI-345) and add run-time checks (via + assertions). + + * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New + subprogram that generates the external name associated with a + secondary dispatch table. + (Get_Secondary_DT_External_Name): New subprogram that generates the + external name associated with a secondary dispatch table. + +2005-11-14 Emmanuel Briot + + * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity + line in the ALI file to include both an instantiation reference, and a + returned value. + +2005-11-14 Vincent Celier + + * clean.adb (Check_Project): Look for Ada code in extending project, + even if Ada is not specified as a language. + Use new function DLL_Prefix for DLL_Name + (Clean_Interface_Copy_Directory): New procedure + (Clean_Library_Directory): New procedure + (Clean_Directory): Remove procedure, no longer used + (Clean_Project): Do not delete any file in an externally built project + + * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object + directory of an extending project, even when there are no Ada source + present. + (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path + (Set_Ada_Paths.Add.Recursive_Add): Ditto + + * mlib-prj.adb (Check_Library): For all library projects, get the + library file timestamp. + (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir + (Build_Library): Use new function DLL_Prefix for the DLL_Name + (Clean): Remove procedure, no longer used + (Ultimate_Extension_Of): New function + (Build_Library): When cleaning the library directory, only remove an + existing library file and any ALI file of a source of the project. + When cleaning the interface copy directory, remove any source that + could be a source of the project. + + * prj.ads, prj.adb (Project_Empty): Add values of new components + Library_TS and All_Imported_Projects. + (Project_Empty): Add values for new components of Project_Data: + Library_ALI_Dir and Display_Library_ALI_Dir + + * prj-attr.adb: New project level attribute name Library_ALI_Dir + + * prj-nmsc.adb (Check_Library_Attributes): Take into account new + attribute Library_ALI_Dir. + (Check_Library_Attributes): The library directory cannot be the same as + any source directory of the project tree. + (Check_Stand_Alone_Library): The interface copy directory cannot be + the same as any source directory of the project tree. + + * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete + all temporary files. + +2005-11-14 Robert Dewar + Ed Schonberg + + * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package + (Check_Elab_Call): A call within a protected body is never an + elaboration call, and does not require checking. + (Same_Elaboration_Scope): Take into account protected types for both + entities. + (Activate_Elaborate_All_Desirable): New procedure + + * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate + desirable + + * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable + (Elab_Error_Msg): Use -da to include internal unit links, not -de. + + * lib-writ.ads, lib-writ.adb: + Implement new AD/ED for Elaborate_All/Elaborate desirable + Use new Elaborate_All_Desirable flag in N_With_Clause node + + * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for + N_Free_Statement nodes. + Define new class N_Subprogram_Instantiation + Add Elaborate_Desirable flag to N_With_Clause node + Add N_Delay_Statement (covering two kinds of delay) + + * debug.adb: Introduce d.f flag for compiler + Add -da switch for binder + +2005-11-14 Ed Schonberg + Cyrille Comar + + * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity + for task component, in the case of a limited aggregate. The enclosed + object declaration will create it earlier. Otherwise, in the case of a + nested aggregate, the object may appear in the wrong scope. + (Convert_Aggr_In_Object_Decl): Create a transient scope when needed. + (Gen_Assign): If the component being assigned is an array type and the + expression is itself an aggregate, wrap the assignment in a block to + force finalization actions on the temporary created for each row of the + enclosing object. + (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl + structures are initialized after all discriminants are set so that + they can be accessed even when their offset is dynamic. + +2005-11-14 Robert Dewar + Hristian Kirtchev + + * sem_attr.adb: Implement Machine_Rounding attribute + (Analyze_Access_Attribute): The access attribute may appear within an + aggregate that has been expanded into a loop. + (Check_Task_Prefix): Add semantic check for attribute 'Callable and + 'Terminated whenever the prefix is of a task interface class-wide type. + (Analyze_Attribute): Add semantic check for attribute 'Identity whenever + the prefix is of a task interface class-wide type. + + * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant + to avoid warnings. + + * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function + Remove pragma Inline for [Unaligned_]Valid. + Add comments that Valid routines do not work for Vax_Float + + * exp_attr.adb: Implement Machine_Rounding attribute + + * snames.h: Add entry for Machine_Rounding attribute + +2005-11-14 Javier Miranda + Robert Dewar + Hristian Kirtchev + + * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size + and related): For a prefix that is an explicit dereference of an + access to unconstrained packed array type, annotate the dereference + with an actual subtype so GIGI can make a correct size computation. + (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and + 'Unrestricted_Access, if the designated type is an interface we + add a type conversion to force the displacement of the pointer + to the secondary dispatch table. + Use Universal_Real instead of Long_Long_Float when we need a high + precision float type for the generated code (prevents gratuitous + Vax_Float stuff when pragma Float_Representation (Vax_Float) used) + (Expand_N_Attribute_Reference): Add support for attribute 'Callable and + 'Terminated for task interface class-wide objects. Generate a call to + the predefined dispatching routine used to retrieve the _task_id from + a task corresponding record. + (Expand_Fpt_Attribute): Major change to properly handle Vax_Float + + * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package + (Check_Dispatching_Operation): Protect the frontend againts + previously detected errors. + + * Makefile.rtl: Add new instantiations of system.fat_gen + + * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads: + Change name of instantiated package for better consistency + with newly added system.fat_gen instantiations. + + * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads, + s-fvagfl.ads: New files. + +2005-11-14 Cyrille Comar + Thomas Quinot + + * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an + assignment of a value of a tagged type that has been rewritten to a + block statement, it is known by construction that no checks are + necessary for the statements within the block: analyze it with checks + suppressed. + (Expand_N_If_Statement): When killing a dead then-branch in an + if-statement that has elsif_parts, recompute the Current_Value node + for any entity whose value is known from the condition of the first + elsif_part. + (Expand_N_Return_Statement): When returning a mutable record, convert + the return value into its actual subtype in order to help the backend + to return the actual size instead of the maximum. This is another + aftermath of not returning mutable records on the sec-stack anymore. + + * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to + handling of error msg for suspicious reverse range iteration. + (Check_Possible_Current_Value_Condition): Move declaration from body to + spec, to allow this subprogram to be called from exp_ch5. + +2005-11-14 Thomas Quinot + + * exp_dist.adb (Append_Array_Traversal): Modify constrained case to + generate a set of nested array aggregates instead of a single flat + aggregate for multi-dimensional arrays. + +2005-11-14 Pascal Obry + + * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned + by spawnve is a process handle, no need to convert. Add a parameter + close to control wether the process handle must be closed. + (__gnat_waitpid): Fix implementation, the pid returned by spawnve is + a process handle, not need to convert. + (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec. + + * g-expect.adb: (Kill): Document the new close parameter. + (Close): Do not release the process handle in the kill there as + waitpid() is using it. + (Send_Signal): Release the process handle. + +2005-11-14 Robert Dewar + + * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we + need a high precision float type for the generated code (prevents + gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float) + used). + + * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we + need a high precision float type for the generated code (prevents + gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float) + used). + (Expand_Width_Attribute): In configurable run-time, the attribute is not + allowed on non-static enumeration subtypes. Force a load error to emit + the correct diagnostic. + +2005-11-14 Thomas Quinot + Robert Dewar + Ed Schonberg + + * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual + subtype to compute the size of the designated object at run-time, + create such a subtype and store it in the Actual_Designated_Subtype + attribute of the N_Free_Statement. + Generate itype for classwide designated object in both cases of + user-specified storage pool: specific and class-wide, not only in the + specific case. + Raise CE when trying to set a not null access type object to null. + (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with + an explicit loop, because freeze nodes make its position variable. + + * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not + null object. + +2005-11-14 Javier Miranda + + * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function, + Build_Stream_Procedure): Add the null-excluding attribute to the first + formal. + This has no semantic meaning under Ada95 mode but it is a + requirement under Ada05 mode. + + * par-ch3.adb (P_Access_Definition): Addition of warning message if + the null exclusion is used under Ada95 mode + (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95. + (P_Access_Definition): Remove assertion that forbids the use of + the null-exclusion feature in Ada95. + +2005-11-14 Robert Dewar + + * impunit.adb: Exclude container helper units not intended for use by + users. + +2005-11-14 Ed Schonberg + + * freeze.adb (Freeze_Entity): For an access formal that is an access + to subprogram, freeze the anonymous subprogram type at the same time, + to prevent later freezing in the wrong scope, such as the enclosing + subprogram body. + (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_ + subprogram whenever available. + +2005-11-14 Arnaud Charlet + + PR ada/23732 + * gnatvsn.ads (Library_Version): Bump to 4.1 + +2005-11-14 Robert Dewar + + * g-debpoo.adb (Set_Valid): Use Integer_Address instead of + Storage_Offset to avoid wrap around causing invalid results. + +2005-11-14 Pascal Obry + + * gnatbind.adb (Is_Cross_Compiler): New function returning True for + cross-compiler. + (Scan_Bind_Arg): Fail with an error message if -M option is used + on a native compiler. + +2005-11-14 Robert Dewar + Vincent Celier + + * gprep.adb: Implement -C switch to scan comments + + * scng.adb: Scan comment symbol separately if Replace_In_Comments set + + * scans.ads: Comment updates (including new use of Tok_Comment in + preprocessing) + + * opt.ads: Add documentation for flags that are used by gprmake, + currently and in the next version of gprmake. + (Verbosity_Level): New variable + Add Replace_In_Comments switch + + * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm + and -vm. + Add /REPLACE_IN_COMMENTS for gnatprep -C switch + +2005-11-14 Arnaud Charlet + + * g-regpat.adb (Fail): raise Expression_Error including the diagnostic + message, friendlier. + +2005-11-14 Robert Dewar + + * g-spitbo.adb: (Hash): Rotate by 3 instead of 1 + +2005-11-14 Doug Rupp + + * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined. + +2005-11-14 Robert Dewar + + * interfac.ads: Change declarations of IEEE float types so that we no + longer need a separate version of this package for VMS. + +2005-11-14 Ed Schonberg + + * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the + internal entity created for the declaration of a child subprogram body + with no spec as coming from source, to generate proper cross-reference + information. + +2005-11-14 Vincent Celier + + * make.adb (Compile_Sources): Change verbose message to minimum + verbosity level High for "is in an Ada library", "is a read-only + library" and "is an internal library", + (Create_Binder_Mapping_File): Path name of ALI file for library project + must include the library directory, not the object directory. + (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called + for new switches -vl, -vm and -vh. + (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity + (Check): Use minimum verbosity Medium for some Verbose_Msg calls + (Compile_Sources): Do not attempt to compile if an ALI file is missing + in a project that is externally built. + (Compute_All_Imported_Projects): New procedure + (Gnatmake): Check if importing libraries should be regenerated because + at least an imported library is more recent. + (Initialize): For each project compute the list of the projects it + imports directly or indirectly. + (Add_Library_Search_Dir): New procedure, used in place of + Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are + put in the search paths. + (Add_Source_Search_Dir): New procedure, used in place of + Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are + put in the search paths. + (Mark_Directory): Resolve the absolute path the directory before marking + it. + + * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with + call to new procedure Bad_Switch. Call Scan_Pos with new parameter + Switch. Do not handle any exception. + (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh + so that the switch is recognized as valid. + (Scan_Make_Switches): Implement new switches -vl, -vm and -vh. + +2005-11-14 GNAT Script + + * Make-lang.in: Makefile automatically updated + +2005-11-14 Pascal Obry + + * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is + used. + (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used. + In both cases the last argument was dropped. + +2005-11-14 Eric Botcazou + + * namet.h: (Column_Numbe): New type. + (Get_Column_Number): Define to sinput__get_column_number. + (Instantiation): Define to sinput__instantiation. + (Get_Column_Number): Declare. + (Instantiation): Likewise. + +2005-11-14 Robert Dewar + + * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit + syntax, which could cause compiler hangs. + +2005-11-14 Vincent Celier + + * prj-ext.adb: Take into account new environment variable + GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH + are defined. + (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH, + normalize its path name, making it absolute and resolving symbolic + links, and replace the original if resolved path is different. + +2005-11-14 Vincent Celier + + * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project + into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS. + +2005-11-14 Emmanuel Briot + + * prj-pp.adb (Print): Do not output the with statement if the + associated name is empty, which happens for virtual extending projects. + (Print): Preserve the "extends all" attribute when printing the project. + + * prj-tree.ads (String_Value_Of): Add comment about returned value for + a virtual extending project. + +2005-11-14 Ed Schonberg + + * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the + rhs of an assignment even if the type is unconstrained, when the + context is non-expanding. + In an inlined body, if the context type is private, + resolve with its full view, which must be a composite type. + +2005-11-14 Robert Dewar + Ed Schonberg + + * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package + Do not give obsolescent warning on with of subprogram (since we + diagnose calls) + (Analyze_With_Clause): Add test for obsolescent package + (Install_Context_Clauses): If the unit is the body of a child unit, do + not install twice the private declarations of the parents, to prevent + circular lists of Use_Clauses in a parent. + (Implicit_With_On_Parent): Do add duplicate with_clause on parent when + compiling body of child unit. + Use new class N_Subprogram_Instantiation + (Expand_With_Clause): If this is a private with_clause for a child unit, + appearing in the context of a package declaration, then the implicit + with_clauses generated for parent units are private as well. + (License_Check): Do not generate message if with'ed unit is internal + +2005-11-14 Gary Dismukes + Ed Schonberg + Thomas Quinot + + * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose + names are internal, because they will not have a corresponding partner + in the actual package. + (Analyze_Formal_Package): Move the setting of the formal package spec's + Generic_Parent field so that it occurs prior to analyzing the package, + to allow proper operation of Install_Parent_Private_Declarations. + (Analyze_Package_Instantiation): Set the instantiated package entity's + Package_Instantiation field. + (Get_Package_Instantiation_Node): Move declaration to package spec. + Retrieve the N_Package_Instantiation node when the Package_Instantiation + field is present. + (Check_Generic_Child_Unit): Within an inlined call, the only possible + instantiation is Unchecked_Conversion, for which no parents are needed. + (Inline_Instance_Body): Deinstall and record the use_clauses for all + parent scopes of a scope being removed prior to inlining an instance + body. + (Analyze_Package_Instantiation): Do not perform front-end inlining when + the current context is itself an instance within a non-instance child + unit, to prevent scope stack errors. + (Save_References): If the node is an aggregate that is an actual in a + call, rewrite as a qualified expression to preserve some type + information, to resolve possible ambiguities in the instance. + (Instance_Parent_Unit): New global variable to record the ultimate + parent unit associated with a generic child unit instance (associated + with the existing Parent_Unit_Visible flag). + (type Instance_Env): New component Instance_Parent_Unit for stacking + parents recorded in the global Instance_Parent_Unit. + (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env + stack. + (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when + it's not a top-level unit, and only do this if Instance_Parent_Unit is + not already set. Replace test of Is_Child_Unit with test of parent's + scope against package Standard. Add comments and a ??? comment. + (Remove_Parent): Revise condition for resetting Is_Immediately_Visible + on a child instance parent to test that the parent equals + Instance_Parent rather than simply checking that the unit is not a + child unit. + (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env. + (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of + a formal interface are ancestors of the corresponding actual. + (Validate_Formal_Interface_Type): Additional legality checks. + (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal + interface types with ancestors. + (Analyze_Formal_Package): If formal is a renaming, use renamed entity + to diagnose attempts to use generic within its own declaration. + +2005-11-14 Ed Schonberg + Javier Miranda + + * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original + discriminant. + (Build_Private_Derived_Type): The entity of the created full view of the + derived type does not come from source. If after installing the private + declarations of the parent scope the parent is still private, use its + full view to construct the full declaration of the derived type. + (Build_Derived_Record_Type): Relax the condition that controls the + execution of the check that verifies that the partial view and + the full view agree in the set of implemented interfaces. In + addition, this test now only takes into account the progenitors. + (Derive_Interface_Subprograms): No need to derive subprograms + of ancestors that are interfaces. + (Derive_Subprograms): Remove formal No_Predefined_Prims and the + associated code. + Change name Is_Package to Is_Package_Or_Generic_Package + (Complete_Subprograms_Derivation): Handle the case in which the full + view is a transitive derivation of the ancestor of the partial view. + (Process_Full_View): Rename local subprogram Find_Interface_In_ + Descendant to Find_Ancestor_Interface to leave the code more clear. + Remove wrong code that avoids the generation of an error message + when the immediate ancestor of the partial view is an interface. + In addition some minor reorganization of the code has been done to + leave it more clear. + (Analyze_Type_Declaration): If type has previous incomplete tagged + partial view, inherit properly its primitive operations. + (Collect_Interfaces): Make public, for analysis of formal + interfaces. + (Analyze_Interface_Declaration): New procedure for use for regular and + formal interface declarations. + (Build_Derived_Record_Type): Add support for private types to the code + that checks if a tagged type implements abstract interfaces. + (Check_Aliased_Component_Type): The test applies in the spec of an + instance as well. + (Access_Type_Declaration): Clean up declaration of malformed type + declared as an access to its own classwide type, to prevent cascaded + crash. + (Collect_Interfaces): For private extensions and for derived task types + and derived protected types, the parent may be an interface that must + be included in the interface list. + (Access_Definition): If the designated type is an interface that may + contain tasks, create Master_Id for it before analyzing the expression + of the declaration, which may be an allocator. + (Record_Type_Declaration): Set properly the interface kind, for use + in allocators, the creation of master id's for task interfaces, etc. + +2005-11-14 Javier Miranda + Ed Schonberg + + * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be + omitted in case of stream attribute subprograms. + (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that + appear immediately after a subprogram body, when there is no previous + subprogram declaration. + Change name Is_Package to Is_Package_Or_Generic_Package + (Process_Formals): A non null qualifier on a non null named access + type is not an error, and is a warning only if Redundant_Constructs + are flagged. + +2005-11-14 Gary Dismukes + Ed Schonberg + + * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure + nested within Analyze_Package_Specification to install the private + declarations and use clauses within each of the parent units of a + package instance of a generic child package. + (Analyze_Package_Specification): When entering a private part of a + package associated with a generic instance or formal package, the + private declarations of the parent must be installed (by calling new + procedure Install_Parent_Private_Declarations). + Change name Is_Package to Is_Package_Or_Generic_Package + (Preserve_Full_Attributes): For a synchronized type, the corresponding + record is absent in a generic context, which does not indicate a + compiler error. + +2005-11-14 Ed Schonberg + + * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do + not try to rewrite a renamed stream attribute, because the operations + on the type may not have been generated. + Handle properly a renaming_as_body generated for a stream operation + whose default is abstract because the object type itself is abstract. + (Find_Type): If the type is incomplete and appears as the prefix of a + 'Class reference, it is tagged, and its list of primitive operations + must be initialized properly. + (Chain_Use_Clauses): When chaining the use clauses that appear in the + private declaration of a parent unit, prior to compiling the private + part of a child unit, find on the scope stack the proper parent entity + on which to link the use clause. + (Note_Redundant_Use): Emit a warning when a redundant use clause is + detected. + (Analyze_Object_Renaming): An attribute reference is not a legal object + if it is not a function call. + +2005-11-14 Robert Dewar + Ed Schonberg + + * sem_eval.adb: Implement d.f flag + (Subtype_Statically_Match): A generic actual type has unknown + discriminants when the corresponding actual has a similar partial view. + If the routine is called to validate the signature of an inherited + operation in a child instance, the generic actual matches the full view, + +2005-11-14 Hristian Kirtchev + Ed Schonberg + Robert Dewar + Thomas Quinot + + * sem_res.adb (Resolve_Call): Provide a better error message whenever + a procedure call is used as a select statement trigger and is not an + entry renaming or a primitive of a limited interface. + (Valid_Conversion): If the operand has a single interpretation do not + remove address operations. + (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise + statement to inhibit warning. + (Resolve_Unary_Op): Do not produce a warning when + processing an expression of the form -(A mod B) + Use Universal_Real instead of Long_Long_Float when we need a high + precision float type for the generated code (prevents gratuitous + Vax_Float stuff when pragma Float_Representation (Vax_Float) used) + (Resolve_Concatenation_Arg): Improve error message when argument is an + ambiguous call to a function that returns an array. + (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that + there is an implicit operator in the given scope if we are within an + instance: legality check has been performed on the generic. + (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator + after resolving operand, to avoid false warnings on overloaded calls. + +2005-11-14 Ed Schonberg + Javier Miranda + + 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 + previously detected errors to ensure that its compilation + with assertions enabled gives the same output that its + compilation without assertions. + (Interface_Present_In_Ancestor): Add support for private types. + Change name In_Actual to In_Generic_Actual (clean up) + (Disambiguate): New predicate In_Actual, to recognize expressions that + appear in the renaming declaration generated for generic actuals, and + which must be resolved in the outer context. + +2005-11-14 Robert Dewar + Thomas Quinot + Hristian Kirtchev + Ed Schonberg + + * sem_util.ads, sem_util.adb: Change name Is_Package to + Is_Package_Or_Generic_Package. + (Check_Obsolescent): New procedure. + (Set_Is_Public): Remove obsolete junk test. + (Set_Public_Status): Do not set Is_Public on an object whose declaration + occurs within a handled_sequence_of_statemets. + (Is_Controlling_Limited_Procedure): Factor some of the logic, account + for a parameterless procedure. + (Enter_Name): Recognize renaming declarations created for private + component of a protected type within protected operations, so that + the source name of the component can be used in the debugger. + +2005-11-14 Ed Schonberg + Robert Dewar + + * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals + of a generic subprogram are not visible outside the body. + (Set_Warning_Switch): New procedure (code to set warning mode moved + here from Switch.C so that it can be shared by pragma processing. + (Check_References): Special case warning for non-modified non-imported + volatile objects. + * par-prag.adb: Modify processing of pragma Warnings to accomodate new + form with a string literal argument + +2005-11-14 Javier Miranda + + * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the + anonymous access. + (Write): Addition of "not null" to the anonymous access. + (Read): Addition of "not null" to the anonymous access. + (Write): Addition of "not null" to the anonymous access. + + * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F, + I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU, + I_SU, I_U, I_WC): Addition of "not null" to the anonymous access. + (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU, + W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of + "not null" to the anonymous access. + +2005-11-14 Robert Dewar + + * s-stoele.adb: Fix code for Address mod Storage_Offset for negative + offset values + +2005-11-14 Vincent Celier + + * switch.adb (Bad_Switch): New procedure + (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate + message when in error. + + * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value, + Too_Many_Output_Files): Remove declarations, no longer used. + (Scan_Nat): New parameter Switch + (Scan_Pos): Ditto + (Bad_Switch): New procedure + + * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;" + with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith + new parameter Switch. Replace "raise Too_Many_Output_Files;" with call + to Osint.Fail. Do not handle any exception. + +2005-11-14 Vincent Celier + + * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it + designates a non existent directory. + +2005-11-14 Robert Dewar + + * xgnatugn.adb: Replace invalid membership test by 'Valid + +2005-11-14 Vincent Celier + + * makegpr.adb (Gprmake): Do not attempt to build the global archive if + there is no object directory. + +2005-11-14 Robert Dewar + + * usage.adb: Minor adjustment to output format, use nn instead of nnn + (so that -gnateInnn does not run into next column) + +2005-11-14 Ed Falis + + * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" => + "constrained" + +2005-11-14 Cyrille Comar + + * s-chepoo.ads: Add comments on Dereference. + Remove unnecessary inherited abstract primitives. + Cosmetic cleanup. + +2005-11-14 Robert Dewar + + * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration + node parameter, not needed, since it is available as Declaration_Node. + +2005-11-14 Geert Bosch + + * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and + grammatically correct. + +2005-11-14 Vincent Celier + + * s-fileio.ads: Correct spelling error in comment + +2005-11-14 Cyrille Comar + Robert Dewar + Vincent Celier + Ben Brosgol + Jose Ruiz + Pascal Obry + + * gnat_ugn.texi: + Document that -fstack-check is needed for strict compliance with the + Ada 95 Reference Manual. + Correct reference to VAX systems to meet HP guidelines + Add documentation for new gnatmake switches -vl, -vm and -vh + Replace DEC Ada by HP Ada + Replace DIGITAL by HP + Remove empty section on tools in compatibility section + Clarify the Windows convention semantics. + Document the Win32 calling convention. + The Stdcall, Win32 and DLL convention are synonyms. + Add a note in -gnatR description about zero size record components + Note on new >= and <= warnings for -gnatwc + Document that equal sign after -gnatm is optional. + Note that strip is working fine on DLL built with a Library + Project. The restriction apply only to DLL built with gnatdll. + Update section about the way to debug a DLL. + Update information about the DLL convention. + Document -C switch for gnatprep + Document new attribute Library_ALI_Dir + Update elaboration doc to include implicit Elaborate pragmas now + generated for subprogram instantiations. + Document limitation on executable names that include spaces for --GCC, + --GNATBIND, and --GNATLINK switches. + Document that -w causes -gnatws to be added at start of gcc switches + + * gnat_rm.texi: Document that -mieee is needed for generating infinite + and NaN values in case of overflow on machines that are not fully + compliant with the IEEE floating-point standard. + Create a section describing the set of compiler options needed for + strict compliance with the Ada 95 Reference Manual. + Add documentation for pragma Obsolescent applied to a package + Clarify potential issues of mixed language programs related to the + I/O buffering enabling in the elaboration of the GNAT runtime. + Add extra documentation for pragma Restrictions (No_Elaboration_Code) + This documentation only patch adds extra documentsion for pragma + Restrictions (No_Elaboration_Code), explaining why it is not possible + to document this restriction in terms of allowed source constructs. + Document string literal form of pragma Warnings + Document new attribute Library_ALI_Dir + Add documentation on stable attributes in project files that was missing + + * gnat-style.texi: Indicate that paragraphs within a single comment + should be separated by empty comment lines + + * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and + /05 respectively) + + * bindusg.adb: Minor cleanup, put -m before -M for consistency + +2005-11-14 Robert Dewar + + * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb, + a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb, + a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads, + a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb, + a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads, + a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads, + a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb, + a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb, + a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, + a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb, + a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, + a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb, + g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads, + a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb, + a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb, + system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads, + g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb, + g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads, + a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads, + a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads, + a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads, + a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads, + a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads, + a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads, + system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads, + system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb, + a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb, + a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb, + a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads, + system-tru64.ads, system-aix.ads, system-solaris-x86.ads, + system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads, + s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb, + system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads, + system-interix.ads, system-solaris-sparc.ads, + system-solaris-sparcv9.ads, s-inmaop-vms.adb, + s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb, + system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb, + s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads, + a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads, + a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb, + a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads, + a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads, + a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads, + a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads, + a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb, + a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb, + a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb, + a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads, + a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb, + a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb, + a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads, + a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads, + a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb, + a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb, + a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb, + a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, + a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb, + a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads, + a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb, + a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb, + a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb, + a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads, + a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb, + a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, + a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb, + a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb, + a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb, + a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb, + bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb, + csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb, + errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads, + errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads, + exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb, + exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb, + freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads, + g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads, + g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads, + g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads, + g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb, + g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads, + g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads, + g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads, + g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb, + gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb, + gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb, + g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb, + g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb, + g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads, + g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads, + g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb, + layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb, + mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads, + mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads, + nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb, + osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads, + par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb, + par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb, + par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads, + prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads, + prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb, + prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb, + prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb, + sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb, + sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads, + sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads, + sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads, + s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb, + sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, + s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, + s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, + s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, + s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, + s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, + s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, + s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, + s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, + s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, + s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, + s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, + s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, + s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, + s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, + s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, + s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, + s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, + s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, + s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, + s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, + s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads, + s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb, + s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads, + s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads, + s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads, + s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads, + styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads, + s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, 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, s-valwch.ads, s-veboop.adb, s-veboop.ads, + s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads, + s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads, + s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb, + s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads, + s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, + s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads, + table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c, + tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads, + ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads, + usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads, + xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, + xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, + a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads, + a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads, + a-numaux-darwin.ads, a-numaux-darwin.adb, + a-swuwha.ads, a-stunha.ads: Minor reformatting + +2005-11-14 Robert Dewar + + PR ada/18434 + * osint-m.adb: Add pragma Elaborate_All for Osint + +2005-11-10 Eric Botcazou + + PR ada/23995 + * trans.c (call_to_gnu): Restore statement lost in translation. + +2005-11-08 Eric Botcazou + + * init.c: Use the Linux-specific section for the IA-64/Linux target. + (__gnat_adjust_context_for_raise): Add conditional code so that the + IA-64 is also supported. + +2005-11-03 James E Wilson + + PR ada/23427 + * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in + TREE_OVERFLOW check. + +2005-09-21 Olivier Hainque + + PR ada/22418 + * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects, + as we create them to store a size in bits. + +2005-10-21 Eric Botcazou + + PR ada/21937 + PR ada/22328 + PR ada/22381 + PR ada/22383 + PR ada/22419 + PR ada/22420 + * utils2.c (build_return_expr): New helper function. + * gigi.h (build_return_expr): Declare it. + * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead + of manually building the RETURN_EXPR tree. + (call_to_gnu): Pass MODIFY_EXPR through build_binary_op. + (gnat_to_gnu) : Pass MODIFY_EXPR through + build_binary_op for the "target pointer" case. Use build_return_expr + instead of manually building the RETURN_EXPR tree. + +2005-09-16 Laurent Guerby + + PR ada/23788 + * s-tpinop.ads: Make this unit Preelaborate. + +2005-09-16 Andreas Jaeger + + * socket.c: Add string.h for memcpy. + +2005-09-05 Arnaud Charlet + + * dec-io.ads, dec-io.adb: Removed, no longer used. + +2005-09-01 Arnaud Charlet + + * a-calend-mingw.adb: Add call to OS_Primitives.Initialize; + + * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb, + s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb, + s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb, + s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that + dependent units are Preelaborate. + (Initialize): Call Interrupt_Managemeent.Initialize and + OS_Primitives.Initialize to ensure proper initialization of this unit. + Remove use of System.Soft_Links + Make this unit Preelaborate. + + * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads, + s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads, + s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads, + s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads, + s-proinf-irix-athread.adb, s-proinf-irix-athread.ads, + s-tratas.ads, s-tasinf.ads: Minor reformatting. + Add pragma Preelaborate, since these packages are suitable for this + categorization. + Update comments. + + * s-traent-vms.ads, s-intman-dummy.adb, + s-taprop-dummy.adb: Make this unit Preelaborate. + + * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads, + s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb, + s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads, + s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb, + s-intman-solaris.adb, s-intman-irix-athread.adb, + s-intman-irix.adb: Mark this unit Preelaborate. + (Initialize): New procedure. + Update comments. + + * s-taspri-linux.ads: Removed. + + * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure, + as done by other implementations (e.g. posix). + + * s-taprop.ads (Timed_Delay): Update spec since the caller now is + responsible for deferring abort. + Mark this unit Preelaborate. + + * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure + proper initialization of the tasking run-time. + + * s-tasdeb.ads: Mark this unit Preelaborate. + (Known_Tasks): Add explicit default value to avoid elaboration code. + + * s-inmaop-vms.adb (Elaboration code): Add call to + Interrupt_Management.Initialize since the elaboration code depends on + proper initialization of this package. + + * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb, + s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads, + s-osprim-posix.adb: Make this unit Preelaborate. + + * a-calend.adb: Add call to OS_Primitives.Initialize + + * a-elchha.adb: Update use of Except.Id.Full_Name. + Minor reformatting. + Remove use of Ada.Exceptions.Traceback when possible, cleaner. + + * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads: + Move with clauses outside Warnings Off now that dependent units are + Preelaborate. + Use raise xxx with "..."; Ada 2005 form. + + * a-taside.ads, a-taside.adb: + Remove some dependencies, to make it easier to make this unit truly + Preelaborate. + Rewrite some code to be conformant with Preelaborate rules. + + * g-os_lib.adb: Remove non-preelaborate code so that this unit can be + marked Preelaborate in the future. + + * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make + these units Preelaborate. + + * s-exctab.adb: Update use of Except.Id.Full_Name. + + * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05. + (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT, + Set_Exc_Stack_Addr): Removed, no longer used. + Remove reference to *Machine_State_Addr*, no longer needed. + + * s-stalib.ads: Mark this unit as Preelaborate[_05]. + (Exception_Data): Full_Name is now a System.Address so that this unit + can be made Preelaborate. + Clean up/simplify code thanks to Full_Name being a System.Address. + Remove obsolete pragma Suppress (All_Checks), no longer needed. + + * s-taskin.ads, s-taskin.adb: + Move with clauses outside Warnings Off now that dependent units are + Preelaborate. + Make this unit Preelaborate. + (Initialize): New proceduure, replace elaboration code and makes the + set up of the tasking run-time cleaner. + (Detect_Blocking): Now a function instead of a deferred boolean, to + obey Preelaborate rules. + + * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr + soft links, no longer used. + + * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these + packages are suitable for this categorization. + + * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..." + since we compile run-time sources in Ada 2005 mode. + (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to + avoid having s-taprop*.adb depend on s-soflin and to avoid code + duplication. + Remove reference to *Machine_State_Addr*, no longer needed. + +2005-09-01 Arnaud Charlet + + * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb + (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used. + Remove reference to System.Exceptions. + + * s-mastop-x86.adb: Removed, no longer used. + + * s-traceb-mastop.adb: Adjust calls to Pop_Frame. + + * a-excach.adb: Minor reformatting. + + * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and + instead fix new warnings that were hidden by this change. + (AAA, ZZZ): Removed, replaced by... + (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who + are used instead of constants, to help make Ada.Exception truly + preelaborate. + (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error, + Raise_Storage_Error): File is now a System.Address, to simplify code. + (Elab code): Removed, no longer used. + (Null_Occurrence): Remove Warnings Off and make this construct + preelaborate. + Remove code related to front-end zero cost exception handling, since + it is no longer used. + Remove -gnatL/-gnatZ switches. + + * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg): + Update use of Except.Msg. + + * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads, + freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related + to front-end zero cost exception handling, since it is no longer used. + Remove -gnatL/-gnatZ switches. + + * lib-writ.ads: Minor reformatting + Remove doc of UX + + * Makefile.rtl: Remove references to s-except*, s-mastop-x86* + + * Make-lang.in: Remove references to s-except.ads + + * s-except.ads: Removed, no longer used. + + * s-mastop.ads, s-mastop.adb: + (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used. + Remove reference to System.Exceptions. + + * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb, + switch-b.adb: Remove code related to front-end zero cost exception + handling, since it is no longer used. + Remove -gnatL/-gnatZ switches. + +2005-09-01 Robert Dewar + Gary Dismukes + Javier Miranda + + * exp_ch4.adb (Expand_N_In): Replace test of expression in its own + type by valid test and generate warning. + (Tagged_Membership): Generate call to the run-time + subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class" + Change formal name Subtype_Mark to Result_Definition in several calls to + Make_Function_Specification. + (Expand_Allocator_Expression): Add tests for suppression of the AI-344 + check for proper accessibility of the operand of a class-wide allocator. + The check can be left out if checks are suppressed or if the expression + has a specific tagged type whose level is known to be safe. + + * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that + generates the run-time check associated with null-excluding entities. + (Expand_N_Return_Statement): Add tests to determine if the accessibility + check on the level of the return expression of a class-wide function + can be elided. The check usually isn't needed if the expression has a + specific type (unless it's a conversion or a formal parameter). Also + add a test for whether accessibility checks are suppressed. Augment + the comments to describe the conditions for performing the check. + +2005-09-01 Hristian Kirtchev + Javier Miranda + Gary Dismukes + Ed Schonberg + + * a-tags.adb (IW_Membership): Give support to + "Iface_CW_Typ in T'Class". For this purpose the functionality of this + subprogram has been extended to look for the tag in the ancestors tag + table. + Update the structure of the GNAT Dispatch Table to reflect the + additional two tables used in dispatching selects. + Introduce appropriate array types and record components in + Type_Specific_Data to reflect the two tables. + (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in + the TSD of a tag, indexed by position. + (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive + operation kind in the TSD of a tag, indexed by position. + + * a-tags.ads: Introduce an enumeration type to capture different + primitive operation kinds. Define a constant reflecting the number of + predefined primitive operations. + (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index + of an entry wrapper. + (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of + callable entity of a primitive operation. + + * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the + primitive operations used in dispatching selects for limited + interfaces, limited tagged, task and protected types what implement a + limited interface. + (Freeze_Type): Generate the bodies of the primitive operations used in + dispatching selects for limited tagged, task and protected types that + implement a limited interface. Generate statements to populate the two + auxiliary tables used for dispatching in select statements. + (Freeze_Record_Type): Add call to initialize the dispatch table entries + associated with predefined interface primitive operations. + (Build_Dcheck_Function): Change Set_Subtype_Mark to + Set_Result_Definition. + (Build_Variant_Record_Equality): Change Subtype_Mark to + Result_Definition. + (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition. + (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition. + (Build_Assignment): Simplify the code that adds the run-time-check. + (Expand_N_Object_Declaration): Code cleanup. + + * exp_ch7.adb (Make_Clean): Select the appropriate type for locking + entries when there is a protected type that implements a limited + interface. + + * exp_ch9.adb: Add package Select_Expansion_Utilities that contains + common routines used in expansion of dispatching selects. + (Add_Private_Declarations): Select the appropriate protection type when + there is a protected type that implements a limited interface. + (Build_Parameter_Block): Generate a wrapped parameter block. + (Build_Protected_Subprogram_Body): Select the appropriate type for + locking entries when there is a protected type that implements a + limited interface. + (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures + classified as entry wrappers. + (Expand_N_Asynchronous_Select): Add support for expansion of dispatching + asynchronous selects. + (Expand_N_Conditional_Entry_Call): Add support for expansion of + dispatching conditional selects. + (Expand_N_Protected_Type_Declaration): Select the appropriate type for + protection when there is a protected type that implements limited + interfaces. + (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching + timed selects. + (Extract_Dispatching_Call): Extract the entity of the name of a + dispatching call, the object parameter, actual parameters and + corresponding formals. + (Make_Initialize_Protection): Correct logic of protection initialization + when there is a protected type that implements a limited interface. + (Parameter_Block_Pack): Populate a wrapped parameter block with the + values of actual parameters. + (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter + block and assign them to the original actual parameters. + + * exp_ch9.ads (Subprogram_Protection_Mode): New type. + (Build_Protected_Sub_Specification): Change the type and name of the + last formal to account for the increased variety of protection modes. + + * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all + entities. Used to save the value of the Is_Hidden attribute when the + limited-view is installed. + (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change + the attribute of procedures classified as entry wrappers. + (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped + entity of a primitive wrapper. + (Write_Entity_Flags): Output the name and value of the + Is_Primitive_Wrapper attribute. + (Write_Field27_Name): Output the name and entity of the field Wrapped_ + Entity. + (Underlying_Type): If we have an incomplete entity that comes from + the limited view then we return the Underlying_Type of its non-limited + view if it is already available. + (Abstract_Interface_Alias): Flag applies to all subrogram kinds, + including operators. + (Write_Field26_Name): Add entry for Overridden_Operation + (Overridden_Operation): New attribute of functions and procedures. + + * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a + predefined position in the dispatch table for the primitive operations + used in dispatching selects. + (Init_Predefined_Interface_Primitives): Remove the hardcoded number of + predefined primitive operations and replace it with + Default_Prim_Op_Count. + (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec, + Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update + the names of the generated primitive operations used in dispatching + selects. + (Init_Predefined_Interface_Primitives): No need to inherit primitives in + case of abstract interface types. They will be inherit by the objects + implementing the interface. + (Make_DT): There is no need to inherit the dispatch table of the + ancestor interface for the elaboration of abstract interface types. + The dispatch table will be inherited by the object implementing the + interface. + (Copy_Secondary_DTs): Add documentation. + (Validate_Position): Improve this static check in case of + aliased subprograms because aliased subprograms must have + the same position. + (Init_Predefined_Interface_Primitives): New subprogram that initializes + the entries associated with predefined primitives of all the secondary + dispatch tables. + (Build_Anonymous_Access_Type): Removed. + (Expand_Interface_Actuals): With the previous cleanup there is no need + to build an anonymous access type. This allows further cleanup in the + code generated by the expander. + (Expand_Interface_Conversion): If the actual is an access type then + build an internal function to handle the displacement. If the actual + is null this function returns null because no displacement is + required; otherwise performs a type conversion that will be + expanded in the code that returns the value of the displaced actual. + (Expand_Interface_Actuals): Avoid the generation of unnecessary type + conversions that have no effect in the generated code because no + displacement is required. Code cleanup; use local variables to + avoid repeated calls to the subprogram directly_designated_type(). + + * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation): + Classify the primitive operations used in dispatching selects as + predefined. + (Implements_Limited_Interface): Determine whether some type either + directly implements a limited interface or extends a type that + implements a limited interface. + (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition. + (Expand_Subtype_From_Expr): Do not build actual subtype if the + expression is limited. + (Find_Interface_Tag): Add code to handle class-wide types and + entities from the limited-view. + + * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for + Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure, + POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure, + POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index, + Set_Prim_Op_Kind. + + * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type + of procedure name or prefix that appears as a trigger in a triggering + alternative. + + * uintp.ads: Introduce constants Uint_11 and Uint_13. + +2005-09-01 Arnaud Charlet + + * s-tataat.adb, a-tasatt.adb: + Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort. + + * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved + these procedures to body, and renamed Abort_Defer, Abort_Undefer. + (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no + longer used. + +2005-09-01 Arnaud Charlet + Jose Ruiz + + * s-taprop-vxworks.adb: + Move with clauses outside Warnings Off now that dependent units are + Preelaborate. + (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper + initialization of this unit. + (Specific): Add new procedures Initialize and Delete so that this + package can be used for VxWorks 5.x and 6.x + (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide + differences between VxWorks 5.x and 6.x + Minor reformatting. + (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by + caller. + Use only Preelaborate-compatible constructs. + + * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from + Primitives.Operations. + (Delete, Initialize): New procedures. + + * s-osinte-vxworks.adb: Body used to handle differences between + VxWorks 5.x and 6.x + (kill, Set_Time_Slice, VX_FP_TASK): New functions. + + * s-osinte-vxworks.ads: Minor reformatting. + Add VxWworks 6.x specific functions (only called from VxWorks 6 files). + (VX_FP_TASK): Now a function, to handle differences between VxWorks 5 + and 6. + (Set_Time_Slice): New function, replacing kerneltimeSlice to share code + between Vxworks 5 and 6. + (taskLock, taskUnlock): Removeed, no longer used. + + * adaint.c: The wait.h header is not located in the sys directory on + VxWorks when using RTPs. + (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when + using RTPs. + (__gnat_dup): dup is available on Vxworks when using RTPs. + (__gnat_dup2): dup2 is available on Vxworks when using RTPs. + + * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs. + + * expect.c: The wait.h header is not located in the sys directory on + VxWorks when using RTPs. + +2005-09-01 Thomas Quinot + + * g-soccon-vms.adb: Renamed to g-soccon-vms.ads + + * g-soccon-vms.ads: Renamed from g-soccon-vms.adb + + * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads, + g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads, + g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads, + g-soccon-freebsd.ads: Add new constants: + IP_MULTICAST_IF + SO_RCVTIMEO/SO_SNDTIMEO + IOV_MAX + + * gen-soccon.c: + Move all target-specific file inclusions and macro definitions to + gsocket.h, in order to ensure that any C code in socket.c will see a + set of constants that is consistent with the contents of g-soccon.ads. + + * gsocket.h: Code imported from gen-soccon.c: + Move all target-specific file inclusions and macro definitions to + gsocket.h, in order to ensure that any C code in socket.c will see a set + of constants that is consistent with the contents of g-soccon.ads. + This change also makes gen-soccon self-contained (removing dependencies + upon GCC internal headers). + + * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX + iovecs at a time. + (To_Inet_Addr): Now a procedure instead of a function, more efficient. + + * socket.c: Minor reformatting. + +2005-09-01 Ed Schonberg + Thomas Quinot + + * fname-sf.adb, mlib-tgt.ads, + back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb, + g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb, + osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads, + prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads, + prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb, + prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads, + sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads, + makegpr.adb: Remove redundant use_clauses. + +2005-09-01 Arnaud Charlet + + * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads, + s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads, + s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads, + s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads, + s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads, + s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads, + s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads, + table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads, + s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, + s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads, + a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads, + a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads, + a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads, + a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads, + system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads, + system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads, + s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads, + system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads, + s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads, + s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads, + s-vxwork-mips.ads, system-os2.ads, system-interix.ads, + s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads, + system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads, + s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads, + system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads, + s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads, + a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads, + a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads, + a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb, + a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads, + a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads, + a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads, + a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads, + a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads, + a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads, + a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads, + csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads, + g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads, + a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads, + a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads, + a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads, + a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads, + g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads, + i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads, + interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, + i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads, + s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads, + s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads, + s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads, + s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads, + s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads, + s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads, + s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads, + s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads, + s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads, + s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads, + s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads, + s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads, + s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads, + s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads, + s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads, + s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads, + s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads, + s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads, + s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads, + s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads, + s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads, + s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate + and always use the no parameter form for consistency. + + * gnat-style.texi: Document rules about Preelaborate/Pure pragmas. + +2005-09-01 Robert Dewar + + * binde.adb: Minor reformatting + (Find_Elab_Order): Output warning if -p used with static elab order + +2005-09-01 Robert Dewar + + * checks.adb (Check_Needed): New procedure, deals with removing checks + based on analysis of short-circuited forms. Also generates warnings for + improper use of non-short-circuited forms. + Code clean ups. + +2005-09-01 Robert Dewar + + * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks + with 'Valid tests. + +2005-09-01 Robert Dewar + + * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet + spec. + Implement new insertion char < (conditional warning) + * errutil.adb, erroutc.adb: Implement new insertion char < + (conditional warning). + * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads + (Error_Msg_Warn): New variable for < insertion char. + * prj-nmsc.adb: Implement new errout insertion char < (conditional + warning). + (Check_For_Source): Change value of Source_Id only after the current + source has been dealt with. + +2005-09-01 Robert Dewar + Doug Rupp + + * exp_attr.adb: Handle vax fpt for 'Valid attribute + * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure + * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb + (Valid_D, Valid_F, Valid_G): New functions + +2005-09-01 Ed Schonberg + Hristian Kirtchev + Javier Miranda + + * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten + from object notation, the original node is unanalyzed and carries no + semantic information, so that accessiblity checks must be performed on + the type of the actual itself. + (Expand_N_Subprogram_Declaration): Change last actual parameter for + compatibility with Build_Protected_Sub_Specification. + (Check_Overriding_Inherited_Interfaces): Add suport to handle + overloaded primitives. + (Register_Interface_DT_Entry): Use the new name of the formal + the the calls to Expand_Interface_Thunk + + * exp_dbug.ads: Augment comments on encoding of protected types to + include the generation of dispatching subprograms when the type + implements at least one interface. + + * lib.ads: Extend information in Load_Stack to include whether a given + load comes from a Limited_With_Clause. + + * lib-load.adb (From_Limited_With_Chain): New predicate to determine + whether a potential circularity is harmless, because it includes units + loaded through a limited_with clause. Extends previous treatment which + did not handle properly arbitrary combinations of limited and + non-limited clauses. + +2005-09-01 Nicolas Setton + + * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types + to be encoded as typ___XBLU_lowerbound__upperbound instead of + typ___XB_lowerbound__upperbound. + +2005-09-01 Thomas Quinot + + * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate + dummy access formal for RACW/RAS TypeCode TSS. + (Build_TypeCode_Call): Do not generate dummy null access actual for + calls to the TypeCode TSS. + +2005-09-01 Ed Schonberg + + * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate + fully qualified name, to distinguish instances with the same local name. + + * g-souinf.ads (Enclosing_Entity): Document that entity name is now + fully qualified. + +2005-09-01 Robert Dewar + + * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large + packed arrays. + +2005-09-01 Jerome Lambourg + + * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to + (Free): New deallocation procedure for filter elements + (Close): Deallocate any existing filter for the concerned connection + +2005-09-01 Laurent Pautet + + * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character + position set is provided, we compute one in order to reduce the maximum + length of the keys. This computation first selects a character + position between 1 and the minimum length of the keys in order to + avoid reducing one of the keys to an empty string. + (Initialize, Compute): When the ratio V to K is too low, the algorithm + does not converge. The initialization procedure now comes with a + maximum number of iterations such that when exceeded, an exception is + raised in Compute. The user can initialize this ratio to another value + and try again + Reformating and updated headers. + +2005-09-01 Javier Miranda + + * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram + that given an entity T creates and returns an Itype that duplicates the + contents of T. The returned Itype has the null-exclusion + attribute set to True, and its Etype attribute references T + to keep the association between the two entities. + Update copyright notice + + * sem_aggr.adb (Check_Can_Never_Be_Null, + Aggregate_Constraint_Checks, Resolve_Aggregate, + Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup. + + * sem_ch5.adb (Analyze_Assignment): Code cleanup. + +2005-09-01 Gary Dismukes + Robert Dewar + Hristian Kirtchev + + * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to + Result_Definition. + + * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in + function specs. + Call Set_Result_Definition instead of Set_Subtype_Mark. + (P_Subprogram_Specification): Add parsing of anonymous access result + plus null exclusions. Call Set_Result_Definition instead of + Set_Subtype_Mark. + + * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419 + (P_Access_Type_Definition): Add parsing for an anonymous access result + subtype, plus parsing for null exclusions. Call Set_Result_Definition + instead of Set_Subtype_Mark. + + * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419 + (Null_Exclusion_Present): Allow this flag for N_Function_Specification. + (Result_Definition): New function for N_Function_Specifications. + (Subtype_Mark): No longer allowed for N_Access_Function_Definition and + N_Function_Specification. + (Set_Null_Exclusion_Present): Allow this flag for + N_Function_Specification. + (Set_Result_Definition): New procedure for N_Function_Specifications. + (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition + and N_Function_Specification. + + * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative, + Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement. + Add support for LIMITED NEW for Ada 2005 AI-419 + Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new + syntax for anonymous access results. + Replace Subtype_Mark field by Result_Definition in + N_Function_Specification and N_Access_Definition specs. + Add Null_Exclusion_Present to spec of N_Function_Specification. + (Result_Definition): New function for N_Function_Specification and + N_Access_Function_Definition. + (Set_Result_Definition): New procedure for N_Function_Specification and + N_Access_Function_Definition. + + * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to + Result_Definition for cases of N_Access_Function_Definition and + N_Function_Specification. + Print "not null" if Null_Exclusion_Present on N_Function_Specification. + +2005-09-01 Vincent Celier + + * lib-writ.adb: Update Copyright notice + (Write_With_Lines): On platforms where file names are case-insensitive, + record the file names in lower case. + (Write_ALI): For D lines, on platforms where file names are + case-insensitive, record the file names in lower case. + +2005-09-01 Ed Schonberg + Emmanuel Briot + + * lib-xref.adb (Output_Overridden_Op): Display information on + overridden operation. + + * lib-xref.ads: Add documentation on overridden operations. + + * ali.ads (Xref_Entity_Record): Add support for storing the overriding + information. + + * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the + overriding entity information. + +2005-09-01 Vincent Celier + + * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources, + including those that are inherited. + +2005-09-01 Robert Dewar + + * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config] + + * par-prag.adb: Implement new pragma Debug_Policy + + * sem_prag.adb Implement new pragma Debug_Policy + (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit + Component_Size attribute specification. Give warning for ignored pragma + Pack. + + * snames.h, snames.ads, snames.adb: Introduce entries in + Preset_Names for Name_Disp_Asynchronous_Select, + Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind, + Name_Disp_Timed_Select. + New pragma Debug_Policy + + * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode + explicitly. + Switch -gnata also sets Debug_Pragmas_Enabled + + * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to + handle an explicit -gnata when compiling predefined files. + +2005-09-01 Vincent Celier + + * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object + directories of projects that have no Ada sources. + +2005-09-01 Robert Dewar + + * scng.adb (Check_End_Of_Line): Count characters, rather than bytes + (makes a difference for wide characters) + + * widechar.adb, widechar.ads: + Add Wide_Char_Byte_Count feature to count chars vs bytes + +2005-09-01 Thomas Quinot + Ed Schonberg + Robert Dewar + + * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal + 'Address attribute reference with an overloaded prefix, use the + location of the prefix (not the location of the attribute reference) as + the error location. + (Analyze_Attribute, case 'Size): The name of an enumeration literal, or + a function renaming thereof, is a valid prefix for 'Size (where it is + intepreted as a function call). + (Statically_Denotes_Entity): New predicate to determine whether the + prefix of an array attribute can be considered static. + + PR ada/9087 + (Eval_Attr): Fix failure to evaluate Component_Size for + unconstrained arrays (resulted in wrong value in packed case, since + back end cannot handle this case) + +2005-09-01 Robert Dewar + + * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to + error msgs for most common cases. + Use new errout insertion char < (conditional warning) + +2005-09-01 Javier Miranda + Ed Schonberg + + * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to + become local to the whole package. + (Install_Limited_Withed_Unit): Instead of unchaining real entities if + the package was already analyzed the new algorithm "replaces" the + real entities by the shadow ones. This is required to ensure that + the order of these entities in the homonym chains does not change; + otherwise we can have undefined references at linking time because + in case of conflicts the external name of the entities will have + a suffix that depends on the order of the entities in the chain. + (Remove_Limited_With_Clause): Complementary code that completes the + new algorithm and replaces the shadow entities by the real ones. + (Install_Limited_Withed_Unit): When unchaining entities before the + installation of the shadow entities, only regular entities of the + public part must be taken into account. This is required to + keep this routine in synch with the work done by Remove_Limited_ + With_Clause + (Install_Limited_With_Clause): Introduce implicit limited_with_clause + even if unit is analyzed, because the analysis of the unit is + idempotent in any case, and the limited view of the unit may have to + be installed for proper visibility. + (Expand_Limited_With_Clause): Even if the unit in the implicit + with_clause has been analyzed already, a limited view of the package + must be built for the current context, if it does not exist yet. + +2005-09-01 Ed Schonberg + Javier Miranda + Gary Dismukes + + * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the + defining entity for the instance body, make a new defining identifier + rather than copying the entity of the spec, to prevent accidental + sharing of the entity list. + (Check_Private_View): When exchanging views of private types, build the + list of exchanged views as a stack, to ensure that on exit the exchanges + are undone in the proper order. + (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): + Restore the compilation environment in case of instantiation_error. + (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity + for an anonymous access result. + (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition + (Formal_Entity): Handle properly the case of a formal package that + denotes a generic package renaming. + +2005-09-01 Thomas Quinot + + * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the + clause if the array aggregate is surrounded by parentheses. + +2005-09-01 Cyrille Comar + Gary Dismukes + Ed Schonberg + Javier Miranda + + * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the + underlying type + to check if a type is Constrained in cases related to code generation + (rather than semantic checking) since otherwise we do not generate + similar code for mutable private types depending if their + discriminants are visible or not. + (Check_Abstract_Overriding): Do not complain about failure to override + the primitive operations used in dispatching selects since they will + always be overriden at the freeze point of the type. + (Access_Definition): Separate out handling for resetting the scope + of an anonymous access function result type. Retrieve the scope + of the associated function rather than using Current_Scope, which + does not have a consistent value (depends on whether we're in the + middle of analyzing formal parameters). Add ??? comment about + finding a cleaner way to handle the special cases of scope setting. + (Process_Incomplete_Dependents): A protected operation is never a + dispatching operation (only its wrapper may be). + (Build_Derived_Record_Type): In case of tagged private types that + implement interfaces add derivation of predefined primitive + operations. + (Derive_Subprograms): Replace the Is_Interface_Derivation parameter + by two parameters that are used in case of derivation from abstract + interface types: No_Predefined_Prims is used to avoid the derivation + of predefined primitives from the interface, and Predefined + Prims_Only is used to complete the derivation predefined primitives + in case of private tagged types implementing interfaces. + Fix typo in comments + (Find_Interface_In_Descendant): Protect the frontend against + wrong code with large circularity chains. + (Is_Private_Overriding): Add support for entities overriding interface + subprograms. The test failed because Entities associated with overriden + interface subprograms are always marked as hidden (and used to build + the secondary dispatch table); in this case the overriden entity is + available through the field abstract_interface_alias (cf. override_ + dispatching_operation) + (Access_Definition): Set the scope of the type to Current_Scope for the + case of a function with an anonymous access result type. + (Access_Subprogram_Declaration): Handle creation of the type entity for + an access-to-function type with an anonymous access result. + (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition + in handling for N_Access_Function_Definition. + (Analyze_Subtype_Declaration): Modify the text of error message. + (Derived_Type_Declaration): Modify the text of error message. + (Process_Subtype): Modify the text of error message plus cleanup + of one redundant error message. + (Analyze_Component_Declaration): Code cleanup. + (Analyze_Object_Declaration): Code cleanup. + (Analyze_Subtype_Declaration): Propagate the null-exclusion + attribute in case of access types. Code cleanup. + (Array_Type_Declaration): Code cleanup. + (Process_Discriminants): Create the new null-excluding itype + if required. Code cleanup. + (Process_Subtype): Create the new null-excluding itype if + required. Code cleanup. + (Build_Derived_Record_Type): Code cleanup to avoid calling + twice the subprogram derive_subprograms in case of private + types that implement interfaces. In this particular case the + 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. + +2005-09-01 Ed Schonberg + Javier Miranda + + * sem_ch4.adb (Transform_Object_Operation): In a context off the form + V (Obj.F), the rewriting does not involve the indexed component, but + only the selected component itself. + Do not apply the transformation if the analyzed node is an actual of a + call to another subprogram. + (Complete_Object_Operation): Retain the entity of the + dispatching operation in the selector of the rewritten node. The + entity will be used in the expansion of dispatching selects. + (Analyze_One_Call): Improve location of the error message associated + with interface. + (Analyze_Selected_Component): No need to resolve prefix when it is a + function call, resolution is done when parent node is resolved, as + usual. + (Analyze_One_Call): Add a flag to suppress analysis of the first actual, + when attempting to resolve a call transformed from its object notation. + (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies + of the argument list for each interpretation of the operation. + (Try_Object_Operation): The designated type of an access parameter may + be an incomplete type obtained through a limited_with clause, in which + case the primitive operations of the type are retrieved from its full + view. + (Analyze_Call): If this is an indirect call, and the return type of the + access_to_subprogram is incomplete, use its full view if available. + +2005-09-01 Javier Miranda + Gary Dismukes + + * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous + access types the null-exclusion and access-to-constant attributes must + also match. + (Analyze_Return_Statement): When the result type is an anonymous access + type, apply a conversion of the return expression to the access type + to ensure that appropriate accessibility checks are performed. + (Analyze_Return_Type): For the case of an anonymous access result type, + generate the Itype and set Is_Local_Anonymous_Access on the type. + Add ??? placeholder for check to disallow returning a limited object + in Ada 2005 unless it's an aggregate or a result of a function call. + Change calls from Subtype_Mark to Result_Definition. + (Analyze_Subprogram_Body): Change formal Subtype_Mark to + Result_Definition in call to Make_Function_Specification. + (Build_Body_To_Inline): Change Set_Subtype_Mark to + Set_Result_Definition. + (Make_Inequality_Operator): Change formal Subtype_Mark to + Result_Definition in call to Make_Function_Specification. + (Process_Formals): Create the new null-excluding itype if required. + (New_Overloaded_Entity): For an entity overriding an interface primitive + check if the entity also covers other abstract subprograms in the same + scope. This is required to handle the general case, that is, overriding + other interface primitives and overriding abstract subprograms inherited + from some abstract ancestor type. + (New_Overloaded_Entity): For an overriding entity that comes from + source, note the operation that it overrides. + (Check_Conformance, Type_Conformant): Addition of one new formal + to skip controlling formals in the analysis. This is used to + handle overloading of abstract interfaces. + (Base_Types_Match): Add missing case for types imported from + limited-with clauses + (New_Overloaded_Entity): Add barrier to protect the use of + the "alias" attribute. + +2005-09-01 Ed Schonberg + + * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration, + verify that the procedure and the entry are mode conformant. + (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed + as a different operator, which is often a cut-and-paste error. + +2005-09-01 Javier Miranda + Ed Schonberg + + * sem_disp.adb (Check_Controlling_Formals): Anonymous access types + used in controlling parameters exclude null because it is necessary to + read the tag to dispatch, and null has no tag. + (Override_Dispatching_Operation): If the previous operation is inherited + from an interface, it becomes hidden and does not participate in later + name resolution. + +2005-09-01 Javier Miranda + Ed Schonberg + Gary Dismukes + + * sem_res.adb (Resolve_Membership_Op): In case of the membership test + "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend; + the expander will generate the corresponding run-time check to evaluate + the expression. + (Resolve_Call): Check for legal type of procedure name or prefix that + appears as a trigger in a triggering alternative. + (Valid_Conversion): If expression is ambiguous and the context involves + an extension of System, remove System.Address interpretations. + (Resolve_Qualified_Expression): Reject the case of a specific-type + qualification applied to a class-wide argument. Enhance comment + to explain checking of Original_Node. + (Resolve_Type_Conversion): The location of the error message was not + general enough to handle the general case and hence it has been removed. + In addition, this patch improves the text of the message. + (Resolve_Type_Conversion): Add missing support for access to interface + types. + (Resolve_Type_Conversion): If the target is a class-wide interface type, + do not expand if the expression is the actual in a call, because proper + expansion will take place when the call itself is expanded. + (Resolve_Allocator): If the context is an unchecked conversion, the + allocator inherits its storage pool, if any, from the target type of + the conversion. + +2005-09-01 Ed Schonberg + Javier Miranda + + * sem_type.adb (Add_One_Interp): If a candidate operation is an + inherited interface operation that has an implementation, use the + implementation to avoid spurious ambiguities. + (Interface_Present_In_Ancestor): In case of concurrent types we can't + use the Corresponding_Record_Typ attribute to look for the interface + because it is set by the expander (and hence it is not always + available). For this reason we traverse the list of interfaces + (available in the parent of the concurrent type). + (Interface_Present_In_Ancestor): Handle entities from the limited view + +2005-09-01 Ed Schonberg + + * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags + from the list of required components. + (Is_Controlling_Limited_Procedure): Determine whether an entity is a + primitive procedure of a limited interface with a controlling first + parameter. + (Is_Renamed_Entry): Determine whether an entry is a procedure renaming + of an entry. + (Safe_To_Capture_Value): A value (such as non_null) is not safe to + capture if it is generated in the second operand of a short-circuit + operation. + Do not capture values for variables with address clauses. + (Is_Object_Reference): Treat a function call as an object reference only + if its type is not Standard_Void_Type. + +2005-09-01 Ed Schonberg + + * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied + to a variable that is statically known to be constant. + +2005-09-01 Geert Bosch + Robert Dewar + + * ttypef.ads (VAXDF_Safe_First): Use correct value for constant. + (VAXGF_Safe_First): Idem. + +2005-09-01 Robert Dewar + Arnaud Charlet + + * g-dirope.ads: Minor reformatting + Document that bounds of result of Base_Name match the input index + positions. + Add documentation on environment variable syntax for Expand_Path + + * gnat_ugn.texi: Update documentation to include mention of -m switches + Document new treatment of wide characters in max line length + style check. + Remove -gnatL/-gnatZ switches, no longer used. + Add note on pragmas Assertion_Policy and Debug_Policy in discussion + of -gnata switch. + + * gnat_rm.texi: Add doc for two argument form of pragma + Float_Representation. + Add documentation for pragma No_Strict_Aliasing + Add note that explicit component clause overrides pragma Pack. + Add documentation of pragma Debug_Policy + +2005-09-01 Matthew Heaney + + * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb, + a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb, + a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads, + a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest + draft (Draft 13, August 2005) of Ada Amendment 1. + +2005-09-01 Arnaud Charlet + + * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM. + Note that the platform-specific version of g-soccon.ads for VMS is now + named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it + really is a package spec). + Replace s-taspri-linux.ads by s-taspri-posix.ads + Remove references to s-mastop-x86.adb + + * system-vxworks-xscale.ads: Removed, no longer used. + * s-vxwork-xscale.ads: Removed, no longer used. + +2005-09-01 Robert Dewar + + * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb, + g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads, + g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb, + exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads, + g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads, + g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb, + g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads, + g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb, + g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads, + g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads, + sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb, + a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads, + g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads, + a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads, + a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb, + a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb, + g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads, + g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads, + g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb, + i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb, + a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting + +2005-08-29 Arnaud Charlet + + PR ada/23187 + * adaint.c + (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined. + +2005-08-29 Arnaud Charlet + Doug Rupp + + * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings + when needed. + (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep + this code in the GNAT run-time. + + * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions. + + PR ada/21053 + * init.c (__gnat_error_handler [many]): Mark "msg" as const + (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused + + (__gnat_inside_elab_final_code): Moved here from + Standard_Library and only defined for the compiler. + __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL. + (__gnat_inum_to_ivec): Do not define this function on VxWorks when + using RTPs because directly vectored Interrupt routines are not + supported on this configuration. + (getpid): Do not redefine this function on VxWorks when using RTPs + because this primitive is well supported by the RTP libraries. + (copy_msg): Correct the code that checks for buffer overflow. + Discovered during code reading. + +2005-08-29 Olivier Hainque + + * decl.c (gnat_to_gnu_entity) : When allocating storage for + a library level mutable variable with an initializer, tell + build_allocator to ignore the initializer's size. It may not be large + enough for all the values that might be assigned to the variable later + on. + +2005-08-29 Arnaud Charlet + Eric Botcazou + + * trans.c: Protect < in error msg with quote + Replace GCC_ZCX by Back_End_Exceptions. + (addressable_p) : Also return 1 if the field + has been sufficiently aligned in the record. + +2005-08-15 James E. Wilson + + * system-linux-alpha.ads: Change ia64 to alpha. + +2005-08-01 Kazu Hirata + + * decl.c, utils.c: Fix comment typos. + +2005-07-29 Kazu Hirata + + * decl.c, init.c, initialize.c: Fix comment typos. + +2005-07-20 Giovanni Bajo + + Make CONSTRUCTOR use VEC to store initializers. + * decl.c (gnat_to_gnu_entity): Update to cope with VEC in + CONSTRUCTOR_ELTS. + * trans.c (extract_values): Likewise. + * utils.c (convert, remove_conversions): Likewise. + * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op, + gnat_build_constructor): Likewise. + +2005-07-09 Andrew Pinski + + * decl.c (components_to_record): Use DECL_FCONTEXT instead of + DECL_SECTION_NAME. + (compare_field_bitpos): Likewise. + +2005-07-09 Andrew Pinski + + * utils.c (create_var_decl): Only set DECL_COMMON on + VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on + VAR_OR_FUNCTION_DECL_P. + +2005-07-08 Daniel Berlin + + * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is + removed. + +2005-07-07 Pascal Obry + + * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the + returned type on Windows. + + * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this + routine. + + * g-socket.adb (Inet_Addr): Check for empty Image and raises an + exception in this case. + Simplify the code as "Image (Image'Range)" = "Image". + +2005-07-07 Vincent Celier + + * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put + the destructor/constructor attributes for final/init. + + * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C + +2005-07-07 Eric Botcazou + + * decl.c (gnat_to_gnu_entity) : Do not strip the padding + type if the parameter is not passed by copy but reference by default. + +2005-07-07 Javier Miranda + + * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type): + Reimplementation of the support for abstract interface types in order + to leave the code more clear and easy to maintain. + + * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for + abstract interface types in order to leave the code clearer and easier + to maintain. + + * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality + is now implemented by the new subprogram Fill_Secondary_DT_Entry. + (Fill_Secondary_DT_Entry): Generate the code necessary to fill the + appropriate entry of the secondary dispatch table. + (Make_DT): Add code to inherit the secondary dispatch tables of + the ancestors. + + * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of + implementing both functionalities by means of a common routine, each + routine has its own code. + +2005-07-07 Javier Miranda + + * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types. + + * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete + types: + -- + type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED]; + -- + + * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong + use of tag incomplete types. + + * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to + give support to tagged incomplete types. + + * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the + expression is a discriminant reference and its type is private, as can + happen within a stream operation for a mutable record, use the full + view of the type to resolve the case alternatives. + (Analyze_Assignment): Check wrong dereference of incomplete types. + + * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete + types. + + * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged + incomplete types. + + * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to + N_Incomplete_Type_Declaration nodes. + + * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute + Tag_Present to give support to tagged incomplete types: + -- + type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED]; + -- + +2005-07-07 Olivier Hainque + + 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. + +2005-07-07 Ed Schonberg + Javier Miranda + + * par-load.adb (Load): If a child unit is loaded through a limited_with + clause, each parent must be loaded as a limited unit as well. + + * sem_ch10.adb (Previous_Withed_Unit): Better name for + Check_Withed_Unit. Return true if there is a previous with_clause for + this unit, whether limited or not. + (Expand_Limited_With_Clause): Do not generate a limited_with_clause on + the current unit. + (Is_Visible_Through_Renamings): New local subprogram of install_limited + _withed_unit that checks if some package installed through normal with + clauses has a renaming declaration of package whose limited-view is + ready to be installed. This enforces the check of the rule 10.1.2 (21/2) + of the current Draft document for Ada 2005. + (Analyze_Context): Complete the list of compilation units that + are allowed to contain limited-with clauses. It also contains + checks that were previously done by Install_Limited_Context_Clauses. + This makes the code more clear and easy to maintain. + (Expand_Limited_With_Clause) It is now a local subprogram of + Install_Limited_Context_Clauses, and contains the code that adds + the implicit limited-with clauses for parents of child units. + This functionality was prevously done by Analyze_Context. + + * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of + incomplete type. + + * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has + been erroneously named in a limited-with clause of its own context. + In this case the error has been previously notified by Analyze_Context. + +2005-07-07 Ed Schonberg + + * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a + generic package that contains local declarations with the same name. + (Analyze_Object_Renaming): Check wrong renaming of incomplete type. + +2005-07-07 Bernard Banner + + * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on + ia64 platform only on platforms that you the GCC unwind library + rather than the system unwind library. + +2005-07-07 Thomas Quinot + + * expect.c: Minor reformatting + +2005-07-07 Sergey Rybin + + * vms_data.ads: Add VMS qualifiers for new gnatpp switch + --no-separate-is + + * gnat_ugn.texi: Add description for new gnatpp option + (--no-separate-is) + +2005-07-04 Thomas Quinot + + * g-expect-vms.adb, g-expect.ads, g-expect.adb + (Get_Command_Output): New subprogram to launch a process and get its + standard output as a string. + +2005-07-04 Eric Botcazou + Olivier Hainque + + * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to + fetch a code-range descriptor associated with the machine state. On + failure set the machine state's PC to 0; on success, pass the + descriptor to exc_virtual_unwind. + + * init.c (Tru64 section): New function __gnat_set_code_loc. + +2005-07-04 Vincent Celier + + * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, + mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb, + mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library): + Remove all auto-initialization code, as this is now done through the + constructor mechanism. + + * adaint.h, adaint.c (__gnat_binder_supports_auto_init, + __gnat_sals_init_using_constructors): New functions. + + * bindgen.adb (Gen_Output_File_Ada): Generate pragmas + Linker_Constructor and Linker_Destructor when switch -a is used. + + * bindusg.adb: Add line for new switch -a + + * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function + (Gnatbind): When switch -a is used, check if it is allowed + + * switch-b.adb (Scan_Binder_Switches): Process new switch -a + +2005-07-04 Joel Brobecker + + * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array. + This prevents us from hitting a limitation during the debug info + generation when using stabs. + (Prims_Ptr): Likewise. + +2005-07-04 Gary Dismukes + Ed Schonberg + Javier Miranda + + * checks.adb (Null_Exclusion_Static_Checks): In the case of + 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. + + * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the + Corresponding_Spec on the body created for a null procedure. Add ??? + comment. Remove New_Copy_Tree call on body argument to + Set_Body_To_Inline. + + * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with + discriminants, use the type of the actual as well, because the + discriminants may be read by the called subprogram. + + * sem_ch3.adb (Access_Type_Declaration): If the designated type is an + access type we do not need to handle non-limited views. + (Build_Derived_Record_Type): Additional check to check that in case of + private types, interfaces are only allowed in private extensions. + +2005-07-04 Eric Botcazou + + * decl.c (prepend_attributes) : New case. + : Likewise. + + * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and + Pragma_Linker_Destructor. + + * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and + ATTR_LINK_DESTRUCTOR. + (static_ctors, static_dtors): New variables. + + * misc.c (gnat_expand_body): Output current function as constructor + and destructor if requested. + + * par-prag.adb: Add processing for pragma Linker_Constructor and + Linker_Destructor. + + * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function + extracted from Check_Interrupt_Or_Attach_Handler. + (Check_Interrupt_Or_Attach_Handler): Invoke it. + Implement pragma Linker_Constructor and Linker_Destructor with the + help of Find_Unique_Parameterless_Procedure. + Replace Name_Alias with Name_Target for pragma Linker_Alias. + + * snames.h, snames.ads, snames.adb: + Add Name_Linker_Constructor and Name_Linker_Destructor. + Add Pragma_Linker_Constructor and Pragma_Linker_Destructor. + * snames.adb: Remove Name_Alias. + + * trans.c: Include cgraph.h. + (build_global_cdtor): New function. + (Compilation_Unit_to_gnu): Build global constructor and destructor if + needed. + (tree_transform) : Substitute renaming of view-conversions + of objects too. + (addressable_p) : Unconditionally test + DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms. + + * utils.c (process_attributes) : Do not assemble the + variable if it is external. + + (static_ctors, static_dtors): New global variables. + (process_attributes) : New case. + : Likewise. + (end_subprog_body): Chain function as constructor and destructor + if requested. + + * exp_util.adb (Force_Evaluation): Unconditionally invoke + Remove_Side_Effects with Variable_Ref set to true. + (Remove_Side_Effects): Handle scalar types first. Use a renaming + for non-scalar types even if Variable_Ref is true and for class-wide + expressions. + +2005-07-04 Ed Schonberg + + * exp_attr.adb (Mod): Evaluate condition expression with checks off, + to prevent spurious warnings. + +2005-07-04 Thomas Quinot + + * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for + Itypes. Itypes are really unexpected there. + (Build_TypeCode_Function): Generalise special processing for Itypes to + handle the case of numeric implicit base types as well as enumerated + ones. + +2005-07-04 Ed Schonberg + + * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is + controlled, indicate the expected type of the dereference that is + created for the call to Deep_Finalize, to prevent spurious errors when + the designated type is private and completed with a derivation from + another private type. + +2005-07-04 Vincent Celier + + * make.adb (Change_To_Object_Directory): When unable to change the + current dir to the object directory, output the full path of the + directory. + +2005-07-04 Matthew Gingell + + * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb + + * indepsw-linux.adb: Replace by... + + * indepsw-gnu.adb: ...this new file + +2005-07-04 Vincent Celier + + * mlib-prj.adb (Auto_Initialize): New constant String + (SALs_Use_Constructors): New Boolean function + (Build_Library): Call gnatbind with Auto_Initialize switch when + SALs_Use_Constructors returns True. + + * mlib-tgt.ads: Minor reformatting + + * mlib-utl.ads: Minor reformatting + + * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag + +2005-07-04 Ed Schonberg + + * par-ch9.adb (P_Task, P_Protected): Indicate that single task and + single protected declarations can have an interface list. + (P_Entry_Declaration): Add handler for Error_Resync, which can be raised + with seriously malformed entry declarations, and lead to compilation + abandoned messages. + +2005-07-04 Javier Miranda + + * par-load.adb: Load the context items in two rounds. + +2005-07-04 Robert Dewar + + * scng.adb: Do not consider Mod used as an attribute to be a keyword + +2005-07-04 Ed Schonberg + Javier Miranda + + * sem_ch10.adb (Build_Limited_Views): A type declared with a private + type extension needs a limited view. + Remove previous restriction on private types available through the + limited-view (only tagged private types were previously allowed). + (Install_Withed_Unit): In the code that implements the + legality rule given in AI-377, exclude a child unit with the name + Standard, because it is a homonym of the Standard environment package. + +2005-07-04 Thomas Quinot + + * sem_ch4.adb (Transform_Object_Operation): For an actual that is an + overloaded function call, carry interpretations from the original tree + to the copy. + +2005-07-04 Ed Schonberg + + * sem_ch6.adb (Conforming_Types): If the types are anonymous access + types check whether some designated type is a limited view, and use + the non-limited view if available. + +2005-07-04 Gary Dismukes + + * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant + constraint of full view of a private view T1 if present, when T2 is a + discriminated full view. + +2005-07-04 Thomas Quinot + + * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an + actual that is a view conversion of a bit packed array reference. + +2005-07-04 Ed Schonberg + + * sem_type.adb (Covers): Verify that Corresponding_Record_Type is + present before checking whether an interface type covers a synchronized + type. + +2005-07-04 Ed Schonberg + + * sem_util.adb (Is_Object_Reference): An indexed or selected component + whose prefix is an implicit dereference is an object reference. Removes + spurious errors when compiling with -gnatc. + +2005-07-04 Robert Dewar + + PR ada/22039 + * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix + +2005-07-04 Matthew Gingell + + * tracebak.c: Enable tracebacks on ia64 platforms + +2005-07-04 Vincent Celier + + * vms_conv.adb (Initialize): Allow multiple ALI files to be given to + the GNAT BIND command, as gnatbind accepts multiples ALI files with + the -L or -n switches. + +2005-07-04 Vincent Celier + + * makegpr.adb (Build_Global_Archive): Make sure the list of sources is + correctly computed and the main project data is not modified while + doing so. + (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler + (Choose_C_Plus_Plus_Link_Process): Do not generate shell script + c++linker as this does not work on some platforms. + +2005-07-04 Matthew Heaney + + * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index + was changed. + * a-coinve.adb: Perform constraint checks explicitly. + +2005-07-04 Richard Kenner + Thomas Quinot + + * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency. + new target gen-soccon. + +2005-07-04 Robert Dewar + + * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting + +2005-07-04 Thomas Quinot + + * g-socket.ads (Check_Selector): Minor rewording of comment. + +2005-07-04 Vincent Celier + + * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol= + +2005-07-04 Thomas Quinot + + * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO. + +2005-07-04 Sergey Rybin + + * gnat_ugn.texi: Add description of --eol gnatpp option + +2005-07-04 Eric Botcazou + Thomas Quinot + + * 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. + +2005-07-04 Arnaud Charlet + + * s-stausa.ads, s-stausa.adb: New files. + +2005-06-30 Kelley Cook + + * all files: Update FSF address in copyright headers. + * gen-soccon.co (main): Output new FSF address in generated files. + +2005-06-28 Paul Brook + + * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc. + +2005-06-14 Olivier Hainque + Eric Botcazou + + * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to + exc_unwind, now that we are generating proper .debug_frame output for + that target. + + * tracebak.c: Remove the mips-irix section, as we are now using the + s-mastop based unwinder again. + Under SPARC/Solaris, take into account the stack bias to compute the + frame offset. The stack bias is 0 for the V8 ABI and 2047 for the V9 + ABI. + +2005-06-14 Doug Rupp + + * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb + + * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files + +2005-06-14 Pascal Obry + + * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb, + a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads, + a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in + package name). + + * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads, + a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb, + a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads, + a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads, + a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads, + a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads, + a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb, + s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, + s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads, + s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb, + s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb, + s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads, + s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads, + s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb, + s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb, + s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads, + s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads, + s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb, + s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads, + s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb, + s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb, + s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb, + s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb, + s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads, + s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb, + s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb, + s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb, + s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb, + s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb, + s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb, + a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb, + a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb, + a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads, + a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb, + a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads, + a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.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.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb, + 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-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads, + a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb, + a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads, + a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads, + a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb, + a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb, + a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb, + a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb, + a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, + a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb, + a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb, + a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads, + a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, + a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb, + a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb, + a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads, + dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb, + g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads, + g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads, + g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, + g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, + g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb, + gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb, + g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb, + i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads, + s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads, + s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb, + s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads, + s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb, + s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb, + s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads, + s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb, + s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads, + s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb, + s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads, + s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb, + s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads, + s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb, + s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads, + s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads + s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads, + s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb, + s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads, + s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb, + s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads, + s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb, + s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads, + s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb, + s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads, + s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb, + s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads, + s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb, + s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads, + s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb, + s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads, + s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb, + s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads, + s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb, + s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads, + s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb, + s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads, + s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb, + s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads, + s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb, + s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads, + s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb, + s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb, + s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads, + s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb, + s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads, + s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb, + s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads, + s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads, + s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads, + s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb, + s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads, + s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb, + s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads, + s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads, + s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb, + s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb, + s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads, + a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads, + a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads, + a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb, + a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb, + a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, + a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb, + a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb, + a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb, + a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style. + "GNU Ada" to GNAT, use proper casing for RUN-TIME. + +2005-06-14 Jose Ruiz + Arnaud Charlet + + * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no + longer protected objects. They have been replaced by lower-level + suspension objects made up by a mutex and a condition variable (or + their equivalent given a particular OS) plus some internal data to + reflect the state of the suspension object. + (Initialize, Finalize): Add this initialization procedure for + Suspension_Object, which is a controlled type. + (Finalize): Add the finalization procedure for Suspension_Object, + which is a controlled type. + + * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of + Ada.Synchronous_Task_Control because there is no longer a need for a + VxWorks specific version of this package. Target dependencies + has been moved to System.Task_Primitives.Operations. + + * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no + longer needed. + (InitializeCriticalSection, EnterCriticalSection, + LeaveCriticalSection, DeleteCriticalSection): Replace the type + pCriticalSection by an anonymous access type so that we avoid problems + of accessibility to local objects. + + * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb, + s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb, + s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb, + s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb, + s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer + set the environment task mask here. + (Current_State): Add this function that returns the state of the + suspension object. + (Set_False): Add this procedure that sets the state of the suspension + object to False. + (Set_True): Add this procedure that sets the state of the suspension + object to True, releasing the task that was suspended, if any. + (Suspend_Until_True): Add this procedure that blocks the calling task + until the state of the object is True. Program_Error is raised if + another task is already waiting on that suspension object. + (Initialize): Add this procedure for initializing the suspension + object. It initializes the mutex and the condition variable which are + used for synchronization and queuing, and it sets the internal state + to False. + (Finalize): Add this procedure for finalizing the suspension object, + destroying the mutex and the condition variable. + + * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads, + s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads, + s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads, + s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object + which provides a low-level abstraction (using operating system + primitives) for Ada.Synchronous_Task_Control. + This object is made up by a mutex (for ensuring mutual exclusion), a + condition variable (for queuing threads until the condition is + signaled), a Boolean (State) indicating whether the object is open, + and a Boolean (Waiting) reflecting whether there is a task already + suspended on this object. + + * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb, + s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb, + s-intman-vms.ads, s-intman-mingw.adb, + (Initialize_Interrupts): Removed, no longer used. + + * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb, + (Setup_Interrupt_Mask): New procedure. + + * s-intman-vxworks.ads, s-intman-vxworks.adb: Update comments. + + * s-inmaop.ads (Setup_Interrupt_Mask): New procedure + + * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that + this is no longer done in the body of s-taprop + (Server_Task): Explicitely test for Pending_Action in case + System.Parameters.No_Abort is True. + + * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this + is no longer done in the body of s-taprop + +2005-06-14 Robert Dewar + + * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads, + system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads, + system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads, + system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads, + system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads, + system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads, + system-os2.ads, system-interix.ads, system-solaris-sparc.ads, + system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads, + system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads, + system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads, + system-linux-hppa.ads, system-vms_64.ads, + system-vxworks-alpha.ads: Minor comment update for + AI-362 (unit is Pure). + + * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions + Add pragma Pure_05 for AI-362 + Make remaining conversion functions obsolescent in Ada 95 + + * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha + Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode + Add entries for a-wichun and a-zchuni + Add a-widcha a-zchara for AI-395 + Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines + + * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha + Add entries for a-wichun.o and a-zchuni.o + Entries for a-widcha.o and a-zchara.o + Add entry for a-chacon.o + + * a-ztenau.adb: Add with of Ada.Characters.Conversions + + * a-chacon.ads, a-chacon.adb: New files. + + * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow + categorization violations. + + * a-strmap.ads: Add pragma Pure_05 for AI-362 + * a-strmap.ads: Add note on implicit categorization for AI-362 + + * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362 + + * par-prag.adb: Dummy entry for pragma Persistent_BSS + Set Ada_Version_Explicit, for implementation of AI-362 + Add processing for pragma Pure_05 and Preelaborate_05 + Add entry for Assertion_Policy pragma + + * sem.adb: Make sure predefined units are compiled with GNAT_Mode true + when needed for proper processing of categorization stuff + + * sem_cat.adb: + For several cases, make errors in preealborate units warnings, + instead of errors, if GNAT_Mode is set. For AI-362. + + * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in + preelaborate unit is now warning if in GNAT mode + + * s-stoele.ads: Document AI-362 for pragma preelaborate + +2005-06-14 Doug Rupp + + * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads, + s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads: + Default_Exception_Msg_Max_Length: new parameter. + + * a-except.ads: (Exception_Msg_Max_Length): Set to + System.Parameters.Default_Exception_Msg_Max_Length + Add pragma Preelaborate_05 for AI-362 + Add warnings off to allow categorization violations for AI-362 + +2005-06-14 Vincent Celier + + * gnatsym.adb: Adapt to modification of package Symbols: procedure + Process is now in package Processing. + + * symbols.ads, symbols.adb: + (Processing): New package, containing procedure Process + + * symbols-vms-alpha.adb: + Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb + + * symbols-vms.adb, symbols-processing-vms-alpha.adb, + symbols-processing-vms-ia64.adb: New files. + +2005-06-14 Pascal Obry + + * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous + implementation. This new version generates the proper DllMain routine + to initialize the SAL. The DllMain is generated in Ada and compiled + before being added as option to the library build command. + +2005-06-14 Doug Rupp + Pascal Obry + + * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in + call to decc$translate_vms. + (__gnat_locate_regular_file): Check if the path_val contains quotes. We + need to remove those quotes before catenating the filename. + (__gnat_locate_exec_on_path): improvements to the Win32 section: + * avoid allocating the memory twice for better efficiency; + * allocate 32K buffer for environment expansion as suggested by MSDN; + * prepend ".;" to the path so that current directory is searched too. + +2005-06-14 Robert Dewar + + * a-except.adb (Exception_Identity): return Null_Id for null occurrence + instead of raising CE (AI-241) + Add warnings off to allow categorization violations for AI-362 + +2005-06-14 Robert Dewar + + * ali-util.adb, gnatbind.adb: Remove references to + Force_RM_Elaboration_Order. + + * switch-b.adb: Remove recognition of -f switch + +2005-06-14 Pascal Obry + + * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New + implementation which is slightly more efficient. + +2005-06-14 Gary Dismukes + Javier Miranda + Ed Schonberg + Hristian Kirtchev + + * exp_ch4.adb (Expand_Allocator_Expression): When an initialized + allocator's designated type is a class-wide type, and compiling for + Ada 2005, emit a run-time check that the accessibility level of the + type given in the allocator's expression is not deeper than the level + of the allocator's access type. + + (Tagged_Membership): Modified to gives support to abstract interface + types. + + * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component + Access_Level. + (Descendant_Tag): New predefined function + (Is_Descendant_At_Same_Level): New predefined function + (Get_Access_Level): New private function + (Set_Access_Level): New private procedure + (IW_Membership): New function. Given the tag of an object and the tag + associated with an interface, evaluate if the object implements the + interface. + (Register_Interface_Tag): New procedure used to initialize the table of + interfaces used by the IW_Membership function. + (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue + of the dispatch table. + (Inherit_TSD): Modified to copy the table of ancestor tags plus the + table of interfaces of the parent. + (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag. + (External_Tag): Raise Tag_Error if the passed tag equals No_Tag. + (Parent_Tag): Return No_Tag in the case of a root-level tagged type, + and raise Tag_Error if the passed tag equalis No_Tag, to conform with + Ada 2005 semantics for the new predefined function. + + * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate + call to Descendant_Tag rather than Internal_Tag. + (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that + the accessibility level of the attribute's Item parameter is not deeper + than the level of the attribute's prefix type. Tag_Error is raised if + the check fails. The check is only emitted for Ada_05. + (Find_Stream_Subprogram): If a TSS exists on the type itself for the + requested stream attribute, use it. + (Expand_N_Attribute_Reference): If the designated type is an interface + then rewrite the referenced object as a conversion to force the + displacement of the pointer to the secondary dispatch table. + (Expand_N_Attribute_Reference, case 'Constrained): Return false if this + is a dereference of an object with a constrained partial view. + + * exp_ch5.adb (Expand_N_Return_Statement): When a function's result + type is a class-wide type, emit a run-time check that the accessibility + level of the returned object is not deeper than the level of the + function's master (only when compiling for Ada 2005). + + * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc, + Action_Nb_Arg): Add entries for new Get_Access_Level and + Set_Access_Level routines in these tables. + (Make_DT): Generate a call to set the accessibility level of the + tagged type in its TSD. + (Make_DT): Code cleanup. The functionality of generating all the + secondary dispatch tables has been moved to freeze_record_type. + (Make_Abstract_Interface_DT): Minor code cleanup. + (Set_All_DT_Position): Code cleanup. As part of the code cleanup + this subprogram implements a new algorithm that provides the + same functionality and it is more clear in case of primitives + associated with abstract interfaces. + (Set_All_Interfaces_DTC_Entity): Removed. As part of the code + clean up, the functionality of this subprogram is now provided + by Set_All_DT_Position. + (Write_DT): New subprogram: a debugging procedure designed to be called + within gdb to display the dispatch tables associated with a tagged + type. + (Collect_All_Interfaces): New subprogram that collects the whole list + of interfaces that are directly or indirectly implemented by a tagged + type. + (Default_Prim_Op_Position): New subprogram that returns the fixed + position in the dispatch table of the default primitive operations. + (Expand_Interface_Actuals): New subprogram to generate code that + displaces all the actuals corresponding to class-wide interfaces to + reference the interface tag of the actual object. + (Expand_Interface_Conversion): New subprogram. Reference the base of + the object to give access to the interface tag associated with the + secondary dispatch table. + (Expand_Interface_Thunk): New subprogram that generates the code of the + thunk. This is required for compatibility with the C+ ABI. + (Make_Abstract_Interface_DT): New subprogram that generate the + declarations for the secondary dispatch tables associated with an + abstract interface. + (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity + attribute for each primitive operation covering interface subprograms + (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position): + These subprograms were upgraded to give support to abstract interfaces + + * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag, + RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and + RE_Set_Access_Level. + (RE_Unit_Table): Add entries for new Ada.Tags operations. + Add support to call the followig new run-time subprograms: + IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top + + * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to + match its full declaration when both have an access definition with + statically matching designated subtypes. + (Analyze_Component_Declaration): Delete commented out code that was + incorrectly setting the scope of an anonymous access component's type. + (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of + an access discriminant when the containing type is nonlimited. + (Make_Incomplete_Type_Declaration): Create an incomplete type + declaration for a record type that includes self-referential access + components. + (Check_Anonymous_Access_Types): Before full analysis of a record type + declaration, create anonymous access types for each self-referential + access component. + (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that + an access component in this context is a Local_Anonymous_Access, for + proper accessibility checks. + (Access_Definition): Set properly the scope of the anonymous access type + created for a stand-alone access object. + (Find_Type_Of_Object): An object declaration may be given with an access + definition. + (Complete_Subprograms_Derivation): New subprogram used to complete + type derivation of private tagged types implementing interfaces. + In this case some interface primitives may have been overriden + with the partial-view and, instead of re-calculating them, they + are included in the list of primitive operations of the full-view. + (Build_Derived_Record_Type): Modified to give support to private + types implemening interfaces. + (Access_Definition): Reject ALL on anonymous access types. + (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged + type derivation to occur at a deeper accessibility level than the + parent type. + For the case of derivation within a generic body however, disallow the + derivation if the derived type has an ancestor that is a formal type + declared in the formal part of an enclosing generic. + (Analyze_Object_Declaration): For protected objects, remove the check + that they cannot contain interrupt handlers if not declared at library + level. + (Add_Interface_Tag_Components): New subprogram to add the tag components + corresponding to all the abstract interface types implemented by a + record type or a derived record type. + (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type, + Derived_Type_Declaration, Find_Type_Name, Inherit_Components, + Process_Full_View, Record_Type_Declaration): Modified to give + support to abstract interface types + (Collect_Interfaces): New subprogram that collects the list of + interfaces that are not already implemented by the ancestors + (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately + when partial view has no discriminants and full view has defaults. + (Constrain_Access): Reject a constraint on a general access type + if the discriminants of the designated type have defaults. + (Access_Subprogram_Declaration): Associate the Itype node with the inner + full-type declaration or subprogram spec. This is required to handle + nested anonymous declarations. + (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type, + Derived_Type_Declaration, Find_Type_Name, Inherit_Components, + Process_Full_View, Record_Type_Declaration): Modified to give + support to abstract interface types + (Derive_Subprograms): Addition of a new formal to indicate if + we are in the case of an abstact-interface derivation + (Find_Type_Of_Subtype_Indic): Moved from the body of the package + to the specification because it is requied to analyze all the + identifiers found in a list of interfaces + + * debug.adb: Complete documentation of flag "-gnatdZ" + + * exp_ch3.adb: Implement config version of persistent_bss pragma + (Check_Stream_Attributes): Use Stream_Attribute_Available instead of + testing for TSS presence to properly enforce visibility rules. + (Freeze_Record_Type): Code cleanup. Modified to call the subprogram + Make_Abstract_Interfaces_DT to generate the secondary tables + associated with abstract interfaces. + (Build_Init_Procedure): Modified to initialize all the tags + corresponding. + (Component_Needs_Simple_Initialization): Similar to other tags, + interface tags do not need initialization. + (Freeze_Record_Type): Modified to give support to abstract interface + types. + (Expand_N_Object_Declaration): Do not generate an initialization for + a scalar temporary marked as internal. + + * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an + in-out parameter that is a component in an initialization procedure, + whose constraint might depend on discriminants, and that may be + misaligned because of packing or representation clauses. + (Is_Legal_Copy): New predicate to determine whether a possibly + misaligned in-out actual can actually be passed by copy/return. This + is an error in case the type is by_reference, and a warning if this is + the consequence of a DEC import pragma on the subprogram. + (Expand_Call, Freeze_Subprogram): Modified to give support to abstract + interface types + (Expand_Inlined_Call): Mark temporary generated for the return value as + internal, so that no useless scalar normalization is generated for it. + (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to + null procedure can always be inlined. + (Expand_N_Subprogram_Declaration): If this is the declaration of a null + procedure, generate an explicit empty body for it. + + * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram. + Given a type implementing an interface, returns the corresponding + access_disp_table value. + (Find_Interface_Tag): New subprogram. Given a type implementing an + interface, returns the record component containing the tag of the + interface. + (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the + previous ones that return the corresponding tag and access_disp_table + entities. + (Is_Predefined_Dispatching_Operation): Determines if a subprogram + is a predefined primitive operation. + (Expand_Subtype_From_Expr): If the expression is a selected component + within an initialization procedure, compute its actual subtype, because + the component may depend on the discriminants of the enclosing record. + + * i-cpp.ads, i-cpp.adb: + This package has been left available for compatibility with previous + versions of the frontend. As part of the new layout this is now a + dummy package that uses declarations available at a-tags.ads + + * par-ch3.adb (P_Identifier_Declarations): Give an error for use of + "constant access" and "aliased [constant] access" when not compiling + with -gnat05. + Suppress Ada 2005 keyword warning if -gnatwY used + (P_Identifier_Declarations): Add support for object declarations with + access definitions. + (Private_Extension_Declaration): Complete the documentation + (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list + attribute in case of private extension declaration + (P_Type_Declaration): Mark as "abstract" the type declarations + corresponding with protected, synchronized and task interfaces + (P_Declarative_Items): "not" and "overriding" are overriding indicators + for a subprogram or instance declaration. + + * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an + instantiation that is a dispatching operation has controlling access + parameters that are null excluding. + Save and restore Ada_Version_Explicit, for implementation of AI-362 + (Validate_Derived_Type_Instance): Add check for abstract interface + types. + (Analyze_Formal_Package): Establish Instantiation source for the copy of + the generic that is created to represent the formal package. + (Analyze_Package_Instantiation): Instantiate body immediately if the + package is a predefined unit that contains inlined subprograms, and + we are compiling for a Configurable_Run_Time. + (Instantiate_Formal_Subprogram): Indicate that null default subprogram + If the program has a null default, generate an empty body for it. + + * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update + error message condition, null procedures are correctly detected now. + (New_Overloaded_Entity): Bypass trivial overriding indicator check + for subprograms in the context of protected types. Instead, the + indicator is examined in Sem_Ch9 while analysing the subprogram + declaration. + (Check_Overriding_Indicator): Check consistency of overriding indicator + on subprogram stubs as well. + (Analyze_Subprogram_Declaration): Diagnose null procedures declared at + the library level. + (Analize_Subprogram_Specification): When analyzing a subprogram in which + the type of the first formal is a concurrent type, replace this type + by the corresponding record type. + (Analyze_Subprogram_Body): Undo the previous work. + (Analyze_Procedure_Call): If the call has the form Object.Op, the + analysis of the prefix ends up analyzing the call itself, after which + we are done. + (Has_Interface_Formals): New subprogram subsidiary to analyze + subprogram_specification that returns true if some non + class-wide interface subprogram is found + (New_Overloaded_Entity): Modified to give support to abstract + interface types + (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous + access to subprograms must be recursive. + (Is_Unchecked_Conversion): Improve the test that recognizes + instantiations of Unchecked_Conversion, and allows them in bodies that + are to be inlined by the front-end. When the body comes from an + instantiation, a reference to Unchecked_Conversion will be an + Expanded_Name, even though the body has not been analyzed yet. + Replace Is_Overriding and Not_Overriding in subprogram_indication with + Must_Override and Must_Not_Override, to better express intent of AI. + (Analyze_Subprogram_Body): If an overriding indicator is given, check + that it is consistent with the overrinding status of the subprogram + at this point. + (Analyze_Subprogram_Declaration): Indicate that a null procedure is + always inlined. + If the subprogram is a null procedure, indicate that it does not need + a completion. + + * sem_disp.adb (Check_Controlling_Type): Give support to entities + available through limited-with clauses. + (Check_Dispatching_Operation): A stub acts like a body, and therefore is + allowed as the last primitive of a tagged type if it has no previous + spec. + (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified + to give support to abstract interface types + + * sem_res.adb (Valid_Conversion): Perform an accessibility level check + in the case where the target type is an anonymous access type of an + object or component (that is, when Is_Local_Anonymous_Access is true). + Prevent the special checks for conversions of access discriminants in + the case where the discriminant belongs to a nonlimited type, since + such discriminants have their accessibility level defined in the same + way as a normal component of an anonymous access type. + (Resolve_Allocator): When an allocator's designated type is a class-wide + type, check that the accessibility level of type given in the + allocator's expression or subtype indication is not statically deeper + than the level of the allocator's access type. + (Check_Discriminant_Use): Diagnose discriminant given by an expanded + name in a discriminant constraint of a record component. + (Resolve_Explicit_Dereference): Do not check whether the type is + incomplete when the dereference is a use of an access discriminant in + an initialization procedure. + (Resolve_Type_Conversion): Handle conversions to abstract interface + types. + (Valid_Tagged_Conversion): The conversion of a tagged type to an + abstract interface type is always valid. + (Valid_Conversion): Modified to give support to abstract interface types + (Resolve_Actuals): Enable full error reporting on view conversions + between unrelated by_reference array types. + The rule for view conversions of arrays with aliased components is + weakened in Ada 2005. + Call to obsolescent subprogram is now considered to be a violation of + pragma Restrictions (No_Obsolescent_Features). + (Check_Direct_Boolean_Operator): If the boolean operation has been + constant-folded, there is nothing to check. + (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer + check on possible violation of restriction No_Direct_Boolean_Operators + until after expansion of operands, to prevent spurious errors when + operation is constant-folded. + + * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type, + Has_Compatible_Type): Modified to give support to abstract interface + types. + (Interface_Present_In_Ancestor): New function to theck if some ancestor + of a given type implements a given interface + + * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose + prefix is a parameterless function that returns an access_to_procedure. + (Transform_Object_Operation): Handle properly function calls of the + form Obj.Op (X), which prior to analysis appear as indexed components. + (Analyze_One_Call): Complete the error notification to help new Ada + 2005 users. + (Analyze_Allocator): For an allocator without an initial value, where + the designated type has a constrained partial view, a discriminant + constraint is illegal. + +2005-06-14 Robert Dewar + + * a-textio.adb (Set_Col): Fix two errors noticed recently, having to + do with treatment of Set_Col when positioned at end of line character. + +2005-06-14 Robert Dewar + + * atree.adb: (Elist*): Protect against uninitialized field + +2005-06-14 Ed Schonberg + + * checks.adb (Install_Null_Excluding_Check): Do not generate checks + for an attribute reference that returns an access type. + (Apply_Discriminant_Check): No need for check if (designated) type has + constrained partial view. + + (Apply_Float_Conversion_Check): Generate a short-circuit expression for + both bound checks, rather than a conjunction. + (Insert_Valid_Check): If the expression is an actual that is an indexed + component of a bit-packed array, force expansion of the packed element + reference, because it is specifically inhibited elsewhere. + +2005-06-14 Vincent Celier + + * clean.adb (Clean_Project): Correctly delete executable specified as + absolute path names. + + * make.adb (Gnatmake): Allow relative executable path names with + directory information even when project files are used. + (Change_To_Object_Directory): Fail gracefully when unable to change + current working directory to object directory of a project. + (Gnatmake): Remove exception handler that could no longer be exercized + (Compile_Sources.Compile): Use deep copies of arguments, as some of them + may be deallocated by Normalize_Arguments. + (Collect_Arguments): Eliminate empty arguments + + * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False, + and set to True when -U is used for GNAT PRETTY or GNAT METRIC. + (Check_Project): Return False when Project is No_Project. Return True + when All_Projects is True. + (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set + All_Projects to True. + Minor reformatting + +2005-06-14 Ed Schonberg + Javier Miranda + Thomas Quinot + Robert Dewar + Hristian Kirtchev + Gary Dismukes + + * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on + anonymous access types, to indicate that the accessibility level of + the type is determined by that of the enclosing declaration. + (Has_Persistent_BSS): New flag + (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage + of this attribute with functions. + (Is_Primitive_Wrapper): Remove the barrier. + (Has_Specified_Stream_Input, Has_Specified_Stream_Output, + Has_Specified_Stream_Read, Has_Specified_Stream_Write): + New subprograms. + (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output, + Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write): + New subprograms. + (Is_Pure_Unit_Access_Type): New flag + (Abstract_Interfaces): Complete the assertion to cover all usages. + (Set_Is_Interface): Complete the assertion to cover all usages. + (Is_Primitive_Wrapper): New attribute. + (Is_Obsolescent): Now applies to all entities (though it is only set + for subprograms currently) + New flag: Has_Constrained_Partial_View, to implemente Ada 2005 AI-363, + which solves various problems concerning access subtypes. + (Has_Persistent_BSS): New flag + (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup. + Remove these subprograms because this attribute is currently + not used. + New entity flags: + Has_Specified_Stream_Input (Flag190) + Has_Specified_Stream_Output (Flag191) + Has_Specified_Stream_Read (Flag192) + Has_Specified_Stream_Write (Flag193) + Present in all type and subtype entities. Set for a given view if the + corresponding stream-oriented attribute has been defined by an + attribute definition clause. When such a clause occurs, a TSS is set + on the underlying full view; the flags are used to track visibility of + the attribute definition clause for partial or incomplete views. + (Is_Pure_Unit_Access_Type): New flag + Clarify use of Is_Internal. + (Is_Primitive_Wrapper): New attribute present in primitive subprograms + internally generated to wrap the invocation of tasks and protected + types that implement interfaces. + (Implementation_Base_Type): Documentation correction + (Is_Obsolescent): Now applies to all entities (though it is only set + for subprograms currently) + New flag: Has_Constrained_Partial_View, to implement Ada 2005 AI-363, + which solves various problems concerning access subtypes. + + * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance + for examined parameters. Identify unequal parameter list lengths as + non-conformant parameters. + (Overriding_Possible): Do not check for "All" qualifier in declaration + of controlling access parameter, following prescription of AI-404. + (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms + that build the procedure body that wraps an entry invocation + (Build_Corresponding_Record, Build_Protected_Sub_Specification, + Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration, + Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to + give support to abstract interface types + + * freeze.adb (Freeze_Entity): Issue error message if + Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the + type has no storage pool (Ada 2005) AI-366. + Also modified to give support to abstract interface types + (Freeze_Subprogram): Issue an error for a dispatching subprogram with an + Inline_Always pragma. + + * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may + now begin an entry declaration. + (P_Entry_Or_Subprogram_With_Indicator): New procedure in + P_Protected_Operation_Declaration_Opt. Parse an entry declaration or + a subprogram declaration preceded by an overriding indicator. + (P_Protected_Operation_Declaration_Opt): Add case for parsing entry + declarations or subprogram declarations preceded by reserved words + "not" or "overriding". + (P_Entry_Declaration): Update comment. Parse and check overriding + indicator, set semantic flags of entry declarations. + (P_Task): New error message in case of private applied + to a task type declaration. + (P_Protected): New error message in case of private applied + to a task type declaration. + + * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case + in which the full view of a type implementing an interface is a + concurrent type. + (Has_Overriding_Pragma): Remove obsolete implementation of AI-218. + Declare_Inherited_Private_Subprograms): If an explicit operation + overrides an operation that is inherited in the private part, mark the + explicit one as overriding, to enable overriding indicator checks. + (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from + full view to partial view, to simplify handling in back-end. + + * sprint.adb: Print interface lists where needed: derived types, + protected types, task types. + output "is null" for null procedures. Part of implementation of + + * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366 + relaxation of rules for access types in pure, shared passive partitions. + + * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to + first read discriminants into temporary objects, performing checks on + the read values, then possibly performing discriminant checks on the + actual (if it is constrained), and only finally reading the components + into a constrained temporary object. + (Build_Elementary_Input_Call): Adjust the specific circuitry for the + case of reading discriminants of a mutable record type to recognize + the new form of the code generated by + Build_Mutable_Record_Read_Procedure. + + * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms + of a simple call to Make_TSS_Name. + (Make_TSS_Name_Local): Add the TSS name as the last thing in the name + buffer, in order for Is_TSS to work correctly on local TSS names. + + * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag + Is_Local_Anonymous_Access to check legaliy of attributes in the + context of access components and stand-alone access objects. + (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is + treated as available for a limited private type if there is an + attribute_definition_clause that applies to its full view, but not in + other cases where the attribute is available for the full view + (specifically, the sole fact that the full view is non-limited does not + make the attribute available for the partial view). + (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a + non-overloaded intrinsic subprogram. + (Check_Stream_Attribute): Reject an attribute reference for an + unavailable stream attribute even if the prefix is not a limited type + (case of a 'Input attribute reference for an abstract, non-classwide + type) + (Stream_Attribute_Available): New function to determine whether a stream + attribute is available at a place. + (Check_Attribute): Use Stream_Attribute_Available instead of just + testing for TSS presence on the implementation base type. + (Analyze_Attribute): Modified to give support to task interfaces. + (Analyze_Access_Attribute): Add error check for use of an Access (or + Unrestricted_Access) attribute with a subprogram marked as + Inline_Always. + (Analyze_Attribute, case Attribute_Address): Add error check for use of + an Address attribute with a subprogram marked as Inline_Always. + Update Eval_Attribute to handle new value of Width from AI-395 + + * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram. + (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write): + Factor common code across the stream-oriented attribute circcuits into + a new subprogram, Analyze_Stream_TSS_Definition. The new uniform + processing is functionally identical to the previous duplicated one, + except that an expression that denotes an abstract subprogram will now + be rejected, as mandated by AI-195 item 5. + + * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag + Is_Local_Anonymous_Access to apply accessibility checks to access + components and stand-alone access objects. + (Has_Discriminant_Dependent_Constraint): Moved to spec for use + elsewhere. + (Is_Potentially_Persistent_Type): New function + (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is + a heap-object whose type has a constrained partial view, the object is + unconstrained and the component may depend on a discriminant, making its + renaming illegal. + + * sinfo.ads, sinfo.adb + (Must_Not_Override): Flag applicable to N_Entry_Declaration. + (Must_Override): Flag applicable to N_Entry_Declaration. + Indicate that interface_list can appear in single task and single + protected declarations. + Replace Is_Overriding and Not_Overriding with Must_Override and + Must_Not_Override, to better express intent of AI. + Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence + of an overriding indicator in a subprogram or instance. + Ada 2005 (AI-248) Null_Present can appear in a procedure specification. + Add the overriding indicator [[not] overriding] construct to the + following grammar productions: + ENTRY_DECLARATION + GENERIC_INSTANTIATION + SUBPROGRAM_SPECIFICATION + + * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body + can start with an overriding indicator. + + * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set + flags accordingly on subrogram specifications or instances. + + * sem_ch8.adb: + (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the + overriding_indicator, if present, is consistent with status of spec. + Improve error message for null-excluding checks on controlling access + parameters. + (Check_In_Previous_With_Clause): Protect the frontend against + previously reported critical errors in the context clauses. + Save and restore Ada_Version_Explicit, for implementation of AI-362 + (Analyze_Subprogram_Renaming): If the new entity is a dispatching + operation verify that controlling formals of the renamed entity that + are access parameters are explicitly non-null. + (Find_Expanded_Name): Improve error message when prefix is an illegal + reference to a private child unit. + + * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb, + 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. + +2005-06-14 Ed Schonberg + Robert Dewar + + * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user + code, not on the bodies of predefined operations, to cut down on + spurious noise. + +2005-06-14 Ed Schonberg + + * exp_aggr.adb (Aggr_Size_OK): An array with no components can always + be expanded in place. The size computation does not require a + subtraction, which would raise an exception on a compiler built with + assertions when the upper bound is Integer'first. + (Flatten): For an array of composite components, take into account the + size of the components to determine whether it is safe to expand the + array into a purely positional representation. + +2005-06-14 Thomas Quinot + + * exp_ch2.adb (Param_Entity): Take the case of an expanded_name + denoting a formal parameter into account. + +2005-06-14 Ed Schonberg + + * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within + the entry_call alternative of a conditional entry call, wrap the + conditional entry call itself. + +2005-06-14 Nicolas Setton + Ed Schonberg + + * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of + the "simple_choice" member in a variant record, in accordance with the + description in the package spec: the information output for a constant + should be "S number", not "SS number". + (Get_Encoded_Name): Return at once if not generating code. Avoids name + overflow problem when compiling with -gnatct, for ASIS/gnatmetrics. + +2005-06-14 Thomas Quinot + + * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an + RACW without any primitives, do not generate the if statement for + dispatching by name in the PolyORB/DSA case, as it would be malformed + (it would have an Elsif_Parts list that is not No_List, but with a + length of 0). + +2005-06-14 Robert Dewar + + * exp_intr.adb, par-ch5.adb: Minor fix to error message text + +2005-06-14 Jose Ruiz + + * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi + can determine whether pragma Suppress_Exception_Locations is in effect. + + * utils2.c (build_call_raise): Do not pass the file name to the + exception handler if pragma Suppress_Exception_Locations is in effect. + (build_allocator): Add and process arg IGNORE_INIT_TYPE. + +2005-06-14 Emmanuel Briot + + * g-debpoo.adb (Deallocate, Dereference): Improve output. + +2005-06-14 Nicolas Roche + + * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal + to "" + (Next_Level): Fix minor bug in handling of ../dir case + (Read): Add dir separator to Directory name so that "" is understood as + "/" + +2005-06-14 Pascal Obry + + * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after + releasing the items. + +2005-06-14 Vincent Celier + Cyrille Comar + + * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions + with output file descriptor and with output file name. + (Dup, Dup2): Now global procedures as they are used by two subprograms + (Copy): Allocate the 200K buffer on the heap rather than on the stack. + +2005-06-14 Thomas Quinot + + 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 + socket pair to 127.0.0.1 to limit the scope for 'theft' of connection. + Set listen backlog to 1 to ensure that we detect socket theft by a + failure of our own connect(2) call. + (Check_Selector): Improve documentation of the selector mechanism. + (Broadcast_Inet_Addr): New constant. + +2005-06-14 Gary Dismukes + + * layout.adb (Discrimify): Remove resetting of Vtype to the underlying + type which turns out to be an incomplete and incorrect fix. + (Layout_Array_Type): Use Underlying_Type when checking whether the scope + of the type is declared in a record (for determination of insertion + type). + (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of + a private type and ensure that the primary entity is used for the type + of the newly created function's V formal by taking the Etype of the + view. + +2005-06-14 Javier Miranda + Jose Ruiz + Robert Dewar + Ed Schonberg + + * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter + that indicates if we are parsing a compilation unit found in a + limited-with clause. + It is use to avoid the circularity check. + + * par.ads, par.adb (Par): Addition of a new parameter to indicate if + we are parsing a compilation unit found in a limited-with clause. This + is use to avoid the circularity check. + + * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the + unit as a consequence of parsing a limited-with clause. This is used + to avoid the circularity check. + + * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used + (Analyze_Context): Limited-with clauses are now allowed + in more compilation units. + (Analyze_Subunit_Context, Check_Parent): Protect the frontend + againts previously reported critical errors in context clauses + (Install_Limited_Withed_Unit): Code cleanup plus static detection + of two further errors: renamed subprograms and renamed packages + are not allowed in limited with clauses. + (Install_Siblings): Do not install private_with_clauses on the package + declaration for a non-private child unit. + (Re_Install_Parents): When a parent of the subunit is reinstalled, + reset visibility of child units properly. + (Install_Withed_Unit): When a child unit appears in a with_clause of its + parent, it is immediately visible. + +2005-06-14 Ed Schonberg + Emmanuel Briot + + * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity + declared within an inlined body as referenced, to prevent spurious + warnings. + (Output_One_Ref): If an entity renames an array component, indicate in + the ALI file that this aliases (renames) the array. Capture as well + function renamings that rename predefined operations. + Add information about generic parent for package and subprogram + instances. + (Get_Type_Reference): For a subtype that is the renaming of an actual in + an instantiation, use the first_subtype to ensure that we don't generate + cross-reference information for internal types. + 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.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. + +2005-06-10 Doug Rupp + Arnaud Charlet + Olivier Hainque + Jose Ruiz + + * Make-lang.in: Add initialize.o when needed. + Remove obsolete references to RT_FLAGS. + Add missing dependencies for sdefault.o + + * initialize.c: New file. + + * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS. + [VMS] cond_signal_table: Fix problem in declaration. + [VMS] __gnat_error_handler: rewrite. + Move all __gnat_initialize() routines to initialize.c + Specialize the former "hpux" section to "hppa hpux", as this is what the + section really is here for and we now have other hpux ports that need + different contents. + (__gnat_adjust_context_for_raise) i386-linux: First version of this + function for this target. Adjust PC by one in the machine context. This + adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but + it is more reliable to do that in the signal handler itself. + (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction + flags, so that the handler is passed the context structure to adjust + prior to the raise. + (__gnat_error_handler) i386-linux: Adjust the signature to match what a + SA_SIGINFO sigaction should look like. Call + __gnat_adjust_context_for_raise before actually raising. Cleanup unused + Machine_State_Operations stuff. + Add conditional code so that the x86_64 is also supported. + +2005-06-14 Pascal Obry + + * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given + the library name. + +2005-06-14 Robert Dewar + + * opt.ads, opt.adb: New flags for persistent_bss mode + Add Ada_Version_Explicit, for implementation of AI-362 + Add Assertions_Enabled_Config and associated handling + Needed since setting can be changed with Assertion_Policy pragma + Add new flag Warn_On_Ada_2005_Compatibility + + * switch-c.adb: Recognize -gnatwy/Y + Set Ada_Version_Explicit, for implementation of AI-362 + The -gnatg switch now includes -gnatyu + + * usage.adb: Add -gnatwy/Y + Remove wrong asterisk on -gnatwX line + Add line for -gnatyu switch + +2005-06-14 Vincent Celier + + * osint.adb (Add_Default_Search_Dirs): Put source and object + directories of project files before directories coming from + ADA_INCLUDE_PATH and ADA_OBJECTS_PATH. + +2005-06-14 Robert Dewar + + 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 + +2005-06-14 Vincent Celier + + * prep.adb (Preprocess): Ignore error when scanning the first token of + a line. + +2005-06-14 Vincent Celier + + * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp" + (Check_Stand_Alone_Library): If the specified reference symbol file does + not exist, only issue a warning when the symbol policy is not + Controlled. And, when symbol policy is Compliant, set the symbol + policy to Autonomous. + +2005-06-14 Vincent Celier + + * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List + when the project file in a with clause is not the last one, that is the + project file name is followed by a comma. + * prj-pp.adb: (First_With_In_List): New Boolean global variable + (Print): Issue list of project files separated by commas in with clauses + according to the values returned by Is_Not_Last_In_List. + * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function + (Set_Is_Not_Last_In_List): New procedure + +2005-06-14 Eric Botcazou + + * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer. + +2005-06-14 Robert Dewar + + * scng.adb: Add call to new Check_EOF routine + (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24 + Add some comments regarding wide character handling + + * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu + + * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu + + * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format + 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. + + * treeprs.adt: Remove a blank line so that output from xtreeprs does + not have an extra blank line + +2005-06-14 Gary Dismukes + + * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the + expression when the component type is an anonymous access type to + ensure that appropriate accessibility checks are done. + + * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the + expression of an assignment when the target object is of an anonymous + access type. This ensures that required accessibility checks are done. + (One_Bound): Move the check for type Universal_Integer to + Process_Bounds. + (Process_Bounds): Check whether the type of the preanalyzed range is + Universal_Integer, and in that case set Typ to Integer_Type prior + to setting the type of the original range and the calls to One_Bound. + +2005-06-14 Ed Schonberg + + * sem_case.adb (Expand_Others_Choice): Improve warning. + +2005-06-14 Ed Schonberg + + * sem_eval.adb (Subtypes_Statically_Match): Use discriminant + constraint of full view if present, when other type is discriminated. + (Eval_Relational_Op): Recognize tests of pointer values against Null, + when the pointer is known to be non-null, and emit appropriate warning. + +2005-06-14 Robert Dewar + Ed Schonberg + + 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 + Test Ada_Version_Explicit for Preelaborate_05 and Pure_05 + Add processing for pragma Pure_05 and Preelaborate_05 + Add processing for Assertion_Policy pragma + Add pragma identifiers for Assert + (Analyze_Pragma, case Assert): Check number of arguments + (Process_Inline): Additional guard against an illegal program, where the + argument of the pragma is undefined, and warnings on redundant + constructs are enabled. + (Analyze_Pragma, case Obsolescent): Allow an optional second argument + Ada_05 to this pragma, specifying that the pragma is only active in + Ada_05 mode. + (Check_Arg_Order): New procedure + Add appropriate calls to this procedure throughout + Also throughout, check entity name before doing any other checks + + * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS + Remove obsolete pragma Persistent_Data, Persistent_Object + Add entries for pragma Pure_05 and Preelaborate_05 + Add entries for Assertion_Policy pragma and associated names + Add some names for pragma argument processing + + * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function + +2005-06-14 Ed Schonberg + + * sem_warn.adb (Warn_On_Known_Condition): If the constant expression + appears within a negation (either from source or as a rewriting of + inequality) adjust text of warning accordingly. + +2005-06-14 Thomas Quinot + + * s-strxdr.adb: Follow AI95-00132 + +2005-06-14 Arnaud Charlet + + * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition. + +2005-06-14 Arnaud Charlet + Jose Ruiz + + * s-tposen.adb, s-tpobop.adb + (Exceptional_Complete_Rendezvous): Save the occurrence and not only + the exception id. + (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that + there is no violation of the Max_Entry_Queue_Length restriction (if it + has been set); Program_Error is raised otherwise. + (Requeue_Call): Before requeuing the task on the target entry queue we + check that there is no violation of the Max_Entry_Queue_Length + restriction (if it has been set); Program_Error is raised otherwise. + +2005-06-14 Robert Dewar + + * styleg.adb: Fix several remaining problems in -gnatyu switch + Blank line count not reset at start + Scanning outside source buffer in some cases + Confusing message for blanks at end of file + Non-empty blank lines not recognized + + * 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 + +2005-06-14 Sergey Rybin + + * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message. + +2005-06-14 Doug Rupp + Vincent Celier + + * vms_conv.ads, vms_conv.adb: Remove "Library" command. + Update copyright. + + * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY + Remove "Library" command. + Change keyword for style check -gnatyd from NOCRLF to + DOS_LINE_ENDINGS. + Remove useless second style check keyword NONE + Remove help documentation for inexistent style check keyword + RM_COLUMN_LAYOUT. + Add help documentation for style check keywords DOS_LINE_ENDINGS, + UNNECESSARY_BLANK_LINES and XTRA_PARENS + 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 + +2005-06-14 Vincent Celier + + * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if + gprmake was invoked with -d. + (Compile_Sources): If -d was used, output the "completed ..." message + for each compilation. + (Scan_Arg): Recognize new switch -d + When -c and at least one main is specified, set + Unique_Compile to True to guarantee that no other sources will be + compiled. + +2005-06-14 Matthew Heaney + + * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb] + * a-swuwha.ads, a-swuwha.adb: New files + + * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb] + * a-szuzha.ads, a-szuzha.adb: New files. + + * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads, + a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads, + a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads, + a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, + a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads, + a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, + a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, + a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads, + a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb, + a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the + Ada 2005 RM. + +2005-06-10 Eric Botcazou + Olivier Hainque + Richard Kenner + Pascal Obry + + * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE. + + * trans.c (call_to_gnu): Issue a warning for users of Starlet when + making a temporary around a procedure call because of non-addressable + actual parameter. + (process_freeze_entity): If entity is a private type, capture size + information that may have been computed for the full view. + (tree_transform, case N_Allocator): If have initializing expression, + check type for Has_Constrained_Partial_View and pass that to + build_allocator. + (tree_transform, case N_Return_Statement): Pass extra arg to + build_allocator. + + * decl.c (annotate_value): Remove early return if -gnatR is not + specified. + (gnat_to_gnu_field): Don't make a packable type for a component clause + if the position is byte aligned, the field is aliased, and the clause + size isn't a multiple of the packable alignment. It serves no useful + purpose packing-wise and would be rejected later on. + (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator. + + PR ada/20515 + (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the + context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES + instead. + (create_concat_name): Idem. + +2005-06-10 Robert Dewar + Eric Botcazou + Ben Brosgol + Cyrille Comar + Sergey Rybin + Pascal Obry + + * gnat_rm.texi: Add documentation for pragma Persistent_BSS + Document second argument (Ada_05) of pragma Obsolescent + Add note that call to subprogram marked with pragma Obsolescent + is now considered to be a violation of program Restrictions + (No_Obsolescent_Features). + (Implementation Defined Pragmas) : Make it clear + that only machine-dependent attributes are supported. + + * gnat_ugn.texi: + Commented out menu lines and empty section for gnatclean examples + Document -gnatwy/Y + Fix some over long lines + Clarify and enhance documentation of ADA_PROJECT_PATH. + Rework section 2.11.2(3) about linking with a non-GNU compiler. + Mention new switch -fcallgraph-info. + Mention new switch -fstack-usage. + For gnatpp, replace '-notab' with '-N' and add this option to Index + Corrected VMS example. + VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF + Minor reformatting + Add documentation for -gnatyu switch (unnecessary blank lines) + Document new switch -U for GNAT PRETTY and GNAT METRIC + Add note about Stdcall being handled as C convention on non Windows OS. + Remove some junk typo in description of gnatbind -S switch + Remove reference to Extensions_Allowed pragma + Document the new order of the directories to be searched (source and + object directories of project files before directories in ADA_*_PATH + environment variables. + + * g-trasym.ads: Document that IRIX is supported + +2005-06-10 Arnaud Charlet + + * Makefile.in: Add initialize.o when needed. + Adapt to new VMS package body Symbols and subunits + No specialized version of a-sytaco is needed for VxWorks. + + * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files. + * a-zchara.ads, a-widcha.ads: New files. + + * system-hpux-ia64.ads: New file. + + * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which + is imported from the VxWorks kernel. + +2005-06-14 Robert Dewar + + * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb, + fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads, + a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads, + s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb, + a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb, + g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads, + i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb, + namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb, + sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads, + s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb, + s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb, + xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting. + +2005-06-14 Thomas Quinot + + * xeinfo.adb: Fix typo in comment + +2005-06-14 Javier Miranda + + * repinfo.ads: Fix typo in comment + +2005-06-14 Gary Dismukes + + * s-finimp.adb (Parent_Tag): Delete this imported function (function + Parent_Tag is now in the visible part of Ada.Tags). + (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of + using imported function. + +2005-06-14 Bernard Banner + + * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should + also apply for handling support for VxSim 653. + +2005-06-14 Eric Botcazou + + * xsnames.adb: Add automatic generation of snames.h. + +2005-06-14 Thomas Quinot + + * gen-soccon.c: Add IP_MULTICAST_IF constant + Minor reformatting and adjustments to prevent warnings. + +2005-06-14 Pascal Obry + + * seh_init.c: Do not include . This is not needed. + +2005-06-03 Andrew Pinski + + * trans.c (gnat_gimplify_expr): Call + recompute_tree_invarant_for_addr_expr when we change + the operand of the ADDR_EXPR. + +2005-05-31 Kaveh R. Ghazi + + * misc.c: Don't include errors.h. + +2005-05-29 Kaveh R. Ghazi + + * raise.c (db): Add ATTRIBUTE_PRINTF_2. + +2005-05-29 Kazu Hirata + + * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix + comment typos. + * gnat_rm.texi, gnat_ugn.texi: Fix typos. + +2005-05-16 Nathanael Nerode + + PR ada/20270 + * Makefile.in: Make TGT_LIB behave correctly. + +2005-04-23 DJ Delorie + + * misc.c: Adjust warning() callers. + +2005-04-16 Laurent Guerby + + PR ada/18847 + * a-nudira.adb (Value): Check for valid string. + * a-nuflra.adb (Value): Likewise. + +2005-04-11 Richard Sandiford + + * lang.opt: Refer to the GCC internals documentation instead of c.opt. + +2005-04-10 Kazu Hirata + + * adaint.c, init.c, tracebak.c: Fix comment typos. + * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos. + +2005-04-07 Laurent Guerby + John David Anglin + + * Makefile.in: Add make ifeq define for hppa linux tasking support. + * system-hpux.ads: Define Signed_Zeros to be True. + * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files. + +2005-04-01 Kazu Hirata + + * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c, + raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment + typos. + +2005-03-30 Tom Tromey + + * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE. + +2005-03-30 Aaron W. LaFramboise + + * adaint.c (_gnat_set_close_on_exec): Mark parameters unused. + +2005-03-29 Robert Dewar + + * sem_res.adb (Resolve_Real_Literal): Generate warning if static + fixed-point expression has value that is not a multiple of the Small + value. + + * opt.ads (Warn_On_Bad_Fixed_Value): New flag + + * s-taprop-tru64.adb (RT_Resolution): Return an integer number of + nanoseconds. + + * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB + +2005-03-29 Vincent Celier + + * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb + (Build_Dynamic_Library.Version_String): Return the empty string when + Lib_Version is empty or when the symbol policy is not Autonomous. + + * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when + a symbol is not in the reference symbol file, increase the Major ID + and set the Minor ID to 0. + Use gsmatch=lequal instead of gsmatch=equal + +2005-03-29 Doug Rupp + + * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical + name and translate. + +2005-03-29 Javier Miranda + + * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed. + (Inherit_DT): The first formal has been redefined as a Tag. + This allows us the removal of the subprogram Get_TSD. + (TSD): Replace the call to Get_TSD by the actual code. + + * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD. + (Make_DT): Upgrade the call to Inherit_TSD according to the + new interface: the first formal is now a Tag. + + * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been + redefined as a Tag. + This change allows us to remove the subprogram Get_TSD. + (CPP_Get_TSD): Subprogram removed. + (TSD): Replace the call to CPP_Get_TSD by the actual code. + + * rtsfind.ads: Remove support to call the run-time + subprogram Get_TSD + +2005-03-29 Robert Dewar + + * errutil.adb, errout.adb: + Minor comment updates on Line_Terminator references + + * par-ch10.adb: Add ??? comment about line terminator + + * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd + (check dos line terminator). + (Check_Line_Max_Length): New procedure, split off from the existing + Check_Line_Terminator routine. Separating this out allows -gnatyf to + be properly recognized. + + * styleg.adb: Add ??? comment for line terminator reference + + * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored + (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators) + + * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd + (check dos line terminator). + (Check_Line_Max_Length): New procedure, split off from the existing + Check_Line_Terminator routine. Separating this out allows -gnatyf to + be properly recognized. + + * stylesw.ads, stylesw.adb: + Add handling for new -gnatyd switch (check dos line terminator) + + * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator) + Recognize -gnatwb/-gnatwB switches + Include Warn_On_Bad_Fixed_Value for -gnatg + + * usage.adb: + Add line for new -gnatyd switch (check dos line terminator) + + * usage.adb: Add lines for -gnatwb/-gnatwB + + * vms_data.ads: Add entry for NOCRLF (-gnatyd) + + * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB + + * gnat_ugn.texi: Fix overlong lines + Document new -gnatyd switch + Document new -gnatwb/-gnatwB switches + +2005-03-29 Ed Schonberg + + * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in + order to retrieve the component list of the type, before examining + individual components. + + * sem_type.adb (Covers): Types are compatible if one is the base type + of the other, even though their base types might differ when private + views are involved. + +2005-03-29 Thomas Quinot + + * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any, + To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead + of using Set_Renaming_TSS. This ensures that the TSS bodies are not + analyzed if expansion is disabled (which could otherwise cause spurious + error messages if expansion has been disabled due to previous + (unrelated) errors). + + * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion + is disabled, the entity denoted by the argument is the access type + itself, not an underlying record type, so there is no need to go back + to the Corresponding_Remote_Type. + +2005-03-29 Gary Dismukes + Robert Dewar + + * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to + expand a call to an instance of + Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the + Constructor actual of the instance. A class-wide membership + check is also generated, to ensure that the tag passed to the instance + denotes a type in the class. + (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case + of Name_Generic_Dispatching_Constructor. + + * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada + 05 unit for AI-260-02). + + * a-tgdico.ads: New file. + + * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new + predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor. + + * snames.ads, snames.adb (Preset_Names): Add entry for + 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 + the case of renaming of stream attributes when the renaming denotes a + generic formal subprogram association for an abstract formal subprogram. + Check that the attribute is a primitive stream attribute (and not + a class-wide stream attribute) and then rewrite the attribute name + as the name of the appropriate compiler-generated stream primitive. + +2005-03-29 Robert Dewar + + * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to + recursive calls. + (Is_Possibly_Unaligned_Object): Correct typo that + resulted in inaccurate result for unaligned scalars within records. + +2005-03-29 Ed Schonberg + + * freeze.adb (Freeze_Record_Type): If the type of the component is an + itype whose parent is controlled and not yet frozen, do not create a + freeze node for the itype if expansion is disabled. + +2005-03-29 Vincent Celier + + * make.adb (Gnatmake): Don't fail if the main project file is declared + as having no Ada sources. Do not display message "no sources to + compile" in quiet output. + +2005-03-29 Doug Rupp + + * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as + extra tools. + +2005-03-29 Robert Dewar + + * par-ch12.adb (P_Generic): Give better msg for illegal private generic + child. + +2005-03-29 Robert Dewar + + * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after + missing TYPE Improve the error message generated when compiling a + limited interface in Ada83 or Ada95 mode. + +2005-03-29 Robert Dewar + + * par-ch4.adb (P_Name): When a bad attribute is returned, return error, + rather than proceed ahead using a junk attribute name. + +2005-03-29 Vincent Celier + + * prj.ads, prj.adb: (Project_Data): Add new component Display_Name + + * prj-part.adb (Parse_Single_Project): Set the location of a project + on its defining identifier, rather than on the reserved word "project". + + * prj-proc.adb (Expression): Adapt to the fact that default of external + references may be string expressions, not always literal strings. + (Recursive_Process): Set Display_Name equal to Name + when Location is No_Location, that is when there is no actual file. + Get the Display_Name of the project from the source, when it is not a + virtual project. + (Process): Use the Display_Name in error messages + + * prj-strt.adb (External_Reference): Allow default to be string + expressions, not only literal strings. + +2005-03-29 Vincent Celier + + * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol + file and the reference symbol file to be the same file. + +2005-03-29 Thomas Quinot + + * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to + forbid conversion of a local access-to-subprogram type to a remote one. + + * sem_util.adb (Wrong_Type): For a record type that is the expanded + equivalent type for a remote access-to-subprogram type, go back to the + original RAS entity when displaying an error message, so the casing is + the original source casing. + +2005-03-29 Robert Dewar + + * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning + on param update. + +2005-03-29 Ed Schonberg + + * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual + subtype if code is being pre-analyzed, to prevent un-expanded + references to protected formals, among others. + (Analyze_Explicit_Dereference): If the overloaded prefix includes some + interpretation that can be a call, include the result of the call as a + possible interpretation of the dereference. + + * sem_ch5.adb (Process_Bounds): Determine type of range by + pre-analyzing a copy of the original range, and then analyze the range + with the expected type. + + * sem_res.adb (Check_Parameterless_Call): For an explicit dereference + with an overloaded prefix where not all interpretations yield an + access to subprogram, do not rewrite node as a call. + (Resolve_Explicit_Dereference): Recognize the previous case and rewrite + the node as a call once the context identifies the interpretation of + the prefix whose call yields the context type. + (Valid_Conversion): For the case of a conversion between + local access-to-subprogram types, check subtype conformance using + Check_Subtype_Conformant instead of Subtype_Conformant, to have a more + detailed error message. + +2005-03-29 Ed Schonberg + + * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null + indicator, indicate that the formal can never be null. + (Process_Formals): If a formal has a non_null indicator, insert the + resulting subtype immediately before the enclosing subprogram decl, + and not at the beginning of the corresponding declarative part, to + prevent access before elaboration (Ada2005). + +2005-03-29 Richard Kenner + + PR ada/19956 + * utils.c (finish_record_type): Use variable_size when setting sizes. + +2005-03-29 Robert Dewar + + * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to + guarantee Unix style line terminators for the output files, even when + running on windows. + +2005-03-29 Robert Dewar + + * a-direct.ads, a-direct.adb (Start_Search): Free allocated search + buffer if an exception is raised. + +2005-03-29 Ed Falis + + * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with + VxWorks 653 1.4 + +2005-03-29 Robert Dewar + + * sem_util.ads: Minor reformatting + * gnat_rm.texi: Minor editing. + +2005-03-29 Eric Botcazou + + * decl.c (gnat_to_gnu_entity) : Rework comment. + * trans.c (tree_transform) : Use correct predicates. + +2005-03-24 Aaron W. LaFramboise + + * adaint.c (__gnat_portable_spawn): Adjust cast. + +2005-03-23 Joseph S. Myers + + * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove. + +2005-03-17 Pascal Obry + + * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is + used. + + * expect.c (__gnat_waitpid): Moved here from adaint.c. + Reimplement under Win32 using Win32 API. + + (__gnat_kill) [Win32]: Properly close the process handle before leaving + this routine. + +2005-03-17 Eric Botcazou + + * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate. + (DECL_RENAMED_OBJECT): New accessor macro. + (SET_DECL_RENAMED_OBJECT): New setter macro. + + * decl.c (gnat_to_gnu_entity) : Stabilize the renamed + object in all cases. Attach the renamed object to the VAR_DECL. + (gnat_to_gnu_field): Do not lift the record wrapper if the size of the + field is not prescribed. + + * misc.c (gnat_handle_option): Handle -gnatO separately. + (gnat_print_decl) : New case. + Print the DECL_RENAMED_OBJECT node. + + * lang.opt: Declare separate -gnatO option. + + * trans.c (tree_transform) : If the object is a renaming + pointer, replace it with the renamed object. + : Warn for a conversion to a fat + pointer type if the source is not a fat pointer type whose underlying + array has the same non-zero alias set as that of the destination array. + +2005-03-17 Javier Miranda + + * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed. + (Get_Inheritance_Depth): Removed. + (Set_Inheritance_Depth): Removed. + + * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the + subprogram Get_Expanded_Name because it is not referenced by the + frontend. + + * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed. + (CPP_Get_Inheritance_Depth): Removed. + (CPP_Set_Inheritance_Depth): Removed. + + * tbuild.ads, tbuild.adb (Make_DT_Component): Removed. + +2005-03-17 Robert Dewar + + * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC + 3, since we now expect GCC 3 to do all the work. + +2005-03-17 Javier Miranda + + * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition + of one barrier to avoid wrong usage of this attribute. + + * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute + First_Private_Entity. + + * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect + the subprogram against wrong usage. + Adapt the code to traverse the entities in the + scope of a record_type because in addition to its usage regarding + packages, this subprogram is also called by Expand_N_Freeze_Entity + to install the visible declarations of the enclosing scope of a + record_type_with_private to establish the proper visibility before + freezing the entity and related subprograms. + +2005-03-17 Ed Schonberg + + * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to + entry formals. + +2005-03-17 Thomas Quinot + + * exp_ch3.adb (Check_Attr): New subprogram. + (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement + into a new Check_Attr subprogram, in order to provide a more + explanatory error message (including the name of the missing attribute). + (Stream_Operation_OK): Renamed from Stream_Operations_OK. This + subprogram determines whether a default implementation exists for a + given stream attribute. + (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): + Determine whether to generate a default implementation for each stream + attribute separately, as this depends on the specific attribute. + + * exp_strm.adb (Make_Field_Attribute): For the case of an illegal + limited extension where a stream attribute is missing for a limited + component (which will have been flagged in Exp_Ch3.Sem_Attr), do not + generate a bogus reference to the missing attribute to prevent + cascaded errors. Instead, generate a null statement. + + * sem_attr.adb (Check_Stream_Attribute): A stream attribute is + available for a limited type if it has been specified for an ancestor + of the type. + +2005-03-17 Ed Schonberg + + * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed + entity is an operator. + +2005-03-17 Thomas Quinot + + * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist + spec, to make this predicate available to other units. + + * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of + reimplementing it. + + * sem_ch8.adb: Disable expansion of remote access-to-subprogram types + when no distribution runtime library is available. + + * sem_res.adb, sem_dist.adb: Disable expansion of remote + access-to-subprogram types when no distribution runtime library is + available. + (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this + predicate available to other units. + + * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist + spec, to make this predicate available to other units. + +2005-03-17 Vincent Celier + + * make.adb (Insert_Project_Sources): Make sure the Q is always + initialized. + + * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against + the default for the tree, not the global default naming. + + * prj-proc.adb (Recursive_Process): No need to put the default naming + in the project data, it's already there. + +2005-03-17 Doug Rupp + + * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads. + + * 5xcrtl.ads: Renamed to... + * s-crtl-vms64.ads: ...this new file + +2005-03-17 Robert Dewar + + 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-17 Robert Dewar + + * par.adb (Par): Improved msg for attempt to recompile predefined unit + +2005-03-17 Thomas Quinot + + * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a + tagged limited type, the TSS is a newly built renaming declaration: + insert it using Set_TSS, not Copy_TSS. + +2005-03-17 Javier Miranda + + * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and + Try_Object_Operation): Analyze the object that is accessible + through the prefix of the subprogram call before we apply + the transformation of the object-operation notation. + +2005-03-17 Jose Ruiz + + * s-taprob.adb (Initialize_Protection): Initialize the protected + object's owner to Null_Task. + (Lock): If pragma Detect_Blocking is in effect and the caller of this + procedure is already the protected object's owner then Program_Error + is raised. In addition the protected object's owner is updated. + (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller + of this procedure is already the protected object's owner then + Program_Error is raised. + In addition the protected object's owner is updated. + (Unlock): Remove the ownership of the protected object. + + * s-taprob.ads (Protection): Add the field Owner, used to store the + protected object's owner. + This component is needed for detecting one type of potentially blocking + operations (external calls on a protected subprogram with the same + target object as that of the protected action). Document the rest of + the components. + + * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries): + Initialize the protected object's owner to Null_Task. + (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the + caller of this procedure is already the protected object's owner then + Program_Error is raised. + Do not raise Program_Error when this procedure is called from a + protected action. + (Unlock_Entries): Remove the ownership of the protected object. + (Lock_Entries): If pragma Detect_Blocking is in effect and the caller + of this procedure is already the protected object's owner then + Program_Error is raised. + Do not raise Program_Error when this procedure is called from + a protected action. + + * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner, + used to store the protected object's owner. + + * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in + effect and this procedure (a potentially blocking operation) is called + from whithin a protected action, Program_Error is raised. + (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect + and this procedure (a potentially blocking operation) is called from + whithin a protected action, Program_Error is raised. + +2005-03-17 Vincent Celier + Nicolas Setton + + * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini" + switch, not supported by the linker on Darwin. Add '_' before + init, as this character is added unconditionally by the + compiler. + (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the + correct one ".dylib". This fixes detection of the archive files when + building library projects. + +2005-03-17 Vincent Celier + + * switch-m.adb (Normalize_Compiler_Switches): Recognize switches + -gnat83, -gnat95 and -gnat05. + +2005-03-17 Vasiliy Fofanov + + * gnat_ugn.texi: Document gnatmem restriction + +2005-03-17 Thomas Quinot + + * snames.adb: Document new TSS names introduced by exp_dist/exp_tss + cleanup + +2005-03-17 Robert Dewar + + * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb, + a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb, + s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting + + * casing.adb: Comment improvements + +2005-03-17 Pascal Obry + + * g-expect.adb: Minor reformatting. + +2005-03-15 Zack Weinberg + + * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info) + (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi + to dependencies. + +2005-03-15 Vincent Celier + + * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For): + Add new parameter In_Tree to specify the project tree: needed + by the project manager. Adapt to changes in project manager + using new parameter In_Tree. + +2005-03-15 Jakub Jelinek + + * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, + ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of + ada/bldtools to avoid make -jN failures. + +2005-03-15 Eric Botcazou + + * trans.c (gnat_to_gnu) : Set gnu_result + to NULL_TREE on entry. + +2005-03-15 Robert Dewar + + * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads, + system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads, + system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads, + system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads, + system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads, + system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads, + system-interix.ads, system-solaris-sparc.ads, + system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads, + system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads, + system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, + system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads, + system-linux-s390.ads, system-linux-s390x.ads: Add line defining + Compiler_System_Version to be False. + + * opt.ads: Add new flag Opt.Address_Is_Private + + * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private + Add new parameter Compiler_System_Version to avoid checking for + completeness of parameters when compiler is compiling itself. + Allows old versions of GNAT to be compiled with new compiler. + +2005-03-15 Eric Botcazou + + * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function + (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the + calling thread. + (Stack_Base_Available): New flag. + (Get_Page_Size): New overloaded functions imported from C. + (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL, + PROT_ON, PROT_OFF): New constants. + (mprotect): New function imported from C. + (pthread_teb_t): New record type. + + * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone. + (Create_Task): Account for the Yellow Zone and the guard page. + +2005-03-15 Vincent Celier + + * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, + mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb, + mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, + mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For, + Library_File_Name_For): Add new parameter In_Tree + to specify the project tree: needed by the project manager. + Adapt to changes in project manager using new parameter In_Tree. + Remove local imports, use functions in System.CRTL. + + * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed + to use the project manager. + + * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter + In_Tree to designate the project tree. Adapt to changes in the project + manager, using In_Tree. + + * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library, + Copy_Interface_Sources): Add new parameter In_Tree to specify the + project tree: needed by the project manager. + (Build_Library): Check that Arg'Length >= 6 before checking if it + contains "--RTS=...". + + * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For, + Library_File_Name_For): Add new parameter In_Tree to specify the + project tree: needed by the project manager. + + * prj.ads, prj.adb: Major modifications to allow several project trees + in memory at the same time. + Change tables to dynamic tables and hash tables to dynamic hash + tables. Move tables and hash tables from Prj.Com (in the visible part) + and Prj.Env (in the private part). Move some constants from the visible + part to the private part. Make other constants deferred. + (Project_Empty): Make it a variable, not a function + (Empty_Project): Add parameter Tree. Returns the data with the default + naming data of the project tree Tree. + (Initialize): After updating Std_Naming_Data, copy its value to the + component Naming of Project Empty. + (Register_Default_Naming_Scheme): Use and update the default naming + component of the project tree, instead of the global variable + Std_Naming_Data. + (Standard_Naming_Data): Add defaulted parameter Tree. If project tree + Tree is not defaulted, return the default naming data of the Tree. + (Initial_Buffer_Size): Constant moved from private part + (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new + variables initialized in procedure Initialize. + (Add_To_Buffer): Add two in out parameters to replace global variables + Buffer and Buffer_Last. + (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New + functions. + Adapt to changes to use new type Project_Tree_Ref and dynamic tables and + hash tables. + (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter + for the project tree. + (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and + constant at the beginning of the package spec, so that they cane be used + in subprograms before their full declarations. + (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref + (Empty_Project): Add parameter of type Project_Node_Ref + (Private_Project_Tree_Data): Add component Default_Naming of type + Naming_Data. + (Buffer, Buffer_Last): remove global variables + (Add_To_Buffer): Add two in out parameters to replace global variables + Buffer and Buffer_Last. + (Current_Packages_To_Check): Remove global variable + (Empty_Name): Move to private part + (No-Symbols): Make it a constant + (Private_Project_Tree_Data): New type for the private part of the + project tree data. + (Project_Tree_Data): New type for the data of a project tree + (Project_Tree_Ref): New type to designate a project tree + (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter + for the project tree. + + * prj-attr.ads: Add with Table; needed, as package Prj no longer + imports package Table. + + * prj-com.adb: Remove empty, no longer needed body + + * prj-com.ads: Move most of the content of this package to package Prj. + + * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to + designate the project node tree and Packages_To_Check to replace + global variable Current_Packages_To_Check. + Add new parameters In_Tree and Packages_To_Check to local subprograms, + when needed. Adapt to changes in project manager with project node tree + In_Tree. + + * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the + project tree to most subprograms. Move tables and hash tables to + private part of package Prj. + Adapt to changes in project manager using project tree In_Tree. + + * prj-makr.adb (Tree): New constant to designate the project node tree + Adapt to change in project manager using project node tree Tree + + * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly + display the Library_Src_Dir and the Library_Dir. + Add new parameter In_Tree to designate the project node tree to most + subprograms. Adapt to changes in the project manager, using project tree + In_Tree. + (Check_Naming_Scheme): Do not alter the casing on platforms where + the casing of file names is not significant. + (Check): Add new parameter In_Tree to designate the + + * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to + designate the project tree. + Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process + + * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables, + to replace those that were in the private part of package Prj. + Add new parameter In__Tree to designate the project node tree to most + subprograms. Adapt to change in Prj.Tree with project node tree In_Tree. + (Post_Parse_Context_Clause): When specifying the project node of a with + clause, indicate that it is a limited with only if there is "limited" + in the with clause, not necessarily when In_Limited is True. + (Parse): Add new parameter In_Tree to designate the project node tree + + * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to + designate the project node tree. Adapt to change in Prj.Tree with + project node tree In_Tree. + + * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project + tree In_Tree in the call to function Empty_Process to give its initial + value to the project data Processed_Data. + Add new parameters In_Tree to designate the project tree and + From_Project_Node_Tree to designate the project node tree to several + subprograms. Adapt to change in project manager with project tree + In_Tree and project node tree From_Project_Node_Tree. + + * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables, + to replace those that were in the private part of package Prj. + Add new parameter In_Tree to designate the project node tree to most + subprograms. Adapt to change in Prj.Tree with project node tree In_Tree. + + * prj-tree.ads, prj-tree.adb: Add new parameter of type + Project_Node_Tree_Ref to most subprograms. + Use this new parameter to store project nodes in the designated project + node tree. + (Project_Node_Tree_Ref): New type to designate a project node tree + (Tree_Private_Part): Change table to dynamic table and hash tables to + dynamic hash tables. + + * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate + the project tree to most subprograms. Adapt to changes in project + manager using project tree In_Tree. + + * makegpr.adb (Project_Tree): New constant needed to use project + manager. + +2005-03-15 Olivier Hainque + + * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler + for sigactions with SA_SIGINFO set. Call + __gnat_adjust_context_for_raise before raising, to perform the + potentially required adjustments to the machine context for the GCC + unwinder. + + * raise.h (__gnat_adjust_context_for_raise): New prototype. + + * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision. + Adjust PC by one in the provided machine context. + (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags, + so that the handler is passed the context structure to adjust prior to + the raise. + (__gnat_error_handler) HPUX: Adjust the signature to match what an + SA_SIGINFO sigaction should look like. Call + __gnat_adjust_context_for_raise before actually raising. + (__gnat_adjust_context_for_raise): Default noop to help PC + adjustments before raise from signal handlers. + (__gnat_error_handler): Indirectly call a predicate function to + determine if a condition should be resignaled or not. + (__gnat_set_resignal_predicate): User interface to modify the predicate. + (__gnat_default_resignal_p): Default GNAT predicate. + +2005-03-15 Doug Rupp + + * adaint.c: Prefix #include of VMS system header files with vms/ + [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS. + Do not define a dummy function "convert_addresses" under Darwin, + not needed. + + * tb-alvms.c, expect.c: Prefix #include of VMS system header files + with vms/ + +2005-03-15 Nicolas Setton + + * tracebak.c: Under Darwin, use the same unwinding mechanisms as under + PPC/AIX. + +2005-03-15 Robert Dewar + + * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for + AI-386. + + * a-retide.ads: Minor comment changes + +2005-03-15 Robert Dewar + + * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads, + a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move + Realloc_For_Chunk to private part of package. + New subprograms for AI-301 + + * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of + Get_Line procedure. + Avoid unnecessary use of Get/Set_Wide_String + +2005-03-15 Robert Dewar + + 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 + left this interface a bit broken. + + * a-suteio.adb: Avoid unnecessary use of Get/Set_String + + * g-spipat.ads, g-spipat.adb: New interface for Get_String + Minor reformatting (function specs) + + * g-spitbo.adb: New interface for Get_String + + * g-spitbo.ads: Minor reformatting + + * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String + + * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String + +2005-03-15 Javier Miranda + Robert Dewar + Thomas Quinot + Richard Kenner + + * atree.ads, atree.adb: Add support for Elist24 field + + * atree.h: Fix wrong definition of Field27 + Add support for Elist16 field + Add support for Elist24 field + + * einfo.ads, einfo.adb (Abstract_Interfaces, + Set_Abstract_Interfaces): New subprograms. + (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New + subprograms. + (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of + entities rather than a single node. + (Is_Interface, Set_Is_Interface): New subprogram + (First_Tag_Component): New syntesized attribute + (Next_Tag_Component): New synthesized attribute + (Write_Entity_Flags): Upgraded to write Is_Interface + (Write_Field24_Name): Upgraded to write Abstract_Interfaces + (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias + (Task_Body_Procedure): New subprogram to read this attribute. + (Set_Task_Body_Procedure): New subprogram to set this attribute. + (Has_Controlled_Component): Now applies to all entities. + This is only a documentation change, since it always worked to apply + this to other than composite types (yielding false), but now this is + official. + Update documentation on Must_Be_Byte_Aligned for new spec + + * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb, + exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the + uses of the Access_Disp_Table attribute to reference the first dispatch + table associated with a tagged type. As + part of the implementation of abstract interface types, + Access_Disp_Table has been redefined to contain a list of dispatch + tables (rather than a single dispatch table). + Similarly, upgrade all the references to Tag_Component by the + new attribute First_Tag_Component. + (Find_Inherited_TSS): Moved to exp_tss. + Clean up test in Expand_N_Object_Declaration for cases + where we need to do a separate assignment of the initial value. + (Expand_N_Object_Declaration): If the expression in the + declaration of a tagged type is an aggregate, no need to generate an + additional tag assignment. + (Freeze_Type): Now a function that returns True if the N_Freeze_Entity + is to be deleted. + Bit packed array ops are only called if operands are known to be + aligned. + (Component_Equality): When returning an N_Raise_Program_Error statement, + ensure that its Etype is set to Empty to avoid confusing GIGI (which + expects that only expressions have a bona fide type). + (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly + determine the amount of data to be copied. + + * par.adb (P_Interface_Type_Definition): New subprogram that parses the + new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345): + INTERFACE_TYPE_DEFINITION ::= + [limited | task | protected | synchronized] interface + [AND interface_list] + + * par-ch3.adb (P_Type_Declaration): Modified to give support to + interfaces. + (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to + interfaces. + (P_Interface_Type_Definition): New subprogram that parses the new + syntax rule of Ada 2005 interfaces + (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error + messages by the correct RENAMES (quotes removed). + + * sem_prag.adb: Upgrade all the references to Tag_Component by the new + attribute First_Tag_Component. + + * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed + (Interface_List, Set_Interface_List): New subprograms. + (Interface_Present, Set_Interface_Present): New subprograms. + (Limited_Present, Set_Limited_Present): Available also in derived + type definition nodes. + (Protected_Present, Set_Protected_Present): Available also in + record type definition and + derived type definition nodes. + (Synchronized_Present, Set_Synchronized_Present): New subprograms. + (Task_Present, Set_Task_Present): New subprogram. + (Task_Body_Procedure): Removed. + (Set_Task_Body_Procedure): Removed. + These subprogram have been removed because the attribute + Task_Body_Procedure has been moved to the corresponding task type + or task subtype entity to leave a field free to store the list + of interfaces implemented by a task (for AI-345) + Add Expression field to N_Raise_Statement node for Ada 2005 AI-361 + (Null_Exclusion_Present): Change to Flag11, to avoid conflict with + expression flag Do_Range_Check + (Exception_Junk): Change to Flag7 to accomodate above change + (Box_Present, Default_Name, Specification, Set_Box_Present, + Set_Default_Name, Set_Specification): Expand the expression + "X in N_Formal_Subprogram_Declaration" into the corresponding + two comparisons. Required to use the csinfo tool. + + * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where + "with string" given. + + * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string + expression given. + + * par-ch11.adb (P_Raise_Statement): Recognize with string expression + in 2005 mode + + * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity + attribute Task_Body_Procedure rather than the old semantic field that + was available in the task_type_declaration node. + + * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal + interface type definitions. + (P_Formal_Derived_Type_Definition): Modified to handle the list of + interfaces. + + * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a + task type declaration. + (P_Protected): Modified to handle the list of interfaces in a + protected type declaration. + +2005-03-15 Doug Rupp + Vincent Celier + + * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit + (Gen_Output_File_C): Likewise. + (Gen_Main_C): Issue #include to avoid warning + +2005-03-15 Thomas Quinot + + * checks.adb (Get_E_First_Or_Last): When the expression being retrieved + is an N_Raise_Constraint_Error node, create a new copy of it without + going through a call to Duplicate_Subexpr. + +2005-03-15 Eric Botcazou + Richard Kenner + Nicolas Setton + Ed Schonberg + + PR ada/19900 + 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. + (gnat_to_gnu_entity, case E_Component): Always look at + Original_Record_Component if Present and not the entity. + (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes + of tagged extension types by not making field for components that are + inside the parent. + (gnat_to_gnu_entity) : Fix typo in the alignment formula + (gnat_to_gnu_entity) : Do not convert again the + expression to the type of the object when the object is constant. + Reverse defer_debug_incomplete_list before traversing it, so that trees + are processed in the order at which they were added to the list. This + order is important when using the stabs debug format. + If we are deferring the output of debug information, also defer this + output for a function return type. + When adding fields to a record, prevent emitting debug information + for incomplete records, emit the information only when the record is + complete. + (components_to_record): New parameter defer_debug. + (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set. + (gnat_to_gnu_field_decl): New function. + (substitution_list, annotate_rep): Call it. + (gnat_to_gnu_entity, case E_Record_Subtype): Likewise. + (gnat_to_gnu_entity, case E_Record_Type): Likewise. + No longer update discriminants to not be a COMPONENT_REF. + (copy_alias_set): Strip padding from input type; also handle + unconstrained arrays properly. + + * gigi.h (write_record_type_debug_info): New function. + Convert to use ANSI-style prototypes. Remove unused + declarations for emit_stack_check, elab_all_gnat and + set_second_error_entity. + (gnat_to_gnu_field_decl): New decl. + + * utils.c (write_record_type_debug_info): New function. + (finish_record_type): Delegate generation of debug information to + write_record_type_debug_info. + (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation. + (update_pointer_to): Fix pasto. + (convert) : Accept slight type variations when + converting to an unchecked union type. + + * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True, + replace the N_Freeze_Entity with a null statement. + + * freeze.adb (Freeze_Expression): If the freeze nodes are generated + within a constrained subcomponent of an enclosing record, place the + freeze nodes in the scope stack entry for the enclosing record. + (Undelay_Type): New Subprogram. + (Set_Small_Size): Pass T, the type to modify; all callers changed. + (Freeze_Entity, Freeze_Record_Type): Change the way we handle types + within records; allow them to have freeze nodes if their base types + aren't frozen yet. + + * exp_util.adb (Remove_Side_Effects): Properly test for + Expansion_Delayed and handle case when it's inside an + N_Qualified_Expression. + + * sem_ch3.adb (Derived_Type_Declaration): New predicate + Comes_From_Generic, to recognize accurately that the parent type in a + derived type declaration can be traced back to a formal type, because + it is one or is derived from one, or because its completion is derived + from one. + (Constrain_Component_Type): If component comes from source and has no + explicit constraint, no need to constrain in in a subtype of the + enclosing record. + (Constrain_Access, Constrain_Array): Allow itypes to be delayed. + Minor change to propagate Is_Ada_2005 flag + + * trans.c (gnat_to_gnu, case N_Aggregate): Verify that + Expansion_Delayed is False. + (assoc_to_constructor): Ignore fields that have a + Corresponding_Discriminant. + (gnat_to_gnu) : Restructure. If the + function returns "by target", dereference the target pointer using the + type of the actual return value. + : Be prepared for a null gnu_result. + (processed_inline_subprograms): Check flag_really_no_inline + instead of flag_no_inline. + (set_second_error_entity): Remove unused function. + (gnat_to_gnu, case N_Selected_Component): Call + gnat_to_gnu_field_decl. + (assoc_to_constructor): Likewise. + +2005-03-15 Robert Dewar + Ed Schonberg + Richard Kenner + + * exp_pakd.adb (Create_Packed_Array_Type): Do not set + Must_Be_Byte_Aligned for cases where we do not need to use a + System.Pack_nn unit. + + * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well + as procedures. + Needed now that we do some processing for IN parameters as well. This + may well fix some unrelated errors. + (Expand_Call): Handle case of unaligned objects (in particular those + that come from packed arrays). + (Expand_Inlined_Call): If the subprogram is a renaming as body, and the + renamed entity is an inherited operation, re-expand the call using the + original operation, which is the one to call. + Detect attempt to inline parameterless recursive subprogram. + (Represented_As_Scalar): Fix to work properly with private types + (Is_Possibly_Unaligned_Object): Major rewrite to get a much more + accurate estimate. Yields True in far fewer cases than before, + improving the quality of code that depends on this test. + + * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate + over both visible and private declarations to remove them from tree, + and mark subprograms declared in package as eliminated, to prevent + spurious use in subsequent compilation of generic units in the context. + + * exp_util.ads: Minor cleanup in variable names + + * sem_eval.ads, sem_eval.adb: Minor reformatting + (Compile_Time_Known_Bounds): New function + +2005-03-15 Ed Schonberg + + * exp_ch7.adb (Convert_View): Use base types of underlying types when + determining whether an unchecked conversion is needed for the argument + of an initialization call. + +2005-03-15 Ed Schonberg + + * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type + that appears in the instantiation rather than the internal subtype + generated in the wrapper package, to avoid anomalies in gigi when the + target is derived from a private type whose full view is an access type. + +2005-03-15 Robert Dewar + + * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used, + not needed. + Add documentation to replace the use of this flag + Fix kludge for Maximum_Alignment on x86 so that it does not apply to + the x86_64. + +2005-03-15 Thomas Quinot + + * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved + here from exp_attr so it can be shared between exp_attr and exp_dist. + (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of + all TSS names, not a subset thereof, and the previous name introduced + an unnecessarily confusion that a distinction might exist between + "OK" TSS names and some "not OK" TSS names. + +2005-03-15 Doug Rupp + + * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style + Command_Name. + +2005-03-15 Pascal Obry + Eric Botcazou + + 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. + + * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler) + table and pass it to __gnat_install_SEH_handler(). + (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS. + + * lang.opt: Fix specification of -fRTS=. + +2005-03-15 Doug Rupp + Bernard Banner + Vincent Celier + Arnaud Charlet + + PR ada/6852 + This change works fine when gnatlib is built from the gcc directory, + but does not work when using the libada Makefile, since GCC_FOR_TARGET + is not passed to ada/Makefile.in, so more work is needed by a + Makefile/configure expert. + + * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library. + set GMEM_LIB on ia64 linux to add optional support for gnatmem. + Setup gnatlink switch -M for x86_64 linux, as it is already setup + for Linux x86. + (gnatlib-shared-default): Use GNATLIBCFLAGS as well. + Run ranlib on libgccprefix.a + Define PREFIX_OBJS for Darwin, to build libgccprefix. + (ADA_INCLUDE_SRCS): Split Ada packages. + +2005-03-15 Robert Dewar + + * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind + + * impunit.adb: Add GNAT.UTF_32 + + * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff + + * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng + now uses GNAT.UTF_32). + + * g-utf_32.ads, g-utf_32.adb: This is a new unit with full + capabilities for categorizing characters using Unicode categories + +2005-03-15 Ed Schonberg + + * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an + instantiation that has been rewritten as a package body, retrieve spec + to generate proper name for implicit_with_clause. + (Install_Parents): Recognize a parent that is an instantiation but has + been rewritten as a package declaration during analysis. + +2005-03-15 Javier Miranda + Ed Schonberg + + * sem_ch12.adb (Instantiate_Object): If the analysis of the actual + parameter reported some error we immediately return. This improves the + behaviour of the frontend in case of errors. + (Install_Parent, Remove_Parent): Introduce new flag + Parent_Unit_Visible, to preserve the proper visibility of the ultimate + ancestor of a generic child unit, when the child is being instantiated. + (Inline_Instance_Body): If we are compiling the private + part or the body of a child unit, restore the proper visibility of the + parents after compiling the instance body. + +2005-03-15 Ed Schonberg + Javier Miranda + + PR ada/15608 + * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion + of a private type, in which case it is underlying_type that denotes + the proper task. Also modified to use the new entity attribute + that is directly available in the task type and task subtype entities + (Build_Actual_Subtype_Of_Component): Handle properly multidimensional + arrays when other dimensions than the first are constrained by + discriminants of an enclosing record. + (Insert_Explicit_Dereference): If the prefix is an indexed component or + a combination of indexed and selected components, find ultimate entity + and generate the appropriate reference for it, to suppress spurious + warnings. + (Note_Possible_Modification): If an entity name has no entity, return. + (Is_Variable): A function call never denotes a variable. + (Requires_Transient_Scope): For record types, recurse only on + components, not on internal subtypes that may have been generated for + constrained components. + +2005-03-15 Ed Schonberg + + * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked + Eliminated as candidates for resolution. Both efficient, and avoids + anomalies with operators declared in deleted code. + (Process_Implicit_Dereference_Prefix): Use this procedure whenever + expansion is disabled (as when compiling a generic) to prevent spurious + warnings on prefixes of selected components. + +2005-03-15 Ed Schonberg + + * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is + attached to a list before checking whether it appears in the private + declarations of the current package. + (Make_Inequality_Operator): Insert declaration in proper declarative + list rather than just setting the Parent field, so that + Is_Private_Declaration can handle it properly. + +2005-03-15 Ed Schonberg + + * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is + a renaming a body, check that the renamed subprogram in not intrinsic. + (Find_Direct_Name): If several use_visible entities hide + each other, and the context is a predefined file compiled through + rtsfind, keep only the entity that comes from a predefined file. + +2005-03-15 Geert Bosch + + * s-fatgen.adb (Valid): Extend special exceptions to account for long + long float padding to also cover AMD64 and IA64. + +2005-03-15 Gary Dismukes + + * s-imgwch.adb: Add with and use of Interfaces. + (Img_Wide_Character): Change type of Val to Unsigned_16. + (Img_Wide_Wide_Character): Change type of Val to Unsigned_32. + +2005-03-15 Matthew Gingell + + * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX. + +2005-03-15 Robert Dewar + + * usage.adb: Add missing lines for -gnat95 and -gnat05 switches + + * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag + + * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95 + +2005-03-15 Robert Dewar + + * s-bitops.adb, s-bitops.ads, + s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads, + s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb, + tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads, + s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads, + s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads, + s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads, + s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, + s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor + reformatting. + +2005-03-15 Eric Botcazou + + * utils2.c (build_binary_op): Fix typo. + +2005-03-15 Doug Rupp + + * s-crtl.ads (popen,pclose): New imports. + +2005-03-15 Cyrille Comar + + * comperr.adb (Compiler_Abort): remove references to obsolete + procedures in the bug boxes for various GNAT builds. + +2005-03-15 Vincent Celier + + * snames.ads, snames.adb: Save as Unix text file, not as DOS text file + +2005-03-15 Geert Bosch + Arnaud Charlet + Robert Dewar + Cyrille Comar + Sergey Rybin + + * gnat_ugn.texi: Remove extended inline assembly example, as it was far + too specific and long-winded to be appropriate for the GNAT User's + Guide. + Warn about use of GCC switches not documented in the GNAT User's Guide, + as these may cause generated code to not conform to Ada semantics. + Remove mention of -gdwarf-2 for sparc64, since this is now the default. + Add documentation for -gnat95 and -gnat05 switches + Remove paragraph documenting obsolete way to refer to third party + libraries. + Add a few references to Ada_05 that were missing. + Update documentation on -gnatZ/-gnatL. + Document limitation when using -m64 under Solaris. + Change the "Name Casing" subsection of the pretty-printer section + according to the changes in the dictionary processing. + + * gnat_rm.texi: Document the Ada_05 pragma. + Section on record representation clauses describes the new more + relaxed rules about placement of large packed bit array components. + Add documentation of GNAT.UTF_32 + +2005-03-12 Daniel Berlin + + * misc.c (gnat_post_options): Turn off structural + aliasing for now. + +2005-03-08 Laurent Guerby + + * system-linux-sparc.ads: Fix typo in previous commit. + +2005-03-07 James A. Morrison + Laurent Guerby + + PR ada/20035 + * system-linux-sparc.ads: New. + * Makefile.in: Add sparc linux entry. + +2005-02-27 Danny Smith + + * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth + parameters as unused. + +2005-02-26 Nathanael Nerode + Partial merge from libada-gnattools-branch: + + 2004-12-02 Nathanael Nerode + * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags + into code in gnattools/Makefile.in. Remove direct dependencies on + stamp-tools by tools clauses. + 2004-12-02 Nathanael Nerode + * config-lang.in: Add gnattools to $lang_dirs. + +2005-02-13 Andrew Pinski + + PR ada/19942 + * utils.c (gnat_type_for_mode): Return null instead of ICE because + we asked for an unknown mode. + +2005-02-12 Richard Henderson + + * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes; + validate SCALAR_INT_MODE_P before calling gnat_type_for_size. + +2005-02-10 Andreas Jaeger + + * init.c (__gnat_initialize): Mark parameter as unused. + +2005-02-09 Doug Rupp + + * g-expect-vms.adb (Non_Blocking_Spawn): Separate out. + * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits. + +2005-02-09 Doug Rupp + + * gnatchop.adb (dup, dup2), + g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL. + + * gnatlbr.adb (mkdir), + mlib-tgt-vms-ia64.adb (popen, plose): Import with decc$ prefix. + + * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import. + +2005-02-09 Doug Rupp + + * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions. + +2005-02-09 Robert Dewar + Thomas Quinot + Javier Miranda + Pascal Obry + Ed Schonberg + Doug Rupp + Gary Dismukes + Richard Kenner + + * g-zstspl.ads: New file. + + * a-chahan.ads, a-chahan.adb: Add declarations from AI-285 + + * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in + Ada 95 mode + Add definition of Wide_Wide_Space for AI-285 + + * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new + interface (to support Ada 95 and Ada 2005 units). + Add Unbounded_IO files + Add entries for Wide_Wide packages for AI-285 + Add list of containers packages to Ada 2005 unit list + + * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to + support new Unbounded_IO package cleanly. + + * g-utf_32.ads, g-utf_32.adb: New files. + + * Makefile.rtl: Add entry for g-utf_32 + Add new files for Unbounded_IO + Adjust make file for new AI-285 wide wide packages + Add AI-302 containers to the run time. + + * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads, + a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New + subprograms for AI-301. + + * a-stwiun.adb, a-stwiun.ads: Minor reformatting. + + * a-stunau.ads: Minor comment correction + + * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes + etc. + Also extend Text_IO_Kludge to support Wide_Wide_Text_IO + (Check_RPC): Update to match changes in expanded code. + Clean up unused entity. + + * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String + was not taken into account. + This includes proper initialization with Normalize_Scalars. + (Get_Simple_Init_Val): Major rewrite for initialize scalars and + normalize scalars cases (particularly the latter) to do a better job + of finding invalid representations. + + * s-scaval.ads, s-scaval.adb: Add values for zero invalid values + + * s-strops.ads, s-strops.adb: Remove string normalize routines, never + used + + * exp_dist.adb: Add support for wide wide character type + (Expand_Receiving_Stubs_Bodies): For a package declaration that has a + private part, generate stub bodies at the end of the private part, + not the visible part. + (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for + PolyORB support. + (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and + generic wrapper to execute final processing after completing the + expansion of the RPC receiver for an RACW. + + * snames.h, snames.ads, snames.adb: Add definitions for wide_wide + packages and attributes. + (Preset_Names): Addition of the new reserved words of Ada 2005, + that is interface, overriding and synchronized. + (Get_Pragma_Id): Give support to the use of the new reserved word + "interface" as a pragma name. + (Is_Pragma_Name): Give support to the use of the new reserved word + "interface" as a pragma name. + (Preset_Names): Add stream_size string for the Stream_Size Ada2005 + attribute implementation. + + * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity + checks to entities that are output parameters of Asm operations. + Handle the Stream_Size attribute. + Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width + + * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type + + * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error + for second parameter being 0.0. + Add support for wide wide character type. + (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute. + + * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb, + s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads, + s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads, + s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support + for wide wide character cases. + + * cstand.adb: Create entities for Wide_Wide_Character and + Wide_Wide_String. + + * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in + accordance with AI-258. + Add new declarations for 16/32 bit C character types (Part of AI285) + + * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag + (Obsolescent_Warning): New field + (Rep_Clause): New local subprogram used to share code. Returns the rep + clause for which the name is given in parameter. + (Has_Stream_Size_Clause): New routine. + (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause. + (Address_Clause): Implementation is now using Rep_Clause. + (Alignment_Clause): Idem. + (Size_Clause): Idem. + + * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005 + entity in non-Ada 2005 mode and generate warning. + + * par-prag.adb: Add handling of one argument form for pragma Ada_05. + (Prag): Code cleanup. Remove old gnat pragma "overriding" + + * sem_prag.adb: Add handling of one argument form for pragma Ada_05 + (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings + on the named unit if the pragma is not in the current compilation unit, + so that elaboration calls in the current unit can set up an elaboration + dependency on the named unit, as needed. + (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library + subprogram as well as for subprograms declared within a package. + (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT + pragma overriding. + + * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched + to z) to avoid some instances of duplication for Wide_Wide packages. + + * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide + characters. + + * scn.adb: Char_Literal_Value field is now a Uint + + * scng.adb: Significant rewrite to handle new Ada 2005 features + allowing wide and wide wide characters in program text, e.g. for + identifiers, as described in AI-285. + (Set_Reserved): New procedure, makes setting up keywords cleaner. + (Initialize_Scanner): Register the new reserved words of Ada 2005. + (Scan): Give support to the new reserved words. + + * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a + warning notifying that interface, overriding, and synchronized are + new reserved words. + (P_Pragma): Allow the use of the new reserved word "interface" as + a pragma name. + + * gnatls.adb, gnatbind.adb, + ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename + identifiers named "interface" to "SAL_Interface". + + * bindgen.adb (Gen_Main_Ada): Add support for the new SEH + (Structured Exception handling). + (Gen_Main_C): Idem. + + * bindgen.adb: + (Gen_Main_Ada): Set the default exit code if specified. + (Gen_Main_C): Likewise. + Part of *DC20-006. + (Gen_Output_File_C): Remove redundant output of gnat_exit_status. + Code cleanup. Rename identifiers named "interface" to "SAL_Interface" + + * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of + new -Xnnn switch. + + * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that + has a collision with the new Ada 2005 "interface" reserved word. + + * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode, + generate a warning notifying that interface, overriding, and + synchronized are new reserved words. + + * scans.ads (Token_Type): Addition of the tokens corresponding to the + new reserved words of Ada 2005: Tok_Interface, Tok_Overriding + and Tok_Synchronized. + + * sem_res.adb (Resolve_Actuals): Change error messages to refer to + "dispatching" rather than "primitive" operations, since dispatching + calls are now allowed to abstract formal subprograms (which are not + primitive). + Char_Literal_Value field is now a Uint + (Resolve_Slice): If the prefix is an access to an unconstrained array, + compute the actual subtype of the designated object to impose the proper + index constraints. + (Resolve_Selected_Component): Do not insert an access check if the + prefix is an access type: such a node is expanded into an explicit + dereference, on which the access check is performed anyway. Removes + expensive duplicate checks. + (Resolve_Call): Use new flag Is_Obsolescent and field + Obsolescent_Warning so that pragma Obsolescent works on library + subprograms. + Add support for wide wide character type + (Resolve_Allocator): Replace the error message on wrong null-exclusion + value by a warning message. + (Resolve_Type_Conversion): If the mixed-mode expression is interpreted + as fixed-point, and one of the operands is non-static and universal, it + can only be an illegal exponentiation operation, in which case there is + no real value to retrieve. + + * exp_strm.adb: Add support for wide wide character type + (Build_Elementary_Input_Call): Compute the size of the stream element by + querying the rep chain to find the Stream_Attribute attribute value. + (Build_Elementary_Write_Call): Ditto. + + * sem_aggr.adb: Char_Literal_Value field is now a Uint + Add support for wide wide character type + Replace the error messages on wrong null-exclusion value by warnings + as described in Ada 2005. + (Resolve_Extension_Aggregate): Document the fact that the error + message on class-wide expressions in extensions aggregates. + + * sem_case.adb: Add support for wide wide character type + + * sem_ch13.adb: Add support for wide wide character type + (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute. + + * sem_ch3.adb: Add support for wide wide character type + (Process_Subtype): If constraint is illegal for the type, set Ekind of + now-useless Itype, to prevent cascaded errors on a compiler built + without -gnatp. + + * sem_ch8.adb: Add with and use of Sem_Disp. + (Analyze_Subprogram_Renaming): Replace unclean uses of + Corresponding_Spec with Corresponding_Formal_Spec (and delete setting + of Corresponding_Spec to Empty). + (Attribute_Renaming): Replace use of Corresponding_Spec with + Corresponding_ Formal_Spec and simplify condition. + (Use_One_Package): Check that scope of homonym of identifier is defined, + before checking whether it is a wrapper package. + Add support for wide wide character type + + * sem_eval.adb: Add support for wide wide character type. + (Eval_Arithmetic_Op): Check for compile time known signed integer + overflow in the non-static case. + (Subtypes_Statically_Match): A formal scalar type and its base type do + not statically match. + + * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to + "not in" for test of N_Formal_Subprogram_Declaration (which is now a + subtype). + (Unit_Declaration_Node): Ditto. + (Is_Variable_Prefix): For the case of an indexed component whose prefix + has a packed array type, the prefix has been rewritten into a type + conversion. Determine variable-ness from the converted expression. + Handle wide wide character cases. + + * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String + + * stringt.ads, stringt.adb: Handle full UTF-32 range. + Remove ["0A"] from comment, since it can look like a line terminator. + Currently we don't permit this, but this is under discussion by the + ARG, and it is easy enough to use a different example. + + * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for + handling UTF-32 encoding for wide wide character. + Implement new brackets coding ["hhhhhhhh"] + Add UTF-8 encodings for full UTF-32 range + + * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size + + * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31 + bit range Add full UTF-32 support. + (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to + notify that constraint error will be raised at run-time + because a null value is assigned to a null-excluding object. + Remove some obsolete declarations and make Char_Code + unsigned. + + * a-except.adb (Rcheck_30): New subprogram. Addition of the message + corresponding to CE_Null_Not_Allowed, and adjust the output of all the + Rcheck subprograms. + + * checks.adb (Check_Null_Not_Allowed): Replace the error message on + wrong null-exclusion value by a warning message. + (Enable_Range_Check): Do range check if the prefix is an + explicit dereference whose designated object is an unconstrained array. + Current algorithm for removing duplicate checks is over-eager in this + case. + + * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong + null-exclusion value by a warning message + + * atree.h, atree.ads, atree.adb: Remove Char_Code field support + completely. Add support for Uint2 field + + sem_ch2.adb, exp_ch11.adb, exp_dbug.adb, + exp_prag.adb: Char_Literal_Value field is now a Uint. + + * exp_util.adb (Insert_Actions): Replace + N_Formal_Subprogram_Declaration by + N_Formal_{Abstract|Concrete}_Subprogram_Declaration. + Char_Literal_Value field is now a Uint. + + * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function + defined for subprogram renaming declarations. When set, the field + indicates the defining entity of a corresponding formal subprogram + when the renaming corresponds to a formal subprogram association in an + instantiation. + (Set_Corresponding_Formal_Spec): New procedure to return + Corresponding_Formal_Spec field. + Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration + (which is now a subtype). + Char_Literal_Value field is now a Uint + + * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the + pointer to the base of the dispatch table. + Minor changes to comments. + (Controlling_Type): New function for determining the tagged type + associated with a tagged primitive subprogram. + (Expand_Dispatching_Call): Add support for a controlling actual that is + directly a value of type Ada.Tag rather than a tagged object. + + * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation + describing the new layout. + (Dispatch_Table): The expander computes the actual array size, allocates + the Dispatch_Table record accordingly, and generates code that displaces + the base of the record after the Typeinfo_Ptr component. The access to + these components is done by means of local functions. + (Offset_To_Top): New function. + (Typeinfo_Ptr): New function. + (Get_TSD): Modified to access the new position of the TSD. + (Set_TSD): Modified to save the TSD in its new position. + + * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the + case of formal abstract subprograms. Add check and message for -gnat05. + Update comments. + + * sem_ch12.adb: Add with and use for Sem_Disp. + (Analyze_Associations): Minor change from "=" to "in" for use of + N_Formal_Subtype_Declaration (which is now a subtype). + (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of + N_Formal_Subtype_Declaration (which is now a subtype). + (Analyze_Formal_Subprogram): Add handling for + N_Formal_Abstract_Subprogram, marking the formal as abstract and + dispatching, setting the controlling status of the formal parameters + and result, and issuing an error if there is no controlling type for + the formal subprogram. + (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec, + which is an unclean use of that field, we set the new field + Corresponding_Formal_Spec to make the formal subprogram available to + processing in Analyze_Subprogram_Declaration. + (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point, + Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type + Constrained, so that it is is does not statically match its anonymous + base type. + + * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for + abstract formal subprograms in error check for functions returning + abstract types. Set scope of new designator for + a parameterless subprogram, so that it is available when checking the + body for nested subprograms, before full analysis of said body. + (Analyze_Subprogram_Body): Warn on inlining bodies with nested + subprogram only if inner one comes from source. + (Analyze_Function_Call): If the call is given in object notation, the + analysis of the name rewrites the node and analyzes it with the proper + argument list. After analyzing the name, if the call has been rewritten + and the result type is set, no further analysis is needed. + (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype + mark in function specification, in a context where the formals are + visible and hide outer homographs. + + * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope + as the tagged type for the cases of abstract formal subprograms and + renamings of those. Clean up spec comments. + (Check_Dispatching_Context): Add error message to indicate "abstract + procedure", covering the case of a call to a formal abstract procedure + that has statically tagged operands. + (Check_Dispatching_Call): Check for the case of an actual given by + a tag-indeterminate function call whose type is an ancestor of the + containing call's associated tagged type. This situation can occur + for inherited primitives with function defaults. In this case we + use the tagged type's tag directly as the controlling argument for + the calls. + (Expand_Call): Name change on call to Expand_Dispatch_Call. + + * sprint.adb (Sprint_Node_Actual): Split + N_Formal_Subprogram_Declaration into two alternatives for the new + cases N_Formal_Abstract_Subprogram_Declaration and + N_Formal_Concrete_Subprogram_Declaration. + Char_Literal_Value field is now a Uint. + + * trans.c: Get rid of junk Uint2 reference. + Char_Literal_Value field is now a Uint. + (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P. + (gigi): Correct third arg to gimplify_body. + + * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag. + (TYPE_LANG_FLAG_0): Check for record or union. + + * treepr.adb: Char_Literal_Value field is now a Uint + + * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and + UI_From_CC. + + * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function + Add full UTF-32 support + Char_Code is now 32 bits + + * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with + wide character UTF_32 line terminators. + Initialize Main_Source_File to avoid error when no main + source is loaded. + + * errout.adb (Finalize): Do not check Num_SRef_Pragmas + (Main_Source_File) when no main source has been loaded, to avoid + potential crash. + +2005-02-09 Robert Dewar + + * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements + Fix name of Set routine + + * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to + fixed packages. + + * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb, + a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to + fixed packages + + * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function + forms of Get_Line subprograms for AI-301. + + * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, + a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb, + a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb, + a-stwima.ads: Minor reformatting. + +2005-02-09 Doug Rupp + Thomas Quinot + + * adaint.c, adaint.h + [VMS] (to_ptr32): New function. + (MAYBE_TO_PTR32): New macro. + (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv + for pointer size. + [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field. + [VMS] (#define fork()): Remove since unneccessary. + (__gnat_set_close_on_exec): New routine to support + GNAT.OS_Lib.Set_Close_On_Exec. + + * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for + the parent side as close-on-exec so that they are not inherited by the + child. + + * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to + set or clear the FD_CLOEXEC flag on a file descriptor. + +2005-02-09 Eric Botcazou + Richard Kenner + + 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). + (gnat_to_gnu_entity, case object): Do not treat a renaming that has + side-effects as if it were a constant; also make SAVE_EXPR to protect + side-effects. + (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a + UNION_TYPE. + (make_dummy_type): Set TYPE_UNCHECKED_UNION_P. + (components_to_record): Test it. + Fix improper usage of REFERENCE_CLASS_P. + + * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as + RECORD_TYPE. + + * utils2.c: Minor reformatting. + + * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION; + handle other cases like RECORD_TYPE. + + * utils.c (gnat_pushdecl): Set TREE_NO_WARNING. + +2005-02-09 Ed Schonberg + + * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a + component of an array of arrays in an assignment context, and the + aggregate has component associations that require sliding on + assignment, force reanalysis of the aggregate to generate a temporary + before the assignment. + (Must_Slide): Make global to the package, for use in Gen_Assign. + +2005-02-09 Ed Schonberg + + * exp_ch4.adb (Expand_Composite_Equality): If a component is an + unchecked union with no inferable discriminants, return a + Raise_Program_Error node, rather than inserting it at the point the + type is frozen. + (Expand_Record_Equality, Component_Equality): Handle properly the case + where some subcomponent is an unchecked union whose generated equality + code raises program error. + +2005-02-09 Doug Rupp + + * gnatbl.c: [VMS] (_POSIX_EXIT): Define. + [VMS] (#define exit hack): Remove. + +2005-02-09 Pascal Obry + Arnaud Charlet + + * init.c (__gnat_initialize): Add a new parameter eh which contains the + address of the exception registration. The Win32 version of this + routine calls __gnat_install_SEH_handler() to initialize the SEH + (Structured Exception Handling) handler. + (__gnat_error_handler) [Win32]: Removed. Not needed as we use + SEH (Structured Exception Handling) now. + (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH. + (__gnat_initialize for ppc-vxworks): Adjust comments and the + preprocessor condition protecting the call to the extra eh setup + subprogram, which is only available for the ppc target. + (__gnat_clear_exception_count): replaced reference to + variable taskIdCurrent by call to taskIdSelf(), cleaner. + + * seh_init.c: New file. + + * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o. + (GNATBIND_OBJS): Idem. + + * misc.c (gnat_parse_file): Update call to __gnat_initialize. This + routine takes a new parameter (a pointer to the exception registration + for the SEH (Structured Exception Handling) support. + + * raise.h: (__gnat_install_SEH_handler): New prototype. + Update copyright notice. + + * s-tassta.adb (Task_Wrapper): Declare the exception registration + record and initialize it by calling __gnat_install_SEH_handler. + +2005-02-09 Vincent Celier + + * make.adb (Gnatmake): Do not fail when the main project has no object + directory. + +2005-02-09 Doug Rupp + + * Makefile.in [VMS] (LN,LN_S): Define as cp -p + Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb. + [VMS]: Add translations for g-enblsp.adb. + + * s-asthan-vms.adb: Removed. + * s-asthan-vms-alpha.adb: Added. + +2005-02-09 Pascal Obry + + * Makefile.in (LIBGNAT_SRCS): Add seh_init.c. + (LIBGNAT_OBJS): Add seh_init.o. + +2005-02-09 Arnaud Charlet + + 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). + Remove references to Makefile.prolog/generic, no longer used. + +2005-02-09 Vincent Celier + + * prj-makr.adb (Process_Directory): Put file name in canonical case + before matching against the patterns. + If gnatname has been invoked as -gnatname + then invoke the compiler as -gcc, not just "gcc". + +2005-02-09 Ed Schonberg + + * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even + with expansion disabled. The actual subtype is needed among other + places when the selected component appears in the context of a loop + bound, and denotes a packed array. + (Operator_Check): Always use the first subtype in the + error message, to avoid the appearance of internal base types. + (Transform_Object_Operation): Copy each actual in full + to the parameter associations of the constructed call, rather than + using the shallow copy mechanism of New_Copy_List. This ensures that + the chaining of named associations is done properly. + (Complete_Object_Operation): Rewrite node, rather than + replacing it, so that we can trace back to the original selected + component. + + * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls, + and calls that use object notation, if the called function is not + declared in a withed unit, place the elaboration constraint on the + unit in the context that makes the function accessible. + (Check_Elab_Subtype_Declaration): Check whether a subtype declaration + imposes an elaboration constraint between two packages. + +2005-02-09 Ed Schonberg + + * sem_ch7.adb (Uninstall_Declarations): Exchange full and private + views of a private type after handling its private dependents, to + maintain proper stack discipline between entry and exit from the + package. + +2005-02-09 Cyrille Comar + + * s-finimp.adb: (Finalize_List): Optimize in the no-abort case. + Minor reformatting. + +2005-02-09 Arnaud Charlet + + * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len] + fields for foreign threads. + +2005-02-09 Doug Rupp + + * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite + recursion warnings when compiled with -gnatdm. + +2005-02-09 Robert Dewar + + * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions) + Slight fix to documentation of -gnaty with no parameters + + * xr_tabls.ads: Add ??? comment for missing overall comment + + * xsinfo.adb: Make default file name be sinfo.h, since this is what + we now use by default. + + * xsnames.adb: Adjust end of file test to look for five space followed + by '#' instead of six spaces. The format of xsnames.adb was modified + in the last update. + + * a-numeri.ads: Add reference to AI-388 for greek letter pi + identifier. + + * clean.adb: Minor reformatting. + + * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb, + gnatname.adb: Minor reformatting + Add 2005 to copyright output when utility is run + + * csets.adb: Eliminate obsolete comment + + * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout + Update comments. + + * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful. + +2005-02-09 Sergey Rybin + + * gnat_ugn.texi: Add to the gnatpp section the paragraph describing + the difference between compact and incompact layout and add the record + representation clause to the example illustrating different layouts. + Add the description of '-A5' gnatpp option ("align 'AT' keywords in + component clauses"). + +2005-02-09 Florian Villoing + + * gnat_ugn.texi: Fix typos. + Use @command to display 'gcc', 'gnatbind', etc. insted of @code or + @file. + Make proper use of @ref, @xref and @pxref to avoid duplication of "see" + in the generated documentation. + +2005-02-09 Arnaud Charlet + + * gnat_ugn.texi: Remove all mentions of FSU threads, which are no + longer supported. + Update linker wrapper when linking with non GNU C++. + +2005-02-09 Pascal Obry + + * gnat_ugn.texi: + Document the procedure to debug the DllMain routine on Windows. + Add note about -funwind-tables and mixed Ada and C/C++ programming in + ZCX mode. + Document new BIND qualifer /RETURN_CODES=VMS. + +2005-02-09 Ben Brosgol + + * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter + Edited gnatmetric chapter + +2005-02-09 Robert Dewar + + * gnat_rm.texi: + Changes to document new wide wide character support + For AI-285 + Update documentation on Normalize_Scalars and Initialize_Scalars + +2005-02-09 Pascal Obry + + * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting. + +2005-02-09 Jose Ruiz + + * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported + from the VxWorks kernel) that is needed for getting the active + priority of the different tasks. + + * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure. + Use a pragma Elaborate_Body in the spec file instead. + Noticed by code reading. + +2005-02-09 Thomas Quinot + + * exp_util.ads: Minor correction in comment. + +2005-02-09 Arnaud Charlet + + * s-taprop.ads (Initialize): Update comments. Remove pragma Inline, + since this procedure is now too complex to be worth inlining. + +2005-02-09 Richard Henderson + + * utils.c (gnat_define_builtin): Remove. + (gnat_install_builtins): Use build_common_builtin_nodes. + +2005-02-09 Arnaud Charlet + + * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads, + a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb, + a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb, + a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads, + a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb, + a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb, + a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb, + a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb, + a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, + a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, + a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads, + a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb, + a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb, + a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads, + a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, + a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads, + a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads, + a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, + a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads, + a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads, + a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, + a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads, + a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb, + a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads, + a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, + a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb, + a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb, + a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb, + a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb, + a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb, + a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb, + a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, + a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb, + a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005 + library. + +2005-01-27 Laurent Guerby + + * Makefile.in: Fix a-intnam.ads from previous commit, + add 2005 to copyright. + * a-intman-rtems.ads: Renamed to... + * a-intnam-rtems.ads: + +2005-01-27 Laurent Guerby + + * Makefile.in: Rename GNAT RTEMS specific files. + * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb, + 5rosinte.ads, 5rparame.adb: Replaced by files below. + * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb, + s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above. + +2005-01-27 Joel Sherrill + Laurent Guerby + + PR ada/19488 + * 5rosinte.ads: Add No_Key constant. + * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style. + * gsocket.h: Do not include with RTEMS either. + +2005-01-26 Laurent Guerby + + PR ada/19414 + * i-cobol.adb (Valid_Numeric): Handle zero length case. + +2005-01-20 Richard Henderson + + * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use + a-intnam-linux.ads and system-linux-alpha.ads. + * a-intnam-linux-alpha.ads: Remove file. + * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New. + * system-linux-alpha.ads: New file. + +2005-01-18 Jakub Jelinek + + PR ada/13470 + * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is + set to the new string. + +2005-01-18 Toon Moene + + * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support + to True. + +2005-01-18 Richard Henderson + + * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB, + THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize + for alpha-linux. + * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files. + +2005-01-14 Andrew Pinski + + * system-darwin-ppc.ads (ZCX_By_Default): Change to True. + (GCC_ZCX_Support): Likewise. + +2005-01-11 Bastian Blank + + * system-linux-s390.ads: Define Preallocated_Stacks. + * system-linux-s390x.ads: Likewise. + +2005-01-04 Arnaud Charlet + + * gnat_ugn.texi: Fix texi errors with null variables. + +2005-01-03 Thomas Quinot + + * gen-soccon.c: New utility program to generate g-soccon.ads + automatically. + + * socket.c, gsocket.h: Split inclusion of system header files into a + gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c. + + * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads, + g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads, + g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads, + g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files + should not be edited by hand anymore, but should be regenerated using + gen-soccon. + +2005-01-03 Robert Dewar + Ed Schonberg + Vincent Celier + + * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings + on/off, since this is an obsolescent feature, for which we now generate + a warning. + + * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if + warning mode is set and obsolescent usage of this attribute occurs. + (Resolve_Access, case 'Access): Note that GNAT uses the context type to + disambiguate overloaded prefixes, in accordance with AI-235. GNAT code + predates, and partly motivates, the adoption of the AI. + Implement new Ada 2005 attribute Mod + + * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005 + attribute Mod. + + * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod + + * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for + pragma restrictions. + New entry for Ada 2005 attribute Mod. + + * par-prag.adb: + Add recognition of new pragma Restrictions No_Dependence + Recognize restriction No_Obsolescent_Features at parse time + + * bcheck.adb: Add circuitry for checking for consistency of + No_Dependence restrictions. + + * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence + restrictions. + + * restrict.ads, restrict.adb: Add subprograms to deal with + No_Dependence restrictions. + + * rtsfind.adb: Check that implicit with's do not violate No_Dependence + restrictions. + + * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb, + sem_attr.adb: Add check for new restriction No_Obsolescent_Features + + * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new + dummy parameter to scng instantiation. + Needed for new restriction No_Obsolescent_Features + + * scn.adb: (Obsolescent_Check): New procedure + Needed for new restriction No_Obsolescent_Features + + * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as + specified by AI-285, needed for implementation of AI-388 (adding greek + pi to Ada.Numerics). + Add new generic formal to scng, needed for new restriction + No_Obsolescent_Features. + + * s-rident.ads: Add new restriction No_Obsolescent_Features. + + * ali.ads, ali.adb: Adjustments for reading new No_Dependence + restrictions lines. + (Scan_ALI): When finding an unexpected character on an R line, raise + exception Bad_R_Line, instead of calling Fatal_Error, so that, when + Ignore_Errors is True, default restrictions are set and scanning of the + ALI file continues with the next line. Also, when Bad_R_Line is raised + and Ignore_Errors is True, skip to the end of le line. + + * sem_ch10.adb: Check that explicit with's do not violate + No_Dependence restrictions. + (Install_Withed_Unit): Add code to implement AI-377 and diagnose + illegal context clauses containing child units of instance. + + * sem_prag.adb: Processing and checking for new No_Dependence + restrictions. + (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to + analyze and check the External argument. + + * a-numeri.ads: Add greek letter pi as alternative spelling of Pi + +2005-01-03 Robert Dewar + + * atree.adb: Add a fifth component to entities + This allows us to add 32 flags and four new fields + + * atree.ads: Add a fifth component to entities + This allows us to add 32 flags and four new fields + + * einfo.ads, einfo.adb: Document new fields and new flags now available + Add routines for printing new fields + + * treepr.adb: Call routines to print out additional fields if present + +2005-01-03 Arnaud Charlet + + * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb, + gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake. + + * Makefile.in: Add support to build shared Ada libraries on solaris x86 + Remove gpr2make, replaced by gprmake. + Remove references to gnatmem and libaddr2line. + Add indepsw.adb + + * checks.adb (Apply_Alignment_Check): Generate a warning if an object + address is incompatible with its base type alignment constraints when + this can be decided statically. + +2005-01-03 Olivier Hainque + + * decl.c (compatible_signatures_p): New function. The intended purpose + is to check if two function signatures for a call-site and a callee are + compatible enough for the call to be valid. The underlying purpose is + to check if a call to a mapped builtin is using the right interface. + The current code actually does not check antyhing - this a placeholder + for future refinements. + (gnat_to_gnu_entity) : Add preliminary bits to handle + builtin calls for convention Intrinsic. + + * gigi.h (builtin_decl_for): Declare (new function). + + * utils.c (gnat_install_builtins): Install the target specific builtins. + (builtin_decl_for): New function, provide a dummy body for now. + +2005-01-03 Geert Bosch + + * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used. + (Succ): Re-implement using Scaling, Exponent and Ceiling attributes. + (Pred): Implement in terms of Succ. + + * trans.c (convert_with_check): Reimplement conversion of float to + integer. + +2005-01-03 Ed Schonberg + Vincent Celier + + * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the + bounds can be negative, and must be declared Int, not Nat. + + * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an + array is checked after using the index in the array. + + * makegpr.adb (Add_Switches): Check if there is a package for the + processor. If there is no package, do not look for switches. + +2005-01-03 Ed Schonberg + + * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the + generation of predefined stream operations (specs and bodies) should + proceed. Under various restrictions these subprograms must not be + generated. + +2005-01-03 Thomas Quinot + + * exp_dist.adb: + Declare subprogram index in Build_RPC_Receiver_Body, to reduce the + amount of PCS-specific code in RACW stubs generation. + (Copy_Specification): Set Etype on copied formal parameter entities, as + this information is needed for PolyORB stubs generation. + (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused + variable Dynamic_Async. + (Build_Subprogram_Receiving_Stubs): Make PCS-specific + (Build_RPC_Receiver_Specification): Make generic again, as recent + changes have allowed RPC receivers to have the same profile for both + variants of the PCS. + Reorganise RPC receiver generation to reduce differences between the + structure of GARLIC and PolyORB RPC receivers. + (Add_Receiving_Stubs_To_Declarations): Make this subprogram + PCS-specific. + Simplify elaboration code for RCI packages. + + * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver + generation to reduce differences between the structure of GARLIC and + PolyORB RPC receivers. + + * s-stratt.adb: Fix typo in comment. + +2005-01-03 Thomas Quinot + + * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly + copied from Make_Init_Call). + + * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component + reads and assignments on a temporary variable declared with appropriate + discriminants. + +2005-01-03 Robert Dewar + + * i-c.adb (To_C): Raise CE if string is null and Append_Null + +2005-01-03 Robert Dewar + + * i-cstrin.adb (Update): Do not append a null in form called with a + String. This avoids unintended behavior. + +2005-01-03 Arnaud Charlet + + PR ada/17527 + * init.c: Fix warnings on Free BSD section. + +2005-01-03 Arnaud Charlet + + PR ada/16949 + * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by + xsinfo.adb). + +2005-01-03 Vincent Celier + + * make.adb (Collect_Arguments_And_Compile): Do not attempt to build + libraries when Unique_Compile is True (-u switch). + (Gnatmake): ditto. + +2005-01-03 Robert Dewar + + * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing + upper case letter or underscore after W, as allowed by spec. + +2005-01-03 Arnaud Charlet + + * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up + darwin port by using proper type definitions from header files. + Use SIGTERM instead of SIGABRT for SIGADAABORT. + +2005-01-03 Robert Dewar + + * par.adb: Enhance error message handling for configuration file + pragmas. + +2005-01-03 Robert Dewar + + * s-arit64.adb (Double_Divide): Put back changes that got accidentally + removed during the previous update (test properly for case of dividing + largest negative number by -1, which generates overflow). + +2005-01-03 Ed Schonberg + Sergey Rybin + + * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node + to use as the defining identifier for a formal package. + (Remove_Parent): If the instance takes place within (an instance of) + a sibling, preserve private declarations of common parent. + +2005-01-03 Ed Schonberg + + * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair, + to determine whether one of the operands is a fixed-point type for + which a user-defined multiplication or division operation might be + defined. + + * sem_res.adb (Valid_Conversion): The legality rules for conversions + of access types are symmetric in Ada 2005: either designated type can + be unconstrained. + +2005-01-03 Vincent Celier + + * s-fileio.adb (Temp_File_Record): Change length of string component + Name from L_tmpnam + 1 to max_path_len + 1. + +2005-01-03 Arnaud Charlet + + * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of + Self_Id.Deferral_Level = 0. + (Do_Pending_Action): Move this function to the spec. + + * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call + Do_Pending_Action explicitely when needed, in case we're using + No_Abort restrictions. + + * s-tassta.adb (Create_Task): If Abort is not allowed, reset the + deferral level since it will not get changed by the generated code. + Keeping a default value of 1 would prevent some operations (e.g. + select or delay) to proceed successfully. + +2005-01-03 Ben Brosgol + Robert Dewar + Cyrille Comar + + * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to + porting guide chapter (vms version). + Revised doc title (removed "for native platforms") and subtitle. + Add discussion on warning flag for obsolescent features. First we + note that it applies to obsolete GNAT features, which was previously + omitted. Second we contrast the behavior with that of the new + Ada 2005 AI-368 restriction No_Obsolescent_Features. + Preliminary rewriting of GNAT & libraries chapter in order to take + into account default project locations & new project manager + capabilities. + +2005-01-03 Robert Dewar + + * cstand.adb (Create_Operators): Clean up format and documentation of + unary and binary operator result tables. No change in code, just + reformatting and addition of comments. + + * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb, + sem_ch2.adb: Minor reformatting + + * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads, + sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to + comments for Tree_Read and Tree_Write. + +2005-01-03 Pascal Obry + + * exp_attr.ads: Minor reformatting. + +2005-01-03 Romain Berrendonner + + * comperr.adb (Compiler_Abort): Add specialized message for GAP + versions. + +2005-01-03 Ed Schonberg + + * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check + whether the ancestor type is private, as may be the case with nested + instantiations. + + + +Copyright (C) 2005 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff --git a/gcc/ada/ChangeLog-2006 b/gcc/ada/ChangeLog-2006 new file mode 100644 index 00000000000..b43e0106f66 --- /dev/null +++ b/gcc/ada/ChangeLog-2006 @@ -0,0 +1,4462 @@ +2006-12-07 Geoffrey Keating + + * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE. + * adaint.c: Likewise. + +2006-12-05 Aldy Hernandez + + Merge from gimple-tuples-branch: + 2006-11-02 Aldy Hernandez + + * 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 + + * 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 + + 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 + + * trans.c (maybe_stabilize_reference): Remove handling of + FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR. + +2006-11-05 Arnaud Charlet + + PR ada/29707 + * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads + (To_Target_Priority): New function. + +2006-10-31 Robert Dewar + + * 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 + Bob Duff + Ed Schonberg + + * 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 + + * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned + error status. + +2006-10-31 Hristian Kirtchev + Jose Ruiz + + * 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 + Jose Ruiz + + * 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 + + * 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 + Eric Botcazou + + * 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 + + * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer. + (Initialize): Add type conversions required by above change. + +2006-10-31 Jose Ruiz + + * 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 + Eric Botcazou + Vincent Celier + + * 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 + Nicolas Setton + Olivier Hainque + Gary Dismukes + + * 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) : 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. + : 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. + : 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) : Restore comment. + (gnat_to_gnu_entity) : Do not use a dummy type. + (gnat_to_gnu_entity) : 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) : 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) : Do not force + TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate. + : Likewise. + (gnat_to_gnu_entity) : Add support for regular + incomplete subtypes and incomplete subtypes of incomplete types visible + through a limited with clause. + (gnat_to_gnu_entity) : 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) : Ignore constant overflow + stemming from type conversion for the lhs. + (Attribute_to_gnu) : Also divide the alignment by the + number of bits per unit for components of records. + (gnat_to_gnu) : 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) : 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 + + * 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 + + * 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 + Jose Ruiz + + * 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 + + * 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 + + * binde.adb (Better_Choice, Worse_Choice): Implement new preferences. + +2006-10-31 Robert Dewar + + * 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 + + * 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 + Ed Schonberg + + * 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 + + * 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 + Ed Schonberg + Bob Duff + + * 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 + + * 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 + + * 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 + Ed Schonberg + + * 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 + Thomas Quinot + Javier Miranda + Robert Dewar + + * 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 + + * 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 + Robert Dewar + Ed Schonberg + Gary Dismukes + + * 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 + Ed Schonberg + Bob Duff + Gary Dismukes + Robert Dewar + + * 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 + Robert Dewar + Gary Dismukes + Ed Schonberg + + * 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 + Ed Schonberg + Bob Duff + Gary Dismukes + + * 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 + + * 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 + + * 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 + Pablo Oliveira + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + Ed Schonberg + Robert Dewar + + * 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 + + * 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 + Ed Schonberg + + * 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 + + * 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 + Robert Dewar + Ed Schonberg + + * 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 + + * 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 + + * g-debpoo.adb (Is_Valid): Correctly compute Offset using + Integer_Address arithmetic, as in Set_Valid. + +2006-10-31 Arnaud Charlet + Robert Dewar + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * g-speche.ads, g-speche.adb: Add special case to recognize misspelling + initial letter o as a zero. + +2006-10-31 Robert Dewar + + * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First + +2006-10-31 Robert Dewar + + * 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 + + * 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 + Eric Botcazou + Arnaud Charlet + + * 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 + + * 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 + + * 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 + + * par-ch10.adb (P_Context_Clause): Minor error message fix + +2006-10-31 Hristian Kirtchev + Javier Miranda + + * 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 + Javier Miranda + + * 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 + + * 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 + + * 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 + + * 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 + + * repinfo.adb (List_Entities): Don't list entities from renaming + declarations. + +2006-10-31 Arnaud Charlet + Robert Dewar + + * 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 + + * 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 + + * scng.adb (Scan, case of numeric literal): Better msg for identifier + starting with a digit. + +2006-10-31 Ed Schonberg + Thomas Quinot + Javier Miranda + Gary Dismukes + + * 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 + + * 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 + Hristian Kirtchev + + * 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 + Thomas Quinot + + * 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 + Javier Miranda + Robert Dewar + + * 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 + Ed Schonberg + Gary Dismukes + + * 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 + Hristian Kirtchev + Bob Duff + + * 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 + Javier Miranda + + * 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 + Hristian Kirtchev + Javier Miranda + Ed Schonberg + + * 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 + Ed Schonberg + + * 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 + Ed Schonberg + Javier Miranda + Gary Dismukes + + * 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 + Ed Schonberg + + * 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 + + * 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 + Hristian Kirtchev + Javier Miranda + + * 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 + Hristian Kirtchev + Ed Schonberg + + * 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 + + * 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 + Ed Schonberg + Bob Duff + + * 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 + Robert Dewar + Bob Duff + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed + in file names. + +2006-10-31 Vincent Celier + + * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005 + +2006-10-31 Vincent Celier + + * 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 + + * 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 + + * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function. + Call TBK$SYMBOLIZE without omitting parameters. + +2006-10-31 Vincent Celier + + * 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 + + * 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 + Cyrille Comar + Ben Brosgol + + * 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 + Thomas Quinot + Arnaud Charlet + + * 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 Ávila de Espíndola + + * 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 + + * Makefile.in: Add TEXI2PDF definition. + * Make-lang.in: Add "ada.pdf" target. + +2006-10-03 Kazu Hirata + + * decl.c, utils.c: Fix comment typos. + * utils.c: Fix a typo. + +2006-09-28 Eric Botcazou + + * decl.c (gnat_to_gnu_entity) : 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 + + PR ada/28716 + g-socket.adb (Bind_Socket): Call Set_Address. + +2006-09-15 Eric Botcazou + + PR ada/15802 + * decl.c (same_discriminant_p): New static function. + (gnat_to_gnu_entity) : 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 + + 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 + + PR ada/29025 + * trans.c (gnat_gimplify_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 + + 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 + + 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 + + * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies. + +2006-06-23 Olivier Hainque + + * 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 + Eric Botcazou + + PR ada/18692 + * Make-lang.in: Add check-gnat to lang_checks. Rename existing + check-gnat into check-acats. + +2006-06-17 Karl Berry + + * gnat-style.texi (@dircategory): Use "Software development" + instead of "Programming", following the Free Software Directory. + +2006-06-12 John David Anglin + + PR ada/27944 + * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'. + +2006-06-06 Laurent Guerby + + PR ada/27769 + mlib-utl.adb: Use Program_Name. + +2006-05-28 Kazu Hirata + + * 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 + + * misc.c (gnat_dwarf_name): New function. + (LANG_HOOKS_DWARF_NAME): Define to it. + +2006-05-14 H.J. Lu + + * 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 + + * Makefile.in: Add Ada support for GNU/kFreeBSD. + * s-osinte-kfreebsd-gnu.ads: New file. + +2006-03-29 Carlos O'Donell + + * Make-lang.in: Rename docdir to gcc_docdir. + +2006-03-04 Eric Botcazou + + * 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 + + * uintp.adb (Num_Bits): Handle Uint_Int_First specially. + +2006-03-02 Richard Sandiford + + * 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 + + * Make-lang.in (Ada): Remove. + (.PHONY): Remove Ada + +2006-02-17 Ed Schonberg + + * 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 + + 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 + + * 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 + Robert Dewar + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + Ed Schonberg + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + Thomas Quinot + Robert Dewar + Javier Miranda + + * 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 + + * env.c (__gnat_setenv): Use size_t. + (__gnat_unsetenv): Likewise. + (__gnat_clearenv): Likewise. + +2006-02-16 Arnaud Charlet + + * opt.ads (Ada_Version_Default): Set to Ada 2005 by default. + +2006-02-13 Arnaud Charlet + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + Nicolas Roche + Arnaud Charlet + + * 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 + Olivier Hainque + Eric Botcazou + + * 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) : 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) : 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 + Robert Dewar + + * 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 + Vincent Celier + Robert Dewar + + * 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 + + * 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 + + * 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 + + * 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 + + * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of + quicksort. + +2006-02-13 Eric Botcazou + + * 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 + + * 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 + + * a-envvar.adb, a-envvar.ads: New files. + +2006-02-13 Douglas Rupp + + * 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 + + * a-rttiev.adb, a-rttiev.ads: New files. + +2006-02-13 Hristian Kirtchev + + * 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 + + * 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 + Gary Dismukes + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + Eric Botcazou + + * 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 + + * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has + wrapped around. + +2006-02-13 Vincent Celier + + * 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 + Thomas Quinot + + * 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 + Vincent Celier + + * 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 + Serguei Rybin + + * 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 + Robert Dewar + Ed Schonberg + + * 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 + Olivier Hainque + + * 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) : 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 + + * 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 + + * 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 + Gary Dismukes + + * 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 + Ed Schonberg + + * 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 + + * 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 + Javier Miranda + Robert Dewar + Gary Dismukes + + * 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 + Hristian Kirtchev + + * 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 + + * 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 + + * 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 + + * 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 + + * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze + call. + +2006-02-13 Thomas Quinot + + * 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 + Javier Miranda + Eric Botcazou + + * 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 + + * 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 + + * 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 + + * 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 + + * g-dyntab.adb (Index_Of): conversion from Natural can no longer raise + Constraint_Error. + +2006-02-13 Arnaud Charlet + + * 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 + + * 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 + + * 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 + Robert Dewar + + * 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 + + * 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 + + 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 + + * 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 + + * par-endh.adb (Explicit_Start_Label): Add code to protect the parser + against source containing syntax errors. + +2006-02-13 Vincent Celier + + * prj.adb (Reset): Initialize the first element of table Namings with + the standard naming data. + +2006-02-13 Vincent Celier + + * 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 + + * 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 + Gary Dismukes + Robert Dewar + + * 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 + + * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type. + +2006-02-13 Javier Miranda + + * 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 + Ed Schonberg + + * 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 + Ed Schonberg + Gary Dismukes + + * 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 + Robert Dewar + Ed Schonberg + Javier Miranda + + * 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 + Javier Miranda + + * 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 + + * 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 + + * 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 + Robert Dewar + + * 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 + Javier Miranda + + * 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 + + * 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 + Robert Dewar + + * 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 + + * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of + task name. + +2006-02-13 Bob Duff + + * 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 + + * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value + +2006-02-13 Eric Botcazou + + * 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 + Ben Brosgol + Robert Dewar + + * 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 + + * Make-lang.in (check-gnat): Run run_acats with $(SHELL). + +2006-02-06 Roger Sayle + + * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE. + +2006-02-03 John David Anglin + + PR target/25926 + * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target + implementation that calls __main. + +2006-01-25 Peter O'Gorman + + PR bootstrap/25859 + * Makefile.in (GCC_LINK): Remove quotes. + (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)" + or $(GCC_LINK). + + (powerpc-darwin): Pass -shared-libgcc when building shared library. + +2006-01-20 John David Anglin + + PR ada/24533 + * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8. + + + +Copyright (C) 2006 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff --git a/gcc/ada/ChangeLog-2007 b/gcc/ada/ChangeLog-2007 new file mode 100644 index 00000000000..30a63656eaa --- /dev/null +++ b/gcc/ada/ChangeLog-2007 @@ -0,0 +1,9221 @@ +2007-12-27 Samuel Tardieu + + PR ada/34553 + * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp() + instead of mktemp() or tmpnam() on NetBSD. + +2007-12-23 Eric Botcazou + + * trans.c (call_to_gnu): Make the temporary for non-addressable + In parameters passed by reference. + (addressable_p): Return true for STRING_CST and CALL_EXPR. + +2007-12-19 Robert Dewar + + * g-expect-vms.adb, g-expect.adb, s-poosiz.adb: + Add pragma Warnings (Off) for unassigned IN OUT arguments + + * sem_warn.adb (Output_Reference): Suppress messages for internal names + (Check_References): Extensive changes to tune up warnings + (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings + (Has_Pragma_Unmodifed_Check_Spec): New function + (Check_References): Implement pragma Unmodified + (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified + + * par-prag.adb: Dummy entry for pragma Unmodified + + * sem_prag.adb: Implement pragma Unmodified + + * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag + (Proc_Next_Component_Or_Discriminant): Fix typo. + Update comments. + + * sem_util.adb (Note_Possible_Modification): Add processinng for pragma + Unmodified. + (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func, + because the former already takes care of discarding the result. + (Mark_Coextensions): Remove ununused initial value from Is_Dynamic. + Add comment. + + * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified + +2007-12-19 Eric Botcazou + + * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads, + system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads, + system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads, + system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads, + system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads, + system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads, + system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, + system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads, + system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, + system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads + (Dynamic_Trampolines_Used): Delete. + + * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto. + Turn on stack probing mechanism on LynxOS. + +2007-12-19 Bob Duff + + * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate + the resulting tail recursion by hand. This prevents running out of + memory on deeply nested concatenations, since Field2 is where the left + operand of concatenations is stored. + Fix bug (was returning OK_Orig in some cases). Fix return subtype to + clarify that it can only return OK or Abandon. + + * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left + operand by iteration, in order to avoid running out of memory on + deeply-nested concatenations. Use the Parent pointer to get back up the + tree. + (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First, + Resolve_Op_Concat_Rest): New procedures split out of + Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is + clearer. + + * checks.adb (Remove_Checks): Use Traverse_Proc instead of + Traverse_Func, because the former already takes care of discarding the + result. + + * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func, + because the former already takes care of discarding the result. + (Remove_Warning_Messages): Use appropriate subtype for Status and + Discard + +2007-12-19 Ed Schonberg + + * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with + discriminants forces expansion of the aggregate into assignments. + (Init_Record_Controller): If the type of the aggregate is untagged and + is not inherently limited, the record controller is not limited either. + +2007-12-19 Robert Dewar + + * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in + handling compile time known size of record or array (case of front end + layout active, e.g. in GNAAMP). + +2007-12-19 Javier Miranda + + * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry + that forces the construction of static dispatch tables in case of + record subtypes. + +2007-12-19 Robert Dewar + + * exp_ch9.adb (Null_Statements): Moved to library level + (Trivial_Accept_OK): New function + (Expand_Accept_Declaration): Use Trivial_Accept_OK + (Expand_N_Accept_Statement): Use Trivial_Accept_OK + +2007-12-19 Robert Dewar + + * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type + in complex case where array is Volatile. + +2007-12-19 Ed Schonberg + + * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement + properly the Ada2005 rules concerning when the current instance of a + record type is aliased. + +2007-12-19 Ed Schonberg + + * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in + mangled declaration + (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record + declarations. + (P_Variant_Part): Cleaner patch for parenthesized discriminant + +2007-12-19 Vincent Celier + + * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when + package is not known + + * prj-attr.ads (Unknown_Package): New constant + Do not crash when an unknown package is in several projects + + * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as + ignored + + * prj-nmsc.adb (Check): Remove obsolete code related to no longer + existing package Language_Processing. + +2007-12-19 Ed Schonberg + Gary Dismukes + Samuel Tardieu + + PR ada/15803, ada/15805 + * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose + illegal access subtypes when there is a constrained partial view. + (Check_For_Premature_Usage): New procedure inside + Access_Subprogram_Declaration for checking that an access-to-subprogram + type doesn't reference its own name within any formal parameters or + result type (including within nested anonymous access types). + (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage. + (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the + context is an access_to_variable, the expression cannot be an + access_to_constant. + +2007-12-19 Bob Duff + + * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure. + (Analyze_Concatenation): Use iteration instead of recursion in order + to avoid running out of stack space for deeply nested concatenations. + +2007-12-19 Ed Schonberg + Gary Dismukes + + * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings + whose renamed entity is a subprogram that requires overriding. + (Premature_Usage): Test for the case of N_Full_Type_Declaration when + issuing an error for premature usage and issue a message that says + 'type' rather than 'object'. + +2007-12-19 Gary Dismukes + + PR ada/34149 + * sem_disp.adb (Check_Dispatching_Call): Augment existing test for + presence of a statically tagged operand (Present (Static_Tag)) with + test for Indeterm_Ancestor_Call when determining whether to propagate + the static tag to tag-indeterminate operands (which forces dispatching + on such calls). + (Check_Controlling_Formals): Ada2005, access parameters can have + defaults. + (Add_Dispatching_Operation, Check_Operation_From_Private_View): do + not insert subprogram in list of primitive operations if already there. + +2007-12-19 Tristan Gingold + + * utils.c (create_var_decl_1): call rest_of_decl_compilation only for + global variable. + +2007-12-19 Thomas Quinot + + Part of PR ada/33688 + * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary + datagram info on Linux. + +2007-12-19 Vincent Celier + + * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so + that the source path name is always found in the dependencies. + +2007-12-19 Robert Dewar + + * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o + Fix name of Wide_Wide_Latin_1/9 file names + Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads) + Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode + Add missing documentation for Ada.Command_Line.Response_File + Update list of warning letters for Warnings pragma + Add documentation for pragma Unmodified + +2007-12-19 Samuel Tardieu + + * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target. + +2007-12-17 Arnaud Charlet + + * s-vxwork-alpha.ads: Removed, no longer used. + +2007-12-15 Jakub Jelinek + + * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line. + +2007-12-13 Samuel Tardieu + + PR ada/34360 + * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name + mlib-tgt-specific.adb. + +2007-12-13 Bob Duff + + * trans.c (Attribute_to_gnu): Check for violations of the + No_Implicit_Dynamic_Code restriction. This checking used to be done in + the front end, but is moved here so we can make it more accurate. + +2007-12-13 Pascal Obry + + * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy + version is provided for older GNU/Linux distribution not + supporting thread affinity sets. + + * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf + call. + (bit_field): New packed boolean type used by cpu_set_t. + (cpu_set_t): New type corresponding to the C type with + the same name. Note that on the Ada side we use a bit + field array for the affinity mask. There is not need + for the C macro for setting individual bit. + (pthread_setaffinity_np): New imported routine. + + * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is + no null. + (Create_Task): Set the processor affinity mask if information + is present. + + * s-tasinf-linux.ads, s-tasinf-linux.adb: New files. + +2007-12-13 Robert Dewar + + * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads, + s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads, + s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads, + s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb, + s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads, + s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads, + s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads, + i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C + for subprogram pointers. + + * g-ctrl_c.adb: New file. + + * g-ctrl_c.ads (Install_Handler): New body. + + * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always + instead of obsolete function Is_Always_Inlined. + (Freeze_Entity): check for tagged type in imported C subprogram + (Freeze_Entity): check for 8-bit boolean in imported C subprogram + (Freeze_Entity): check for convention Ada subprogram pointer in + imported C subprogram. + (Freeze_Fixed_Point_Type): In the case of a base type where the low + bound would be chopped off and go from negative to zero, force + Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower + bound) so that the size computation for the base type will take + negative values into account. + +2007-12-13 Eric Botcazou + Bob Duff + Tristan Gingold + + * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, + system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads, + system-aix.ads, system-vxworks-sparcv9.ads, system-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-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, + system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, + system-vxworks-arm.ads, system-darwin-x86.ads, system.ads, + system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, + system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads, + system-vms-ia64.ads (Stack_Check_Limits): New target parameter. + (Always_Compatible_Rep): New flag to control trampolines globally. + (Dynamic_Trampolines_Used): New flag for implementing the + No_Implicit_Dynamic_Code restriction more correctly (not yet used, + and not yet set correctly for some targets). + + * s-taprop-vxworks.adb: Use stack limit method of stack checking. + Simply indirectly call s-stchop when a task is created. + + * ali.ads: + New flag added: Stack_Check_Switch_Set which is set when '-fstack-check' + appears as an argument (entries A) in an ALI file. + + * fe.h (Stack_Check_Limits): Declare new target parameter. + (Check_Implicit_Dynamic_Code_Allowed): New procedure. + + * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS. + This variable is declared in C to be sure not subject to elaboration + code. + (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to + Storage_Error. + + * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter. + (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters. + + * s-stchop.ads: Add comments. + + * s-stchop-vxworks.adb: Package almost fully rewritten to use stack + limit method of stack checking. + + * s-stchop-limit.ads: New file. + +2007-12-13 Robert Dewar + + * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb, + a-cihama.adb, g-awk.adb, + s-inmaop-posix.adb: Update handling of assigned value/unreferenced + warnings + + * exp_smem.adb: Update handling of assigned value/unreferenced warnings + + * sem.adb: Update handling of assigned value/unreferenced warnings + + * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return + + * lib-xref.ads: Improve documentation for k xref type + + * lib-xref.adb: + Update handling of assigned value/unreferenced warnings + (Generate_Reference): Warning for reference to entity for which a + pragma Unreferenced has been given should be unconditional. + If the entity is a discriminal, mark the original + discriminant as referenced. + + * sem_warn.ads, sem_warn.adb + (Check_One_Unit): Test Renamed_In_Spec to control giving warning for + no entities referenced in package + (Check_One_Unit): Don't give message about no entities referenced in + a package if a pragma Unreferenced has appeared. + Handle new warning flag -gnatw.a/-gnatw.A + Update handling of assigned value/unreferenced warnings + + * atree.h: Add flags up to Flag247 + (Flag231): New macro. + +2007-12-13 Jose Ruiz + + * adaint.h: (__gnat_plist_init): Not defined for RTX. + + * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for + RTX systems. + + * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb. + (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB, + EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS, + GNATLIB_SHARED for RTX run time): Use the versions required by RTX. + + * mingw32.h: + Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported. + + * sysdep.c (winflush_function for RTX): Procedure that does nothing + since we only have problems with Windows 95/98, which are not + supported by RTX. + (__gnat_ttyname): Return the empty string on Nucleus, just as + done on vxworks. + +2007-12-13 Robert Dewar + + * a-textio.adb, a-textio.ads: + Extensive changes to private part for wide character encoding + + * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb + (Look_Ahead): Fix mishandling of encoded sequences + Move declaration of Wch_Con to private part (should not be visible) + + * ali.adb (Scan_ALI): Set default encoding method to brackets instead of + UTF-8. Probably this is never used, but if it is, brackets is + clearly correct. + + * bindgen.adb (Get_WC_Encoding): New procedure to properly handle + setting wide character encoding for no main program case and when + encoding is specified using -W? + Initialize stack limit of environment task if stack limit method of + stack checking is enabled. + (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method + (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method + (Get_Main_Unit_Name): New function. + (Gen_Adainit_Ada): Add call to main program for .NET when needed. + (Gen_Output_File): Set Bind_Main_Program to True for .NET + + * bindusg.adb: Add line for -Wx switch + + * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function + Add comments + Add new useful constant WC_Longest_Sequences + + * switch-b.adb: Clean up handling of -Wx switch + For -gnatWx, set Wide_Character_Encoding_Method_Specified + + * switch-c.adb: -gnatg activates warning on assertion errors + For -gnatWx, set Wide_Character_Encoding_Method_Specified + + * s-wchcon.adb: (Is_Start_Of_Encoding): New function + +2007-12-13 Robert Dewar + Ed Schonberg + + * a-ngcoty.adb: New pragma Fast_Math + + * opt.adb: New pragma Fast_Math + + * par-prag.adb: + Add Implemented_By_Entry to the list of pragmas which do not require any + special processing. + (Favor_Top_Level): New pragma. + New pragma Fast_Math + + * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv + (Expand_N_Attribute_Reference, Displace_Allocator_Pointer, + Expand_Allocator_Expression): Take into account VM_Target + (Expand_Attribute, case 'Identity): Handle properly the case where + the prefix is a task interface. + New pragma Fast_Math + + * par.adb (Next_Token_Is): New function + (P_Pragma): Add Skipping parameter + (U_Left_Paren): New procedure + (U_Right_Paren): New procedure + New pragma Fast_Math + + * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after + subunit + New pragma Fast_Math + + * sem_prag.adb: Add significance value to table Sig_Flag for pragma + Implemented_By_Entry. + (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry. + (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep + items, since it can apply to more than one overloadable entity. Set + new flag Has_Pragma_Inline_Always for Inline_Always case. + (Analyze_Pragma, case Complex_Representation): Improve error message. + (Analyze_Pragma, case Assert): When assertions are disabled build the + rewritten code with Sloc of expression rather than pragma, so new + warning about failing is not deleted. + (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to + protected types and update error message to reflect that. Test whether + the protected type is allowed for the pragma (an error is issued if the + type has any entries, or components that do not have preelaborable + initialization). + New pragma Fast_Math + (Analyze_Pragma, case No_Return): Handle generic instance + + * snames.h, snames.ads, snames.adb: + Add new predefined name for interface primitive _Disp_Requeue. + New pragma Fast_Math + + * a-tags.ads, a-tags.adb: New calling sequence for + String_To_Wide_[Wide_]String + (Secondary_Tag): New subprogram. + + * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here + from Exp_Attr + New calling sequence for String_To_Wide_[Wide_]String + (Expand_Image_Attribute): Major rewrite. New calling sequence avoids + the use of the secondary stack for image routines. + + * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New + calling sequence for String_To_Wide_[Wide_]String + + * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in + Ada 95 mode + (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully + Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List + + * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode + (P_Formal_Part): Use Skipping parameter in P_Pragma call + to improve error recovery + + * par-util.adb (Next_Token_Is): New function + (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function + + * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to + semicolon if missing + (P_Pragma): Implement new Skipping parameter + Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List + Fix location of flag for unrecognized pragma message + + * par-tchk.adb (U_Left_Paren): New procedure + (U_Right_Paren): New procedure + +2007-12-13 Geert Bosch + + * a-tifiio.adb: + (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where + the second or later Scaled_Divide would omit leading zeroes, + resulting in too few digits produced and a Layout_Error as result. + (Put): Initialize Pos. + +2007-12-13 Robert Dewar + + atree.ads, atree.adb (Flag231..Flag247): New functions + (Set_Flag231..Set_Flag247): New procedures + (Basic_Set_Convention): Rename Set_Convention to be + Basic_Set_Convention + (Nkind_In): New functions + Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List + + * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always + instead + of obsolete function Is_Always_Inlined + (Register_Predefined_DT_Entry): Initialize slots of the second + secondary dispatch table. + Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List + (Expand_N_Function_Call): Remove special provision for stack checking. + + * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation): + Include _Disp_Requeue in the list of predefined operations. + (Find_Interface_ADT): Modified to fulfill the new specification. + Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List + + * par-ch4.adb, nlists.ads, nlists.adb: + Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List + + * sinfo.ads, sinfo.adb: (Nkind_In): New functions + Fix location of flag for unrecognized pragma message + + * sem_ch7.adb: Use Nkind_In + +2007-12-13 Vincent Celier + + * opt.ads: + Indicate what flags are used by the Project Manager, gprbuild and + gprclean. + (Opt.Follow_Links_For_Dirs): New flag + (Warn_On_Assertion_Failure): New flag + (Wide_Character_Encoding_Method_Specified): New flag + (Suppress_All_Inlining): New switch set by -fno-inline + (Real_VMS_Target): New flag + New pragma Fast_Math + +2007-12-13 Robert Dewar + + * back_end.adb: Recognize -fno-inline + +2007-12-13 Robert Dewar + + * checks.adb: Fix optimization problem with short-circuited form + +2007-12-13 Bob Duff + + * clean.adb (Usage): Add line for -aP + (Check_Version_And_Help): Change Check_Version_And_Help to be generic, + with a parameter "procedure Usage", instead of passing a pointer to a + procedure. This is to eliminate trampolines (since the Usage procedure + is often nested in a main procedure, and it would be inconvenient to + unnest it). + + * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch + to be generic, with a parameter "procedure Callback (...)", instead of + passing a pointer to a procedure. This is to eliminate trampolines + (since the Callback procedure is usually nested). + + * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb, + gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb + (Check_Version_And_Help): Change Check_Version_And_Help to be generic. + + * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets): + Use the generic Heap_Sort_G instead of Heap_Sort_A. + +2007-12-13 Hristian Kirtchev + + * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry. + (Implemented_By_Entry, Set_Implemented_By_Entry): New routines. + (Write_Entry_Flags): Add an entry for Implemented_By_Entry. + (Renamed_In_Spec): New flag + (Has_Pragma_Inline_Always): New flag + Add missing doc for pragma Obsolescent_Warning + Add missing doc for 17 additional unused flags (230-247) + (Is_Derived_Type): Remove condition "not Is_Generic_Type". + Alphabetize with clauses. + Separate Is_Thunk and Has_Thunks flags + (Write_Entity_Flags): Add forgotten entry for Has_Thunks + (Related_Interface): Renamed to Related_Type. + (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute. + (Set_Is_Flag): Restrict the assertion. + +2007-12-13 Vincent Celier + + * errout.adb (Output_Source_Line): Do not keep a trailing space after + the source line number if the source line is empty. + +2007-12-13 Geert Bosch + + * eval_fat.adb (Decompose_Int): Handle argument of zero. + (Compose): Remove special casing of zero. + (Exponent): Likewise. + (Fraction): Likewise. + (Machine): Likewise. + (Decompose): Update comment. + +2007-12-13 Ed Schonberg + + * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a + limited ancestor part, initialize controllers of enclosing record + before expanding ancestor aggregate. + (Gen_Assign): If a component of the aggregate is box-initialized, add + code to call Initialize if the component is controlled, and explicit + assignment of null if the component is an access type. + + Handle properly aggregates for limited types that appear in object + declarations when the aggregate contains controlled values such as + protected types. + When expanding limited aggregates into individual components, do not + call Adjust on controlled components that are limited. + +2007-12-13 Ed Schonberg + + * expander.adb: Take into account N_Subprogram_Renaming_Declaration + +2007-12-13 Hristian Kirtchev + + * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of + predefined primitive _Disp_Requeue. + (Make_Predefined_Primitive_Specs): Create the spec for predefined + primitive _Disp_Requeue. + (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the + type of formal Renamed_Eq to Entity_Id (instead of Node_Id). + (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is + an interface type. In case of limited interfaces we now declare all the + predefined primitives associated with synchronized interfaces as + abstract. + (Predef_Spec_Or_Body): For interface types generate abstract subprogram + declarations. + (Predefined_Primitive_Bodies): Add body of "=" if the parent of the + tagged type is an interface type and there is no user-defined equality + function. + Add also bodies of predefined primitives associated with synchronized + interfaces. + (Freeze_Record_Type): Do not build bodies of predefined primitives of + interface types because they are now defined abstract. + Add missing documentation. + (Expand_Record_Controller): Update occurrence of Related_Interface + to Related_Type. + (Build_Offset_To_Top_Functions): Do nothing in case of VM. + (Expand_N_Object_Declaration): Take into account VM_Target when handling + class wide interface object declaration. + (Expand_Previous_Access_Type): Do not create a duplicate master entity + if the access type already has one. + (Expand_N_Object_Declaration): Defend against attempt to validity check + generic types. Noticed for -gnatVcf specified with previous errors. + +2007-12-13 Arnaud Charlet + + * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer, + Expand_Allocator_Expression): Take into account VM_Target + + * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use + secondary stack when VM_Target /= No_VM + +2007-12-13 Javier Miranda + Ed Schonberg + + * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute + Is_Complation_Unit by Is_Library_Level_Entity in the code + that decides if the static dispatch tables need to be built. + (Wrap_Transient_Declaration): Do not generate a finalization call if + this is a renaming declaration and the renamed object is a component + of a controlled type. + +2007-12-13 Gary Dismukes + + * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration): + In the case where the renamed subprogram is a dereference, call + Force_Evaluation on the prefix. + +2007-12-13 Hristian Kirtchev + Ed Schonberg + + * exp_ch9.adb (Expand_N_Asynchronous_Select, + Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and + comment reformatting. + (Set_Privals): Inherit aliased flag from formal. From code reading. + (Build_Simple_Entry_Call): Out parameters of an access type are passed + by copy and initialized from the actual. This includes entry parameters. + (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95 + and Ada 2005 models of requeue. + (Null_Statements): Still connsider do-end block null if it contains + Unreferenced and Warnings pragmas. + (Expand_N_Accept_Statement): Do not optimize away null do end if + dispatching policy is other than defaulted. + (Expand_N_Timed_Entry_Call): When the triggering statement is a + dispatching call, manually analyze the delay statement. + (Find_Parameter_Type): Move subprogram to Sem_Util. + +2007-12-13 Hristian Kirtchev + Javier Miranda + + * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive + _Disp_Requeue occupies dispatch table slot number 15. Move + _Disp_Timed_Select to slot 16. + (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which + generate the spec and body of _Disp_Reqeueue. + (Make_DT): Build and initialize the second dispatch table. + Handle initialization of RC_Offset when the parent + is a private type with variable size components. + (Make_Secondary_DT): Complete documentation. Add support to + initialize the second dispatch table. + (Make_Tags): Generate the tag of the second dispatch table. + (Register_Primitive): Add support to register primitives in the + second dispatch table. + +2007-12-13 Pascal Obry + + * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on + Windows. This signal is used by gnatmake to kill child processes for + example. + +2007-12-13 Javier Miranda + + * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing + support for generic dispatching constructor calls in which we need to + locate the tag of a secondary dispatch table associated with an + interface type to properly dispatch the call. + (Expand_N_Attribute_Reference [case Address], + Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix + handling of VM targets. + +2007-12-13 Robert Dewar + Ed Schonberg + + * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for + assert fail + + * ug_words: Add entries for -gnatw.a -gnatw.A + + * sem_res.adb (Set_String_Literal_Subtype): If the context of the + literal is a subtype with non-static constraints, use the base type of + the context as the base of the string subtype, to prevent type + mismatches in gigi. + (Resolve_Actuals): If the actual is an entity name, generate a + reference before the actual is resolved and expanded, to prevent + spurious warnings on formals of enclosing protected operations. + (Analyze_Overloaded_Selected_Component): If type of prefix if + class-wide, use visible components of base type. + (Resolve_Selected_Component): Ditto. + (Resolve_Short_Circuit): Detect case of pragma Assert argument + evaluating to False, and issue warning message. + + * usage.adb: Add lines for -gnatw.a and -gnatw.A + +2007-12-13 Emmanuel Briot + + * g-calend.ads (No_Time): New constant, to represent an uninitialized + time value + + * g-catiio.ads, g-catiio.adb (Value): Added support for more date + formats. + (Month_Name_To_Number): New subprogram + + * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive + letter to upper-case. + +2007-12-13 Robert Dewar + Ed Schonberg + + * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target + + * layout.adb (Resolve_Attribute, case 'Access): If designated type of + context is a limited view, use non-limited view when available. If the + non-limited view is an unconstrained array, this enforces consistency + requirements in 3.10.2 (27). + (Layout_Type): For an access type whose designated type is a limited + view, examine its declaration to determine if it is an unconstrained + array, and size the access type accordingly. + (Layout_Type): Do not force 32-bits for convention c subprogram + pointers in -gnatdm mode, only if real vms target. + + * sem_attr.adb (Analyze_Access_Attribute): Use new flag + Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined + (Analyze_Access_Attribute,Attribute_Address): Remove checks for + violations of the No_Implicit_Dynamic_Code restriction. + (Resolve_Attribute, case 'Access): If designated type of context is a + limited view, use non-limited view when available. If the non-limited + view is an unconstrained array, this enforces consistency requirements + in 3.10.2 (27). + (Layout_Type): For an access type whose designated type is a limited + view, examine its declaration to determine if it is an unconstrained + array, and size the access type accordingly. + +2007-12-13 Vincent Celier + + * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when + object directory of main project does not exist. + On VMS, correctly set then environment variable for the source + directories. + +2007-12-13 Vasiliy Fofanov + + * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when + set to True this procedure will create the value of type REG_EXPAND_SZ. + It was only possible to create REG_SZ values before. + +2007-12-13 Robert Dewar + + * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads, + g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads, + namet-sp.adb, namet-sp.ads: New files. + + * g-speche.adb: Use generic routine in g-spchge + + * s-wchcnv.ads, s-wchcnv.adb: + Minor code cleanup (make formal type consistent with spec) + + * namet.adb: Update comments. + + * par-endh.adb (Evaluate_End_Entry): Use new + Namet.Sp.Is_Bad_Spelling_Of function + + * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function + + * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an + ancestor is an access type initialized with a box, set its type + explicitly, for use in subsequent expansion. + (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of + function + +2007-12-13 Robert Dewar + + * g-spipat.adb (Break): Fix accessibility error (vsn taking not null + access Vstring) + +2007-12-13 Robert Dewar + + * inline.adb (Back_End_Cannot_Inline): Use new flag + Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined + + * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag + Has_Pragma_Inline_Always instead. + of obsolete function Is_Always_Inlined + (Build_Body_To_Inline): Same change + (Cannot_Inline): Same change + Do not give warning on exception raise in No_Return function + + * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited + component has two inconsistent component clauses in the same record + representation clause, favor the message that complains about + duplication rather than inconsistency. + Update comments. + (Record_Representation_Clause): Do not warn on missing component + clauses for inherited components of a type extension. + (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for + an overloadable item if it is a pragma that can apply to multiple + overloadable entities (e.g. Inline) because a pragma cannot be on + more than one chain at a time. + (Validate_Unchecked_Conversion): Add code to warn on unchecked + conversion where one of the operands is Ada.Calendar.Time. + (Analyze_Attribute_Definition_Clause): Fix typo in error message. + For now, ignore Component_Size clause on VM targets, as done for + pragma Pack. + +2007-12-13 Emmanuel Briot + Vincent Celier + + * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a + string + (Must_Check_Configuration, Default_Language_Is_Ada): new flags in + prj.ads + (Hash): Move instantiation of System.HTable.Hash from spec to body + (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive + systems, since we do not need to recompute the Name_Id for the canonical + file name. + (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id + as a parameter. This parameter is in fact always "ada" in all calls, and + we were doing 160560 extra calls to Name_Find to convert it to Name_Ada + while loading a project with 40000 files + + * prj-attr.adb: Fix name of attribute Dependency_Driver + Change the kind of indexing for attribute Root + + * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of + variables already declared, in case constructions. + + * prj-env.adb (Initialize): Reset Current_Source_Path_File and + Current_Object_Path_File to No_Path. + + * prj-ext.adb (Initialize_Project_Path): In multi language mode, use + ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty. + + * prj-makr.adb: new parameter Current_Dir + + * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for + Ada sources when language is not Ada. + Change Opt.Follow_Links to Opt.Follow_Links_For_Files. + (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms + (Must_Check_Configuration, Default_Language_Is_Ada): new flags. + (Locate_Directory): Always resolve links when computing Canonical_Path + (Look_For_Sources): Make sure that Name_Buffer contains the file name + in Source_Files before checking for the presence of a directory + separator. + Optimize calls to Name_Find when on case sensitive systems. + (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id + as a parameter. + (Prj.Nmsc.Check): new parameter Current_Dir + (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They + cannot be empty and the spec suffix cannot be the same as the body or + separate suffix. + (Get_Unit): When a file name can be of several unit kinds (spec, body or + subunit), always consider the longest suffix. + (Check_Configuration): Do not issue an error if there is no compiler + for a language. Just issue a warning and ignore the sources for the + language. + (Check_Library_Attributes): Only check Library_Dir if Library_Name is + not empty. + (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity + (Unit_Exceptions): New hash table + (Check_Naming_Schemes): Check if a file that could be a unit because of + the naming scheme is not in fact a source because there is an exception + for the unit. + (Look_For_Sources): Put the unit exceptions in hash table + Unit_Exceptions + (Get_Unit_Exceptions): Give initial value No_Source to local variable + Other_Part to avoid exception when code is compiled with validity + checking. + (Get_Sources_From_File): Check that there is no directory information + in the file names. + (Look_For_Sources): Check that there is no directory information in the + list of file names in Source_Files. + (Look_For_Sources): In multi-language mode, do not allow exception file + names that are excluded. + (Excluded_Sources_Htable): New hash table + (Search_Directories.Check_File): New procedure to simplify + Search_Directories. + (Search_Directories): Do not consider excluded sources + (Look_For_Sources): Populate Excluded_Sources_Htable before calling + Search_Directories. + (Get_Exceptions): Set component Lang_Kind of Source_Data + (Get_Unit_Exceptions): Ditto + (Search_Directories): Ditto + + * prj-pars.adb: new parameter Current_Dir + + * prj-part.ads, prj-part.adb: + Change Opt.Follow_Links to Opt.Follow_Links_For_Files. + (Opt.Follow_Links_For_Dirs): New flag + (Project_Path_Name_Of): Cache information returned by this routine as + Locate_Regular_File is a costly routine. The code to output a log + information and the effective call to Locate_Regular_File is now + factorized into a routine (code clean-up). + (Parse, Parse_Single_Project): new parameter Current_Dir + When main project file cannot be found, indicate in the error + message the project path that was used to do the search. + + * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag + (Prj.Proc.Process*): new parameter Current_Dir + + * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files + +2007-12-13 Bob Duff + + * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New + procedure to be called from the back end to check the + No_Implicit_Dynamic_Code restriction. + +2007-12-13 Arnaud Charlet + + * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call + Fixes another case where RTE_Available_Call was ignored instead of being + taken into account. + (Load_Fail): Ditto. + + * rtsfind.ads: Add new entries. + +2007-12-13 Robert Dewar + + * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads, + g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files. + + * scn.adb: Implement BOM recognition + +2007-12-13 Thomas Quinot + Ed Schonberg + + * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level + subprogram body that acts as its own spec may not have a non-private + WITH clause on a private sibling. + (Build_Unit_Name): If the parent unit in the name in a with_clause on a + child unit is a renaming, create an implicit with_clause on that + parent, and not on the unit it renames, to prevent visibility errors + in the current unit. + +2007-12-13 Ed Schonberg + + * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram + renaming declaration, use the Slocs of the formal parameters from the + declaration of the formal subprogram when creating the formal parameter + entities in the renaming declaration. + (Analyze_Formal_Type_Declaration): Change the placement of the error + message concerning illegal known discriminants. It is now posted on the + type rather than on the first discriminant. This change ensures early + error report. + (Freeze_Subprogram_Body): If the generic subprogram is nested within + the package body that contains the instance, do not generate an + out-of-place freeze node for the enclosing package. + (Collect_Previous_Instantiations): Ignore internal instantiations + generated for formal packages. + (Validate_Derived_Type_Instance): Add a check that when a formal + derived type is Known_To_Have_Preelab_Init then the actual type must + have preelaborable initialization, and issue an error when this + condition is violated. + +2007-12-13 Robert Dewar + + * s-imenne.adb, s-imenne.ads: New files. + + * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb, + s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb, + s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads, + s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb, + s-imgwch.ads: New calling sequence for Image routines to avoid sec + stack usage. + +2007-12-13 Javier Miranda + Ed Schonberg + + * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid + generation of spurious error if parent is an interface type; caused + because predefined primitive bodies will be generated later by + Freeze_Record_Type. + (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init + flag. + (Derive_Subprograms): Handle derivations of predefined primitives + after all the user-defined primitives to ensure that they are + found in proper order in instantiations. + (Add_Interface_Tag_Components, Inherit_Components): Update occurrences + of Related_Interface to Related_Type. + (Record_Type_Declaration): Minor reordering of calls to decorate the + Tag component because the entity must have set its Ekind attribute + before setting its Is_Tag attribute. + (Analyze_Subtype_Declaration): In the case of subtypes with + Private_Kind, inherit Known_To_Have_Preelab_Init from the parent. + +2007-12-13 Hristian Kirtchev + Ed Schonberg + + * sem_ch4.adb (Analyze_Selected_Component): Include the requeue + statement to the list of contexts where a selected component with a + concurrent tagged type prefix should yield a primitive operation. + (Find_Primitive_Operation): Handle case of class-wide types. + (Analyze_Overloaded_Selected_Component): If type of prefix is + class-wide, use visible components of base type. + (Resolve_Selected_Component): Ditto. + (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a + formal of a generic subprogram. find candidate interpretations by + scanning the list of generic formal declarations.: + (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete + type from a limited_with_clause, and the full view is available, use it + for subsequent semantic checks. + (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function + (Find_Primitive_Operation): New function. + (Analyze_Overloaded_Selected_Component): insert explicit dereference + only once if several interpretations of the prefix yield an access type. + (Try_Object_Operation): Code and comment cleanup. + (Analyze_Selected_Component): Reorder local variables. Minot comment and + code reformatting. When the type of the prefix is tagged concurrent, a + correct interpretation might be available in the primitive and + class-wide operations of the type. + +2007-12-13 Robert Dewar + Ed Schonberg + + * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for + renaming entry as subprogram using rename-as-body if subprogram spec + frozen. + (Use_One_Type): The clause is legal on an access type whose designated + type has a limited view. + (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function + (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function + (Analyze_Renamed_Primitive_Operation): new procedure to determine the + operation denoted by a selected component. + (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because + it can be an expression, possibly overloaded, that returns a task or + an access to one. + +2007-12-13 Hristian Kirtchev + Gary Dismukes + + * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a + requeue statement is dispatching. Do not emit an error when the name is + not an entry and the context is a dispatching select. Add code to + perform subtype conformance between the formals of the current entry + and those of the target interface primitive. + (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_ + Timed_Entry_Call): Analyze the triggering statement as the first step of + the processing. If this is a dispatching select, postpone the analysis + of all select statements until the Expander transforms the select. This + approach avoids generating duplicate identifiers after the Expander has + replicated some of the select statements. In case the Expander is + disabled, perform regular analysis. + (Check_Triggering_Statement): New routine. + (Analyze_Requeue): Exclude any interpretations that are not entries when + checking overloaded names in a requeue. Also test type conformance for + matching interpretations rather than requiring subtype conformance at + that point to conform with the RM's resolution rule for requeues. + +2007-12-13 Ed Schonberg + + * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an + inherited operation is a defaulted tag-indeterminate call, and there is + a statically tagged actual, use the static tag as a controlling actual + for the defaulted actual. + +2007-12-13 Geert Bosch + + * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static + context, so do not call Check_Non_Static_Context. + +2007-12-13 Hristian Kirtchev + + * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check + whether formal E is an entity which may have parameters. + +2007-12-13 Bob Duff + Javier Miranda + Robert Dewar + + * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine. + (Set_Convention): New procedure to set the Convention flag, and in + addition make sure the Favor_Top_Level flag is kept in sync (all + foreign-language conventions require Favor_Top_Level = True). + (Collect_Abstract_Interfaces): Update occurrences of Related_Interface + to Related_Type. + (Collect_Interfaces_Info): Minor update to handle the two secondary + dispatch tables. Update occurrence of Related_Interface to Related_Type. + (Generate_Parent_Ref): Add parameter to specify entity to check + (Is_Preelaborable_Expression): Allow the name of a discriminant to + initialize a component of a type with preelaborable initialization. + This includes the case of a discriminal used in such a context. + (Is_Dependent_Component_Of_Mutable_Object): Take into account the + latest Ada 2005 rules about renaming and 'Access of + discriminant-dependent components. + (Check_Nested_Access): Add handling when there are no enclosing + subprograms (e.g. case of a package body). + (Find_Parameter_Type): Factor routine from several other compiler files. + Remove routine from Find_Overridden_Synchronized_Primitive. + +2007-12-13 Thomas Quinot + + * sinput.adb (Get_Source_File_Index): Add assertion to guard against + an invalid access to an uninitialized slot in the + Source_File_Index_Table. + +2007-12-13 Thomas Quinot + + * sinput-l.adb (Load_File): Disable style checks when preprocessing. + +2007-12-13 Bob Duff + + * s-soflin.ads: Apply new pragma Favor_Top_Level to all + access-to-subprogram types in this package. + +2007-12-13 Olivier Hainque + + * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant + with Stack_Grows_Down in System.Parameters. Rename Array_Address into + Stack_Overlay_Address and document that we are using an internal + abstraction. + (Byte_Size, Unsigned_32_Size): Remove, now useless. + (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used + consistently throughout the various implementation pieces. + + * s-stausa.adb (Stack_Slots): New type, abstraction for the stack + overlay we are using to fill the stack area with patterns. + (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots. + (Push_Index_Step_For, Pop_Index_Step_For): Likewise. + (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction. + +2007-12-13 Robert Dewar + + * s-stoele.adb ("mod"): mod negative value raises Constraint_Error + +2007-12-13 Arnaud Charlet + + * s-tassta.adb: + (Create_Task): Take into account tasks created by foreign threads. + Code clean up: use constants instead of hard coded values. + +2007-12-13 Robert Dewar + + * styleg.adb (Check_Comment): More liberal rules for comment placement + +2007-12-13 Olivier Hainque + + * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use + of Procedure Value instead of Frame Pointer as the invocation + identifier associated with the instruction pointer in each traceback + entry. + + * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For, + TB_Entry_For): Revert back to use of Procedure Value instead of Frame + Pointer as the invocation identifier passed to tbk$symbolize. + + * s-traent-vms.ads, s-traent-vms.adb + (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of + Procedure Value instead of Frame Pointer as the invocation identifier + passed to tbk$symbolize. + +2007-12-13 Robert Dewar + + * tbuild.ads, tbuild.adb: + Fix location of flag for unrecognized pragma message + +2007-12-13 Robert Dewar + + * treepr.ads, treepr.adb: (pl): implement use of positive value + shorthands + +2007-12-13 Robert Dewar + + * xeinfo.adb: Remove warnings + * xnmake.adb: Remove warnings + * xsinfo.adb: Remove warnings + * xtreeprs.adb: Remove warnings + * xsnames.adb: Remove warnings + + * a-ngcoar.adb: Fix typo. + * s-interr.adb: Minor reformatting + * env.c: Minor reformatting. + * g-bytswa.adb: Minor reformatting. + * g-rannum.ads: Minor documentation improvements + * s-tasinf-mingw.adb: Minor header fix + * a-clrefi.adb: Minor reformatting + * g-sttsne.ads: Minor documentation improvement + * g-sttsne-locking.ads: Minor documentation improvement + * g-soliop-solaris.ads: Minor documentation improvement + * g-soliop-mingw.ads: Minor documentation improvement + * g-soliop.ads: Minor documentation improvement + * exp_aggr.ads: Minor reformatting + * debug.adb: Add documentation for the gprbuild debug flags + * exp_ch2.adb: Use Nkind_In to simplify code throughout + * exp_pakd.adb: Minor reformatting + + * g-altive.ads, g-alleve.adb: Remove assertions. + Add comment about minor differences between targets regarding + floating-point operations. + + * g-thread.adb: Remove pragma unreferenced. + * lib.ads: Minor reformatting + * par-ch9.adb: Minor reformatting of error messages + * sem_case.adb: Minor reformatting + * s-fileio.adb: Minor reformattinng + * s-vmexta.ads: Minor typo + * vxaddr2line.adb: + Take into account 'Success' value as per new GNAT warning. + +2007-12-13 Vincent Celier + + * a-direct.adb (Create_Path): Always take '/' as a directory separator, + even on Windows + +2007-12-13 Robert Dewar + Bob Duff + + * gnat_ugn.texi: Dcoument new rules for style check comment alignment + Document that suffixes may be terminations of each others + Add doc for -gnatw.a and -gnatw.A + Document gnatbind -Wx switch + Document BOM recognition + Document pragma Implemented_By_Entry. + Document new units. + + * gnat_rm.texi: (Favor_Top_Level): Document new pragma. + Add doc for pragma Unreferenced suppressing no entities referenced msg + Add documentation of GNAT.Directory_Operations.Iteration + Add documentation of GNAT.Random_Numbers + Add documentation for pragma Shared. + Correct documentation for Bit_Order + Add documentation for the Pool_Address attribute. + Fix and improve documentation of pragma machine_attribute. + New pragma Fast_Math + Document BOM recognition + + * vms_data.ads: Add entries for -gnatw.a -gnatw.A + Add /Wide_Character_Encoding for binder + Add qualifier for the new gnatpp option --no-separate-loop-then + +2007-12-13 Matthew Heaney + + * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document + which generic formal operations are called for each operation. + +2007-12-13 Olivier Hainque + + * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh. + (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh. + +2007-12-13 Emmanuel Briot + + * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute + Reference_Dir unless we actually need it. + +2007-12-13 Vasiliy Fofanov + Tristan Gingold + + * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit. + + * s-osprim-vms.adb, + a-calend-vms.adb: Remove pragma warning off and add pragma + unreferenced. + +2007-12-13 Robert Dewar + + * impunit.adb: Add entries for missing units + + * Makefile.rtl: Add new run-time units. + + * Make-lang.in: Update dependencies. + +2007-12-13 Bob Duff + + * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram + types, set Can_Use_Internal_Rep appropriately, based on + Always_Compatible_Rep_On_Target. + +2007-12-13 Gary Dismukes + Arnaud Charlet + + * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing + it to the front end and setting the aamp_target environment variable + to the switch's argument to ensure that gnaampbind and gnaamplink will + take the specified library into account. + (Make): Only set Check_Object_Consistency to False for JVM, not for CIL + target, since the CIL compiler supports an "object" file (.il files). + +2007-12-13 Vincent Celier + + * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure + (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half. + +2007-12-13 Geert Bosch + + * s-parame-vxworks.adb: + Update comments to reflect usage of this package by Nucleus. + +2007-12-13 Arnaud Charlet + + * i-vxwork.ads: Kill new warning on Convention C, since changing the + spec would break code. + + * i-forbla-unimplemented.ads, vx_stack_info.c: New files. + + * system-vxworks-alpha.ads: Removed. + +2007-12-10 Eric Botcazou + + * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around. + +2007-12-09 Samuel Tardieu + + PR ada/34366 + * sem_ch3.adb (Designates_T): New function. + (Mentions_T): Factor reusable part of the logic into Designates_T. + Consider non-access parameters and access and non-access result. + (Check_Anonymous_Access_Components): Set ekind of anonymous access to + E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type. + + * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type. + +2007-12-07 Ludovic Brenta + + PR ada/34361 + * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect + the new implementation of target-specific calls. + +2007-12-07 Olivier Hainque + + * decl.c (gnat_to_gnu_entity) : When computing + the designated full view, only follow a second level Full_View link + for Non_Limited_Views of from_limited_with references. + +2007-12-07 Samuel Tardieu + + PR ada/15805 + * sem_ch6.adb (Process_Formals): Prevent an access type formal + to be initialized with an access to constant object. + + * sem_ch3.adb (Analyze_Object_Declaration): Signal an error + when an access to constant is used to initialize an access + value. + + PR ada/21346 + * a-direct.adb (Compose): Containing_Directory can be an empty string. + +2007-12-07 Olivier Hainque + + PR ada/34173 + * decl.c (gnat_to_gnu_entity) : When setting + the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if + this is from an alignment clause on the GNAT entity. + * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN + to distinguish the case where we set it from the type's alignment. + When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate + whether this alignment was set from an explicit alignment clause. + +2007-12-06 Eric Botcazou + + * decl.c (make_packable_type): Revert last change. + (gnat_to_gnu_field): Avoid setting size and position multiple times. + * utils.c (finish_record_type): Retrieve the real name of the type. + +2007-12-05 Eric Botcazou + + * trans.c (lvalue_required_p): Take base node directly instead + of its parent. Rename second parameter to 'gnu_type'. + : Return 0 if the node isn't the prefix. + : Likewise. + (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue. + Adjust calls to lvalue_required_p. + +2007-12-05 Samuel Tardieu + + PR ada/21489 + * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type + parameters of an entry call. + +2007-12-03 Robert Dewar + Samuel Tardieu + + PR ada/34287 + * sem_util.adb (Safe_To_Capture_Value): Do not capture values + of variables declared in a library-level package. + +2007-12-02 Samuel Tardieu + + * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead + of Empty_String'Unchecked_Access. + + * Makefile.in: Add support for sh4-linux. + + * system-linux-sh4.ads: New file. + +2007-12-01 Kostik Belousov + + PR ada/33722 + * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv() + and its argument must not be free()ed. + +2007-11-29 Eric Botcazou + + * decl.c (make_packable_type): Retrieve the real name of the type. + (maybe_pad_type): Simplify similar code. + +2007-11-28 Samuel Tardieu + + PR ada/15804 + * par-ch3.adb (P_Variant_Part): Signal an error when anything other + than an identifier is used after "case" in a variant_part. + + PR ada/17318 + * par-ch4.adb (Is_Parameterless_Attribute): New map. + (P_Name, Scan_Apostrophe block): Parse left parenthesis following + attribute name or not depending on the new map. + + * sem-attr.adb (Analyze_Attribute): Parameterless attributes + returning a string or a type will not be called with improper + arguments. + + * sem-attr.ads (Attribute_Class_Array): Move to snames.ads. + + * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads. + + PR ada/32792 + * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause): + Signal an error when attribute argument is a fixed-point value of + an unknown type. + + PR ada/22559 + * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on + a derived ordinary fixed point type. + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute + RM_Size when a Small clause is found. + +2007-11-26 Andreas Krebbel + + PR 34081/C++ + * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu): + Pass 'false' for the new allocate_struct_function parameter. + * utils.c (build_function_stub): Likewise. + +2007-11-25 Richard Guenther + + * utils.c (gnat_pushlevel): Use BLOCK_CHAIN. + (gnat_poplevel): Likewise. + +2007-11-25 Eric Botcazou + + * decl.c (gnat_to_gnu_entity) : If the type has + strict alignment, no alignment clause and a known static size, cap + the type alignment to the greatest power of 2 factor of the size. + (gnat_to_gnu_field): If the field has a component clause, is aliased + or of a type with strict alignment, require that its size be equal to + that of the type. + (validate_size): Use the type size as the minimum size for a type with + strict alignment. + +2007-11-23 Samuel Tardieu + + * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb, + s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb, + s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb: + Use 'Access instead of 'Unchecked_Access in second and third + arguments of pthread_sigmask. + +2007-11-23 Eric Botcazou + + * decl.c (ceil_alignment): New function. + (gnat_to_gnu_entity): Use it to set the alignment on atomic types. + (make_packable_type): Likewise. + +2007-11-22 Olivier Hainque + + * trans.c (gnat_to_gnu) : Reformat lines + to fit in 80 columns. + +2007-11-21 Aurelien Jarno + + * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function. + * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB. + +2007-11-19 Eric Botcazou + + PR ada/34098 + * misc.c (gnat_adjust_rli): Delete. + (gnat_init): Do not initialize the translation code here. + Do not call set_lang_adjust_rli. + * trans.c (init_code_table): Make static. + (gnat_init_stmt_group): Delete. + (gigi): Initialize the translation code entirely here. + Emit debug info for the common types here instead of... + * utils.c (gnat_init_decl_processing): ...here. + * gigi.h (init_code_table): Delete. + (gnat_init_stmt_group): Likewise. + +2007-11-16 Olivier Hainque + + * utils2.c (build_call_alloc_dealloc) : Move the code + retrieving an allocator return value from a super-aligned address from + here to ... + * trans.c (gnat_to_gnu) : ... here, and don't + expect a super-aligned address for a fat or thin pointer. + +2007-11-14 Eric Botcazou + + * trans.c (call_to_gnu): Always set the source location on the call + expression. If the function returns-by-target, also set it on the + address expression. + +2007-11-14 Samuel Tardieu + + * adaint.c, init.c, initialize.c, link.c: Remove system-specific + sections of non-supported Interix target. + + * s-osinte-interix.ads: Removed. + + * i-cstrin.ads (chars_ptr): Make it a C convention type. + +2007-11-13 Samuel Tardieu + + * a-tasatt.adb: Add a comment at the beginning of the package + explaining why in general 'Unchecked_Access must be used instead + of 'Access. + + * sem_prag.adb (Process_Convention): Move the test for the + entity on which the Convention pragma applies down to also + forbid pragma Convention on enumeration literals reached + through renamings. + +2007-11-10 Samuel Tardieu + + * a-tasatt.adb: Revert previous change for this file as it will + generate an error when this package is instantiated from a + local context. + +2007-11-07 Samuel Tardieu + + * a-tasatt.adb: Type Wrapper should be declared in comment instead + of already declared type Node_Access. + Use 'Access instead of 'Unchecked_Access when applicable. Local + lifetime is the one of the package. + (Set_Value): W is allocated on the heap. + + * g-socket.adb: Use 'Access instead of 'Unchecked_Access when + applicable. + (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous + access type. + (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous + access type. + + * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when + applicable. + (elaboration code): Timer_Queue lifetime is the one of the + package. + + * tracebak.c (i386 alternative): Remove useless comparaison + which is always false; LOWEST_ADDRESS is 0 and is never greater + than an unsigned integer. + + * sem_attr.adb (Analyze_Attribute): Remove duplicate identical + embedded check for "Ada_Version >= Ada_05". + +2007-11-07 Olivier Hainque + + * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we + craft and expand comment. + +2007-11-01 Eric Botcazou + + * lang-specs.h: Move translation of -fRTS= after -gnatez switch. + +2007-10-23 Eric Botcazou + + * misc.c (gnat_handle_option): Replace call to abort with + call to gcc_unreachable. + (gnat_init): Likewise. + (gnat_expand_expr): Likewise. + (fp_prec_to_size): Likewise. + (fp_size_to_prec): Likewise. + +2007-10-23 Richard Guenther + + PR bootstrap/33608 + * tracebak.c: #undef abort after including system.h. + +2007-10-20 Danny Smith + + * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb, + s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads + for win32 targets. + (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets. + +2007-10-15 Eric Botcazou + + * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter. + Set the protection status of the guard page based on the value of On. + + * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter. + + * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone. + (Exit_Task): Pass False to Hide_Yellow_Zone. + +2007-10-15 Robert Dewar + + * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, + s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb, + a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb, + checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb, + freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb, + gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb, + mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb, + prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb, + sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb, + s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads, + uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb, + a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb, + a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb, + a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb, + a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb, + a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb: + Minor reformatting. + Add Unreferenced and Warnings (Off) pragmas for cases of + variables modified calls where they are IN OUT or OUT parameters and + the resulting values are not subsequently referenced. In a few cases, + we also remove redundant code found by the new warnings. + + * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads, + sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb, + sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb, + sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new + warning controlled by -gnatw.o that warns on cases of out parameter + values being ignored. + +2007-10-15 Geert Bosch + + * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus. + + * expect.c: Initial port to arm-mentor-nucleus. + Use kill for __gnat_kill() on VMS. + +2007-10-15 Emmanuel Briot + + * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default + value. + (Xref_Record): Change type for Line, since in the case of a reference to + a predefined entity (as happens for array index types), the line is set + to 0. + Add support for parsing multiple array index types info, or + multiple inherited interfaces info. This information cannot be stored + in Xref_Entity_Record, which only supports a single instance of Tref_*, + and is therefore stored in the list of references instead. It has a + special treatement later on in tools that use this information. + +2007-10-15 Tristan Gingold + + * debug.adb: Document use of -gnatd.a and -gnatd.I + + * layout.adb: On OpenVMS -gnatd.a disables alignment optimization. + +2007-10-15 Javier Miranda + + * exp_attr.adb (Expand_N_Attribute_Reference): Case Access, + Unchecked_Access, and Unrestricted_Access. Cleanup code that takes + care of access to class-wide interface types plus removal of bizarre + conversion of tagged object to access type (reported by Gary + Dismukes). After this patch there is no need to perform any + additional management on these nodes in Expand_Interface_Actuals. + + * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code + that handles use of 'Access and 'Unchecked_Access applied to + actuals covering interface types. Such code is now + centralized in Expand_N_Attribute_Reference. + +2007-10-15 Ed Schonberg + + * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization + of tagged types whose ultimate ancestor is a CPP type. + (Freeze_Array_Type): For a packed array type, generate an initialization + procedure if the type is public, to handle properly a client that + specifies Normalize_Scalars. + +2007-10-15 Hristian Kirtchev + + * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs + inside a generic body, retrieve the full view of the entry family + discrete subtype if available. + +2007-10-15 Thomas Quinot + + * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not + attempt to generate stubs for hidden primitive operations. + +2007-10-15 Vincent Celier + + * mlib-tgt-specific.adb (Support_For_Libraries): New function, + returning None, used when there is no platform specific body for + MLib.Tgt.Specific. + +2007-10-15 Bob Duff + + * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A + (passing'Unrestricted_Access of nested subprograms to Sort) with use of + the generic Heap_Sort_G, in order to avoid trampolines. + +2007-10-15 Vasiliy Fofanov + Jose Ruiz + + * vx_stack_info.c: New file. + + * i-forbla-unimplemented.ads: New file. + + * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads + for unsupported configurations; use it on VMS targets instead of the + real one. + (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include + vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info + used by VxWorks targets to have access to task-specific data and be + able to extract the stack boundaries for stack checking. + Use system-vms-ia64.ads on ivms. + + * Make-lang.in: Update dependencies. + + * sysdep.c (__gnat_get_stack_info): Move to a standalone file + (vx_stack_info.c). + +2007-10-15 Vincent Celier + + * snames.adb, snames.ads: Add new standard name runtime_library_dir + + * prj.ads (Language_Config): Add new component Runtime_Library_Dir + + * prj-attr.adb: Add project level attribute Runtime_Library_Dir + + * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of + the source is unknown. + + * prj-ext.adb: Spelling error fix + + * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada + 95 reserved word in its name. + (Process_Project_Level_Array_Attributes): Process new attribute + Runtime_Library_Dir. + + * prj-part.adb (Parse_Single_Project): Do not check the name of the + config project against the user project names. + + * prj-proc.adb (Expression): In multi-language mode, indexes that do + not include a dot are always case insensitive. + (Process_Declarative_Items): Ditto + (Process_Project_Tree_Phase_1): Set Success to False in case an error is + detected. + + * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is + True, compare both indexes in lower case. + +2007-10-15 Robert Dewar + + * rtsfind.adb: (Load_RTU): Turn off style checks for Load call + +2007-10-15 Gary Dismukes + + * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box + association for an access component, add an association with null as + the expression. Remove testing for array subtypes and the setting in + that case of Ctyp to the array component type, which prevented proper + inclusion of an association for null-initialized arrays. Collapse + condition that tests for array subtypes into just a test of + Is_Partially_Initialized_Type (which already covers arrays anyway). + +2007-10-15 Hristian Kirtchev + + * sem_ch12.adb: Minor code reformatting. + (Check_Generic_Child_Unit): Iterate over the homonym chain in order to + find the parent package which may have been hidden by local + declarations. + +2007-10-15 Gary Dismukes + + * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained + flag of derived concurrent types, taking into account the flag setting + on the parent subtype and any new set of discriminants. + +2007-10-15 Hristian Kirtchev + + * sem_ch4.adb: Minor code and comment reformatting. + (Analyze_Allocator): When the designated type of an unconstrained + allocator is a record with unknown discriminants or an array with + unknown range bounds, emit a detailed error message depending on the + compilation mode and whether the designated type is limited. + +2007-10-15 Tristan Gingold + + * system-vms-ia64.ads: New file. + + * system-vms_64.ads: Minor comment fix. + +2007-10-15 Ed Schonberg + + * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a + body generated for a function with a controlling result that is a null + extension, discard the generated body in favor of the current explicit + one. + +2007-10-15 Ed Schonberg + + * sem_disp.adb (Find_Controlling_Arg): Examine the call node before + examining its original form, to handle properly operator calls that + have been rewritten. + +2007-10-15 Olivier Hainque + + * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer + instead of a procedure value in each traceback entry. + + * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer + instead of procedure value to TBK$SYMBOLIZE. + + * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper + field. + (TB_Entry_For): Account for the PV/FP renaming. + + * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and + add comment. + (Null_TB_Entry): Account for change of component name. + (PV_For): Rename as FP_For. + +2007-10-15 Tristan Gingold + + * trans.c (gnat_to_gnu): Remove the padding structure more often. + This optimize assignment to over-aligned record. + +2007-10-15 Emmanuel Briot + + * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie + interfaces. + + * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference + type, for dispatching calls. + +2007-10-15 Vincent Celier + Robert Dewar + + * gnat_ugn.texi: Add documentation for switches --version and --help + for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname, + gnatxref, gnatfind, gnatls, and gnatclean. + Document -gnatw.o. + Mention attribute Excluded_Source_Dirs + Replace obsolescent attribute Locally_Removed_Files with attribute + Excluded_Source_Files. + Improve documentation of -u (gnatbind) + Document how to do reliable stack checking for the environmental task + on iVMS. + + * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code. + Document attribute Excluded_Source_Files and indicate that attribute + Locally_Removed_Files is obsolescent. + +2007-10-15 Thomas Quinot + + * g-soccon-vms.ads: Fix value of MSG_WAITALL. + + * gen-soccon.c: + Update documentation to note that OpenVMS 8.3 or later must be used + to generate g-soccon-vms.ads. + + * atree.adb: Add ??? comment + + * exp_util.adb: Minor reformatting. + Add ??? comment in Kill_Dead_Code. + +2007-10-15 Robert Dewar + + * errout.ads: Comment clarification + + * exp_ch4.adb (Expand_N_Allocator): Code cleanup. + (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa + + * lib.ads: Comment update + + * init.c: Minor reformatting. + + * sem_attr.adb: Minor formatting + + * osint-b.ads: Minor reformatting + + * sem_ch9.adb: Implement -gnatd.I switch + + * g-comlin.adb: (Start): Fix handling of empty command line. + + * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section, + even when -rules follows the -cargs section. + +2007-10-08 Ollie Wild + + * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with + gnat_return_tree. + (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with + gnat_return_tree. + (gnat_eh_runtime_type): Removed. + (gnat_return_tree): New function. + +2007-10-08 Ben Elliston + + PR ada/33454 + Revert: + 2007-08-31 Ben Elliston + + * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads + when compiling for powerpc64-*-linux. + * system-linux-ppc64.ads: New file. + +2007-09-27 Eric Botcazou + + Mapped location support + * back_end.adb (Call_Back_End): Pass information about source + files instead of units to gigi. + * gigi.h (struct File_Info_Type): New. + (gigi): Rename and change type of number_units parameter, change + type of file_info_ptr parameter. + * trans.c (number_files): New global variable. + (gigi): Rename and change type of number_units parameter, change + type of file_info_ptr parameter. + If mapped location support is enabled, create the isomorphic mapping + between source files and line maps. + (Sloc_to_locus): If mapped location support is enabled, translate + source location into mapped location. + (annotate_with_node): Rename into set_expr_location_from_node. + Call set_expr_location instead of annotate_with_locus. + (Pragma_to_gnu): Adjust for above change. + (Loop_Statement_to_gnu): Likewise. + (call_to_gnu): Likewise. + (Handled_Sequence_Of_Statements_to_gnu): Likewise. + (gnat_to_gnu): Likewise. + (add_stmt_with_node): Likewise. + (add_cleanup): Likewise. + * utils.c (gnat_init_decl_processing): Do not set input_line. + +2007-09-26 Hristian Kirtchev + + * sem_ch8.adb (Analyze_Use_Type): Code cleanup. + (Applicable_Use): Emit a warning when a package tries to use itself. + (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type + is already in use or the package where it is declared is in use or is + declared in the current package. + (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type. + + * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb, + s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb, + s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause. + +2007-09-26 Hristian Kirtchev + + * a-calend-vms.adb, a-calend.adb: + Add a section on leap seconds control along with two entities used to + enable and disable leap seconds support. The array Leap_Second_Times is + now constant and contains hard time values pre-generated. Remove + all elaboration code used to populate the table of leap seconds. + + * bindgen.adb: + Add entity Leap_Seconds_Support to the list of global run-time variables + along with a comment on its usage and values. + (Gen_Adainit_Ada): Add code to generate the declaration and import of + Integer variable Leap_Seconds_Support. Set its value to zero (disabled) + or one (enabled) depending on the presence of binder switch "-y". + (Gen_Adainit_C): Add code to generate the declaration of external int + __gl_leap_seconds_support. Set is value to zero (disabled) or one + (enabled) depending on the presence of binder switch "-y". + + * init.c: Add __gl_leap_seconds_support to the list of global values + computed by the binder. + +2007-09-26 Jerome Guitton + + * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb, + s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb, + s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, + s-taprop-posix.adb (Stop_Task): New function, dummy implementation. + + * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function. + + * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time + function which can be called by the debugger to interrupt the tasks of + an Ada application asynchronously, as needed on VxWorks. + (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks. + + * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration, + renamed from Stop_All_Tasks. Update comments. + (Stop_All_tasks): New function declaration. + +2007-09-26 Olivier Hainque + + * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around + #include and #define GCC_RESOURCE_H before + #include . + Add more protections in __gnat_translate_vms. + + * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before + #include . + +2007-09-26 Thomas Quinot + Sergey Rybin + + * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed. + + * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist, + where it belongs. + + * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO. + + * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist, + where it belongs. + + * sem_dist.ads: Minor comment fix + + * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO. + +2007-09-26 Javier Miranda + Eric Botcazou + + * a-tags.adb: + (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of + indirection added to the HT_Link component of the TSD. This is required + to statically allocate the TSD. + + * a-tags.ads: + Minor reordering of the declarations in the private part. Required to + add a level of indirection to the contents of the TSD component HT_Link. + This is required to statically allocate the TSD. + + * decl.c (gnat_to_gnu_entity) : Do not exclude objects with + Is_Statically_Allocated set from constant objects. + Do not make exported constants created by the compiler volatile. + (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken + as read-only. + + * trans.c (Identifier_to_gnu): For constants, unshare initializers + before returning them. + + * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the + public part of the package. + (Make_DT): Move HT_Link component out of the TSD record. For this + purpose Make_DT now declares a separate object that stores the + HT_Link value, and initializes the TSD component with the address + of this new object. The addition of this level of indirection is + required to statically allocate the TSD because the TSD cannot + have variable components. + (Expand_Interface_Conversion): Improve the expanded code. + (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity. + + * sem_disp.adb (Check_Dispatching_Operation): In case of a body + declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---, + if we are building static dispatch tables then we must not generate + extra code to register the primitive because the dispatch table will + be built at the end of the library package; otherwise we notify that + we cannot build the static dispatch table. + +2007-09-26 Robert Dewar + + * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address + overlays. + + * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays + (Analyze_Record_Representation_Clause): Suppress junk warning for + missing component clause. + (Analyze_Attribute_Definition_Clause, case Address): Apply the special + tests for controlled type overlay to composites with controlled + components. + (Analyze_Record_Representation_Clause): Add reference for component name + +2007-09-26 Javier Miranda + Gary Dismukes + + * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True + for thunks associated with interface types. + + * einfo.ads: Improve documentatation of Is_Internal + (Is_Thunk): New attribute applicable to subprograms. True for thunks + associated with interface types. + Extensive comment fixes regarding flags that appear in all entities. The + documentation is now consistent for all such flags (there were a number + of errors in the documentation in this regard). + + * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup. + + * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any + of these procedures are passed a function call that already has + build-in-place actuals (testing new flag + Is_Expanded_Build_In_Place_Call). Set the flag on the function call in + the case where processing continues. + (Expand_Call): If the call is generated from a thunk body then we + propagate the extra actuals associated with the accessibility + level of the access type actuals. + + * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field + of each extra formal of a protected operation to reference the + corresponding extra formal of the subprogram denoted by the + operation's Protected_Body_Subprogram. + + * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on + N_Function_Call nodes. + +2007-09-26 Robert Dewar + + * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set + + * debug.adb: Add d.s flag. + +2007-09-26 Gary Dismukes + + * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the + debug variable so that it won't be initialized when pragma + Initialize_Scalars is in effect. + +2007-09-26 Gary Dismukes + + * freeze.adb (Freeze_Entity): Remove check for preelaborable + initialization of a full view. This is moved to + Analyze_Package_Specification. + + * sem_ch7.adb (Analyze_Package_Specification): Add check for + preelaborable initialization of a full view in entity loop. + (Uninstall_Declarations): If entity is a use-visible compilation unit, + its child units are use-visible only if they are visible child units. + + * sem_util.adb (Is_Preelaborable_Expression): New function to determine + whether an expression can be used within a type declaration that + requires preelaborable init. + (Check_Components): Replace inline code that does partial checking for + preelaborable default expressions with call to + Is_Preelaborable_Expression. + (Has_Preelaborable_Initialization): In the case of a generic actual + subtype, (that is, Is_Generic_Actual is True), return the result of + applying Has_Preelaborable_Initialization to the generic actual's base + type. + +2007-09-26 Hristian Kirtchev + + * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a + call to Jan_1_Day _Of_Week to optimize its performance. + (Is_Leap): Move the routine to the scope of Week_In_Year. + (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the + weekday on which January 1 falls of Year - 1 and Year + 1. This function + avoids calling Time_Of and Split, thus making it more efficent. + (Week_In_Year): Reimplemented in oder to follow ISO 8601. + + * g-calend.ads (Week_In_Year): Change comment to reflect new + implementation. + +2007-09-26 Emmanuel Briot + + * g-comlin.ads, g-comlin.adb (Command_Line_Configuration, + Command_Line): New types + (Define_Alias, Define_Prefix, Free): New subprograms. These provide + support for defining how switches can be grouped on a command line (as + is the case for -gnatw... for GNAT), and how simple switches can be + used as aliases for more complex switches (-gnatwa is same as + -gnatwbcef...) + (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram + (Start, Current_*): New subprograms + Added support for parsing an array of strings in addition to the real + command line. + (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to + be moved from the body to the private part of the spec. + (*): All subprograms now have an extra parameter with default value to + specify which parser should be used. For backward compatibility, it + defaults to parsing the command line of the application. They were also + modified to properly handle cases where each of the argument does not + start at index 1 (which is always true for Ada.Command_Line, but not + when processing any Argument_List). + (Free): New subprogram + (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch, + Argument): New subprograms + (Switch_Parameter_Type): New enum, which clarifies the code. The extra + special characters like ':', '=',... are now handled in a single place, + which makes the code more extensible eventually. + (Getopt, Full_Switch): When the switch was returned as part of the + special character '*', make sure it is prepended by the switch character + ('-' in general), so that the application knows whether "foo" or "-foo" + was specified on the command line. + +2007-09-26 Florian Villoing + + * g-dirope.adb (Remove_Dir): In case we are removing directories + recursively, make sure that if an exception is raised during the + processing, the current working directory is reset to its initial + value before propagating the exception. + +2007-09-26 Vincent Celier + + * gnatbind.adb: If there are several ALI files specified and there is + a main program to bind, the first ALI is expected to contain the main + subprogram and the names of the binder generated files will be derived + from the first ALI file name. + (Gnatbind): Fix insertion character in invocation of Error_Msg + +2007-09-26 Vincent Celier + + * gnatcmd.adb (Check_Files): Do not include sources that have been + removed by attributes Exclude_Source_Files or Locally_Removed_Files. + +2007-09-26 Ed Schonberg + + * lib-xref.ads, lib-xref.adb: The entry for array types now carries + information about each of its index types, following the type + reference for its component type. + +2007-09-26 Vincent Celier + + * make.adb: (Kill): New procedure (__gnat_kill imported) + (Running_Compile, Outstanding_Compiles): Global variables that + were previously local to procedure Compile_Sources. + (Sigint_Intercepted): Send signal SIGINT to all outstanding + compilation processes. + + (Gnatmake): If project files are used, create the mapping of all the + sources, so that the correct paths will be found. + + * prj-env.ads, prj-env.adb (Create_Mapping): New procedure + +2007-09-26 Vincent Celier + + * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads + + * prj.ads, prj.adb (Default_Language): Remove function, no longer used + Replace components Compiler_Min_Options and Binder_Min_Options with + Compiler_Required_Switches and Binder_Required_Switches in record + Language_Config. + Remove components Default_Language and Config in Project_Tree_Data, + no longer used. + + * prj-attr.adb: New attributes Required_Switches () in + packages Compiler and Binder. + + * prj-nmsc.adb: Major rewrite of the processing of configuration + attributes for gprbuild. No impact on GNAT tools. + + * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer + process configuration attributes: this is done in Prj.Nmsc.Check. + (Recursive_Process): Make a full copy of packages inherited from project + being extended, instead of a shallow copy. + (Process_Project_Tree_Phase_1): New procedure + (Process_Project_Tree_Phase_1): New procedure + (Process): Implementation now uses the two new procedures + + * prj-util.adb (Executable_Of): Get the suffix and the default suffix + from the project config, not the tree config that no longer exists. + +2007-09-26 Vincent Celier + + * Make-lang.in: Update dependencies.. + +2007-09-26 Vincent Celier + + * osint.adb, osint.ads: Minor reformatting + + * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure + +2007-09-26 Gary Dismukes + + * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95 + message to cite use of <> in aggregate component associations rather + than wrongly indicating use of limited aggregates. + +2007-09-26 Robert Dewar + + * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of + Address_Taken. + +2007-09-26 Ed Schonberg + + * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct + ancestor of the derived type, the operations are inherited from the + primary dispatch table of the parent. + (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls + when the context is an explicit type conversion. + +2007-09-26 Ed Schonberg + + * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution + rule for qualified expressions properly, to detect improper conversions + and resolve some cases of overloading. + +2007-09-26 Ed Schonberg + + * sem_res.adb (Resolve_Call): If the call is dispatching, generate the + proper kind of reference to the primitive operation, for better source + navigation. + (Valid_Conversion): A tagged conversion is legal if both operands are + tagged. + +2007-09-26 Robert Dewar + + * sem_warn.adb (Check_References): Catch more cases of unreferenced + packages. + +2007-09-26 Vincent Celier + + * snames.adb, snames.ads: Change Include_Option to Include_Switches + +2007-09-26 Robert Dewar + + * s-wchstw.adb: provide messages for run time unit exceptions + + * a-witeio.adb: Minor reformatting + + * exp_ch13.adb: Minor reformatting + +2007-09-26 Sergey Rybin + + * vms_data.ads: Revise gnatmetric qualifiers. + Add qualified for the new gnatbind option '-y' + + * gnat_ugn.texi: Revise the gnatmetric section. + Add entry for new gnatbind option '-y'. + + * gnat_rm.texi: Minor spelling correction. + Document restriction on overlaying controlled types + +2007-09-26 Vincent Celier + + * makegpr.adb (Link_Executables): Do not fail when the root project has + no sources, but is an extending project. + +2007-09-25 Eric Botcazou + + * trans.c: Fix misplaced #define. + +2007-09-22 Eric Botcazou + + * utils2.c (build_unary_op) [INDIRECT_REF]: Propagate + the TYPE_REF_CAN_ALIAS_ALL flag to the result. + +2007-09-21 Olivier Hainque + + * utils.c (type_for_nonaliased_component_p): Return false for + all AGGREGATE_TYPEs. + +2007-09-17 Eric Botcazou + + * decl.c (gnat_to_gnu_entity) : Make again the type of an + object covered by 13.3(19) volatile. + +2007-09-12 Eric Botcazou + + PR ada/26797 + PR ada/32407 + * utils.c (unchecked_convert): Use a subtype as the intermediate type + in the special VIEW_CONVERT_EXPR case. + +2007-09-12 Robert Dewar + + * types.ads, a-charac.ads, freeze.adb: Minor reformatting. + + * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads, + lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb, + s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb, + s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb, + s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb, + s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb, + s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb, + s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb, + a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads, + g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads, + s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb, + s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb, + snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads, + s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads, + s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads, + s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads, + s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement + pragma Compiler_Unit and adds it to relevant library units. + +2007-09-12 Ed Schonberg + + * sem_aggr.adb (Resolve_Record_Aggregate): An others association with + a box need not correspond to any component. + +2007-09-12 Robert Dewar + + * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading + the tasking version of the Ada run time when foreign threads are + present and there are no explicit Ada tasks or tasking constructs. + + * gnat_rm.texi: Clarify documentation of GNAT.Threads. + +2007-09-12 Hristian Kirtchev + + * bindusg.adb (Display): Correct comment for switch -X. Add a line for + the usage of switch -y. + + * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support + when switch -y is present. + + * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable + leap seconds in Ada.Calendar and its children. + +2007-09-12 Jose Ruiz + + * a-extiti.ads (Timer): The discriminant is a "not null access + constant" in the Reference Manual. + (Cancel_Handler): Cancelled is an out parameter in the Reference Manual. + +2007-09-12 Robert Dewar + + * a-swuwha.adb: Remove junk RM header + +2007-09-12 Vincent Celier + + * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode + indicator + + * g-bytswa.ads: Minor reformatting + +2007-09-12 Thomas Quinot + + * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads: + Add new constant Thread_Blocking_IO, always True by default, set False + on a per-runtime basis. + (Need_Netdb_Buffer): New constant. + +2007-09-12 Arnaud Charlet + + * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id): + Added renames for corresponding functions in System.Partition_Interface. + +2007-09-12 Doug Rupp + + * Makefile.in: Remove VMS specific System.CRTL packages which are no + longer needed. + + * s-crtl-vms64.ads: Removed. + +2007-09-12 Olivier Hainque + + * decl.c (gnat_to_gnu_entity) : For a subtype + with discriminant constraints, generalize the code for BIT_FIELDs + to PACKED fields of constant size and propagate DECL_PACKED. + +2007-09-11 Eric Botcazou + + * decl.c (array_type_has_nonaliased_component): New predicate. + (gnat_to_gnu_field) : Invoke the above predicate to + set the TYPE_NONALIASED_COMPONENT flag on the type. + : Likewise. + * gigi.h (type_for_nonaliased_component_p): Declare. + * utils.c (type_for_nonaliased_component_p): New predicate. + (create_field_decl): Invoke the above predicate to set the + DECL_NONADDRESSABLE_P flag on the field. + +2007-09-11 Javier Miranda + + * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present + in library level record type entities if we are generating statically + allocated dispatch tables. + + * exp_disp.adb (Make_Tags/Make_DT): Replace previous code + importing/exporting the _tag declaration by new code + importing/exporting the dispatch table wrapper. This change allows us + to statically allocate of the TSD. + (Make_DT.Export_DT): New procedure. + (Build_Static_DT): New function. + (Has_DT): New function. + + * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags + True_Constant and Current_Value. Required to statically + allocate the dispatch tables. + (Check_Allocator): Make function iterative instead of recursive. + Also return inner allocator node, when present, so that we do not have + to look for that node again in the caller. + +2007-09-11 Jan Hubicka + + * misc.c (gnat_expand_body): Kill. + (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill. + +2007-09-10 Robert Dewar + + * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb, + mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb, + mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, + mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads, + ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads, + bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads, + bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb, + butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb, + comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads, + elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads, + err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb, + exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads, + exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb, + exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb, + exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads, + exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb, + exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads, + exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads, + exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb, + exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb, + exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads, + exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb, + fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads, + get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb, + gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb, + gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads, + gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads, + gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads, + gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, + gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads, + inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads, + lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb, + lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads, + make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads, + mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, + mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads, + mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb, + mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt, + osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb, + osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads, + par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb, + par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb, + par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb, + par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb, + par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads, + prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads, + prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb, + prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads, + prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads, + prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads, + prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads, + prj-util.adb, prj-util.ads, restrict.adb, restrict.ads, + rtsfind.adb, rtsfind.ads, scn.adb, scn.ads, + scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb, + sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb, + sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb, + sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads, + sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads, + sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, + sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads, + sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb, + sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads, + sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb, + sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads, + sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, + sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb, + sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads, + sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads, + stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb, + styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads, + switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb, + switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb, + tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads, + treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads, + types.h, uintp.h, urealp.h, usage.adb, usage.ads, + validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb, + xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb, + xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb, + gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb, + mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb, + symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb, + mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb, + mlib-tgt-vms.ads: Replace headers with GPL v3 headers. + +2007-09-10 Emmanuel Briot + + * s-regpat.adb (Parse_Character_Class): Fix handling of empty character + classes ("[]"). + +2007-09-10 Vasiliy Fofanov + + * adaint.c (__gnat_translate_vms): new function. + +2007-09-10 Gary Dismukes + Thomas Quinot + + * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only + create an abstract subprogram in the case of 'Input. For 'Output we now + create a real spec/body when the type is abstract, since it can + potentially be called. + (Predefined_Primitive_Bodies): Now allow the creation of a predefined + body for 'Output when the type is abstract (only the creation of the + body for 'Input is excluded when the type is abstract). + (Stream_Operation_OK): Add an additional condition in the return + statement, so that False will be returned for TTS_Stream_Input if the + associated tagged type is an abstract extension. Add comments for + return statement. + (Expand_N_Object_Declaration): For the case of a shared passive + variable, insert init proc call only after the shared variable + procedures have been processed, because the IP call needs to undergo + shared passive variable reference expansion, which requires these + procedures to be available (and elaborated). + +2007-09-10 Vincent Celier + + * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove + parameter Runtime_Project. + +2007-09-10 Ed Schonberg + + * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is + given a box association, the type of the component is discriminated, + and the value of the discriminant is the discriminant of the enclosing + type, retrieve its value from the aggregate itself, where it must have + been supplied. + + * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix, + to remove other spurious ambiguities on arithmetic operations involving + literals and addresses, on systems where Address is a visible integer + type, when the operator is called in functional notation. + (Try_Primitive_Operation): Within an instance, a call in prefixed form + is legal when the types match, even if the operation is currently + hidden. + +2007-09-10 Ed Schonberg + + * sem_ch12.adb (Build_Local_Package): A formal package with no + associations is legal if all formals have defaults. It is not + equivalent to a formal declared with a box. + +2007-09-10 Sergey Rybin + + * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option + +2007-09-10 Sergey Rybin + + * gnat_ugn.texi: Add description of the new '-lratio' option + Update 7.3.1 section about availability of the feature. + +2007-09-10 Thomas Quinot + + * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last + inserted node. + +2007-09-10 Olivier Hainque + + * Makefile.in: (mips-irix section): Activate build of libgmem. + +2007-09-10 Eric Botcazou + + * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber + x87 registers. + +2007-09-10 Eric Botcazou + + * decl.c (gnat_to_gnu_entity) : Deal with variable built for + a debug renaming declaration specially. + +2007-09-08 Eric Botcazou + + * decl.c (gnat_to_gnu_entity) : Simplify the condition under + which a constant renaming is treated as a normal object declaration. + * trans.c (lvalue_required_p) : New case, extracted from + the N_Indexed_Component case. + : Fall through to above case. + : Return true for all composite types. + +2007-09-08 Eric Botcazou + + * decl.c (make_packable_type): If the new type has been given BLKmode, + try again to get an integral mode for it. + +2007-09-07 Eric Botcazou + + Re-apply accidentally reverted change: + + 2007-02-07 Andreas Krebbel + + * 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-09-06 Eric Botcazou + + * trans.c (convert_with_check): Update call to real_2expN. + +2007-09-05 Sandra Loosemore + + * trans.c (Compilation_unit_to_gnu): Use set_cfun. + * utils.c (end_subprog_body): Likewise. + +2007-09-03 Nick Clifton + + * Make-lang.in: Change copyright header to refer to version 3 of + the GNU General Public License and to point readers at the + COPYING3 file and the FSF's license web page. + * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c, + Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h, + namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h, + treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c: + Likewise. + +2007-08-31 Vincent Celier + + PR ada/4720 + + * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb, + gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb + (Check_Version_And_Help): New procedure in package Switch to process + switches --version and --help. + Use Check_Version_And_Help in GNAT tools + + * make.adb: Ditto. + (Compile_Sources): Make sure that sources that are "excluded" are not + compiled. + (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a + project file is used. + (Version_Switch): Remove, moved to Switch + (Help_Switch): Remove, moved to Switch + (Display_Version): Remove, moved to Switch + + * switch.ads, switch.adb (Check_Version_And_Help): New procedure in + package Switch to process switches --version and --help. + (Display_Version): New procedure + + * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function. + +2007-08-31 Javier Miranda + + * a-tags.adb (Internal_Tag): Protect the run-time against wrong + internal tags. + +2007-08-31 Hristian Kirtchev + + * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine. + (Mark_Non_Null): If the node for which we just generated an access check + is a reference to an *in* parameter and the reference appears in the + declarative part of a subprogram body, mark the node as known non null. + +2007-08-31 Hristian Kirtchev + + * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the + structure of E_Exception to reflect the new flag. + (Is_Raised, Set_Is_Raised): New inlined routines. + Update the usage of available flag to reflect the addition of Is_Raised. + (Is_Raised, Set_Is_Raised): Bodies of new routines. + (Write_Entity_Flags): Write the status of flag Is_Raised. + (Is_Descendent_Of_Address): New entity flag, to simplify handling of + spurious ambiguities when integer literals appear in the context of an + address type that is a visible integer type. + + * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local + exceptions never being raised. + (Analyze_Raise_Statement): When analyzing an exception, mark it as being + explicitly raised. + +2007-08-31 Javier Miranda + + * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise + statement when compiling under restriction No_Exceptions_Proparation. + +2007-08-31 Ed Schonberg + + * exp_ch3.adb (Build_Record_Init_Proc): If there is a static + initialization aggregate for the type, generate itype references for + thetypes of its (sub)components, to prevent out-of-scope errors in gigi. + +2007-08-31 Gary Dismukes + + * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a + library-level package renaming, pass the declaration associated with + the renaming's special debug variable to Qualify_Entity_Names to ensure + that its encoded name is properly qualified. + + * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity + occurring in the list of entities to qualify, and do not attempt to + traverse an entity list in that case. Variables associated with +` library-level package renamings can now occur in the table. + + * exp_dbug.ads: Revise documentation of the encoding for renaming + declarations. + +2007-08-31 Richard Kenner + + * layout.adb (Layout_Type): Use Underlying_Type to determine whether an + access type points to an unconstrained array. + +2007-08-31 Hristian Kirtchev + + * restrict.adb, namet.adb, par-util.adb: Remove redundant type + conversion. + + * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect + simple redundant qualifications. The check is performed whenever the + expression is a non-overloaded identifier. + (Resolve_Type_Conversion): Enchance the redundant type conversion check + to include loop parameters. + (Valid_Conversion): Avoid generation of spurious error message. + +2007-08-31 Bob Duff + + * par-ch4.adb (P_Simple_Expression): Fold long sequences of + concatenations of string literals into a single literal, in order to + avoid very deep recursion in the front end, which was causing stack + overflow. + + * sem_eval.adb (Eval_Concatenation): If the left operand is the empty + string, and the right operand is a string literal (the case of "" & + "..."), optimize by avoiding copying the right operand -- just use the + value of the right operand directly. + + * stringt.adb (Store_String_Chars): Optimize by growing the + String_Chars table all at once, rather than appending characters one by + one. + (Write_String_Table_Entry): If the string to be printed is very long, + just print the first few characters, followed by the length. Otherwise, + doing "pn(n)" in the debugger can take an extremely long time. + + * sem_prag.adb (Process_Interface_Name): Replace loop doing + Store_String_Char with Store_String_Chars. + +2007-08-31 Vincent Celier + + * prj-attr.adb: Add new attribute Excluded_Source_Files + + * prj-nmsc.adb: Use attribute Excluded_Source_Files before + Locally_Removed_Files. + + * snames.ads, snames.adb: New standard name Excluded_Source_Files + +2007-08-31 Ed Schonberg + + * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context + clauses of subunits, ignore limited_with_clauses that are illegal and + have not been fully analyzed. + +2007-08-31 Ed Schonberg + + * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity + flag, for effiency. It is called when analyzing arithmetic operators + and also for actuals in calls that are universal_integers. The flag is + set for the predefined type address, and for any type or subtype + derived from it. + + * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a + Universal_Integer, when the formal is a descendent of address and the + call appears in user code. + (Analyze_Selected_Component): if the prefix is a private extension, the + tag component is visible. + + * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an + entity flag. + +2007-08-31 Robert Dewar + + * s-fileio.adb (Open): Normalize file name to lower case in non-case + sensitive file name systems to avoid unexpected mismatch in Vista. + +2007-08-31 Vincent Celier + + * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR + +2007-08-31 Vincent Celier + + * symbols-vms.adb (Initialize): Read symbol files with continuation + lines + (Finalize): If symbol is long, split the line + +2007-08-31 Vincent Celier + + * fmap.ads: Minor comment updates + +2007-08-31 GNAT Script + + * Make-lang.in: Makefile automatically updated + +2007-08-31 Bob Duff + + * sinfo.ads: Minor comment fix. + +2007-08-31 Thomas Quinot + + * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent + with implementation. + Documentation cleanup only. + +2007-08-31 Sergey Rybin + + * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new + gnatpp '--separate-stmt-name' option. + Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line' + option. + + * gnat_ugn.texi: Add description for the new gnatpp + '--separate-stmt-name' and '--use-on-new-line' options. + +2007-08-31 Ben Elliston + + * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads + when compiling for powerpc64-*-linux. + * system-linux-ppc64.ads: New file. + +2007-08-22 Krister Walfridsson + + * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for + NetBSD. + +2007-08-16 Kaveh R. Ghazi + + * misc.c (gnat_type_max_size): Constify. + +2007-08-16 Gary Dismukes + + * cstand.adb (Create_Standard): Create an entity for a zero-sized type + associated with Standard_Debug_Renaming_Type, to be used as the type of + the special variables whose names provide debugger encodings for + renaming declarations. + + * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25. + (Set_Debug_Renaming_Link): Change to set Node25. + (Write_Field13_Name): Remove case for E_Enumeration_Literal. + (Write_Field25_Name): Add case for E_Variable to output + "Debug_Renaming_Link". + (Write_Field23_Name): Correct the output string for "Limited_View". + + * exp_dbug.adb: Add with and use of Tbuild. + (Debug_Renaming_Declaration): Replace creation of an enumeration type + and literal with creation of a variable of type + Standard_Debug_Renaming_Type whose name encodes both the renamed object + and the entity of the renaming declaration. + (Qualify_Entity_Name): Add the delayed qualification of the entity name + part of the name of a variable that has a Debug_Renaming_Link. + + * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a + special type to be associated with variables that provide debugger + encodings for renaming declarations. + +2007-08-16 Gary Dismukes + Ed Schonberg + Javier Miranda + + * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an + ancestor part given by an aggregate to test for an unchecked conversion, + since this can occur in some cases when the ancestor part is a function + call, and we don't want to fall into the recursive call to this + procedure in that case. + + * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of + stream attributes on limited types to account for user-specified + attributes as well as whether Input (resp. Output) becomes available + due to Read (resp. Write) being available for the type. Change Boolean + variable to the more accurate name + Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted + double-"not" predicate at beginning of return statement to more + understandable form. + + * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended + return has an associated N_Handled_Sequence_Of_Statements, then wrap it + in a block statement and use that as the first statement of the + expanded return rather than incorrectly using the handled sequence as + the first statement. + + * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected + operation, generate an explicit freeze node for it rather than + generating extra formals, to ensure that gigi has the proper order of + elaboration for anonymous subtypes in the signature of the subprograms. + (Build_In_Place_Formal): Move assertion to beginning of loop. + (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion + applied to a function call (occurs for some cases of 'Input). + (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion + applied to a function call (occurs for some cases of 'Input). + + * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada + 2005, generate an extended return statement enclosing the result object + and 'Read call. + + * freeze.adb (Freeze_Record_Type): Extend the current management of + components that are access type with an allocator as default value: add + missing support to the use of qualified expressions of the + allocator (which also cause freezing of the designated type!) + (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined + dispatching operation, since extra formals may be needed by calls to + build-in-place functions (such as stream 'Input). + + * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra + formals for 'Constrained and accessibility level in the case of a + predefined dispatching operation. + + * exp_util.adb (Insert_Actions): A protected body is a valid insertion + point, no need to find the parent node. + +2007-08-16 Javier Miranda + + * exp_attr.adb (Attribute_Priority): Add missing support for entries + and entry barriers. + +2007-08-16 Javier Miranda + + * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it + is not really required and can introduce regression with the debugger. + The original problem is fixed with the patch written for checks.adb. + +2007-08-16 Thomas Quinot + + * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress + Range_Check on Allocated_Table. + +2007-08-16 Vincent Celier + + * make.adb (Collect_Arguments): Call Test_If_Relative_Path with + Including_Non_Switch set to False. + (Gnatmake): For the compiler, call Test_If_Relative_Path with + Including_Non_Switch set to False. + + * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean + parameter Including_Non_Switch, defaulted to True. When + Including_Non_Switch is False, options that are not switches and + appear as relative path are not converted to absolute paths. + +2007-08-16 Nicolas Roche + + * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub + makefiles + + * Make-lang.in: Update dependencies + +2007-08-16 Hristian Kirtchev + + * sem_ch10.adb (Has_With_Clause): If the name of the with clause + currently inspected is a selected component, retrieve the entity of + its selector. + (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting + from the immediate ancestor of Main_Unit_Entity. + (Install_Limited_Withed_Unit): Do not install the limited view of + package P if P is reachable through an ancestor chain from package C + and C also has a with clause for P in its body. + (Has_Limited_With_Clause): New routine. + (Has_With_Clause): New routine. + +2007-08-16 Ed Schonberg + + * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the + generic for an enclosing instance is a global reference, even though + its scope is the enclosing instance. + +2007-08-16 Gary Dismukes + Javier Miranda + + * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to + initialize a limited object. + (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4 + 13/2 and 14/2. + Make sure Has_Complex_Representation is inherited by derived type. + +2007-08-16 Robert Dewar + + * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in + exception case + +2007-08-16 Ed Schonberg + + * sem_disp.adb (Check_Dispatching_Operation): If the operation + implements an operation inherited from a progenitor interface, verify + that they are subtype-conformant. + +2007-08-16 Hristian Kirtchev + Bob Duff + Nicolas Setton + + * sem_res.adb (Comes_From_Predefined_Lib_Unit): New. + (Resolve): Alphabetize local variables. Add new variable From_Lib. When + the statement which is being resolved comes from a predefined library + unit, all non-predefined library interpretations are skipped. + (Resolve_Op_Concat): If string concatenation was folded in the parser, + but the "&" is user defined, give an error, because the folding would + be wrong. + + * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that + the parser has folded a long sequence of concatenations of string + literals. + + * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE" + and "JMP_BUF" variables as artificial. + (N_String_Literal): Do not use alloca for very long string literals. Use + xmalloc/free instead. Otherwise the stack might overflow. + + * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the + compiler. + +2007-08-16 Vincent Celier + + * vms_conv.adb (Process_Argument): Ensure that project related options + are not put in the -cargs section when using GNAT COMPILE. + +2007-08-16 Robert Dewar + + * gnat_ugn.texi: Add note on preprocessing (output file not written) + +2007-08-16 Thomas Quinot + + * a-tags.adb: Minor reformatting. + +2007-08-16 Bob Duff + + * sem_type.ads, sem_ch4.adb: Minor reformatting. + +2007-08-14 Thomas Quinot + + * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads, + s-osinte-interix.ads, system-interix.ads: Removed. + +2007-08-14 Hristian Kirtchev + + * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove + calls to Check_Within_Time_Bounds. + ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds. + (Difference): Account for possible rounding of the resulting difference + +2007-08-14 Robert Dewar + + * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb, + par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb, + s-osinte-solaris.adb, s-osinte-solaris.ads, + s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting. + + * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style + switch -gnatyS. Enable -gnatyS in GNAT style check mode + +2007-08-14 Robert Dewar + Ed Schonberg + + * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads: + Suppress unmodified in-out parameter warning in some cases + This patch is a also fairly significant change to the way suppressible + checks are handled. + + * checks.ads, checks.adb (Install_Null_Excluding_Check): No check + needed for access to concurrent record types generated by the expander. + (Generate_Range_Check): When generating a temporary to capture the + value of a conversion that requires a range check, set the type of the + temporary before rewriting the node, so that the type is always + properly placed for back-end use. + (Apply_Float_Conversion_Check): Handle case where the conversion is + truncating. + (Get_Discriminal): Code reformatting. Climb the scope stack looking + for a protected type in order to examine its discriminants. + +2007-08-14 Robert Dewar + Gary Dismukes + Ed Schonberg + Thomas Quinot + + * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb, + a-stwisu.adb, a-strsup.adb: Fix warnings for range + tests optimized out. + + * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out. + (Get_Allocator_Final_List): For the case of an anonymous access type + that has a specified Associated_Final_Chain, do not go up to the + enclosing scope. + (Expand_N_Type_Conversion): Test for the case of renamings of access + parameters when deciding whether to apply a run-time accessibility + check. + (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded + aggregate code before allocator, and ahead of declaration for + temporary, to prevent access before elaboration when the allocator is + an actual for an access parameter. + (Expand_N_Type_Conversion): On an access type conversion involving an + access parameter, do not apply an accessibility check when the + operand's original node was an attribute other than 'Access. We now + create access conversions for the expansion of 'Unchecked_Access and + 'Unrestricted_Access in certain cases and clearly accessibility should + not be checked for those. + + * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that + includes a type conversion of a packed component that has been expanded, + recover the original expression for the object, and use this expression + in the post-call assignment statement, so that the assignment is made + to the object and not to a back-end temporary. + (Freeze_Subprogram): In case of primitives of tagged types not defined + at the library level force generation of code to register the primitive + in the dispatch table. In addition some code reorganization has been + done to leave the implementation clear. + (Expand_Call): When expanding an inherited implicit conversion, + preserve the type of the inherited function after the intrinsic + operation has been expanded. + + * exp_ch2.ads, exp_ch2.adb + (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference + of an entry formal appearing in an assignment statement does not assign + to the formal. + (Expand_Current_Value): Instead of calling a routine to determine + whether the prefix of an attribute reference should be optimized or + not, prevent the optimization of such prefixes all together. + + * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected + component whose prefix is known to be of an access type is an implicit + dereference and does not assign to the prefix. + +2007-08-14 Ed Schonberg + Robert Dewar + + * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and + itype is visited, make an entry into table to link associated node and + new itype. + Add comments and correct harmless error in Build_NCT_Hash_Tables + (Array_Aggr_Subtype): Associate each itype created for an index type to + the corresponding range construct, and not to the aggregate itself. to + maintain a one-to-one correspondence between itype and its associated + node, to prevent errors when complex expression is copied. + Fix mishandling of multiple levels of parens + + * sem_aggr.adb: Create a limited view of an incomplete type, to make + treatment of limited views uniform for all visible declarations in a + limited_withed package. + (New_Copy_Tree): If hash table is being used and itype is visited, + make an entry into table to link associated node and new itype. + (Resolve_Record_Aggregate): Do not add an others box association for a + discriminated record component that has only discriminants, when there + is a box association for the component itself. + + * par-ch4.adb: Fix mishandling of multiple levels of parens + +2007-08-14 Robert Dewar + + * comperr.adb: Fix problem with suppressing warning messages from gigi + + * erroutc.ads, erroutc.adb, errout.ads, + errout.adb (Write_Eol): Remove trailing spaces before writing the line + (Write_Eol_Keep_Blanks): New procedure to write a line, including + possible trailing spaces. + (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line + Fix problem with suppressing warning messages from back end + Improve handling of deleted warnings + + * gnat1drv.adb: + Fix problem with suppressing warning messages from back end + Handle setting of Static_Dispatch_Tables flag. + + * prepcomp.adb: + Fix problem with suppressing warning messages from back end + + * exp_intr.adb: Improve handling of deleted warnings + +2007-08-14 Robert Dewar + + * debug.adb: Improve -gnatdI to cover all cases of serialization + Add documentation of dZ, d.t + + * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of + serialization. + (Sprint_Node_Actual): Generate new output associated with implicit + importation and implicit exportation of object declarations. + +2007-08-14 Ed Schonberg + Robert Dewar + Javier Miranda + Gary Dismukes + + * einfo.ads, einfo.adb: Create a limited view of an incomplete type, + to make treatment of limited views uniform for all visible declarations + in a limited_withed package. + Improve warnings for in out parameters + (Set_Related_Interaface/Related_Interface): Allow the use of this + attribute with constants. + (Write_Field26_Name): Handle attribute Related_Interface in constants. + Warn on duplicate pragma Preelaborable_Initialialization + + * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the + generation of a freezing node to ensure proper management of null + excluding access types in the backend. + (Create_Extra_Formals): Test base type of the formal when checking for + the need to add an extra accessibility-level formal. Pass the entity E + on all calls to Add_Extra_Formal (rather than Scope (Formal) as was + originally being done in a couple of cases), to ensure that the + Extra_Formals list gets set on the entity E when the first entity is + added. + (Conforming_Types): Add missing calls to Base_Type to the code that + handles anonymous access types. This is required to handle the + general case because Process_Formals builds internal subtype entities + to handle null-excluding access types. + (Make_Controlling_Function_Wrappers): Create wrappers for constructor + functions that need it, even when not marked Requires_Overriding. + Improve warnings for in out parameters + (Analyze_Function_Return): Warn for disallowed null return + Warn on return from procedure with unset out parameter + Ensure consistent use of # in error messages + (Check_Overriding_Indicator): Add in parameter Is_Primitive. + (Analyze_Function_Return): Move call to Apply_Constraint_Check before + the implicit conversion of the expression done for anonymous access + types. This is required to generate the code of the null excluding + check (if required). + + * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable): + A formal parameter is never publicly referenceable outside of its body. + (Check_References): For an unreferenced formal parameter in an accept + statement, use the same warning circuitry as for subprogram formal + parameters. + (Warn_On_Unreferenced_Entity): New subprogram, taken from + Output_Unreferenced_Messages, containing the part of that routine that + is now reused for entry formals as described above. + (Goto_Spec_Entity): New function + (Check_References): Do not give IN OUT warning for dispatching operation + Improve warnings for in out parameters + (Test_Ref): Check that the entity is not undefinite before calling + Scope_Within, in order to avoid infinite loops. + Warn on return from procedure with unset out parameter + Improved warnings for unused variables + +2007-08-14 Robert Dewar + Javier Miranda + Gary Dismukes + + * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit + (Expand_N_Attribute_Reference): Further unify the handling of the + three forms of access attributes, using common code now for all three + cases. Add a test for the case of applying an access attribute to + an explicit dereference when the context is an access-to-interface + type. In that case we need to apply the conversion to the prefix + of the explicit dereference rather than the prefix of the attribute. + (Attribute_Version, UET_Address): Set entity as internal to ensure + proper dg output of implicit importation. + (Expand_Access_To_Type): Removed. + (Expand_N_Attribute_Reference): Merge the code from the three cases + of access attributes, since the processing is largely identical for + these cases. The substantive fix here is to process the case of a + type name prefix (current instance case) before handling the case + of interface prefixes. + +2007-08-14 Thomas Quinot + Ed Schonberg + Javier Miranda + Robert Dewar + + * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram. + (Freeze_Array_Type, Freeze_Record_Type): For the case of a component + type that is an anonymous access to controlled object, establish + an associated finalization chain to avoid corrupting the global + finalization list when a dynamically allocated object designated + by such a component is deallocated. + (Make_Controlling_Function_Wrappers): Create wrappers for constructor + functions that need it, even when not marked Requires_Overriding. + (Initialize_Tag): Replace call to has_discriminants by call to + Is_Variable_Size_Record in the circuitry that handles the + initialization of secondary tags. + (Is_Variable_Size_Record): New implementation. + (Expand_N_Object_Declaration): Suppress call to init proc if there is a + Suppress_Initialization pragma for a derived type. + (Is_Variable_Size_Record): New subprogram. + (Build_Offset_To_Top_Functions): New implementation that simplifies the + initial version of this routine and also fixes problems causing + incomplete initialization of the table of interfaces. + (Build_Init_Procedure): Improve the generation of code to initialize the + the tag components of secondary dispatch tables. + (Init_Secondary_Tags): New implementation that simplifies the previous + version of this routine. + (Make_DT): Add parameter to indicate when type has been frozen by an + object declaration, for diagnostic purposes. + (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to + diagnose attemps to freeze a subprogram when some untagged type of its + profile is a private type whose full view has not been analyzed yet. + (Freeze_Array_Type): Generate init proc for packed array if either + Initialize or Normalize_Scalars is set. + (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when + constructing the new profile, copy the null_exclusion indicator for each + parameter, to ensure full conformance of the new body with the spec. + + * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers): + Create wrappers for constructor functions that need it, even when not + marked Requires_Overriding. + (Covers): Handle properly designated types of anonymous access types, + whose non-limited views are themselves incomplete types. + (Add_Entry): Use an entity to store the abstract operation which hides + an interpretation. + (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op. + (Collect_Interps): Use Empty as an actual for Abstract_Op in the + initialization aggregate. + (Function_Interp_May_Be_Hidden): Rename to + Function_Interp_Has_Abstract_Op. + (Has_Compatible_Type): Remove machinery that skips interpretations if + they are labeled as potentially hidden by an abstract operator. + (Has_Hidden_Interp): Rename to Has_Abstract_Op. + (Set_May_Be_Hidden): Rename to Set_Abstract_Op. + (Write_Overloads): Output the abstract operator if present. + (Add_Entry): Before inserting a new entry into the interpretation table + for a node, determine whether the entry will be disabled by an abstract + operator. + (Binary_Op_Interp_May_Be_Hidden): New routine. + (Collect_Interps): Add value for flag May_Be_Hidden in initialization + aggregate. + (Function_Interp_May_Be_Hidden): New routine. + (Has_Compatible_Type): Do not consider interpretations hidden by + abstract operators when trying to determine whether two types are + compatible. + (Has_Hidden_Interp): New routine. + (Set_May_Be_Hidden_Interp): New routine. + (Write_Overloads): Write the status of flag May_Be_Hidden. + +2007-08-14 Ed Schonberg + Javier Miranda + + * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged + types declared in the declarative part of a nested package body or in + the proper body of a stub. + (Set_All_DT_Position): Add missing check to avoid wrong assignation + of the same dispatch table slot to renamed primitives. + (Make_Select_Specific_Data_Table): Handle private types. + (Tagged_Kind): Handle private types. + (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg + output of implicit importation and exportation. + (Expand_Interface_Thunk): Fix bug in the expansion assuming that the + first formal of the thunk is always associated with the controlling + type. In addition perform the following code cleanup: remove formal + Thunk_Alias which is no longer required, cleanup evaluation of the + the controlling type, and update the documentation. + Replace occurrence of Default_Prim_Op_Count by + Max_Predef_Prims. Addition of compile-time check to verify + that the value of Max_Predef_Prims is correct. + (Check_Premature_Freezing): Apply check in Ada95 mode as well. + (Make_DT): Add parameter to indicate when type has been frozen by an + object declaration, for diagnostic purposes. + (Build_Static_Dispatch_Tables): New subprogram that takes care of the + construction of statically allocated dispatch tables. + (Make_DT): In case of library-level tagged types export the declaration + of the primary tag. Remove generation of tags (now done by Make_Tags). + Additional modifications to handle non-static generation of dispatch + tables. Take care of building tables for asynchronous interface types + (Make_Tags): New subprogram that generates the entities associated with + the primary and secondary tags of Typ and fills the contents of Access_ + Disp_Table. In case of library-level tagged types imports the forward + declaration of the primary tag that will be declared later by Make_DT. + (Expand_Interface_Conversion): In case of access types to interfaces + replace an itype declaration by an explicit type declaration to avoid + problems associated with the scope of such itype in transient blocks. + +2007-08-14 Robert Dewar + Ed Schonberg + Javier Miranda + + * exp_util.ads, exp_util.adb: + This patch replaces a number of occurrences of explicit tests for N_Null + with calls to Known_Null. This improves tracking of null values, since + Known_Null also catches null constants, and variables currently known to + be null, so we get better tracking. + (Ensure_Defined): create an itype reference only in the scope of the + itype. + (Side_Effect_Free): A selected component of an access type that + denotes a component with a rep clause must be treated as not + side-effect free, because if it is part of a linked structure its + value may be affected by a renaming. + (Expand_Subtype_From_Expr): For limited objects initialized with build + in place function calls, do nothing; otherwise we prematurely introduce + an N_Reference node in the expression initializing the object, which + breaks the circuitry that detects and adds the additional arguments to + the called function. Bug found working in the new patch for statically + allocated dispatch tables. + (Is_Library_Level_Tagged_Type): New subprogram. + (Remove_Side_Effects): If the expression of an elementary type is an + operator treat as a function call. + (Make_Literal_Range): If the index type of the array is not integer, use + attributes properly to compute the constraint on the resulting aggregate + which is a string. + + * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a + class-wide type whose base type is an incomplete private type, leave + class-wide type unfrozen so that freeze nodes can be generated + properly at a later point. + (Freeze_Entity, array case): Handle case of pragma Pack and component + size attributre clause for same array. + +2007-08-14 Vincent Celier + + * prj.ads, prj.adb: Update Project Manager to new attribute names for + gprbuild. + Allow all valid declarations in configuration project files + (Reset): Initialize all tables and hash tables in the project tree data + Major update of the Project Manager and of the project aware tools, + including gprmake, so that the same sources in the GNAT repository + can be used by gprbuild. + (Slash_Id): Change type to be Path_Name_Type + (Slash): Return a Path_Name_Type instead of a File_Name_Type + + * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by + gprbuild. + Update Project Manager to new attribute names for ghprbuild + Allow all valid declarations in configuration project files + Major update of the Project Manager and of the project aware tools, + including gprmake, so that the same sources in the GNAT repository + can be used by gprbuild. + + * prj-com.ads: + Major update of the Project Manager and of the project aware tools, + including gprmake, so that the same sources in the GNAT repository + can be used by gprbuild. + + * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case + insensitive flag for attributes with optional index. + (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative + array attribute, put the index in lower case. + Update Project Manager to new attribute names for ghprbuild + Allow all valid declarations in configuration project files + Major update of the Project Manager and of the project aware tools, + including gprmake, so that the same sources in the GNAT repository + can be used by gprbuild. + + * prj-env.ads, prj-env.adb: + Major update of the Project Manager and of the project aware tools, + including gprmake, so that the same sources in the GNAT repository + can be used by gprbuild. + (Get_Reference): Change type of parameter Path to Path_Name_Type + + * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after + removing '-' from the path to start with the first character of the + next directory. + Major update of the Project Manager and of the project aware tools, + including gprmake, so that the same sources in the GNAT repository + can be used by gprbuild. + Major update of the Project Manager and of the project aware tools, + including gprmake, so that the same sources in the GNAT repository + can be used by gprbuild. + + * prj-nmsc.ads, prj-nmsc.adb: + Update Project Manager to new attribute names for ghprbuild + Allow all valid declarations in configuration project files + (Search_Directories): Detect subunits that are specified with an + attribute Body in package Naming. Do not replace a source/unit in the + same project when the order of the source dirs are known. Detect + duplicate sources/units in the same project when the order of the + source dirs are not known. + (Check_Ada_Name): Allow all identifiers that are not reserved words + in Ada 95. + Major update of the Project Manager and of the project aware tools, + including gprmake, so that the same sources in the GNAT repository + can be used by gprbuild. + (Look_For_Sources): If the list of sources is empty, set the object + directory of non extending project to nil. + Change type of path name variables to be Path_Name_Type + (Locate_Directory): Make sure that on Windows '/' is converted to '\', + otherwise creating missing directories will fail. + + * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb, + prj-part.ads, prj-part.adb: + Major update of the Project Manager and of the project aware tools, + including gprmake, so that the same sources in the GNAT repository + can be used by gprbuild. + + * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case + insensitive flag for attributes with optional index. + (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative + array attribute, put the index in lower case. + (Parse_Variable_Reference): Allow the current project name to be used in + the prefix of an attribute reference. + + * prj-util.ads, prj-util.adb + (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index, + defaulted to False. When True, always check against indexes in lower + case. + + * snames.ads, snames.h, snames.adb: + Update Project Manager to new attribute names for gprbuild + Allow all valid declarations in configuration project files + +2007-08-14 Robert Dewar + Ed Schonberg + + * opt.ads: Warning for non-local exception propagation now off by + default + New switch -gnatI to disable representation clauses + Implement new pragma Implicit_Packing + + * usage.adb: + Warning for non-local exception propagation now off by default + Add warning for unchecked conversion of pointers wi different + conventions. + New switch -gnatI to disable representation clauses + + * usage.adb: new switch -gnatyS + + * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a + note that aggregates of anonymous array types are not flagged. + -gnatwc now includes membership tests optimized away + -gnatw.x warnings are now off by default + Added conditional compilation Appendix + Add documentation of -gnatI + Add documentation for new -gnatyS style check + Update documentation about SAL and auto-init on Windows. + + * gnat_rm.texi: + Add documentation for pragma Check_Name and 'Enabled attribute + Document that Eliminate on dispatching operation is ignored + Document IDE attributes VCS_Repository_Root and VCS_Patch_Root. + Document pragma Main + Document pragma Implicit_Packing + + * sem_ch13.adb: Add warning for unchecked conversion of pointers wi + different conventions + New switch -gnatI to disable representation clauses + + * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not + recognized, report the invalid characters including "-gnat" instead of + just the first character in the switch. + New switch -gnatI to disable representation clauses + Set Warn_On_Object_Renames_Function true for -gnatg + + * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES + Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS + Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent + to switch -aP (add directory to project search dir). + + * par-prag.adb: Implement new pragma Implicit_Packing + + * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the + type as having a non-standard representation, to force expansion on + conversion to related types. + (Analyze_Pragma): Warn on misspelled pragma + (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg + Ensure consistent use of # in error messages + Implement pragma Implicit_Packing + +2007-08-14 Olivier Hainque + Eric Botcazou + + * targtyps.c (get_target_maximum_default_alignment): New function. + Maximum alignment + that the compiler might choose by default for a type or object. + (get_target_default_allocator_alignment): New function. Alignment known + to be honored by the target default allocator. + (get_target_maximum_allowed_alignment): New function. Maximum alignment + we might accept for any type or object on the target. + (get_target_maximum_alignment): Now synonym of maximum_default_alignment + + * gigi.h (get_target_maximum_default_alignment): Declare new function. + (get_target_default_allocator_alignment): Likewise. + (get_target_maximum_allowed_alignment): Likewise. + + PR ada/19037 + * decl.c (gnat_to_gnu_entity) : Except for the renaming of the + result of a function call, first try to use a stabilized reference for + a constant renaming too. + (validate_alignment): Use target_maximum_allowed_alignment instead of + MAX_OFILE_ALIGNMENT as the upper bound to what we accept. + (gnat_to_gnu_entity): Use common nodes directly. + (gnat_to_gnu_entity) : Pick the values of the type to annotate + alignment and size for the object. + (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call + and N_Procedure_Call_Statement. + (takes_address): Rename to lvalue_required_p, add third parameter + 'aliased' and adjust recursive calls. + : Update 'aliased' from the array type. + : New case. + : New Likewise. + (Identifier_to_gnu): Adjust for above changes. + (maybe_stabilize_reference) : New case. + + * utils2.c (build_binary_op) : Look through conversion + between type variants. + (build_simple_component_ref): Likewise. + (build_call_alloc_dealloc): Use target_default_allocator_alignment + instead of BIGGEST_ALIGNMENT as the threshold to trigger the super + aligning type circuitry for allocations from the default storage pool. + (build_allocator): Likewise. + (build_simple_component_ref): Manually fold the reference for a + constructor if the record type contains a template. + + * utils.c (value_zerop): Delete. + (gnat_init_decl_processing): Emit debug info for common types. + (rest_of_record_type_compilation): If a union contains a field + with a non-constant qualifier, treat it as variable-sized. + (finish_record_type): Give the stub TYPE_DECL a name. + (rest_of_record_type_compilation): Likewise. + (convert) : New case. Build a new constructor if + types are equivalent array types. + (create_field_decl): Claim fields of any ARRAY_TYPE are addressable, + even if the type is not passed by reference. + (static_ctors, static_dtors): Delete. + (end_subprog_body): Do not record constructors and destructors. + (build_global_cdtor): Delete. + (gnat_write_global_declarations): Do not call build_global_cdtor. + + * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when + -fRTS=rtp is specified. + If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is + specified. + + * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name + of the personality function with SJLJ exceptions. + + * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for + the name of the personality function with SJLJ exceptions. + +2007-08-14 Robert Dewar + Ed Schonberg + + * par.ads, par.adb: Improve handling of extra right parens. + (Par): Remove flag From_Limited_With_Clause. + + * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint + Improve handling of extra right parens. + +2007-08-14 Robert Dewar + + * par-tchk.adb (TF_Semicolon): Improve error recovery + +2007-08-14 Robert Dewar + Ed Schonberg + + * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For + enumeration type, mark all literals as referenced. + (Eval_Attribute, case 'Image): If the argument is an enumeration + literal and names are available, constant-fold but mark nevertheless as + non-static. + Clean up function names. + (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify + comment. + (Requires_Simple_Name_Prefix): Removed. + +2007-08-14 Robert Dewar + Ed Schonberg + + * sem_ch11.adb: Improved warnings for unused variables + + * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor + is a synchronized interface, the derived type is limited. + (Analyze_Object_Declaration): Mark the potential coextensions in the + definition and expression of an object declaration node. + (Build_Derived_Type): For the completion of a private type declaration + with a derived type declaration, chain the parent type's representation + items to the last representation item of the derived type (not the + first one) if they are not present already. + (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete + object declaration of forward references to tags. + (Access_Subprogram_Declaration): In Ada2005, anonymous access to + subprogram types can appear as access discriminants of synchronized + types. + (OK_For_Limited_Init_In_05): The initialization is legal is it is a call + given in prefixed form as a selected component. + (Process_Discriminants): If not all discriminants have defaults, place + error message on a default that is present. + (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to + extend a synchronized tagged type. + Improved warnings for unused variables + (Is_Visible_Component): Fix a visibility hole on a component inherited + by a private extension when parent is itself declared as a private + extension, and the derivation is in a child unit. + (Find_Hidden_Interface): Move spec from the package body. + +2007-08-14 Robert Dewar + Ed Schonberg + + * sem_ch5.adb: Improve warnings on redundant assignments + + * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk + parameter + (Is_Synchronized_Tagged_Type): New subprogram that returns true + in case of synchronized tagged types (AARM 3.9.4 (6/2)). + (Safe_To_Capture_Value): Can now return True for constants, even if Cond + is set to False. Improves handling of Known_[Not_]Null. + (Wrong_Type): Special case address arithmetic attempt + (Collect_Abstract_Interfaces): Add new formal to allow collecting + abstract interfaces just using the partial view of private types. + (Has_Abstract_Interfaces): Add new formal to allow checking types + covering interfaces using the partial view of private types. + (Is_Fully_Initialized_Type): Special VM case for uTag component. This + component still needs to be defined in this case, but is never + initialized as VMs are using other dispatching mechanisms. + (Abstract_Interface_List): For a protected type, use base type to get + proper declaration. + Improve warnings on redundant assignments + (Is_Variable): Handle properly an implicit dereference of a prefixed + function call. + (Build_Actual_Subtype): If this is an actual subtype for an + unconstrained formal parameter, use the sloc of the body for the new + declaration, to prevent anomalises in the debugger. + +2007-08-14 Robert Dewar + + * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for + dispatching operation + +2007-08-14 Ed Schonberg + Gary Dismukes + + * exp_aggr.ads, + exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place + expanded aggregate code before allocator, and ahead of declaration for + temporary, to prevent access before elaboration when the allocator is + an actual for an access parameter. + (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing + the TSD and the table of interfaces. + (Convert_To_Assignments): Augment the test for delaying aggregate + expansion for limited return statements to include the case of extended + returns, to prevent creation of an unwanted transient scope. + (Is_Static_Dispatch_Table_Aggregate): New subprogram. + (Expand_Array_Aggregate): Handle aggregates associated with + statically allocated dispatch tables. + (Expand_Record_Aggregate): Handle aggregates associated with + statically allocated dispatch tables. + (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators + of anonymous access type. + +2007-08-14 Ed Schonberg + + * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment + is a variable that renames a slice, use the variable itself in the + expannsion when the renamed expression itself may be modified between + the declaration of the renaming and the array assignment. + +2007-08-14 Jerome Guitton + + * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb, + s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb, + s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks): + New functions; dummy implementations. + + * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New + functions, used to implement the multi-tasks mode routines on VxWorks. + + * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop): + New functions, thin + binding to the VxWorks routines which have changed between VxWorks 5 + and 6. + (Int_Lock, Int_Unlock): New function, thin binding to kernel routines + which are not callable from a RTP. + + * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions, + implemented for the multi-tasks mode on VxWorks 5 and 6. + + * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions. + + * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New + functions. + +2007-08-14 Vincent Celier + + * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb, + gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb + mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb, + mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb, + mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, + mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb, + mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New + procedure. + (Major_Id_Name): New function. + mlib-tgt.ads/mlib.tgt.adb: + (Library_Major_Minor_Id_Supported): New function, default returns True + Most mlib-tgt-*.adb that support shared libraries and symbolic links: + (Build_Dynamic_Library): Add support for major/minor ids for shared libs + Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi): + Implementation of Library_Major_Minor_Id_Supported returns False + clean.adb: + (Clean_Library_Directory): If major/minor ids are supported, clean all + library files. + Major update of the Project Manager and of the project aware tools, + including gprmake, so that the same sources in the GNAT repository + can be used by gprbuild. + +2007-08-14 Olivier Hainque + + * system-solaris-x86.ads (ZCX_By_Default): Switch to True. + (GCC_ZCX_Support): Switch to True. + + * s-intman-solaris.adb (Notify_Exception): Call + Adjust_Context_For_Raise before raising, as expected for signal + handlers in general. + + * s-intman-posix.adb (Notify_Exception): Remove declaration of + Adjust_Context_For_Raise, moved to the spec of this unit to be visible + to other implementation bodies. + + * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to + be visible by multiple implementation bodies. + + * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context + only for conditions coming from hardware. + [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement, + adjustments to signal context prior to exception raise from signal + handler. + (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP + mode. + Solaris section: (__gnat_adjust_context_for_raise): New function. + Implementation of the machine context adjustments to perform prior to + raise from a signal handler. Version for both sparc and x86. + (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define. + (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it + prior to raising as expected for any handler, before possible nested + faults to make sure all the contexts in a chain have been adjusted by + the time we propagate. + +2007-08-14 Pascal Obry + + * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows. + (SYSTEM_INFO): New record. + (SetThreadIdealProcessor): New imported routine needed for supporting + task_info pragma on Windows. + + * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task + info can be applied to the current host. + (Create_Task): Set the ideal processor if information is present. + + * s-tasinf-mingw.adb, s-tasinf-mingw.ads, + a-exetim-mingw.adb, a-exetim-mingw.ads: New files. + +2007-08-14 Olivier Hainque + + * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the + stack size and initial stack pointer value for a given task. + (Enter_Task): Get the stack attributes of the task we are entering and + let the stack checking engine know about them. + + * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram. + Let the stack-checking engine know about the initial sp value and stack + size associated with the current task. + (Set_Stack_Info): If a stack base has been notified for the current + task, honor it. Fallback to the previous less accurate method otherwise. + + * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body. + +2007-08-14 Ed Schonberg + + * sem_ch10.adb: Create a limited view of an incomplete type, to make + treatment of limited views uniform for all visible declarations in a + limited_withed package. + Set flag indicating that a subprogram body for a child unit has a + generated spec. + (Analyze_Compilation_Unit): If unit is a subprogram body that has no + separate declaration, remove the unit name from visibility after + compilation, so that environment is clean for subsequent compilations. + (Install_Limited_Context_Clauses): Do not install a + limited_private_with_clause unless the current unit is a body or a + private child unit. + (Analyze_Subunit, Install_Parents): Treat generic and non-generic units + in the same fashion. + (Install_Limited_Withed_Unit): Do not install a limited with clause if + it applies to the declaration of the current package body. + (Remove_Private_With_Clauses): If there is a regular with_clause for + the unit, delete Private_With_Clause from context, to prevent improper + hiding when processing subsequent nested packages and instantiations. + +2007-08-14 Jose Ruiz + + * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept + dir/file, device:/dir/file, and device:drive_letter:/dir/file as + representing absolute path names. + __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues. + + * cstreams.c (__gnat_full_name for VxWorks): Use + __gnat_is_absolute_path to detect whether we need to add the current + directory to normalize the path. + +2007-08-14 Javier Miranda + + * a-tags.ads, + a-tags.adb (Displace): Associate a message with the raised CE + exception. + (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr, + To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr, + To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package + spec. + (Default_Prim_Op_Count): Removed. + (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind, + Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind): + Remove pragma Inline_Always. + + * rtsfind.ads (Default_Prim_Op_Count): Removed + (Max_Predef_Prims): New entity + (RE_Expanded_Name): Removed + (RE_HT_Link): Removed + (RE_Iface_Tag): Remmoved + (RE_Ifaces_Table): Removed + (RE_Interfaces_Array): Removed + (RE_Interface_Data_Element): Removed + (RE_Nb_Ifaces): Removed + (RE_RC_Offset): Removed + (RE_Static_Offset_To_Top): Removed + + * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new + formal. + (Build_Inherit_Predefined_Prims): Replace occurrences of Default_ + Prim_Op_Count by Max_Predef_Prims. + +2007-08-14 Thomas Quinot + Vincent Celier + + * binde.adb (Elab_All_Links): Remove unnecessary call to + Generic_Separately_Compiled (if a unit satisfies this predicate, there + won't be an associated Afile). + (Elab_All_Links): Fail if a referenced unit cannot be found + + * bindgen.adb: + Fix comments in bindgen regarding consistency checks done in Bcheck: + the checks are made across units within a partition, not across several + partitions. + Fix generation of C binder file for VxWorks. + + * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to + Generic_May_Lack_ALI, more descriptive of the current use of the + predicate, and update documentation. + + * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code + reorganization and documentation update for the case of predefined + library generics (for which we do not reference an Afile). + +2007-08-14 Robert Dewar + + * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads, + s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, + s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb, + s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb, + s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb, + s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads, + s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads, + s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb, + exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads, + s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb, + s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads, + a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads, + s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads, + g-altcon.adb: Minor reformatting + + ada-tree.h: Delete empty line. + + ali.ads: Minor reformatting + Clarification of comments. + Minor spelling correction + + * exp_dbug.adb: Add Warnings Off to suppress new warning + + * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode + formal + + * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old + value + + * a-textio.adb (Write): Remove an unnecessary IN OUT mode from + + * a-textio.ads: Reorder the standard input/output/error declarations + for consistency. + + * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call + + * par-ch2.adb: Recognize RM specially in errout + Change 'R'M to RM in all error messages + + * scng.adb: Recognize RM specially in errout + + * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename + N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology. + + * s-direio.adb: Add missing routine header box. + + * sem_attr.ads: Add ??? comments + + * sem_eval.adb: Recognize RM specially in errout + Change 'R'M to RM in all error messages + + * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes + + * s-tasinf.ads: Fix minor comment typo. + + * a-cihama.adb: Minor comment addition + + * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode + formal + + * s-tasinf-tru64.ads: Fix minor comment typo. + + * itypes.ads: Comment update. + + * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed + anymore. + + * argv.c: Added protection against null gnat_argv and gnat_envp. + + * bcheck.adb (Check_Consistency): Use correct markup character ({) in + warning message when Tolerate_Consistency_Errors is True. + + * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for + Any_Id, as this subprogram is only applicable to *type* entities (it + sets RM_Size). Instead initialize just Esize and Alignment. + +2007-08-14 Bob Duff + + * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads, + a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, + a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads, + a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads, + a-coorse.ads (Next): Applied pragma Inline. + Make all Containers packages Remote_Types (unless they are already + Pure). + (Previous): applied pragma Inline + (Elements_Type): is now a record instead of an array + +2007-08-14 Thomas Quinot + + * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms + of Set_Item. + (Set_Item): When the new item is an element of the currently allocated + table passed by reference, save a copy on the stack if we're going + to reallocate. Also, in Table.Set_Item, make sure we test the proper + variable to determine whether to call Set_Last. + + * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb, + symbols-vms.adb, symbols-processing-vms-alpha.adb, + symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace + some occurrences of the pattern + T.Increment_Last; + T.Table (T.Last) := Value; + with a cleaner call to + T.Append (Value); + +2007-08-14 Ed Schonberg + Gary Dismukes + Thomas Quinot + + * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a + derived type with interface progenitors use the analyzed formal as the + parent of the actual, to create renamings for all the inherited + operations in Derive_Subprograms. + (Collect_Previous_Instances): new procedure within of + Load_Parent_Of_Generic, to instantiate all bodies in the compilation + unit being loaded, to ensure that the generation of global symbols is + consistent in different compilation modes. + (Is_Tagged_Ancestor): New function testing the ancestor relation that + takes progenitor types into account. + (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by + traversing over the primitives of the formal and actual types to locate + any abstract subprograms of the actual type that correspond to a + nonabstract subprogram of the formal type's ancestor type(s), and issue + an error if such is found. + (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation, + Instantiate_Package_Body, Instantiate_Subprogram_Body): + Remove bogus guard around calls to Inherit_Context. + (Reset_Entity): If the entity is the selector of a selected component + that denotes a named number, propagate constant-folding to the generic + template only if the named number is global to the generic unit. + (Set_Instance_Env): Only reset the compilation switches when compiling + a predefined or internal unit. + +2007-08-14 Ed Schonberg + + * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first + parameter to determine whether operation applies to the prefix. + (Complete_Object_Operation): If actual has an access type and + controlling formal is not an in_parameter, reject the actual if it is + an access_to_constant type. + (Try_Primitive_Operation): If the type of the prefix is a formal tagged + type, the candidate operations are found in the scope of declaration of + the type, because the type has no primitive subprograms. + (Analyze_Selected_Component): If prefix is class-wide, and root type is + a private extension, only examine visible components before trying to + analyze as a prefixed call. + Change Entity_List to Type_To_Use, for better readability. + (Has_Fixed_Op): Use base type when checking whether the type of an + operator has a user-defined multiplication/division + (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when + user-defined operators are available for fixed-point types. + +2007-08-14 Thomas Quinot + Ed Schonberg + + * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New + formal At_Any_Place indicating, when True, that we want to test for + availability of the stream attribute at any place (as opposed to the + current visibility context only). + (Missing_Read_Write_Attributes): A stream attribute is missing for the + purpose of enforcing E.2.2(8) only if it is not available at any place. + Take into account the Ada2005 pragma Has_Preelaborable_Initialization + when checking the legality of an extension aggregate in a preelaborable + package. Treat the literal null as a valid default expression in a + component declaration for a type with preelaborable initialization. + A limited interface is a legal progenitor for the designated type of a + remote access to class-wide type. + +2007-08-14 Thomas Quinot + Ed Schonberg + + * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute + reference): Use correct entity as denoted entity for the selector of + the rewritten node. + (Find_Direct_Name): Add comment about Generate_Reference incorrectly + setting the Referenced_As_LHS flag for entities that are implicitly + dereferenced. + (Find_Type): If the type is an internally generated incomplete type, + mark the full view as referenced, to prevent spurious warnings. + (Find_Selected_Component, Has_Components): Handle properly non-limited + views that are themselves incomplete types. + Handle interfaces visible through limited-with clauses. + (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a + subprogram generic actual for which we have generated a renaming. + Warn when the renaming introduces a homonym of + the renamed entity, and the renamed entity is directly visible. + +2007-08-14 Ed Schonberg + Hristian Kirtchev + + * sem_res.adb (Resolve_Allocator): Propagate any coextensions that + appear in the subtree to the current allocator if it is not a static + coextension. + (Resolve_Allocator): Perform cleanup if resolution has determined that + the allocator is not a coextension. + (Resolve): Skip an interpretation hidden by an abstract operator only + when the type of the interpretation matches that of the context. + (Resolve): When looping through all possible interpretations of a node, + do not consider those that are hidden by abstract operators. + (Resolve_Actuals): When verifying that an access to class-wide object + is an actual for a controlling formal, ignore anonymous access to + subprograms whose return type is an access to class_wide type. + (Resolve_Slice): If the prefix of the slice is a selected component + whose type depends on discriminants, build its actual subtype before + applying range checks on the bounds of the slice. + (Valid_Conversion): In an instance or inlined body, compare root types, + to prevent anomalies between private and public views. + (Resolve): Improve error message for ambiguous fixed multiplication + expressions that involve universal_fixed multiplying operations. + +2007-08-14 Javier Miranda + Hristian Kirtchev + + * exp_ch9.adb (Build_Protected_Entry): Propagate the original source + location to allow the correct generation of errors in case of + restrictions applied to the expanded code. + (Expand_Entry_Barrier): Remove all generated renamings for a barrier + function if the condition does not reference them. + (Expand_Entry_Body_Declarations): Mark the index constant as having a + valid value. + +2007-08-14 Thomas Quinot + Pablo Oliveira + + * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating + typecode parameters for a union (in a variant record), remove + extraneous layer of Any wrapping for member label. + (Expand_Receiving_Stubs_Bodies): For an RCI package body that has + elabration statements, register the package with the name server + at the beginning, not at the end, of the elaboration statements so + that they can create remote access to subprogram values that designate + remote subprograms from the package. + +2007-08-14 Hristian Kirtchev + + * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time + values to compute the number of seconds since the Unix Epoc in order to + account for Daylight Savings Time. Perform special processing for dates + that are earlier than the Unix Epoc to obtain a negative number. + +2007-08-14 Emmanuel Briot + + * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing + switches. + +2007-08-14 Eric Botcazou + + * gnatlink.adb (Gnatlink): Pass switches to the linker even if the + binder-generated file is not in Ada. + Pass -mrtp to the linker if it is GCC and --RTS=rtp has been + recorded in the ALI file. + Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded. + +2007-08-14 Vincent Celier + + * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value + (Output_Source): Do nothing if parameter is No_Sdep_Id + + * make.adb (Gnatmake): Do not rebuild an archive simply because a + shared library it imports has a later time stamp. + (Check): Resolve the symbolic links in the path name of the object + directory. + Check that the ALI file is in the correct object directory + Check if a file name does not correspond to the mapping of units + to file names. + (Display_Version): New procedure + (Initialize): Process switches --version and --help + Use type Path_Name_Type for path name + +2007-08-14 Paul Hilfinger + + * impunit.adb: Re-organize System.Random_Numbers and + GNAT.Random_Numbers and add to builds. + + * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert* + + * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files. + + * a-assert.ads, a-assert.adb: New files. + +2007-08-14 Gary Dismukes + + * layout.adb (Layout_Type): In the case of access-to-subprogram types, + if AAMP_On_Target is True, then the size of the type encompasses two + addresses (a static link and a subprogram address), except in the case + of library-level access types. + +2007-08-14 Vincent Celier + + * output.ads, output.adb (Write_Eol): Remove trailing spaces before + writing the line. + (Write_Eol_Keep_Blanks): New procedure to write a line, including + possible trailing spaces. + (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line + +2007-08-14 Javier Miranda + + * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with + null-excluding access types. + +2007-08-14 Javier Miranda + + * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code + that is common to Analyze_Protected_Type and Analyze_Task_Type. In case + of private types add missing check on matching interfaces in the + partial and full declarations. + (Analyze_Protected_Type): Code cleanup. + (Analyze_Task_Type): Code cleanup. + +2007-08-14 Javier Miranda + + * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a + generated interface thunk. + +2007-08-14 Ed Schonberg + + * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent + obsolescent warning on application of 'Class to an incomplete type. + + * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to + prevent obsolescent warning on application of 'Class to an incomplete + type. + +2007-08-14 Pascal Obry + + * s-fileio.adb (Is_Open): Add check for usability of the underlying + file stream. + +2007-08-14 Cyrille Comar + + * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent + since it is potentially used in cases implying double finalization of + the same object. + +2007-08-14 Jose Ruiz + + * s-tasini.adb (Get_Stack_Info): Move this function to + System.Soft_Links.Tasking because it is common to the full and the + restricted run times. + (Init_RTS): Do not set the Get_Stack_Info soft link because it is done + in SSL.Tasking.Init_Tasking_Soft_Links. + + * s-solita.adb (Get_Stack_Info): Function moved from + System.Tasking.Initialization because it is common to the full and the + restricted run times. + (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info. + +2007-08-14 Arnaud Charlet + + * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb, + s-taskin.ads (Requeue_With_Abort): Rename field With_Abort. + (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort + parameter. + + * s-tassta.adb (Task_Wrapper): Increased value of the small overflow + guard to 12K. + +2007-08-14 Gary Dismukes + + * s-veboop.adb (SU): New named number initialized to + System.Storage_Unit. + (True_Val): The initialization expression is revised to use SU (= + Storage_Unit) rather than assuming 8 for the component size of an + unpacked Boolean array. + +2007-08-14 Tristan Gingold + + * tracebak.c: Use tb-ivms.c on OpenVMS Itanium. + + * tb-ivms.c: New file. + + * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2 + +2007-08-14 Geert Bosch + + * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads, + s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads: + Add required linker pragmas for automatically linking with the gnalasup + linear algebra support library, and the systems math library. + Rename cdot to cdotu and zdot to zdotu. + Update header comment to describe purpose of package. + +2007-08-14 Thomas Quinot + + * exp_ch7.adb (Find_Final_List): For an anonymous access type that has + an explicitly specified Associated_Final_Chain, use that list. + (Expand_N_Package_Body): Build dispatch tables of library level tagged + types. + (Expand_N_Package_Declaration): Build dispatch tables of library level + tagged types. Minor code cleanup. + +2007-08-14 Vincent Celier + + * gnatchop.adb (Terminate_Program): Remove exception and use + Types.Terminate_Program instead. + + * osint.ads, osint.adb (Current_Exit_Status): New global variable + (Find_Program_Name): Added protection against empty name. + (OS_Exit_Through_Exception): New procedure + + * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body + (OS_Exit_Default): New procedure that contains the previous + implementation of procedure OS_Exit. + (Final_Value): Remove obsolete Interix stuff. + +2007-08-14 Thomas Quinot + + * g-socket.ads: Reorganize example code so that it also works on + Windows XP. + +2007-08-14 Tristan Gingold + + * g-trasym.ads: AIX now supports symbolic backtraces. + +2007-08-14 Ed Schonberg + + * lib-load.adb (From_Limited_With_Chain): Always scan the stack of + units being loaded to detect circularities. A circularity may be + present even if the current chain of pending units to load starts from + a limited_with_clause. + + * lib-load.ads: Change profile of Load_Unit to use a with_clause + rather than a boolean flag, in order to detect circularities in + with_clauses. + + * par-load.adb: Use current with_clause in calls to Load_Unit, rather + than propagating the From_Limited_With flag, in order to handle + properly circularities involving with_clauses. + +2007-08-14 Nicolas Setton + + * link.c (FreeBSD): Add "const" keyword where needed, to eliminate + warnings. + +2007-08-14 Arnaud Charlet + + * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects + to build for libgnala. + libgnat: Add rules to build libgnala.a + (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from + target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5. + Add s-osinte-vxworks-kernel.adb to the target pairs of the + kernel run-time lib for VxWorks 6, which would provide a different + implementation for Task_Cont and Task_Stop than the VxWorks 5 version. + x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now + running ZCX by default. + Add g-sttsne-locking to LynxOS version. + Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead. + On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads. + + * system-darwin-x86.ads: New file. + + * Make-lang.in: Delete files before copying onto them, so if they are + read-only, the copy won't fail. + Update dependencies + +2007-08-14 Pascal Obry + + * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries + naming scheme. + +2007-08-14 Vincent Celier + + * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access + (Gcc): Initialize Gcc_Name at the first call + +2007-08-14 Ed Schonberg + + * sem_ch7.adb (Analyze_Package_Specification): Do not install private + with_clauses of the enclosing unit when analyzing the package + specification of a nested instance. + +2007-08-14 Hristian Kirtchev + + * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed. + (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines. + Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the + layout of N_Allocator. + +2007-08-14 Thomas Quinot + + * rtsfind.adb (Check_RPC): Add PCS version check. + + * gnatvsn.ads, gnatvsn.adb: Add PCS version. + (Gnat_Free_Software): New function. + + * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns + the PCS_Version value from s-parint, used to check that it is consistent + with what exp_dist expects. + + * s-parint.ads (PCS_Version): New entity for checking consistency + between exp_dist and PCS. + + * gen-soccon.c: (SO_REUSEPORT): New constant. + +2007-08-14 Hristian Kirtchev + + * a-calfor.adb (Image (Duration; Boolean)): Change type of local + variable Sub_Second to Duration in order to accomodate a larger range + of arithmetic operations. + +2007-08-14 Bob Duff + + * g-sttsne-locking.ads: Move comments from spec to body. + * g-sttsne-locking.adb: Move comments from spec to body. + * g-sttsne-vxworks.ads: Removed. + * g-sttsne-vxworks.adb: Removed. + +2007-08-11 Ian Lance Taylor + + * misc.c (gnat_get_alias_set): Change return type to + alias_set_type. + +2007-08-11 Kaveh R. Ghazi + + * decl.c, utils2.c: Fix whitespace in last change. + +2007-08-11 Kaveh R. Ghazi + + * decl.c (compare_field_bitpos): Constify. + * utils2.c (compare_elmt_bitpos): Likewise. + +2007-07-27 Aurelien Jarno + + * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by + anonymous access type. + (pthread_sigmask): Now take an access sigset_t. + +2007-07-05 Joel Sherrill + + * s-osinte-rtems.ads: Correct prototype of pthread_sigmask. + +2007-06-21 Eric Botcazou + + PR tree-optimization/25737 + * misc.c (gnat_post_options): Do not force flag_tree_salias to 0. + +2007-06-15 Andrew Pinski + + * trans.c (Attribute_to_gnu): When subtracting an + offset from a pointer, use POINTER_PLUS_EXPR with + NEGATE_EXPR instead of MINUS_EXPR. + (gnat_to_gnu): Likewise. + * utils.c (convert): When converting between + thin pointers, use POINTER_PLUS_EXPR and sizetype + for the offset. + * utils2.c (known_alignment): POINTER_PLUS_EXPR + have the same semantics as PLUS_EXPR for alignment. + (build_binary_op): Add support for the semantics of + POINTER_PLUS_EXPR's operands. + When adding an offset to a pointer, use POINTER_PLUS_EXPR. + +2007-06-11 Rafael Ávila de Espíndola + + * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead + of get_signed_or_unsigned_type. + * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove. + +2007-06-11 Bob Duff + Thomas Quinot + + * g-stsifd-sockets.adb (Create): Work around strange behavior of + 'bind' on windows that causes 'connect' to fail intermittently, by + retrying the 'bind'. + (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close. + +2007-06-10 Duncan Sands + + * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather + than to void, for the fields when making a new fat pointer type. + (gnat_substitute_in_type): Now substitute_in_type. + * gigi.h (gnat_substitute_in_type): Likewise. Adjust recursive calls. + * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge. + * utils.c (update_pointer_to): Update fat pointers by updating the + dummy node pointers used for the fields. + +2007-06-06 Thomas Quinot + Bob Duff + + * g-soccon-freebsd.ads, g-soccon-vxworks.ads:, + g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads, + g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads: Add new + constant Thread_Blocking_IO, always True by default, set False + on a per-runtime basis. + (Need_Netdb_Buffer): New constant. + + * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads, + g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New + files. + + * g-socthi-vxworks.ads, g-socthi-vxworks.adb, + g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname, + Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new + child package Task_Safe_NetDB + (Host_Error_Messages): Add stub body. + (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close. + + * g-soccon-mingw.ads: Add Windows-specific constants. + (Need_Netdb_Buffer): New constant. + (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada + wrapper and import inet_addr(3) from the standard sockets library + directly instead. + (In_Addr): Add alignment clause. + (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close. + +2007-06-06 Robert Dewar + + * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads, + s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb, + s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads, + s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb, + s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb, + s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb, + a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb, + a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb, + a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb, + g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb, + g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb, + i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb, + s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads, + s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb, + s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb, + s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb, + s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb, + s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb, + s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb, + s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb, + s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb, + s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb, + s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb, + s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb, + s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb, + s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb, + s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb, + s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb, + s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb, + s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads, + s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb, + a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace + Unchecked_* by Ada.Unchecked_* + +2007-06-06 Robert Dewar + + * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb, + s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb, + g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads, + output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads, + g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb, + a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate. + + * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb, + s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads, + s-tasloc.adb, s-tasloc.ads: New files. + +2007-06-06 Bob Duff + + * g-expect-vms.adb: + (Send_Signal, Close): Raise Invalid_Process if the process id is invalid. + * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string. + (Send_Signal, Close): Raise Invalid_Process if the process id is + invalid. + (Pattern_Matcher_Access): Is now a general access type to be able to + use aliased string. + +2007-06-06 Thomas Quinot + Arnaud Charlet + + * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change + (SIGEMT is now used instead of SIGTERM on AIX). + + * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads. + (Time_Slice_Supported): Set to True. + Use SIGEMT instead of SIGTERM as SIGADAABORT. + +2007-06-06 Hristian Kirtchev + + * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-" + (Time, Time)): Use To_Relative_Time rather than manual calculation to + express the bounds of Duration as Time. Raise Time_Error when the + result is greater or equal to the higher bound of Duration (on the + margin case). + ("+" (Time, Duration)): Reorder code. Remove the declaration of constant + Ada_High_And_Leaps. + ("-" (Time, Duration)): Reorder code. Remove the declaration of constant + Ada_High_And_Leaps. + ("-" (Time, Time)): Reorder code. + (All_Leap_Seconds): Removed. + (Arithmetic_Operations.Add): Remove sign related kludge. + (Arithmetic_Operations.Difference): Control the leaps seconds processing + with flag Leap_Support. + (Arithmetic_Operations.Subtract): Remove sign related kludge. + (Check_Within_Time_Bounds): New procedure. + (Clock): Control the leap seconds processing with flag Leap_Support. + (Cumulative_Leap_Seconds): Assert that the target supports leap seconds. + (Formatting_Operations.Split): Control the leap seconds processing with + flag Leap_Support. + (Formatting_Operations.Time_Of): Control the leaps seconds processing + with flag Leap_Support. Adjust the year, month and day (if applicable) + when the value of day seconds designates a new day. + (Split): Use parameter associations for better readability. Integrate + flag Is_Ada_05. + (Time_Of): Use parameter associations for better readability. Integrate + flag Is_Ada_05. + + * a-calfor.adb (Split): Use parameter associations for better + readability. Integrate flag Is_Ada_05. + (Time_Of): Remove flag Leap_Checks. Use parameter associations for + better readability. Integrate flag Is_Ada_05. + +2007-06-06 Arnaud Charlet + + * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb, + s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb, + s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb, + s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads, + s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb, + s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb, + s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads, + s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads, + s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads, + s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb, + s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base + time when entering this routine to detect a backward clock setting + (manual setting or DST adjustment), to avoid waiting for a longer delay + than needed. + (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant. + Remove handling of deferred priority change, and replace by setting the + task priority directly, as required by AI-188. + Update comments. + (Max_Task_Image_Length): New constant. + Replace Warnings (Off) by Unreferenced pragma, cleaner. + (Dynamic_Priority_Support): Removed, no longer needed. + (Poll_Base_Priority_Change): Ditto. + (Set_Ceiling): Add this procedure to change the ceiling priority + associated to a lock. This is a dummy implementation because dynamic + priority ceilings are not supported by the underlying system. + + * a-dynpri.adb (Set_Priority): Take into account case where Target is + accepting a RV with its priority boosted. + Remove handling of deferred priority change, and replace by setting the + task priority directly, as required by AI-188. + + * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for + Succeeded = True. + Remove handling of deferred priority change, and replace by setting the + task priority directly, as required by AI-188. + (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state + of Self_Id earlier. + + * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion. + (Poll_Base_Priority_Change): Removed. + Code clean up: use SSL.Current_Target_Exception. + + * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks + to run as this is a potentially dispatching point. + (Call_Synchronous): Use Local_Defer_Abort. + (Callable): Relax assertion. + (Selective_Wait): Relax assertion in case abort is not allowed. + Remove handling of deferred priority change, and replace by setting the + task priority directly, as required by AI-188. + + * s-tasuti.adb (Make_Passive): Adjust assertions. + Remove handling of deferred priority change, and replace by setting the + task priority directly, as required by AI-188. + +2007-06-06 Arnaud Charlet + + * system-vxworks-sparcv9.ads, system-solaris-x86.ads, + system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, + system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads, + system-vxworks-mips.ads, system-vxworks-alpha.ads, + system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads, + system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads, + system-interix.ads, system-linux-hppa.ads, system-tru64.ads, + system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads, + system-solaris-sparcv9.ads, system-vms.ads, system.ads, + system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads, + system-linux-ia64.ads: Document mapping between Ada and OS priorities. + This patch changes the largest non-binary modulus from 2**31-1 to + 2**32-1. + (Compiler_System_Version): Removed, no longer used. + Clean up system files by removing flags only used on a single target. + Also remove obsolete flags, only used during bootstrap from system.ads + (Address): Add a pragma Preelaborable_Initialization. + + * system-aix.ads: Ditto. + (GCC_ZCX_Support): Set to true. + Update priority range on AIX and map Ada priorities to target + priorities appropriately for different scheduling policies. + + * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1 + +2007-06-06 Vincent Celier + + * mlib-tgt-specific.adb, mlib-tgt-specific.ads, + mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files. + + * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb, + mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb, + mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, + mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, + mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package + MLib.Tgt, containing the default versions of the exported subprograms. + For each platform, create a specific version of the body of new child + package MLib.Tgt.Specific that contains only the body of subprograms + that are different from the default. + (Archive_Builder_Append_Options): New function. + +2007-06-06 Matthew Gingell + + * s-osinte-aix.adb: Map Ada priorities to target priorities + appropriately for different scheduling policies. + +2007-06-06 Arnaud Charlet + + * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely + its C counterpart. + Remove references to Unchecked_Conversion, and use Ada.xxx instead. + Replace Unchecked_Conversion by Ada.Unchecked_Conversion. + +2007-06-06 Vasiliy Fofanov + + * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure. + Noop on VMS, added for interface commonality. + +2007-06-06 Eric Botcazou + Richard Kenner + Olivier Hainque + + * decl.c (gnat_to_gnu_entity) : Manually mark the top of the + renamed expression of a full renaming at toplevel. + (gnat_to_gnu_entity, case object): If not defining, do not look inside + the values the constant is initialized to if it is an N_Allocator. + (gnat_to_gnu_entity) : Manually mark the top of the + TYPE_SIZE_UNIT of inner types after the stride is elaborated. + (make_aligning_type): Accept an extra ROOM argument for storage to be + made available before the aligned field, and an extra BASE_ALIGN + argument for callers to pass the alignment guaranteed to be honored for + the whole aligning object. Avoid call to finish_record_type, which only + interferes with the sizes we want to set. + (gnat_to_gnu_entity) : Pass the required extra arguments to + make_aligning_type for super-aligned objects on stack. + (components_to_record): Pass the adjusted size of the type when creating + fields in the qualified union for the variant part. + (gnat_substitute_in_type): Copy TYPE_USER_ALIGN. + (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for + packed array type. + (maybe_pad_type): Set TYPE_USER_ALIGN. + (make_aligning_type): Likewise. + ALIGN argument is unsigned int. + (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism. + (gnat_to_gnu_param): Likewise, for parameters. + (gnat_to_gnu_entity) : Always instantiate the renaming object + if it is constant and stems from a function call. + (gnat_to_gnu_entity) : Set packed to -2 if the alignment + of the record is specified. Adjust accordingly. + (adjust_packed): New static function. + (gnat_to_gnu_field): Use it to adjust the packedness setting. + (components_to_record): Likewise. + (gnat_to_gnu_entity) : Do not test the renamed expression for + side-effects if the object is deemed constant. + (gnat_to_gnu_entity) : Create a name for the fat pointer + type instead of merely finalizing it. Tidy. + : Retrieve the type from the TYPE_DECL. + : Likewise. + (defer_debug_incomplete_list): Rename to defer_finalize_list. + (defer_debug_level): Delete. + (gnat_to_gnu_entity) : Likewise + : Call rest_of_record_type_compilation on the fat pointer + type. + : Do not explicitly defer finalizing the type. + Adjust for write_record_type_debug_info renaming. + : Likewise. + Finalize deferred types right after deferred incomplete types are + expanded. + (rest_of_type_decl_compilation): New global function. + (components_to_record): Rename defer_debug parameter to do_not_finalize. + (components_to_record): Propagate the packedness to the fields of the + qualified union type if there is a variant part. + (gnat_to_gnu_entity) : Use new function + instead of inline code to adjust the XUT field offsets. + (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type. + : Do not let finish_record_type compute the sizes + and write the debug info if the type derives from a discriminated one. + (gnat_to_gnu_entity) : Adjust call to create_index_type. + : Likewise. + : Likewise. + (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have + an alignment clause. + (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN + before giving warning. + (prepend_one_attribute_to): New function, helper to prepend an attribute + to an attribute list. + (gnat_to_gnu_entity) : Use it. + (prepend_attributes): Likewise. + (gnat_to_gnu_entity) : Use constants of the proper type. + : Declare the padding type for the element type, if any. + : Likewise. + (defer_limited_with): New variable. + (Gigi_Equivalent_Type): New function. + (gnat_to_gnu_entity): Use it at start and use result throughout. + (gnat_to_gnu_entity, case E_Access_Type): Rework to use + Gigi_Equivalent_Type, support Limited_With, allow two levels of + indirection, precompute if unconstrained array to simplify logic, and + use defer_limited_with to defer elaboration of some types from limited + with. + (finalize_from_with_types): New function. + +2007-06-06 Gary Dismukes + Eric Botcazou + Tristan Gingold + Olivier Hainque + + * trans.c (Identifier_to_gnu): Change test for deferred constant by + adding guard that the entity is an E_Constant before testing presence + of Full_view (and remove unnecessary test that entity is not a type). + For a CONST_DECL used by reference, manually retrieve + the DECL_INITIAL. Do not invoke fold in the other DECL_P cases either. + (struct language_function): Move from utils.c to here. + (struct parm_attr): New structure. + (parm_attr, parm_attr vector, parm_attr GC vector): New types. + (f_parm_attr_cache): New macro. + (Attribute_to_gnu) : When not optimizing, cache the + expressions for the 'First, 'Last and 'Length attributes of the + unconstrained array IN parameters. + (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout. + Allocate the information structure for the function earlier, as well + as the language-specific part. + If the parameter attributes cache has been populated, evaluate the + cached expressions on entry. + (takes_address): Add OPERAND_TYPE parameter. Handle N_Function_Call, + N_Procedure_Call_Statement and N_Indexed_Component. + (Pragma_to_gnu): Translate inspection_point to an asm statement + containaing a comment and a reference to the object (either its address + for BLKmode or its value). + (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide + to go to DECL_INITIAL. Together with the size constraint relaxation + in create_var_decl, enlarges the set of situations in which an + identifier may be used as an initializer without implying elaboration + code. + (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set + DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the + node. + (maybe_stabilize_reference): Remove lvalues_only parameter. + (gnat_stabilize_reference): Adjust for above change. + (gnat_to_gnu): Do not set location information on the result + if it is a reference. + (add_cleanup): Add gnat_node parameter and set the location of the + cleanup to it. + (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup. + (Exception_Handler_to_gnu_zcx): Likewise. + (gigi): Remove the cgraph node if the elaboration procedure is empty. + (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit + the former right after the latter. + (start_stmt_group): Make global. + (end_stmt_group): Likewise. + (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New + vars. + (gnu_program_error_label_stack): Likewise. + (gigi): Initialize them. + (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise. + (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label): + New cases. + (push_exception_label_stack): New function. + (takes_address): New function. + + * utils.c (struct language_function): Move to trans.c from here. + (unchecked_convert): Do not wrap up integer constants in + VIEW_CONVERT_EXPRs. + (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent + the latter for aggregate types, unexpected by later passes, and relax an + arbitrary size constraint on the former. + (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p + to compare the sizes. + (convert_vms_descriptor): When converting to a fat pointer type, be + prepared for a S descriptor at runtime in spite of a SB specification. + (shift_unc_components_for_thin_pointers): New function. + (write_record_type_debug_info): For variable-sized fields, cap the + alignment of the pointer to the computed alignment. + (finish_record_type): Change HAS_REP parameter into REP_LEVEL. + If REP_LEVEL is 2, do not compute the sizes. + (build_vms_descriptor): Adjust for new prototype of finish_record_type. + (build_unc_object_type): Likewise. + (declare_debug_type): New function. + + * ada-tree.def: USE_STMT: removed (not emitted anymore). + + * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because + no statement is expandable anymore. + (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice. + (gnat_handle_option): Only allow flag_eliminate_debug_types to be set + when the user requested it explicitely. + (gnat_post_options): By default, set flag_eliminate_unused_debug_types + to 0 for Ada. + (get_alias_set): Return alias set 0 for a type if + TYPE_UNIVERSAL_ALIASING_P is set on its main variant. + + * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro. + (DECL_FUNCTION_STUB): New accessor macro. + (SET_DECL_FUNCTION_STUB): New setter macro. + + * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada. + + * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New + declarations. + +2007-06-06 Jose Ruiz + + * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal): + Rename to Abort_Task_Interrupt to be able to keep the same interface + as the rest of the targets. + + * s-osinte-vxworks.ads s-osinte-vxworks.adb + (To_VxWorks_Priority): Remove explicit "in" mode indicator + + * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads: + New files. + +2007-06-06 Robert Dewar + + * a-chahan.ads: Remove obsolescent pragmas + + * a-chlat1.ads: Minor reformatting + +2007-06-06 Robert Dewar + + * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface + for Errout + + * errout.adb: New Finalize/Compilation_Errors/Output_Messages + implementation + + * errout.ads (Finalize): Changed interface + (Output_Messages): New procedure + (Compilation_Errors): New Interface + + * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New + Finalize/Output_Messages interface for Errout + (Prepare_To_Preprocess): New Finalize/Output_Messages interface for + Errout. + +2007-06-06 Thomas Quinot + Olivier Hainque + Robert Dewar + + * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18) + check. + (Raise_Current_Excep): Call Debug_Raise_Exception just before + propagation starts, to let debuggers know about the event in a reliable + fashion. + (Local_Raise): Moved to System.Exceptions + More convenient to have this as a separate unit + + * s-except.adb, s-except.ads: New files. + + * a-exextr.adb (Unhandled_Exception): Delete - replaced by + Debug_Unhandled_Exception in System.Exceptions where it belongs + together with a couple of other debug helpers. + (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of + the former Unhandled_Exception. + + * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure + (Warn_No_Exception_Propagation): New procedure + (Warn_If_No_Propagation): Rewritten for new warning generation + (Expand_Exception_Handlers): New warning generation + (Expand_N_Raise_xxx_Error): Rewritten for new warnings + (Add_Exception_Label): Use Special_Exception_Package_Used for test + instead of Most_Recent_Exception_Used (accomodates Exception_Traces) + (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap + even if restriction is set (makes life easier in Check_Returns) + (Expand_Local_Exception_Handlers): Follow renamed entity chain when + checking exception identities. + (Expand_Local_Exception_Handlers): Do not optimize when all others case + (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated + block for handler (used by Check_Returns) + (Expand_Local_Exception_Handlers): Local_Raise now takes an address + (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to + remove all exception handlers when optimizing local raise statements. + (Find_Local_Handler): Use Get_Renamed_Entity + (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is + marked analyzed after expanding exception handlers, do not generate + redundant cleanup actions, because they have been constructed already. + +2007-06-06 Thomas Quinot + + * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The + presence of this categorization pragma is mandated by the language. + (Limited_Controlled): Add missing pragma Preelaborable_Initialization + for this type. + +2007-06-06 Vincent Celier + Robert Dewar + + * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb, + butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads, + err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads, + fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads, + lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads, + makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb, + par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb, + prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads, + prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb, + sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb, + uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb, + ali.ads, ali.adb: + Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to + package Namet. Make File_Name_Type and Unit_Name_Type types derived from + Mame_Id. Add new type Path_Name_Type, also derived from Name_Id. + Use variables of types File_Name_Type and Unit_Name_Type in error + messages. + (Get_Name): Add parameter Ignore_Special, and set it reading file name + (New_Copy): When debugging the compiler, call New_Node_Debugging_Output + here. + Define flags Flag217-Flag230 with associated subprograms + (Flag_Word5): New record type. + (Flag_Word5_Ptr): New access type. + (To_Flag_Word5): New unchecked conversion. + (To_Flag_Word5_Ptr): Likewise. + (Flag216): New function. + (Set_Flag216): New procedure. + +2007-06-06 Arnaud Charlet + + * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length + instead of 'Size. + + * a-stwifi.ads, a-stzfix.ads: Minor reformatting + +2007-06-06 Javier Miranda + + * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to + the package. + (Object_Specific_Data_Array): This is now internal to the package. + (Object_Specific_Data): This is now internal to the package. + (Select_Specific_Data_Element): This is now internal to the package. + (Select_Specific_Data_Array): This is now internal to the package. + (Select_Specific_Data): This is now internal to the package. + (Offset_To_Top_Function_Ptr): This is now public. + (To_Offset_To_Top_Function_Ptr): Removed. + (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now + local to subprogram Offset_To_Top. + (Predefined_DT): Removed. + (Typeinfo_Ptr): Removed. + (OSD): This function is now internal to this package. + (SSD): This function is now internal to this package. + (DT): New function that displaces the pointer to the table of primitives + to get access to the enclosing wrapper record. + (IW_Membership): Code cleanup. + (Offset_To_Top): Code cleanup. + (Predefined_DT): Removed. + (Register_Interface_Tag): Removed. + (Set_Interface_Table): Removed. + (Set_Offset_Index): Removed. + (Set_Offset_To_Top): Code cleanup. + (Set_OSD): Removed. + (Set_Signature): Removed. + (Set_SSD): Removed. + (Set_Tagged_Kind): Removed. + (Typeinfo_Ptr): Removed. + (TSD): Removed. + (Displace): Add missing check on null actual. + + * exp_disp.ads, exp_disp.adb + (Select_Expansion_Utilities): Removed. + (Build_Common_Dispatching_Select_Statements): Moved to exp_atags. + (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because + the interface requires a new parameter. + (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec, + Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace + calls to subprograms Build_T, Build_S, etc. by the corresponding code. + Done to remove package Select_Expansion_Utilities. + (Make_DT): New implementation for statically allocated dispatch tables. + (Make_Secondary_DT): Moved to the scope of Make_DT. + (Register_Primitive): Code cleanup plus incoporate the use of the new + function DT_Address_Attribute. + (Expand_Interface_Thunk): The profile of this subprogram has been + changed to return the Thunk_Id and the corresponding code. + (Fill_DT_Entry): Removed. Its functionality is now provided by + subprogram Register_Primitive. + (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by + subprogram Register_Primitive. + (Register_Primitive): New subprogram that incorporates the previous + functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry. + (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This + was only required to call Make_DT_Access_Action, which is now removed. + (Ada_Actions): Removed + (Action_Is_Proc): Removed + (Action_Nb_Arg): Removed + Replace all the calls to Make_DT_Access_Action by direct calls to + Make_Procedure_Call_Statement or Make_Function_Call. + (Set_DTC_Entity_Value): New subprogram. + (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value. + (Expand_Interface_Thunk): Add missing support for primitives that are + functions with a controlling result (case in which there is no need + to generate the thunk). + + * exp_atag.ads, exp_atag.adb + (Build_DT): New subprogram that displaces the pointer to reference the + base of the wrapper record. + (Build_Typeinfo_Offset): Removed. + (RTE_Tag_Node): Removed. + (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp + (Build_Get_RC_Offset): Removed. + (Build_Inherit_Predefined_Prims): Removed. + (Build_Inherit_TSD: Removed. + (Build_New_TSD): Removed. + (Build_Set_External_Tag): Removed. + (Build_Set_Predefined_Prim_Op_Address): Add documentation. + (Build_Set_Prim_Op_Address): Add documentation. + (Build_Set_TSD): Removed. + + * rtsfind.ads, rtsfind.adb + (Load_Fail): If load fails and we are not in configurable run-time + mode, then raise Unrecoverable_Error. + (Text_IO_Kludge): Generate an error message if a run-time library is + not available in a given run-time (ie. zfp run-time). + (RTE_Record_Component): Add code to check that the component we search + for is not found in two records in the given run-time package. + (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed + (RE_DT_Predef_Prims_Offset): New entity + (RE_Static_Offset_To_Top): New entity + (RE_HT_Link): New entity. + (System_Address_Image): Addition of this run-time package. + (RE_Address_Image): New entity. + (RE_Abstract_Interface): Removed. + (RE_Default_Prim_Op_Count): Removed. + (RE_DT_Entry_Size): Removed. + (RE_DT_Min_Prologue_Size): Removed. + (RE_DT_Prologue_Size): Removed. + (RE_Ifaces_Table_Ptr): Removed. + (RE_Interface_Data_Ptr): Removed. + (RE_Type_Specific_Data): Removed. + (RE_Primary_DT): Removed. + (RE_Register_Interface_Tag): Removed. + (RE_Set_Offset_Index): Removed. + (RE_Set_OSD): Removed. + (RE_Set_SSD): Removed. + (RE_Set_Signature): Removed. + (RE_Set_Tagged_Kind): Removed. + (RE_Address_Array): New entity. + (RE_DT): New entity. + (RE_Iface_Tag): New entity. + (RE_Interfaces_Table): New entity. + (RE_No_Dispatch_Table): New entity. + (RE_NDT_Prims_Ptr): New entity. + (RE_NDT_TSD): New entity. + (RE_Num_Prims): New entity. + (RE_Offset_To_Top_Function_Ptr): New entity. + (RE_OSD_Table): New entity. + (RE_OSD_Num_Prims): New entity. + (RE_Predef_Prims): New entity + (RE_Predef_Prims_Table_Ptr): New entity. + (RE_Primary_DT): New entity. + (RE_Signature): New entity. + (RE_SSD): New entity. + (RE_TSD): New entity. + (RE_Type_Specific_Data): New entity. + (RE_Tag_Kind): New entity. + +2007-06-06 Thomas Quinot + + * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the + C imported variable. + (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set + on entry. + +2007-06-06 Robert Dewar + + * a-tienio.adb (Get): Adjust buffer size to accomodate one extra + character + +2007-06-06 Vincent Celier + + * a-tifiio.adb (Put, internal): For negative numbers, check that there + is room for at least one digit and the minus sign. + (Put.Put_Character): Never put a character outside of the range of + string To. + +2007-06-06 Olivier Hainque + Eric Botcazou + + * utils2.c (build_allocator): Provide the extra arguments to + make_aligning_type for super-aligned objects allocated from the default + pool. Leave enough room for a pointer before the aligning field, and + store the system's allocator return value there. + (build_call_alloc_dealloc): When releasing a super-aligned object, + retrieve the system's allocator return value from where build_allocator + has stored it, just ahead of the adjusted address we are passed. + (build_call_raise): Handle properly the generation of line numbers when + the node is marked No_Location. + (compare_elmt_bitpos): Use tree_int_cst_compare. Stabilize the sort + by using DECL_UID on ties. + (build_binary_op) : Accept fat pointer types with the same + main variant. + (build_call_raise): Handle converting exception into goto; support new + argument KIND. + (build_component_ref): Add new arg to build_call_raise. + +2007-06-06 Hristian Kirtchev + + * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse + "." in the case of nnn.xxx when nnn terminates with an underscore. + Parse the remaining "#" or ":" in the case of nnn#.xxx# + +2007-06-06 Robert Dewar + + * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT + +2007-06-06 Arnaud Charlet + Vincent Celier + Robert Dewar + + * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when + needed. + (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute + ((destructor)) for adafinal, even when switch -a is used. + Do not issue pragma Linker_Destructor for adafinal when switch -a is + used. + (Gen_Object_Files_Options): Add formatting of Linker Options, when + Output_Linker_Option_List is set. Suppress this formatting when + Zero_Formatting is set. + Add case for CLI_Target. + (System_Restrictions_Used): New flag, used to avoid generating with of + System_Restrictions and initialization of the data unless there is + some use of System.Restrictions in the partition. + (Check_System_Restrictions_Used): New procedure + + * s-stalib.adb: Remove with of System.Restrictions. No longer needed + since we only with this unit in the binder file if it is used elsewhere + in the partition. + +2007-06-06 Vincent Celier + + * bindusg.adb: Add line for @ + Add lines for new switches -R and -Z + + * gnatbind.adb (Gnatbind): Do not include sources from the GNAT + hierarchy in the list of files of the closure when -R is used + (Gnatbind): Accept arguments starting with '@' to indicate response + files and take the arguments from the response files. + If List_Closure is set, display the referenced files + +2007-06-06 Javier Miranda + Robert Dewar + Ed Schonberg + + * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in + which the address-clause is applied to in-mode actuals (allowed by + 13.1(22)). + (Apply_Discriminant_Check): Do not generate a check if the type is + constrained by a current instance. + (Activate_Division_Check): New procedure + (Activate_Overflow_Check): New procedure + (Activate_Range_Check): New procedure + Call these new Activate procedures instead of setting flags directly + (Apply_Array_Size_Check): Removed, no longer needed. + Code clean up: remove obsolete code related to GCC 2. + (Get_E_Length): Protect against bomb in case scope is standard + (Selected_Range_Checks): If the node to be checked is a conversion to + an unconstrained array type, and the expression is a slice, use the + bounds of the slice to construct the required constraint checks. + Improve NOT NULL error messages + (Apply_Constraint_Check): If the context is a null-excluding access + type, diagnose properly the literal null. + +2007-06-06 Pascal Obry + + * clean.adb (Clean_Archive): Use untouched casing for the archive name + and the corresponding .deps file. + (Clean_Interface_Copy_Directory): Use untouched casing for the library + src directory. Minor code-clean-up. Use untouched casing for files + read into the library src dir. + (Clean_Library_Directory): Idem. + (Parse_Cmd_Line): Accept new switch -aP + +2007-06-06 Javier Miranda + Ed Schonberg + Robert Dewar + Eric Botcazou + Arnaud Charlet + + * einfo.ads, einfo.adb (Available_View): New synthesized attribute + applicable to types that have the With_Type flag set. Returns the + non-limited view of the type, if available, otherwise the type itself. + For class-wide types, there is no direct link in the tree, so we have + to retrieve the class-wide type of the non-limited view of the Etype. + New attributes Static_Initialization and Static_Elaboration_Desired. + Remove the pragma Thread_Body, and the associated flag + Is_Thread_Body in entities, and all related code. + (Suppress_Value_Tracking_On_Call): New flag + E_Exception has Esize and Alignment fields + (Universal_Aliasing): New function. + (Set_Universal_Aliasing): New procedure. + (Write_Entity_Flags): Deal with Universal_Aliasing flag. + (Check_Nested_Access): New procedure. + (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures. + (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access. + (Related_Interface): New attribute. Present in dispatch table pointer + components of records. Set to point to the entity of the corresponding + interface type. + (Is_By_Reference_Type): Recurse on the full view of an incomplete type. + (Original_Access_Type): Remove, not needed. + (Root_Type): Handle properly subtypes of class-wide-types. + Update comments. + + * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for + class-wide types visible through limited-with clauses. + (Try_Primitive_Operation): When examining all primitive operations of a + tagged type, do not consider subprograms labeled as hidden unless they + belong to a private generic type with a tagged parent. + (Try_Object_Operation): Extensive rewriting, to handle properly various + overloading cases, when several ancestors may have class-wide operations + that are possible candidates, and when the overloaded functions return + array types and have defaulted parameters so that the call may be + interpreted as an indexing. + (Analyze_Allocator): Remove Mark_Allocator and its invocation. + (Process_Function_Call): use Next, rather than Next_Actual, to analyze + successive actuals before analyzing the call itself. + (Try_Primitive_Operation): A primitive operation is compatible with the + prefix if the prefix has a synchronized type and the type of the formal + is its corresponding record, as can be the case when the primitive + operation is declared outside of the body of the type. + (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to + perform homonym traversal, looking for class-wide operation matches + (formerly done in statements of Try_Class_Wide_Operation). Matches on + access parameters are now restricted to anonymous access types. + (Mark_Allocator): An allocator with a discriminant association parent is + a coextension. + (Try_One_Prefix_Interpretation): If the type of the object is + incomplete, as can be happen when it is a limited view obtained through + a limited_with_clause, the selected component is not part of a prefixed + call. + (Complete_Object_Operation): Diagnose properly an object that is not + aliased when the corresponding controlling formal is an access + parameter. + (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly + ambiguous calls in prefixed notation, where two primitives differ only + in that the controlling argument of one is an access parameter. + + * sem_ch6.adb (Has_Single_Return): Add guard in code that determines + whether a function that returns an unconstrained type can be inlined. + (Process_Formals): Diagnose properly the illegal use of an incomplete + type in the profile of an access_to_subprogram declaration. + (Check_Synchronized_Overriding): Nothing check for concurrent types, the + operations are attached to the corresponding record. + (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ. + When processing a primitive of a concurrent type which implements an + interface change the type of all controlling formals to that of the + corresponding record type. + (Check_Synchronized_Overriding): Relax the conditional logic when trying + to determine the tagged type to which a primitive belongs. + (Check_Conventions): Capture condition to ignore a primitive operation + (which is shared between the loop in Check_Conventions and the one in + Check_Convention) in a new local function Skip_Check. + (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible + confusion with Check_Conventions' own Prim_Op local variable. + (Create_Extra_Formals): Test for a tagged result type rather than a + controlling result when determining whether to add a BIP_Alloc_Form + formal and a BIP_Final_List formal to the function. + (Check_Conformance); For parameters that are anonymous access types, + subtype conformance requires that the not null and the constant + indicators must match + (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery + to retrieve the appropriate type when processing a concurrent type + declared within a generic. Minor comment reformatting. Change invocation + of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri- + mitive. + (Analyze_Subprogram_Body): If the return type of a function is an + anonymous access to the limited view of a class-wide type, and the + non-limited view of the type is available, update the type of the + function so that code can be generated. + (Process_Formals): In case of access-subtype itype whose designated + type is also an itype (situation that happens now with access to + subprograms) we mark the access-type itype with the Has_Delayed_Freeze + attribute to avoid backend problems. + (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in + init of R_Stm_Type_Is_Anon_Access. Also check that base types of the + anonymous types' designated types are same before testing + Subtypes_Statically_Match. + (Create_Extra_Formals): Test for a named access parameter that is a + controlling formal as an additional condition for adding an + accessibility level formal. This can occur in the subp type created for + dispatching calls in Expand_Dispatching_Call, and allows calling + Create_Extra_Formals from that procedure rather than special-casing the + extra formals there. + (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals + when the function has a controlling result. + (Check_Returns): Add much more knowledge of the optimization of local + raise statements to gotos, to retain proper warnings in this case. + (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label + nodes when looking for last statement. + + * sem_type.ads, sem_type.adb (Specific_Type): Add support for + class-wide types visible through limited with clauses. + (Add_One_Interp): If the operands are anonymous access types, the + predefined operator on universal_access is immediately visibles + (Find_Unique_Type): Handle anonymous access to subprogram types just as + other anonymous access types. + (Disambiguate): Take into account CIL convention. + (Interface_Present_In_Ancestor): Add support for class-wide interfaces. + +2007-06-06 Robert Dewar + + * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb, + sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads, + elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure. + Fix lower bound of tables. + Add rep clauses. + + * nlists.adb: Ditto. + (Prev_Node, Next_Node): Change index type to Int so that it properly + covers the range First_Node_Id - 1 up. + +2007-06-06 Javier Miranda + Ed Schonberg + Bob Duff + Hristian Kirtchev + + * exp_aggr.ads, exp_aggr.adb: + (Build_Record_Aggr_Code): Add missing initialization of secondary tags + in extension aggregates. + (Flatten): Other conditions being met, an aggregate is static if the + low bound given by component associations is different from the low + bound of the base index type. + (Packed_Array_Aggregate_Handled): If the component type is itself a + packed array or record, the front-end must expand into assignments. + (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to + Init_Pr, instead of Ancestor_Is_Expression. + (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a + coextension chain root, either generate a list controller or use the + already existing one. + (Static_Array_Aggregate): New procedure to construct a positional + aggregate that can be handled by the backend, when all bounds and + components are compile-time known constants. + (Expand_Record_Aggregate): Force conversion of aggregates of tagged + types covering interface types into assignments. + (Replace_Type): move to Build_Record_Aggr_Code. + (Expand_Record_Aggr_Code): if the target of the aggregate is an + interface type, convert to the definite type of the aggregate itself, + so that needed components are visible. + (Convert_Aggr_In_Object_Decl): If the aggregate has controlled + components and the context is an extended return statement do not + create a transient block for it, to prevent premature finalization + before the return is executed. + (Gen_Assign): Do not generate a call to deep adjust routine if the + component type is itself an array of controlled (sub)-components + initialized with an inner aggregate. + (Component_Check): New name for Static_Check. This name is now more + appropriate, and documentation is added which was missing. + (Component_Check): Add test for bit aligned component value + (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_ + Tagged_Comps, name is more appropriate given added function below. + (Component_Not_OK_For_Backend): Check for bit aligned component ref. + +2007-06-06 Hristian Kirtchev + Javier Miranda + Robert Dewar + + * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and + Terminated: Add unchecked type conversion from System.Address to + System.Tasking.Task_Id when calling the predefined primitive + _disp_get_task_id. + Disable new Ada 05 accessibility check for JVM.NET targets, which + cannot be implemented in a practical way. + (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in + the sources always references the tag of the actual object. Therefore, + if 'Tag is applied in the sources to class-wide interface objects we + generate code that displaces "this" to reference the base of the object. + (Expand_N_Attribute_Reference, case Size): Return specified size if + known to front end. + (Expand_N_Attribute_Reference): The expansion of the 'Address attribute + has code that displaces the pointer of the object to manage interface + types. However this code must not be executed when the prefix is a + subprogram. This bug caused the wrong expansion of the internally + generated assignment that fills the dispatch table when the primitive + is a function returning a class-wide interface type. + (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to + Set_Attribute_Name for Name_Unaligned_Valid. + +2007-06-06 Ed Schonberg + Gary Dismukes + + * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address): + If the initialization is the equivalent aggregate of the initialization + procedure of the type, do not remove it. + (Expand_N_Attribute_Definition_Clause): Exclude access variables + initialized to null from having their expression reset to empty and + note this exception in the comment. + +2007-06-06 Hristian Kirtchev + Robert Dewar + Ed Schonberg + Gary Dismukes + + * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames. + Add "with" and "use" clauses for Sem_Attr. + (Expand_Current_Value): Do not replace occurences of attribute + references where the prefix must be a simple name. + + * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for + Namet. Add new arrays Attribute_Name_Modifies_Prefix and + Attribute_Requires_Simple_Name_Prefix. + (Name_Modifies_Prefix): Body of new function. + (Requires_Simple_Name_Prefix): Body of new function. + (Resolve_Attribute, case Access): Improve error message for case of + mismatched conventions. + (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an + incomplete type. + (Analyze_Attribute, case 'Access): If the type of the prefix is a + constrained subtype for a nominal unconstrained type, use its base type + to check for conformance with the context. + (Resolve_Attribute): Remove test of the access type being associated + with a return statement from condition for performing accessibility + checks on access attributes, since this case is now captured by + Is_Local_Anonymous_Access. + (Analyze_Access_Attribute): Set Address_Taken on entity + (Analyze_Attribute, case Address): Set Address_Taken on entity + (OK_Self_Reference): Traverse tree to locate enclosing aggregate when + validating an access attribute whose prefix is a current instance. + (Resolve_Attribute): In case of attributes 'Code_Address and 'Address + applied to dispatching operations, if freezing is required then we set + the attribute Has_Delayed_Freeze in the prefix's entity. + (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in + current scope if access of local subprogram taken + (Analyze_Access_Attribute): Check legality of self-reference even if the + expression comes from source, as when a single component association in + an aggregate has a box association. + (Resolve_Attribute, case 'Access): Do not apply accessibility checks to + the prefix if it is a protected operation and the attribute is + Unrestricted_Access. + (Resolve_Attribute, case 'Access): Set the Etype of the attribute + reference to the base type of the context, to force a constraint check + when the context is an access subtype with an explicit constraint. + (Analyze_Attribute, case 'Class): If the prefix is an interface and the + node is rewritten as an interface conversion. leave unanalyzed after + resolution, to ensure that type checking against the context will take + place. + +2007-06-06 Ed Schonberg + Javier Miranda + Robert Dewar + + * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a + wrapper when the full view of the controlling type of an inherited + function that dispatches on result implements interfaces. + (Expand_N_Object_Declaration): In cases where the type of the + declaration is anonymous access, create finalization list for it. + (Expand_N_Object_Declaration): Generate a persistent_bss directive only + if the object has no explicit initialization, to match description of + functionality of pragam Persistent_BSS. + (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate): + new function to build static aggregates, to replace initialization call + when static initialization is desired. + (Freeze_Type): Generate a list controller for an access type whenever + its designated type has controlled anonymous access discriminants. + (Build_Equivalent_Aggregate): New procedure to compute a static + aggregate to be used as default initialization for composite types, + instead of a generating a call to the initialization procedure for the + type. + (Build_Initialization_Call): When available, replace a call to the + initialization procedure with a copy of the equivalent static aggregate + for the type. + (Expand_N_Object_Declaration): Use New_Occurrence_Of in generated + declarations for objects of a class-wide interface type, rather than + just identifiers, to prevent visibility problems. + (Expand_N_Object_Declaration): When expanding the declaration for an + object of a class-wide interface type, preserve the homonym chain of + the original entity before exchanging it with that of the generated + renaming declaration. + (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation + active, because there is no way to handle the exception. + (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT + to do a minimum decoration of the Access_Disp_Table list. + (Expand_Record_Controller): Avoid the addition of the controller between + the component containing the tag of a secondary dispatch table and its + adjacent component that stores the offset to the base of the object. + This latter component is only generated when the parent type has + discriminants ---documented in Add_Interface_Tag_Components). + (Apply_Array_Size_Check): Removed, no longer needed. + (Expand_N_Full_Type_Declaration): If the type has anonymous access + components, create a Master_Entity for it only if it contains tasks. + (Build_Init_Procedure): Suppress the tag assignment compiling under + no run-time mode. + (Freeze_Record_Type): Remove code associated with creation of dispatch + table. + (Init_Secondary_Tags): Update type of actuals when generating calls to + Ada.Tags.Set_Offset_To_Top + (Stream_Operation_OK): Disable use of streams compiling under no + run-time mode + (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization + if Has_Init_Expression set. + (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to + Register_Primitive, which provides the same functionality. + (Requires_Init_Proc): Return false in case of interface types. + (Add_Secondary_Tables): Use the new attribute Related_Interface to + cleanup the code. + (Predefined_Primitive_Freeze): Do not assume that an internal entity + is always associated with a predefined primitive because the internal + entities associated with interface types are not predefined primitives. + Therefore, the call to Is_Internal is replaced by a call to the + function Is_Predefined_Dispatching_Operation. + (Make_Eq_If): When generating the list of comparisons for the + components of a given variant, omit the controller component that is + present if the variant has controlled components. + +2007-06-06 Javier Miranda + Hristian Kirtchev + Bob Duff + + * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to + handle the creation of finalization lists and calls for nested + coextensions when the root of the chains is part of a return statement. + (Inside_A_Return_Statement): New function inside Complete_Coextension_ + Finalization. + (Expand_Record_Equality): Skip components that are interface types. + (Displace_Allocator_Pointer): Add missing support for interface subtypes + (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant + with Rewrite_Coextension. Change the condition for detecting coextension + root nodes. + (Is_Local_Access_Discriminant): Removed. + (Rewrite_Coextension): New routine which rewrites a static coextension + as a temporary and uses its unrestricted access in the construction of + the outer object. + (Complete_Coextension_Finalization): New routine. Generate finalization + attachment calls to all delayed coextensions. + (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever + the allocator is not a coextension itself and has delayed coextensions. + If the current allocator is controlled, but also a coextension, delay + the generation of the finalization attachment call. + Rename local variable "Node" to "Nod" in order to avoid confusion with + "Elists.Node". + (Expand_Allocator_Expression): Call Adjust for initialized allocators of + limited types that are not inherently limited. Such an allocator is + illegal, but is generated by the expander for a return statement, to + copy the result onto the secondary stack. This is the only case where a + limited object can be copied. Generate code to displace the pointer + to the object if the qualified expression is a class-wide interface + object. Such displacement was missing and hence the copy of the object + was wrong. + (Apply_Accessibility_Check): Handle allocated objects initialized in + place. + (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator + and Expand_Allocator_Expression. Allocating class-wide interface objects + this routine displaces the pointer to the allocated object to reference + the component referencing the corresponding secondary dispatch table. + Expand_Allocator_Expression): Add missing support to allocate class-wide + interface objects initialized with a qualified expression. + (Get_Allocator_Final_List): Test for an anonymous access type that is a + function result type, and use the finalization list associated with the + function scope in that case (such an anonymous type should not be + treated like an access parameter's type). + +2007-06-06 Ed Schonberg + Gary Dismukes + Javier Miranda + + * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a + controlled type, use Make_Handler_For_Ctrl_Operation to construct the + required exception handler. + (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle + properly the case of a function whose return type is a limited + class-wide interface type. Modify the code of the accessibility + check to handle class-wide interface objects. In this case we need to + displace "this" to reference the primary dispatch table to get access + to the TSD of the object (to evaluate its accessibility level). + (Expand_N_Extended_Return_Statement): Test for a tagged result type + rather than a controlling result as one of the conditions for + generating tests of the implicit BIP_Alloc_Form formal. The + initialization assignment is also handled according to whether the + result is tagged instead of controlling. + In the case where the init assignment is inserted in the "then" part of + the allocation conditional, rewrite the target to be a dereference of + the implicit BIP_Object_Access formal. + If the returned value is unconstrained and created on the secondary + stack, mark the enclosing block and function so that the secondary + stack is not reclaimed on return. + Treat returns from functions with controlling results similarly to + returns from functions with unconstrained result subtypes. + If the object returned is unconstrained, and an allocator must be + created for it, analyze the allocator once the block for the extended + return is installed, to ensure that finalizable components + of the expression use the proper finalization list. Guard the call to + Move_Final_List with a check that there is something to finalize. + (Make_Tag_Ctrl_Assignment): Use "old" handling + of controlled type assignment for virtual machines, since new code uses + unsupported features (such as direct access to bytes in memory). + +2007-06-06 Gary Dismukes + Ed Schonberg + + * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra + accessibility actual, check for the case of an aliased object that has + been rewritten as an Access attribute, and assign Prev to Prev_Orig so + we fall into processing for the attribute rather than the name of the + object. + (Expand_Inline_Call): If an actual is a literal, and the corresponding + formal has its address taken in the body, create a temporary to capture + value. If the return type is a limited interface, do not treat the + return value as Controlled. + (Is_In_Place_Function): If the return type is a limited interface, + treat as returning in place. The actual returned object may not always + be limited, but the caller has to assume that it is returned in place. + (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the + context of an allocator, use the correct finalization chain (that is, + the chain belonging to the access type, rather than the chain belonging + to the current scope). + (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged + result type rather than a controlling result as a precondition for + adding an allocation form actual to a build-in-place call. + (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto. + (Freeze_Subprogram): Code cleanup. Remove all the code that register the + primitive in the dispatch tables. This work is now done by Make_DT when + the type is frozen. + (Register_Predefined_DT_Entry): Removed. + (Add_Return): If end label is not present, use sloc of last statement + for generated return statement in procedure, for better gdb behavior + on expanded code. + (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the + object address nodes to ensure proper processing by routines like + Insert_After*. + (Expand_Call): Fix generation of validity check for parameter + (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing + the allocation form parameter if the result subtype is constrained, + except when the function has a controlling result. + (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type + rather than Is_Controlled and Has_Controlled_Component, since we want to + include class-wide result types in this treatment. Also test for a + controlling result, since that also requires passing a finalization + list. + (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_* + even when the result subtype is constrained, to handle calls involving + controlling results. + (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_* + is now called even when the result subtype is constrained, to handle + calls involving controlling results. + (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained + on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure + now performs the test). + (Make_Build_In_Place_Call_In_Object_Declaration): + Add_Alloc_Form_Actual_* is now called even when the result subtype is + constrained, to handle calls involving controlling results. + (Add_Return): Accomodate rewritten pattern from local raise to goto + transformation, so that we still recognize an transfer statement + and do the right thing here in that case. + (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start + and end of subprogram code. + (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing + support for primitives that are functions (without formals) with a + controlling result. + (Inherited_From_Formal): If the actual subtype has not generic parent + type, it is not an actual for a formal derived type, and there is no + operation to inherit from the formal. + +2007-06-06 Ed Schonberg + Thomas Quinot + + * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of + inserted cleanup code appropriately for GDB use. + (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create + exception handler for Deep_Adjust or Deep_Finalize. + (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity + Raise_From_Controlled_Operation is available, use a call to that + subprogram instead of a plain "raise Program_Error" node to raise + Program_Error if an exception is propagated from an Adjust or Finalize + operation. + (Insert_Actions_In_Scope_Around): If the statement to be wrapped + appears in the optional statement list of a triggering alternative, the + scope actions can be inserted directly there, and not in the list that + includes the asynchronous select itself. + +2007-06-06 Ed Schonberg + Robert Dewar + Hristian Kirtchev + + * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of + generated exception handler appropriately when debugging generated code. + Deal properly with No_Exception_Propagation restriction mode. + (Expand_N_Abort_Statement): Add an unchecked type conversion from + System.Address to System.Tasking.Task_Id when processing the result of + the predefined primitive _disp_get_task_id. + (Expand_N_Asynchronous_Select): Clarify comment. + (Expand_N_Protected_Type_Declaration): Minor code cleanup. + (Find_Parameter_Type): New routine inside Type_Conformant_Parameters. + (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup. + (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for + privals and for generated call to Complete_Entry_Body, for better gdb + behavior. + (Copy_Result_Type): Utility to construct a parameter and result profile + for protected functions whose return type is an anonymous access to + subprogram. + (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type): + call the above. + (Build_Task_Activation_Call): Insert Activate_Tasks call at proper + point when the local-raise-to-goto transformation has taken place. + +2007-06-06 Javier Miranda + Nicolas Setton + + * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its + functionality when the backend is generating code. + Otherwise any serious error + reported by the backend calling the frontend routine Error_Msg + changes the Compilation_Mode to Check_Semantics, disables the + functionality of this routine and causes the generation of + spureous additional errors. + + * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the + debugging information now generated by the compiler for fat-pointer + types. + Document the contents of DW_AT_producer in the GNAT Vendor extensions to + DWARF2/3. + Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch. + +2007-06-06 Thomas Quinot + + * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram + (GARLIC_Support.Build_Subprogram_Receiving_Stubs, + PolyORB_Support.Build_Subprogram_Receiving_Stubs): + For a remote call to a function with a classwide return type, apply an + E.4(18) check to the returned value. + (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for + stream attributes of the designated type of an RACW, as they are not + dispatching primitive operations. + +2007-06-06 Geert Bosch + + * exp_fixd.adb (Integer_Literal): Add optional argument to construct a + negative literal + (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always + positive + (Do_Divide_Fixed_Universal): Handle case of negative Frac. + (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always + positive + (Do_Multiply_Fixed_Universal): Handle case of negative Frac. + +2007-06-06 Javier Miranda + + * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this + attribute compiling package Ada.Tags under No_Run_Time_Mode. + +2007-06-06 Javier Miranda + + * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for + deallocation of class-wide interface objects. + (Expand_Dispatching_Constructor_Call): Take into account that if the + result of the dispatching constructor is an interface type, the + function returns a class-wide interface type; otherwise the returned + object would be actual. The frontend previously accepted returning + interface types because Expand_Interface_Actuals silently performed + the management of the returned type "as if" it were a class-wide + interface type. + (Expand_Dispatching_Constructor_Call): Replace call to + Make_DT_Access_Action by direct call to Make_Function_Call. + +2007-06-06 Robert Dewar + Ed Schonberg + + * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to + compute masking constant, since we now set Esize properly to the + underlying size. + (Create_Packed_Array_Type): Set proper Esize value adjusted as required + to match the alignment. + (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for + packed arrays of 8 bits or less. + + * freeze.adb (Freeze_Entity): When freezing the formals of a + subprogram, freeze the designated type of a parameter of an access type + only if it is an access parameter. + Increase size of C convention enumeration object + (Freeze_Entity, array type case): Make sure Esize value is properly + adjusted for the alignment if it is known. + (Freeze_Entity, array type case): When checking bit packed arrays for + the size being incorrect, check RM_Size, not Esize. + (Freeze_Record_Type): Check for bad discriminated record convention + (In_Exp_Body): Return true if the body is generated for a subprogram + renaming, either an attribute renaming or a renaming as body. + (Check_Itype): If the designated type of an anonymous access component + is a non-protected subprogram type, indicate that it is frozen, to + prevent out-of-scope freeze node at some subsequent call. + (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism + only if the subprogram is neither imported nor exported, as well as the + NCA descriptor class if the subprogram is exported. + +2007-06-06 Ed Schonberg + Arnaud Charlet + Robert Dewar + Gary Dismukes + + * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a + default initialization on an imported object, when there is no + initialization call generated for it. + (Expand_Pragma_Assert): Add handling of No_Exception_Propagation + restriction + + * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma + Static_Elaboration_Desired. + Remove pragma Thread_Body. + Implement a new pragma No_Body + Removes the Explicit_Overriding pragma + Remove Optional_Overriding pragma + (Prag): Deal with Universal_Aliasing. + (Name_CIL, Name_CIL_Constructor, Convention_CIL, + Pragma_CIL_Constructor): New names. + + * sem_cat.adb (Validate_Object_Declaration): An initialization that + uses the equivalent aggregate of a type must be treated as an implicit + initialization. + (Get_Categorization): Check a unit for pragma Preelaborate only if it + has none of the other categories. + (Process_Import_Or_Interface_Pragma): Report an error for an attempt + to apply Import to an object renaming declaration. + + * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported + from a C++ class should be declared as limited and that it will be + considererd limited. + (Analyze_Pragma): Warn that a type specified with pragma CPP_Class + should be declared as limited and that it will be considererd limited. + (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas + (Analyze_Pragma, case Export): Diagnose export of enumeration literal + (Analyze_Pragma): Deal with Universal_Aliasing. + (Sig_Flags): Likewise. + (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP. + (Overflow_Checks_Unsuppressed): New flag. + (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed. + (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in + case of JVM or .NET targets, and compiling user code. + Add debugging convenience routine rv + +2007-06-06 Robert Dewar + + * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that + are interface type. + (Build_Elementary_Input_Call): For floating-point use right type in the + absence of strange size or stream size clauses. + (Build_Elementary_Write_Call): Same fix + (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute + set to value that does not match base type size. + +2007-06-06 Ed Schonberg + + * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an + object of a limited type can be initialized with a call to a function + that returns in place. If the limited type has unknown discriminants, + and the underlying type is a constrained composite type, build an actual + subtype from the function call, as is done for private types. + (Side_Effect_Free): An expression that is the renaming of an object or + whose prefix is the renaming of a object, is not side-effect free + because it may be assigned through the renaming and its value must be + captured in a temporary. + (Has_Controlled_Coextensions): New routine. + (Expand_Subtype_From_Expr): Do nothing if type is a limited interface, + as is done for other limited types. + (Non_Limited_Designated_Type): new predicate. + (Make_CW_Equivalent_Type): Modified to handle class-wide interface + objects. + Remove all handling of with_type clauses. + + * par-ch10.adb: Remove all handling of with_type clauses. + + * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the + checksum if the main source could not be parsed. + (Loat_Unit): When processing a child unit, determine properly whether + the parent unit is a renaming when the parent is itself a child unit. + Remove handling of with_type clauses. + + * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function. + (Set_Is_Static_Coextension): New procedure. + (Has_Local_Raise): New function + (Set_Has_Local_Raise): New procedure + (Renaming_Exception): New field + (Has_Init_Expression): New flag + (Delay_Finalize_Attach): Remove because flag is obsolete. + (Set_Delay_Finalize_Attach): Remove because flag is obsolete. + Remove all handling of with_type clauses. + (Exception_Junk): Can now be set in N_Block_Statement + +2007-06-06 Vincent Celier + Robert Dewar + + * frontend.adb (Frontend): Return immediately if the main source could + not be parsed, because of preprocessing errors. + + * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully. + (Gnat1drv): Exit with errors if the main source could not be parsed, + because of preprocessing errors. + (Check_Rep_Info): New procedure + +2007-06-06 Robert Dewar + + * g-hesorg.ads, g-heasor.ads, + g-busorg.ads, g-bubsor.ads: Update documentation + GNAT.Heap/Bubble_Sort_G is now pure + +2007-06-06 Robert Dewar + + * g-catiio.ads, g-catiio.adb (Image): Check for null picture string + +2007-06-06 Robert Dewar + Ed Schonberg + + * g-comlin.ads, g-comlin.adb: + Add new warning for renaming of function return objects + + * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size + (Tree_Read): Use size of object instead of type'object_size, since the + latter is incorrect for packed array types. + (Tree_Write): Same fix + + * opt.ads: Add new warning for renaming of function return objects + (Generating_Code): New boolean variable used to indicate that the + frontend as finished its work and has called the backend to process + the tree and generate the object file. + (GCC_Version): Is now private + (Static_Dispatch_Tables): New constant declaration. + (Overflow_Checks_Unsuppressed): New flag. + (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed. + (List_Closure): New flag for gnatbind (-R) + Zero_Formatting: New flag for gnatbind (-Z) + (Special_Exception_Package_Used): New flag. + (Warn_On_Unrepped_Components): New flag. + + * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed + unit is a compilation unit, rather than relying on its scope, so that + Standard can be renamed. + (Analyze_Object_Renaming): Add new warning for renaming of function + return objects. + Also reject attempt to rename function return object in Ada 83 mode. + (Attribute_Renaming): In case of tagged types, add the body of the + generated function to the freezing actions of the type. + (Find_Type): A protected type is visible right after the reserved word + "is" is encountered in its type declaration. Set the entity and type + rather than emitting an error message. + (New_Scope): Properly propagate Discard_Names to inner scopes + (Check_Nested_Access): New procedure. + (Has_Nested_Access, Set_Has_Nested_Access): New procedures. + (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access. + + * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning + Add new warning for renaming of function return objects + (Check_References): Suppress warnings for objects whose type or + base type has Warnings suppressed. + (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C + (Set_Warning_Switch): Include new -gnatwc in -gnatwa + +2007-06-06 Vincent Celier + Emmanuel Briot + Olivier Hainque + + * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the + absolute value of Header.Block_Size when displaying the freed physical + memory in traces. + (Allocate): Compute Storage_Address using Integer_Address, not + Storage_Offset, because the range of Storage_Offset may not be large + enough. + (Configure): New parameter Low_Level_Traces + (Allocate, Deallocation, Free_Physically): Added low-level traces + (Configure): new parameter Errors_To_Stdout. + (Output_File): new subprogram + (Deallocate, Dereference): Send error messages to the proper stream + (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as + documented. Previous code would send it to the current output file + defined in GNAT.IO, which might not be stdout + (Is_Valid): Adjust comment to mention that a positive reply means that + Header_Of may be used to retrieve the allocation header associated with + the subprogram Storage address argument. Return False early if this + address argument is misaligned. + +2007-06-06 Vincent Celier + + * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept + switch -P + (ASIS_Main): New global variable + (Get_Closure): New procedure + (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat + check, metric or pretty. Call Get_Closure in this case. + (Check_Files): For GNAT LIST, check all sources of all projects when + All_Projects is True. + (GNATCmd): Accept -U for GNAT LIST + +2007-06-06 Vincent Celier + + * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK= + has been specified + Correct error message when invocation of the linker fails + Add explicit size clause for the C imported variables + Object_List_File_Supported and Using_GNU_Linker to emphasize that + we expect char size. + Read target parameters earlier, since this is needed to set + Target_VM properly. Also do not use -static/shared-libgcc for non GCC + targets. + +2007-06-06 Vincent Celier + + * gnatls.adb: + Add 3 spaces before the default project directory when displaying + the project search path. + Add new command line switch '-l' to display license information. + +2007-06-06 Vasiliy Fofanov + + * gmem.c: Add support for timestamps on memory operations. + + * memtrack.adb, gnatmem.adb: Add support for timestamps on memory + operations (not used currently, just foundation for future + enhancements). Add possibility to perform full dump of gmem.out file. + (Print_Back_Traces): Declare accesses to root arrays constants since + they aren't modified. + (Print_Back_Traces): allocate root arrays on the heap rather than stack. + +2007-06-06 Vincent Celier + + * gnatsym.adb: Update Copyright notice + (Parse_Cmd_Line): Accept new switch -D + (Gnatsym): In Direct policy (switch -D) copy reference file to symbol + file. + + * prj.ads (Policy): New policy Direct + (Yes_No_Unknown): New enumeration type + (Project_Data): New component Libgnarl_Needed + + * prj-nmsc.adb (Check_For_Source): When recording a source file make + use the untouched pathname casing. + (Get_Directories): Ensure that the Display_Exec_Directory is using the + proper casing on non case-sensitive platforms like Windows. + (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s) + on all platforms, as it is not possible to know which one is allowed + before processing the project files. + (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is + specified when symbol policy is Direct. Check that when there is a + symbol file defined (either by default or with attribute + Library_Symbol_File) it is not the same as the reference symbol file. + (Check_Stand_Alone_Library): Recognize new symbol policy Direct. + (Look_For_Sources): Allow Locally_Removed_Files to be declare in non + extending projects. + (Record_Ada_Source): Record a source that has been locally removed in an + imported project. + + * symbols.ads (Policy): New policy Direct + + * symbols-vms.adb (Initialize): Take new policy Direct in case + statement + +2007-06-06 Vincent Celier + + * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory): + Correct obvious bug (return Dir; instead of return Directory;). + (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last + +2007-06-06 Thomas Quinot + + * g-pehage.adb (Produce): Open output files in Binary mode, so that + they have UNIX line endings (LF only) even on Windows, and thus pass + all GNAT style checks. + +2007-06-06 Emmanuel Briot + + * g-regpat.adb (Quote): Fix improper quoting of '.' + +2007-06-06 Thomas Quinot + + * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by + default, set False on a per-runtime basis. + (Need_Netdb_Buffer): New constant. + + * g-socket.ads, g-socket.adb: Import new package + GNAT.Sockets.Thin.Task_Safe_NetDB. + (Raise_Host_Error): Use Host_Error_Message from platform-specific thin + binding to obtain proper message. + (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close. + Replace various occurrences of Arry (Arry'First)'Address with the + equivalent Arry'Address (GNAT always follows implementation advice from + 13.3(14)). + (Get_Host_By_Address, Get_Host_By_Name, + Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock; + instead, rely on platform-specific task safe netdb operations provided + by g-socthi. + + * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal + parameter Process_Blocking_IO. + (Host_Error_Messages): Add stub body. + (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close. + (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname, + Safe_Getservbyport): Move functions into new child package + Task_Safe_NetDB. + (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr, + Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines. + (In_Addr): Add alignment clause. + +2007-06-06 Robert Dewar + + * g-trasym.ads, g-traceb.ads: Update list of supported targets + Add note about symbolic traceback + +2007-06-06 Pascal Obry + + * hostparm.ads (Normalized_CWD): Use the host directory separator + instead of the hardcoded forward slash which is not the proper + character on Windows for example. + (Java_VM): Removed. + +2007-06-06 Vincent Celier + Arnaud Charlet + + * a-clrefi.adb, a-clrefi.ads: New files + + * impunit.adb: Add s-os_lib in the list of user visible units. + (Non_Imp_File_Names_95): Add a-clrefi to this list + Remove obsolete run-time entries. + (Non_Imp_File_Names_05): Add Ada 2005 entries for: + "a-exetim" -- Ada.Execution_Time + "a-extiti" -- Ada.Execution_Time.Timers + + * mlib-prj.ads, mlib-prj.adb + (Build_Library): Use untouched object dir and library dir. At the + same time makes sure that the checks are done using the canonical + form. Removes hard-coded directory separator and use the proper host + one instead. + (Process_Project): Do not look in object directory to check if libgnarl + is needed for a library, if there is no object directory. + (Build_Library): Scan the ALI files to decide if libgnarl is needed for + linking. + (Build_Library): When invoking gnatbind, use a response file if the + total size of the arguments is too large. + + * Makefile.rtl: (g-sttsne): New object file. + Add entry for a-clrefi, s-utf_32, System.Exceptions + + * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o. + (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o. + (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o + Change g-string to s-string, g-os_lib to s-os_lib + Change all g-utf_32 references to s-utf_32 + +2007-06-06 Tristan Gingold + Olivier Hainque + + * init.c: Do not adjust IP of an imported VMS exception of ia64. + LIB$STOP is called to raise an exception and the IP of the exception + is the instruction right after the call. + (__gnat_adjust_context_for_raise, AIX): Implement. + (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call + adjust_context_for_raise before Raise_From_Signal_Hanler. + (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure + siginfo is passed to the handler, necessary to let the zcx propagation + engine unwind past it. + +2007-06-06 Olivier Hainque + + * initialize.c (__gnat_initialize for vxworks): Update documentation + on the ZCX support, using different sets of crtstuff objects than with + GCC 3.4. + +2007-06-06 Robert Dewar + + * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package + spec from body + (Layout_Type): Fix recomputation of size from alignment. + +2007-06-06 Ed Schonberg + Javier Miranda + + * sem_ch12.adb (Analyze_Associations): Diagnose use of an others + association in an instance. + (Copy_Generic_Node): If the node is a string literal, no need to copy + its descendants. + (Is_Generic_Formal): For a formal subprogram, the declaration is the + grandparent of the entity. + (Analyze_Formal_Interface_Type): Transform into a full type declaration, + to simplify handling of formal interfaces that derive from other formal + interfaces. + (Instantiate_Subprogram_Body): The defining unit name of the body of + the instance should be a defining identifier. + (Install_Formal_Packages): make global to the package, for use in + instantiations of child units. + (Analyze_Package_Instantiation): Do not attempt to set information on an + enclosing master of an entry when expansion is disabled. + (Instantiate_Type): If the actual is a tagged synchronized type and the + generic ancestor is an interface, create a generic actual for the + corresponding record. + (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type + declaration, to ensure that the interface list is processed correctly. + (Inline_Instance_Body): If enclosing scope is an instance body, remove + its entities from visibiility as well. + (Pre_Analyze_Actuals): if the actual is an allocator with constraints + given with a named association, analyze the expression only, not the + discriminant association itself. + (Reset_Entity): If the analysis of a selected component is transformed + into an expanded name in the prefix of a call with parameters, do not + transform the original node into an expanded name, to prevent visibility + errors in the case of nested generics. + (Check_Private_View): For an array type, check whether the index types + may need exchanging. + +2007-06-06 Arnaud Charlet + Vincent Celier + + * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java, + since both are separated. + Add support for imported CIL packages. + Add further special handling of "value_type" for CIL. + Add special handling of pragma Import for CIL. + + * make.ads, make.adb: When switch -eS is used, direct all outputs to + standard output instead of standard error, except errors. + (Absolute_Path): Use untouched casing for the parent directory. + (Add_Library_Search_Dir): Use the untouched directory name. + (Add_Source_Search_Dir): Idem. + (Change_To_Object_Directory): Update output to use proper casing. + (Create_Binder_Mapping_File): Use the untouched filename to set + ALI_Name. + (Gnatmake): Use untouched library and executable directory names. + (Insert_Project_Sources): Use untouched filename for spec and body. + (Is_In_Object_Directory): Use untouched object directory. + (Mark_Directory): Idem. + (Collect_Arguments_And_Compile): Ensure that Full_Source_File always + contains the non-canonical filename in all cases. + (Change_To_Object_Directory): In verbose mode, display the name of the + object directory we're changing to. + (Compile_Sources): Make sure, when a project file is used, to compile + the body of the unit, when there is one, even when only the spec is + recorded in an ALI file. + (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the + spec to the body. + (Report_Compilation_Failed): New procedure + (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg): + procedures moved from the spec to the body. + (Extract_Failure): Removed, not used + Replace explicit raises of exception Bind_Failed and Link_Failed with + calls to Make_Failed with the proper message. + Replace explicit raises of exception Compilation_Failed with calls to + procedure Report_Compilation_Failed. + (Initialize): Create mapping files unconditionally when using project + files. + + * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL, + Pragma_CIL_Constructor): New names. + + * targparm.ads, targparm.adb + (Compiler_System_Version): Removed, no longer used. + (Get_Target_Parameters): Relax checks on system.ads validity. Add + handling of two new system flags: JVM and CLI. + +2007-06-06 Jose Ruiz + Arnaud Charlet + + * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run + time, use the default s-interr body that provides interrupt support + based on signals. + (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of + a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b}, + g-soccon.ads, and s-taprop.adb for the marte run time. + (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and + timers are supported on marte. + (EH_MECHANISM for marte): Do not use ZCX. + (THREADSLIB for marte): Use -lmarte. + Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS + Add mlib-tgt-specific.o to gnatmake objects + mlib-tgt-.adb is now the body of MLib.Tgt.Specific, no + longer of MLib.Tgt. + (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks + 6, either kernel or rtp, use a specialized version of s-osinte.ads. + +2007-06-06 Pascal Obry + + * mkdir.c (__gnat_mkdir): Add support for UTF-8. + +2007-06-06 Vincent Celier + + * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory + separator, use instead the proper host directory separator. + (Copy_ALI_Files): Make sure that an already existing ALI file in the + ALI copy dir is writable, before doing the copy. + + * mlib-utl.ads, mlib-utl.adb: + (Gcc): If length of command line is too long, put the list of object + files in a response file, if this is supported by the platform. + (Ar): If invocation of the archive builder is allowed to be done in + chunks and building it in one shot would go above an OS dependent + limit on the number of characters on the command line, build the archive + in chunks. + +2007-06-06 Vincent Celier + + * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name + of specified object file is not equal to base name of source. + +2007-06-06 Javier Miranda + Hristian Kirtchev + Ed Schonberg + + * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to + the full type declaration. + (Analyze_Component_Declaration): Add local variable E to capture the + initialization expression of the declaration. Replace the occurences of + Expression (N) with E. + (OK_For_Limited_Init_In_05): Allow initialization of class-wide + limited interface object with a function call. + (Array_Type_Declaration): If the declaration lacks subtype marks for + indices, create a simple index list to prevent cascaded errors. + (Is_Null_Extension): Ignore internal components created for secondary + tags when checking whether a record extension is a null extension. + (Check_Abstract_Interfaces): Add missing support for interface subtypes + and generic formals. + (Derived_Type_Declaration): Add missing support for interface subtypes + and generic formals. + (Analyze_Object_Declaration): If an initialization expression is + present, traverse its subtree and mark all allocators as static + coextensions. + (Add_Interface_Tag_Component): When looking for components that may be + secondary tags, ignore pragmas that can appear within a record + declaration. + (Check_Abstract_Overriding): an inherited function that dispatches on + result does not need to be overriden if the controlling type is a null + extension. + (Mentions_T): Handle properly a 'class attribute in an anonymous access + component declaration, when the prefix is an expanded name. + (Inherit_Component): If the derivation is for a private extension, + inherited components remain visible and their ekind should not be set + to Void. + (Find_Type_Of_Object): In the case of an access definition, always set + Is_Local_Anonymous_Access. We were previously not marking the anonymous + access type of a return object as a local anonymous type. + (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete + range with character literal bounds. + (Constrain_Array): Initialize the Packed_Array_Type field to Empty. + (Access_Subprogram_Declaration): Indicate that the type declaration + depends on an incomplete type only if the incomplete type is declared + in an open scope. + (Analyze_Subtype_Declaration): Handle properly subtypes of + synchronized types that are tagged, and that may appear as generic + actuals. + (Access_Subprogram_Declaration): An anonymous access to subprogram can + appear as an access discriminant in a private type declaration. + (Add_Interface_Tag_Components): Complete decoration of the component + containing the tag of a secondary dispatch table and the component + containing the offset to the base of the object (this latter component + is only generated when the parent type has discriminants --as documented + in this routine). + (Inherit_Components): Use the new decoration of the tag components to + improve the condition that avoids inheriting the components associated + with secondary tags of the parent. + (Build_Discriminanted_Subtype): Indicate to the backend that the + size of record types associated with dispatch tables is known at + compile time. + (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed. + (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface + to include task, protected, and synchronized interfaces as limited + interfaces. + (Process_Discriminants): Remove the setting of + Is_Local_Anonymous_Access on the type of (anonymous) access + discriminants of nonlimited types. + (Analyze_Interface_Type_Declaration): Complete the decoration of the + class-wide entity it is is already present. This situation occurs if + the limited-view has been previously built. + (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep + field. + (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute + Related_Interface. + +2007-06-06 Ed Schonberg + + * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components + of the type that specify the position of interface tags when the type + inherits discriminated array components from the parent type. + If a component is initialized with a box, check for the presence of a + default expression in its declaration before using its default + initialization procedure. + (Resolve_Record_Aggregate): If a component is box-initialized, and the + component type has a discriminants, create a partial aggregate for it + by copying the discriminants of the component subtype. + Reject attempt to initialize a discriminant with a box. + (Array_Aggr_Subtype): Indicate to the backend that the size of arrays + associated with dispatch tables is known at compile time. + (Get_Value): If an association in a record aggregate has a box + association, and the corresponding record component has a default + expression, always copy the default expression, even when the + association has a single choice, in order to create a proper + association for the expanded aggregate. + +2007-06-06 Ed Schonberg + Robert Dewar + + * par-ch12.adb (P_Generic_Associations): The source position of an + Others association is that of the others keyword, not that of the token + that follows the box. + (P_Formal_Type_Definition): Handle formal access types that carry a + not null indicator. + + * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If + multiple identifier are present, save Scan_State before scanning the + colon, to ensure that separate trees are constructed for each + declaration. + (P_Identifier_Declarations): For object declaration, set new flag + Has_Init_Expression if initialization expression present. + (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL + Improve NOT NULL error messages + +2007-06-06 Robert Dewar + + * par-ch4.adb: (P_Name): Recover from literal used as name + +2007-06-06 Vincent Celier + + * prep.ads, prep.adb (Expression): New Boolean parameter Complemented, + defaulted to False. + In the "not" case, recursive call with Complemented set to True. + Do not allow "or" or "and" operators when Complemented is True. + +2007-06-06 Vincent Celier + + * prj.adb (Project_Empty): Gives default value for new component + Libgnarl_Needed + + * prj-attr.ads: Minor reformatting + + * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object + directory using the untouched casing. + (For_All_Source_Dirs): Idem. + + * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record + directories specified with switches -aP. + (Add_Search_Project_Directory): New procedure + (Initialize_Project_Path): Put the directories in table + Search_Directories in the project search path. + (Initialize_Project_Path): For VMS, transform into canonical form the + project path. + +2007-06-06 Arnaud Charlet + + * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return + true if configurable run-time or No_Run_Time is set. + (Set_Restriction): Avoid setting restriction No_Elaboration_Code when + processing an unit which is not the one being compiled. + +2007-06-06 Arnaud Charlet + + * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax. + Replace UC by Ada.UC + + * s-bitops.adb: Get rid of System.Pure_Exceptions. + Replace UC by Ada.UC + +2007-06-06 Robert Dewar + + * scng.adb: (Check_End_Of_Line): Deal with very long lines + +2007-06-06 Robert Dewar + + * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names + Remove no longer used nodes. + +2007-06-06 Javier Miranda + Ed Schonberg + Robert Dewar + + * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check + on obsolescent withed unit in case of limited-withed units. + (Analyze_Compilation_Unit): Add guard to code that removed an + instantiation from visibility, to prevent compiler aborts when + instantiation is abandoned early on. + (Install_Limited_Withed_Unit): Recognize a limited-with clause on the + current unit being analyzed, and Distinguish local incomplete types + from limited views of types declared elsewhere. + (Build_Limited_Views.Decorate_Tagged_Type): Add documentation + to state that the class-wide entity is shared by the limited-view + and the full-view. + (Analyze_With_Clause): Improve placement of flag for case of + unimplemented unit. + (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a + manner similar to GNAT.Current_Exception. This is a violation of + restriction (No_Exception_Propagation), and also inhibits the + optimization of local raise to goto. + (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed, + and if so set Most_Recent_Exception_Used flag in Opt, and also check + for violation of restriction No_Exception_Propagation. + +2007-06-06 Javier Miranda + Hristian Kirtchev + Gary Dismukes + + * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the + use of entity Exception_Occurrence if it is not available in the + target run-time. + + * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When + concurrent types are declared within an Ada 2005 generic, build their + corresponding record types since they are needed for overriding-related + semantic checks. + (Analyze_Protected_Type): Rearrange and simplify code for testing that a + protected type does not implement a task interface or a nonlimited + interface. + (Analyze_Task_Type): Rearrange and simplify code for testing that a task + type does not implement a protected interface or a nonlimited interface. + (Single_Task_Declaration, Single_Protected_Declaration): use original + entity for variable declaration, to ensure that debugging information + is correcty generated. + (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander + routines if the expander is not active. + (Analyze_Task_Body): Mark all handlers to stop optimization of local + raise, since special things happen for task exception handlers. + + * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for + concurrent types declared within a generic. + (Check_Dispatching_Operation): Do not emit warning about late interface + operations in the context of an instance. + (Check_Dispatching_Call): Remove restriction against calling a + dispatching operation with a limited controlling result. + (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and + Register_Interface_DT_Entry by calls to Register_Primitive. + (Check_Dispatching_Formals): Handle properly a function with a + controlling access result. + +2007-06-06 Robert Dewar + Arnaud Charlet + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size): + Check for restriction No_Implementation_Attributes if in Ada 95 mode. + (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available + (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error + message when using a VM, since this attribute is not supported. + (Analyze_Record_Representation_Clause): Give unrepped component warnings + + * usage.adb: Add new warning for renaming of function return objects + Indicate that -gnatwp and -gnatwP concern front-end inlining + Add line for -gnatyg + Add usage information for -gnatw.c/C + +2007-06-06 Robert Dewar + Ed Schonberg + + * sem_ch5.adb + (Find_Var): Do not consider function call in test for infinite loop + warning if warnings set off for function entity. + (One_Bound): Do not create a temporary for a loop bound if it is a + character literal. + (Analyze_Assignment): Traverse the right hand side of an assignment and + mark all allocators as static coextensions. + (Analyze_Assignment): Exempt assignments involving a dispatching call + to a function with a controlling access result from the check requiring + the target to be class-wide. + +2007-06-06 Hristian Kirtchev + Ed Schonberg + Robert Dewar + Javier Miranda + + * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the + chain of coextensions when an allocator serves as the root of such a + chain. + (Propagate_Coextensions): Remove the test for the root being an + allocator. + (Resolve_Allocator): Add condition to ensure that all future decoration + occurs on an allocator node. Add processing and cleanup for static + coextensions. + (Valid_Conversion): If the operand type is the limited view of a + class-wide type, use the non-limited view is available to determine + legality of operation. + (Ambiguous_Character): move to spec, for use elsewhere. + (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode + (Resolve_Range): Diagnose properly an ambiguous range whose bounds are + character literals. + (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting + Do_Division_Check flag explicitly. + (Resolve_Actuals): If the actual is of a synchronized type, and the + formal is of the corresponding record type, this is a call to a + primitive operation of the type, that is declared outside of the type; + the actual must be unchecked-converted to the type of the actual + (Resolve_Call): Kill all current values for any subprogram call if + flag Suppress_Value_Tracking_On_Call is set. + (Resolve_Type_Conversion): Generate error message the the operand + or target of interface conversions come from a limited view. + (Check_Infinite_Recursion): Ignore generated calls + (Check_Allocator_Discrim_Accessibility): New procedure for checking + that an expression that constrains an access discriminant in an + allocator does not denote an object with a deeper level than the + allocator's access type. + (Resolve_Allocator): In the case of an allocator initialized by an + aggregate of a discriminated type, check that associations for any + access discriminants satisfy accessibility requirements by calling + Check_Allocator_Discrim_Accessibility. + (Resolve_Equality_Op): Handle comparisons of anonymous access to + subprogram types in the same fashion as other anonymous access types. + (Resolve_Concatenation_Arg): Remove initial character '\' in an error + message that is not a continuation message. + (Resolve_Type_Conversion): Add missing support for conversion to + interface type. + (Resolve_Actuals): Introduce a transient scope around the call if an + actual is a call to a function returning a limited type, because the + resulting value must be finalized after the call. + (Resolve_Actuals): If the call was given in prefix notations, check + whether an implicit 'Access reference or implicit dereference must be + added to make the actual conform to the controlling formal. + +2007-06-06 Robert Dewar + Javier Miranda + + * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body + (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit + overriding of an inherited private subprogram now there is no need to + inherit its dispatching slot and reduce the size of the dispatch table. + Set_All_DT_Position now ensures that the same slot is now assigned to + both entities. This is required to statically build the dispatch table. + (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need + of calling Set_All_DT_Position to re-evaluate the position of the + entries in the dispatch table. Such reevaluation is not desired if + the tagged type is already frozen. + +2007-06-06 Hristian Kirtchev + Gary Dismukes + Robert Dewar + Javier Miranda + + * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute + reference acts as an lvalue when the attribute name modifies the prefix + (Is_Coextension_Root): New routine. + (Mark_Static_Coextensions): New routine. + (Type_Access_Level): Revise code for checking the level of the + anonymous access type of a return object. + (Safe_To_Capture_Value): Not safe to capture if Address_Taken + (Matches_Prefixed_View_Profile): Remove the no longer necessary + retrieval of the corresponding controlling record type. + (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of + concurrent types declared within a generic as well as class wide types. + Emit a mode incompatibility error whenever a protected entry or routine + override an interface routine whose first parameter is not of mode + "out", "in out" or access to variable. + (Overrides_Synchronized_Primitive): Rename to + Find_Overridden_Synchronized_Primitive. + (Collect_Interface_Components): New subprogram that collects all the + components of a tagged record containing tags of secondary dispatch + tables. + (Add_Global_Declaration): New procedure + (Abstract_Interface_List): Handle properly the case of a subtype of a + private extension. + (Type_Access_Level): In the case of a type whose parent scope is a + return statement, call Type_Access_Level recursively on the enclosing + function's result type to determine the level of the return object's + type. + (Build_Elaboration_Entity): Build name of elaboration entity from the + scope chain of the entity, rather than the unit name of the file name. + (Check_Nested_Access): New procedure. + (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures. + (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access. + (Get_Renamed_Entity): Utility routine for performing common operation + of chasing the Renamed_Entity field of an entity. + +2007-06-06 Robert Dewar + + * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on + elaboration model + (Check_A_Call): Add check for entry call which was causing blowup + +2007-06-06 Olivier Hainque + + * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add + special code on ia64-vms to handle major incompatibilities between the + GCC unwinding ABI and the VMS Condition Handling Facility, both calling + this routine with a very different set of arguments and expectations on + the return value. + +2007-06-06 Thomas Quinot + + * socket.c (__gnat_close_signalling_fd): New function. + (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname, + __gnat_safe_getservbyname, __gnat_safe_getservbyport): + New supporting functions for task safe Netdb operations. + +2007-06-06 Thomas Quinot + Olivier Hainque + + * a-except-2005.ads, a-except-2005.adb + (Raise_From_Controlled_Operation): New procedure in + (private part of) Ada.Exceptions (standard runtime version). Used to + provide informational exception message when Program_Error is raised as + a result of an Adjust or Finalize operation propagating an exception. + (Rmsg_28): Fix description for E.4(18) check. + (Raise_Current_Excep): Call Debug_Raise_Exception just before + propagation starts, to let debuggers know about the event in a reliable + fashion. + Take the address of E and dereference to make sure it is homed on stack + and prevent the stores from being deleted, necessary for proper + debugger behavior on "break exception" hits. + (Local_Raise): Moved to System.Exceptions + + * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate + exception message from the current occurrence and raise Program_Error + has been moved to Ada.Exceptions.Raise_From_Controlled_Operation. + +2007-06-06 Jose Ruiz + Arnaud Charlet + + * s-taprob.adb (Unlock): Change the ceiling priority of the underlying + lock, if needed. + + * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling + priority associated to a lock. + + * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax + assertion to take into account case of no abort restriction. + (Initialize_Protection_Entries): Add initialization for the field + New_Ceiling associated to the protected object. + (Unlock_Entries): Change the ceiling priority of the underlying lock, if + needed. + + * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest, + since this function needs to be set consistently with Update_Exception. + + * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest, + since this function needs to be set consistently with Update_Exception. + + * s-taskin.ads: Update comments on + Interrupt_Server_Blocked_On_Event_Flag. + (Unbind_Handler): Fix handling of server_task wakeup + (Server_Task): Set self's state so that Unbind_Handler can take + appropriate actions. + (Common_ATCB): Now use a constant from System.Parameters to determine + the max size of the Task_Image field. + + * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the + Initialize_Analyzer function. + ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to + take into account case of no abort restriction. + ([Vulnerable_]Complete_Master): Modify assertion. + + * s-tataat.adb (Finalize): Use the nestable versions of + Defer/Undefer_Abort. + + * s-tpobop.adb (Protected_Entry_Call): Relax assertion. + + * s-tpobop.ads: Update comments. + + * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead + of locking the object manually, to avoid inconsistencies between + Lock/Unlock_Entry assertions. + + * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when + terminating + application and System.Parameters.No_Abort is True. + Update comments on Interrupt_Server_Blocked_On_Event_Flag. + (Unbind_Handler): Fix handling of server_task wakeup + (Server_Task): Set self's state so that Unbind_Handler can take + appropriate actions. + +2007-06-06 Thomas Quinot + + * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure + declarations instead of an explicit null body, for conciseness. + +2007-06-06 Robert Dewar + + * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an + illegal aggregate and the type is still Any_Composite. + (Subtypes_Statically_Match): Fix problem of empty discriminant list + +2007-06-06 Ed Schonberg + + * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object, + to prevent subsequent expansion. + +2007-06-06 Robert Dewar + + * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body + +2007-06-06 Ed Schonberg + Robert Dewar + + * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for + exceptions. + (Write_Itype): Handle case of string literal subtype, which + comes up in this context. + (Update_Itype): when debugging expanded code, update sloc of itypes + associated with defining_identifiers and ranges, for gdb use. + (Sprint_Node_Actual): Add static keyword to object or exception + declaration output if Is_Statically_Allocated is True. + (Sprint_End_Label): Set entity of end marker for a subprogram, package, + or task body, so that the tree carries the proper Sloc information for + debugging use. + (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes + +2007-06-06 Arnaud Charlet + + * s-secsta.adb (Chunk): Ensure this object has a static size known at + compile time, to avoid dynamic memory allocation + (Elaboration code): Only use dynamic memory allocation when needed. + +2007-06-06 Quentin Ochem + + * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter + "Overflow_Guard". + (Stack_Analyzer): Added field "Overflow_Guard" + (Task_Result): Added field "Overflow_Guard". + (Index_Str): New constant. + (Task_Name_Str): New constant. + (Actual_Size_Str): New constant. + (Pattern_Array_Element_Size): New constant. + (Get_Usage_Range): New subprogram. + (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len. + Now align the output. + Added comments. + (Initialize): Added value for Overflow_Guard. + (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant. + Update the value of the overflow guard according to the actual + beginning of the pattern array. + (Initialize_Analyzer): Added parameter Overflow_Guard. + Take this parameter into accound when computing the max size. + (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant. + (Report_Result): Removed extra useless procedure. + Updated call to Output_Result. + Moved full computation of the Task_Result here. + +2007-06-06 Thomas Quinot + + * g-soccon-darwin.ads, gen-soccon.c: Add new constant + Thread_Blocking_IO, always True by default, set False on a per-runtime + basis. + Add Windows-specific constants + Add new constant Need_Netdb_Buffer. + Add new macros to indicate whether getXXXbyYYY is thread safe and, if + not, whether to use getXXXbyYYY_r. + + * gsocket.h: Add new constant Need_Netdb_Buffer. + Add new macros to indicate whether getXXXbyYYY is thread safe and, if + not, whether to use getXXXbyYYY_r. + +2007-06-06 Eric Botcazou + + * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier + than their first call. + Add type Dummy_Communication_Block used in the generation of the pre- + defined dispatching primitive _disp_asynchronous_select. + (Storage_Element): Put Pragma Universal_Aliasing on it. + +2007-06-06 Vincent Celier + + * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean + function. + + * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive + letter if it is not followed by a '/' or a '\'. + (Windows): New Boolean function + + * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma + Ada 2005. + (Containing_Directory): On Windows, keep at least one '/' or '\' after a + drive letter. + (Containing_Directory): Raise Use_Error when the directory is a root + directory. + (Extension): When returning the result, use a conversion to Result_Type, + not a qualification. + +2007-06-06 Robert Dewar + + * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure + (Set_Style_Check_Options): Recognize new -gnatyg style switch + + * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set + Warn_On_Non_Local_Exception to False, to turn off warnings for + No_Exception_Propagation in ZFP runtime. + (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC + back-ends. + (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks + +2007-06-06 Vincent Celier + + * switch-b.adb (Scan_Binder_Switches): Add processing for new + switches -R and -Z + + * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E + (Scan_Make_Switches): Recognize new switch -aP + +2007-06-06 Matthew Gingell + Jose Ruiz + + * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the + VxWorks task descriptor in the Ada run time, call a C subprogram + (__gnat_get_stack_info) that extracts the required information. + + * sysdep.c: Back out temporary lynxos workaround. + (__gnat_get_stack_info): Add this procedure that passes to the Ada run + time the stack information associated to the currently executing task. + Only VxWorks systems require this function. + +2007-06-06 Eric Botcazou + + * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not + add the stack bias if the offset is computed from a frame address. + (__gnat_backtrace): Adjust for above change. + +2007-06-06 Thomas Quinot + + * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to + PE_Non_Transportable_Actual. + (By_Descriptor_Last): New constant. + (By_Copy_Return): Likewise. + +2007-06-06 Vincent Celier + + * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as + is. + + * vms_data.ads: Add entries for -gnatw.x and -gnatw.X + /STYLE_CHECKS=GNAT: Change meaning to -gnatyg + /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg + Add missing comment for /OPTIMIZE=SPACE + Add entry for OPTIMIZE=SPACE + Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST + Add documentation for new qualifiers corresponding to -gnatw.c/.C + +2007-06-06 Vincent Celier + Robert Dewar + + * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and + -gnatw.C) + + * gnat_ugn.texi: Fix ordering of -g switch for gnatmake + Document gnatbind switch -a + (case Constructions): Document that variables declarations are allowed + for previously declared variables. + Fix external lib project example + -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL + Indicate that "#if not X or Y then" is not allowed in input files to + gnatprep. + Document gnatw.x and gnatw.X warning flags + Mention -Winline switch to activate warnings when back-end inlining is + ineffective. + Add gnatcheck rule descriptions + Describe how to use the GNAT driver to call a tool on a closure. + Describe how to run project-wide checks or metrics. + Document gnatbind's -R option + Updated to account for Ada 2005 support + + * gnat_rm.texi (Case Construction): Allow variable declarations for + previously declared variables. + (Representation Clauses and Pragmas): Lift restriction on alignment + clauses for record types. + (Ada.Characters.*): Fix typo in reference to A.3.3(27). + Document No_Exception_Propagation restriction + Document No_Body pragma + Updated to account for Ada 2005 support; corrected some typos + (Implementation Defined Pragmas): Document pragma Universal_Aliasing. + + * gnat-style.texi: Make it clear that we never use mode IN for + procedures or functions + + * ug_words: Add entries for -gnatw.x and -gnatw.X + Add entries for -gnatw.c/.C + +2007-06-06 Pascal Obry + Vincent Celier + + * makegpr.adb (Add_Archive_Path): Use untouched object and library + dirs and library name. + (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate + comments. + (Build_Library): Idem. + (Compile_Individual_Sources): Idem. + (Compile_Link_With_Gnatmake): Idem. + (Compile_Sources): Idem. + (Get_Imported_Directories): Idem. + (Link_Executables): Idem. Same change for the executable dir. + (Check_Compilation_Needed): C_Source_Path new variable containing + the canonical form of Source_Path to check against the source names + in the dependency file. + (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In + verbose mode, display the name of the object directory we're changing + to. + (Saved_Switches): New name of table X_Switches + (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches + (Usage): New line for switch -aP + (Get_Imported_Directories.Add): Make sure that Add_Arg is True before + testing if a directory should be added to the search path. + +2007-06-06 Javier Miranda + + * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads, + a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object + declaration after freezing point of all its associated tagged types; + otherwise such types are frozen too early. + +2007-06-06 Robert Dewar + + * a-reatim.adb: Documentation addition + + * g-cgideb.adb: Minor code reorganization + + * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb, + mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads, + s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting. + + * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete + function. Change name New_Scope to Push_Scope + (Get_Debug_Flag_K): Remove unused obsolete function. + + * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to + Push_Scope. + + * makeusg.adb: Update Copyright notice + Add line for switch -aP + + * makeusg.adb: Fix wording of some usage messages + + * s-assert.adb (Raise_Assert_Failure): Add call to + Debug_Raise_Assert_Failure. + + * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min + (2, Standard'Alignment) for compatibility with AAMP (where alignment + is restricted to 1). + + * s-wchjis.adb: Remove use of System.Pure_Exceptions + + * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the + node location to No_Location when we're not debugging the expanded + code. + +2007-05-22 Alexandre Oliva + + * misc.c (enumerate_modes): Consider log2_b to always be one. + +2007-05-14 Rafael Ávila de Espíndola + + * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove. + +2007-05-02 Pascal Obry + + * 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 + + PR ada/31660 + * ada-tree.h (lang_tree_node): Fix typo in chain_next. + +2007-04-21 Jan Hubicka + + * misc.c (gnat_expand_body): Don't call target for destructors, + avoid redundant check on syntax errors. + +2007-04-21 Andrew Pinski + + * ada-tree.h (lang_tree_node): Use GENERIC_NEXT + instead of checking GIMPLE_STMT_P in chain_next. + +2007-04-17 Andreas Krebbel + + 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 + Matt Heaney + Robert Dewar + + 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 + + * 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 + + * 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 + + * 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 + Pat Rogers + Pascal Obry + + * 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 + Vincent Celier + + * 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 + + * 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 + + * system-aix.ads: Back out previous change. + (Functions_Return_By_DSP): Removed + +2007-04-06 Pascal Obry + + * 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 + + * 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 + Thomas Quinot + + * 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 + + * 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 + + * 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 + + * 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 + Javier Miranda + + * 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 + Ed Schonberg + Javier Miranda + Bob Duff + + * 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 + Bob Duff + + * 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 + Ed Schonberg + Gary Dismukes + + * 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 + Eric Botcazou + + * 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 + + * 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 + + * 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 + Eric Botcazou + + * decl.c (gnat_to_gnu_entity) : Associate an external + VAR_DECL to a CONST_DECL we make for a public constant when we know the + corresponding definition has created the so made visible variable. + Handle anonymous access to protected subprogram. + (gnat_to_gnu_entity) : Do not make the underlying type of an + object with an address clause volatile. Re-enable original fix. + : Set TYPE_REF_CAN_ALIAS_ALL on the reference type + too. + (gnat_to_gnu_entity) : 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) : If the subtype has + discriminants, invoke again variable_size on its newly computed sizes. + +2007-04-06 Robert Dewar + Thomas Quinot + Ed Schonberg + Bob Duff + + * 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 + Robert Dewar + Bob Duff + Gary Dismukes + + * 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 + + * 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 + Thomas Quinot + + * 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 + Gary Dismukes + Ed Schonberg + + * 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 + Bob Duff + Cyrille Comar + + * 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 + Ed Schonberg + Gary Dismukes + + * 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 + Pablo Oliveira + + * 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 + Ed Schonberg + + * 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 + + * 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 + + * 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 + Bob Duff + + * 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 + + * 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 + + * 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 + + * 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 + Pablo Oliveira + + * 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 + + * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding + computation. + +2007-04-06 Jose Ruiz + Vincent Celier + + * 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 + + * gprep.adb (Process_Files.Process_One_File): Use full file name when + issuing pragma Source_Reference. + +2007-04-06 Emmanuel Briot + + * 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 + + * 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 + Robert Dewar + + * 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 + Arnaud Charlet + + * 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 + + * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the + switches from previously loaded tree + +2007-04-06 Thomas Quinot + + * 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 + Javier Miranda + + * 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 + Arnaud Charlet + Vincent Celier + + * 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 + + * 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 + + * 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 + Javier Miranda + Bob Duff + + * 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 + Javier Miranda + Bob Duff + Vincent Celier + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + Gary Dismukes + + * 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 + Bob Duff + Gary Dismukes + + * 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 + Robert Dewar + + * 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 + Thomas Quinot + + * 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 + Robert Dewar + + * 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 + Javier Miranda + + * 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 + Javier Miranda + + * 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 + Robert Dewar + + * 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 + + * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion + before propagating exception. + +2007-04-06 Olivier Hainque + + * 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 + Eric Botcazou + + * trans.c (call_to_gnu) : Return an + expression with a COMPOUND_EXPR including the call instead of emitting + the call directly here. + (gnat_to_gnu) : 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. + : New case. Directly stabilize the call if an lvalue is not + requested; otherwise fail. + (addressable_p) : Do not test DECL_NONADDRESSABLE_P. + +2007-04-06 Thomas Quinot + + * 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 + + * 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 + Olivier Hainque + + * 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 + + * s-stchop-vxworks.adb: + (Stack_Check): Raise Storage_Error if the argument has wrapped around. + +2007-04-06 Robert Dewar + Arnaud Charlet + + * 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 Ávila de Espíndola + + * 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 + + * 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 + + * Make-lang.in: Add install-pdf target as copied from + automake v1.10 rules. + +2007-02-28 Andreas Schwab + + * 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 + + * gnat-style.texi: Standardize title page. + * gnat_rm.texi: Likewise. + * gnat_ugn.texi: Likewise. + +2007-02-25 Mark Mitchell + + * decl.c (annotate_value): Adjust for refactoring of tree_map + hierarchy. + +2007-02-24 Mark Mitchell + + * decl.c (annotate_value): Adjust for refactoring of tree_map + hierarchy. + +2007-02-21 Ed Schonberg + + 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 + Sandra Loosemore + + * 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) : Delete. + : New case. + : 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 + + * 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 + + * 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 + + * misc.c, utils2.c: Fix comment typos. + +2007-01-24 Roger Sayle + + * 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 + + 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 + + * cuintp.c (build_cst_from_int): Use built_int_cst_type. + * trans.c (gnat_to_gnu): Likewise. + + + +Copyright (C) 2007 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff --git a/gcc/ada/ChangeLog-2008 b/gcc/ada/ChangeLog-2008 new file mode 100644 index 00000000000..4e34213ea80 --- /dev/null +++ b/gcc/ada/ChangeLog-2008 @@ -0,0 +1,7464 @@ +2008-12-09 Jakub Jelinek + + PR ada/38450 + * gcc-interface/utils.c (finish_record_type): Use SET_TYPE_MODE. + * gcc-interface/decl.c (gnat_to_gnu_entity, make_aligning_type): + Likewise. + +2008-12-05 Sebastian Pop + + PR bootstrap/38262 + * gcc-interface/Make-lang.in (gnat1): Add BACKENDLIBS, remove GMPLIBS. + +2008-11-29 Eric Botcazou + + PR ada/30827 + * g-comver.adb (Ver_Len_Max): Fix inconsistency. + +2008-11-27 Eric Botcazou + + * gcc-interface/decl.c: Fix various nits. + +2008-11-20 Eric Botcazou + + * gcc-interface/utils.c (init_gigi_decls): Fix type mismatch. + +2008-11-16 Eric Botcazou + + PR ada/38127 + * gcc-interface/decl.c (make_type_from_size) : Do not + special-case boolean types. Propagate the name. + * gcc-interface/targtyps.c: Tweak comment. + +2008-11-15 Geert Bosch + + * gcc-interface/trans.c (emit_check): Put back a final save_expr + to prevent exponential expansion during gimplification. + +2008-11-15 Eric Botcazou + + * gcc-interface/lang-specs.h: Expand -coverage and reorder switches. + +2008-11-15 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Force constants + initialized to a static constant to be statically allocated even if + they are of a padding type, provided the original type also has + constant size. + +2008-11-15 Laurent Guerby + + PR ada/37993 + * gcc-interface/Makefile.in: Add multilib handling for x86_64 + on darwin. + * system-darwin-x86_64.ads: New file. + +2008-11-13 Olivier Hainque + + * gcc-interface/decl.c (gnat_to_gnu_entity) : + Turn Ada Pure on subprograms back into GCC CONST when eh constructs + are explicit to the middle-end. Tidy. + +2008-11-09 Eric Botcazou + + * gcc-interface/ada-tree.def (PLUS_NOMOD_EXPR): New tree code. + (MINUS_NOMOD_EXPR): Likewise. + * gcc-interface/utils2.c (build_binary_op) : Make + unreachable. + : New case. + : Likewise. + * gcc-interface/trans.c (Loop_Statement_to_gnu): Build increment-and- + assignment statement instead of using an increment operator. + +2008-11-07 Rainer Orth + + * system-irix-n64.ads: New file. + * gcc-interface/Makefile.in (mips-sgi-irix6*): Support O32 and N64 + multilibs. + +2008-11-07 Rainer Orth + + PR ada/37681 + * system-solaris-x86_64.ads: New file. + * gcc-interface/Makefile.in (*86-solaris2*): Support x86_64 multilib. + +2008-11-07 Bechir Zalila + Eric Botcazou + + PR ada/34289 + * lib.ads: (Enable_Switch_Storing): Declare. + * lib.adb: (Enable_Switch_Storing): New procedure. + * switch-c.adb (Scan_Front_End_Switches): Add support for -gnatea. + * make.adb: (Compile_Sources.Compile): Add -gnatea as first option. + (Display): Never display -gnatea + * gcc-interface/lang-specs.h: If -gnatea is present, pass -gnatez. + +2008-11-07 Thomas Quinot + + * gcc-interface/trans.c (Attribute_to_gnu, case Attr_Length): Check + for empty range in original base type, not converted result type. + +2008-11-07 Geert Bosch + + * gcc-interface/trans.c (build_binary_op_trapv): Convert arguments + and result for call to __gnat_mulv64. + +2008-11-07 Eric Botcazou + + * gcc-interface/trans.c: Fix formatting nits. + +2008-11-07 Geert Bosch + + * gcc-interface/trans.c (build_binary_op_trapv): Avoid emitting + overflow check for constant result. + +2008-11-07 Geert Bosch + + * gcc-interface/trans.c (build_binary_op_trapv): Use more efficient + overflow check for addition/subtraction if neither operand is constant. + +2008-11-06 Eric Botcazou + + * gcc-interface/Makefile.in (SPARC/Solaris): Use a common set of + files for the target-dependent part of the runtime. + (SPARC/Linux): Likewise. + +2008-11-06 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : If not + optimizing, create a PARM_DECL pointing to the VAR_DECL for debugging + purposes. + +2008-11-06 Eric Botcazou + + * gcc-interface/misc.c (gnat_printable_name): Always return a copy + in GC memory. + +2008-11-06 Eric Botcazou + + PR ada/19419 + * gcc-interface/trans.c (gnat_to_gnu) : + Generate a call to memmove for an assignment between overlapping + array slices. + +2008-11-02 Andreas Krebbel + + PR target/37977 + * gcc-interface/Makefile.in: Add multilib handling for + s390-linux and s390x-linux. + +2008-10-24 Jakub Jelinek + + * gcc-interface/Make-lang.in (check-ada-subtargets): Depend on + check-acats-subtargets and check-gnat-subtargets. + (check_acats_targets): New variable. + (check-acats-subtargets, check-acats%): New targets. + (check-acats): If -j is used and CHAPTERS is empty, run the testing + in multiple make goals, possibly parallel, and afterwards run + dg-extract-results.sh to merge the sum and log files. + +2008-10-17 Geert Bosch + + * gcc-interface/trans.c (gnat_to_gnu) : Simplify expansion + to use only a single check instead of three, and avoid unnecessary + COMPOUND_EXPR. + (emit_check): Avoid useless COMPOUND_EXPRs and SAVE_EXPRs, sometimes + creating more opportunities for optimizations. + +2008-10-13 Jakub Jelinek + + PR middle-end/37601 + * gcc-interface/utils.c (gnat_types_compatible_p): Handle + NULL TYPE_DOMAIN. + +2008-10-07 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Move code + dealing with volatileness to after code dealing with renaming. + +2008-10-06 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Minor tweaks. + * gcc-interface/trans.c (Pragma_to_gnu): Likewise. + +2008-10-06 Eric Botcazou + + * gcc-interface/utils.c (can_fold_for_view_convert_p): New predicate. + (unchecked_convert): Use it to disable problematic folding with + VIEW_CONVERT_EXPR in the general case. Always disable it for the + special VIEW_CONVERT_EXPR built for integral types and cope with + its addressability issues by preserving the first conversion. + +2008-10-01 Andreas Schwab + + * system-linux-ppc64.ads: New file. + * gcc-interface/Makefile.in: Add multilib handling for + powerpc-linux. + +2008-09-26 Eric Botcazou + + * decl.c (gnat_to_gnu_entity) : Cap the alignment promotion + to that of ptr_mode instead of word_mode. + +2008-09-26 Eric Botcazou + + PR ada/5911 + * gcc-interface/Makefile.in (SPARC/Solaris): Add multilib support. + +2008-09-25 Samuel Tardieu + + PR ada/37641 + * adaint.c (__gnat_set_non_writable): Use FILE_WRITE_EA + instead of deprecated FILE_WRITE_PROPERTIES. + +2008-09-22 Olivier Hainque + + * gcc-interface/decl.c (gnat_to_gnu_entity): Even when they + are never assigned, volatile entities are not constant for code + generation purposes. + +2008-09-21 Laurent Guerby + + PR ada/5911 + * gcc-interface/Makefile.in: Add multilib handling for x86_64 + and sparc. + * system-linux-sparcv9.ads: New file. + +2008-09-20 Eric Botcazou + + * exp_dbug.ads: Document new convention for the XVZ variable. + * gcc-interface/decl.c (gnat_to_gnu_entity) : Generate + debug info if necessary for the type padding the component type. + : Likewise. + (maybe_pad_type): Emit the XVZ variable in units. + * gcc-interface/trans.c (Loop_Statement_to_gnu): Fix formatting nits. + (Subprogram_Body_to_gnu): Set the source line of the subprogram's node + on statements generated to initialize the parameter attributes cache. + Set the source line of the end label of the body on the special return + statement built for a procedure with copy-in copy-out parameters. + +2008-09-20 Eric Botcazou + + PR ada/37585 + * gcc-interface/utils.c (create_subprog_decl): Disable inlining for + inlined external functions if they contain a nested function not + declared inline. + +2008-09-18 Jan Hubicka + + * gcc-interface/utils.c (create_subprog_decl): Use DECL_DECLARED_INLINE_P. + (end_subprog_body): Do not set DECL_INLINE. + +2008-09-17 Pascal Rigaux + + PR ada/21327 + * gnat_ugn.texi: Use proper format in direntry. + +2008-09-15 Eric Botcazou + + * gcc-interface/trans.c (gigi): Declare the name of the compilation + unit as the first global name. + +2008-09-14 Jan Hubicka + + * gcc-interface/Make-lang.in (gnat1): Add CFLAGS. + +2008-09-14 Ralf Wildenhues + + * a-crbtgk.adb, a-direct.ads, a-tasatt.adb, ali.ads, + bindgen.adb, checks.adb, einfo.ads, exp_aggr.adb, exp_ch11.adb, + exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb, + exp_dbug.ads, exp_disp.adb, exp_dist.adb, exp_pakd.adb, + exp_util.adb, g-alveop.ads, g-comlin.adb, g-comlin.ads, + g-diopit.adb, g-socket.ads, gcc-interface/decl.c, + gcc-interface/gigi.h, gcc-interface/trans.c, + lib-load.adb, lib-xref.ads, make.adb, mlib-prj.adb, nlists.ads, + opt.ads, par-ch10.adb, par-ch5.adb, par.adb, s-os_lib.ads, + s-oscons-tmplt.c, s-parint.ads, s-regpat.ads, s-shasto.ads, + s-stausa.ads, s-taprop-vms.adb, sem.adb, sem_ch10.adb, + sem_ch11.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, + sem_ch3.ads, sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, + sem_elim.adb, sem_prag.adb, sem_util.adb, sem_util.ads, + sem_warn.adb, sinfo.ads, styleg.adb, vms_data.ads: Fix typos in + comments. + * gnathtml.pl: Fix typos. + +2008-09-10 Joel Sherrill + + * gcc-interface/Makefile.in: Switch RTEMS to s-interr-hwint.adb. + * s-osinte-rtems.ads: Add shared hardware interrupt adapter + layer. RTEMS binds to OS provided adapter routines so there are + no modifications to s-osinte-rtems.adb. + +2008-09-09 Arnaud Charlet + Joel Sherrill + + * gcc-interface/Makefile.in: Switch VxWorks to s-interr-hwint.adb. + + * s-interr-vxworks.adb: Renamed to s-interr-hwint.adb + + * s-interr-hwint.adb: New file. + + * s-osinte-vxworks.ads, s-osinte-vxworks.adb: Add new functions + needed by s-interr-hwint.adb. + + * s-osinte-vxworks-kernel.adb: New file. + +2008-09-05 Joel Sherrill + + * s-stchop-rtems.adb: Add file missed in early commit. Already + referenced in gcc-interface/Makefile.in. + +2008-08-30 Thomas Quinot + + * gcc-interface/Make-lang.in: Allow s-oscons.{o,ali} to + be built even without a separate libada directory. + +2008-08-22 Arnaud Charlet + + * lib-xref.ads: Fix typo in subprogram reference definition. + +2008-08-22 Robert Dewar + + * s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-strops.adb: Minor code fix + to avoid warning. + + * g-trasym.adb: Ditto + + * s-utf_32.adb (Get_Category): Fix obvious typo + + * s-wwdcha.adb: Minor code reorganization + Remove dead code + +2008-08-22 Robert Dewar + + * checks.adb (Determine_Range): Deal with values that might be invalid + + * opt.adb, opt.ads (Assume_No_Invalid_Values[_Config]): New + configuration switches. + + * par-prag.adb: Dummy entry for pragma Assume_No_Invalid_Values + + * sem_prag.adb: Implement pragma Assume_No_Default_Values + + * snames.adb, snames.ads, snames.h: + Add entries for pragma Assume_No_Invalid_Values + + * switch-c.adb: Add processing for -gnatB switch + + * usage.adb: Add entry for flag -gnatB (no bad invalid values) + +2008-08-22 Javier Miranda + + * exp_ch3.adb (Build_Init_Statements): Transfer to the body of the + init procedure all the expanded code associated with the spec of + task types and protected types. + +2008-08-22 Gary Dismukes + + * exp_aggr.adb (Static_Array_Aggregate): Call Analyze_And_Resolve on the + component expression copies rather than directly setting Etype and + Is_Static_Expression. + +2008-08-22 Gary Dismukes + + * sem_util.adb (Has_Preelaborable_Initialization): Revise checking of + private types to allow for types derived from a private type with + preelaborable initialization, but return False for a private extension + (unless it has the pragma). + +2008-08-22 Robert Dewar + + * opt.ads: Minor code reorganization (put entries in alpha order) + +2008-08-22 Pascal Obry + + * initialize.c, adaint.c: Use Lock_Task and Unlock_Task for non-blocking + spawn. + +2008-08-22 Geert Bosch + + * gcc-interface/trans.c: Define FP_ARITH_MAY_WIDEN + (convert_with_check): Only use longest_float_type if FP_ARITH_MAY_WIDEN is 0 + +2008-08-22 Doug Rupp + + * bindgen.adb [VMS] (Gen_Adainit_Ada, Gen_Adainit_C): Import and call + __gnat_set_features. + + * init.c + (__gnat_set_features): New function. + (__gnat_features_set): New tracking variable. + (__gl_no_malloc_64): New feature global variable + +2008-08-22 Ed Schonberg + + * sem_ch8.adb (Use_One_Type): Do not emit warning message about redundant + use_type_clause in an instance. + +2008-08-22 Bob Duff + + * exp_ch6.ads: Remove pragma Precondition, since it breaks some builds. + +2008-08-22 Robert Dewar + + * exp_ch6.adb: Minor reformatting + + * exp_ch7.adb: Minor reformatting + + * exp_ch7.ads: Put routines in proper alpha order + + * exp_dist.adb: Minor reformatting + +2008-08-22 Vincent Celier + + * prj.ads: Minor comment update + +2008-08-22 Robert Dewar + + * sem_ch5.adb (One_Bound): Fix latent bug involving secondary stack + +2008-08-22 Ed Schonberg + + * exp_tss.adb: + (Base_Init_Proc): For a protected subtype, use the base type of the + corresponding record to locate the propoer initialization procedure. + +2008-08-22 Robert Dewar + + * checks.adb: + (In_Subrange_Of): New calling sequence + (Determine_Range): Prepare for new processing using base type + + * exp_ch4.adb: + (Compile_Time_Compare): Use new calling sequence + + * exp_ch5.adb: + (Compile_Time_Compare): Use new calling sequence + + * sem_eval.adb: + (Compile_Time_Compare): New calling sequence allows dealing with + invalid values. + (In_Subrange_Of): Ditto + + * sem_eval.ads: + (Compile_Time_Compare): New calling sequence allows dealing with + invalid values. + (In_Subrange_Of): Ditto + +2008-08-22 Pascal Obry + + * adaint.c: Fix possible race condition on win32_wait(). + +2008-08-22 Bob Duff + + * exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb, freeze.adb, + exp_ch4.adb, exp_ch6.ads, exp_ch6.adb, sem_ch6.adb, exp_aggr.adb, + exp_intr.adb, exp_ch3.adb: Rename: + Exp_Ch7.Controlled_Type => Needs_Finalization + Exp_Ch7.CW_Or_Controlled_Type => CW_Or_Has_Controlled_Part + Exp_Ch5.Expand_N_Extended_Return_Statement.Controlled_Type => + Has_Controlled_Parts + (Has_Some_Controlled_Component): Fix bug in array case. + +2008-08-22 Robert Dewar + + * sem_ch8.adb: Minor reformatting + +2008-08-22 Kevin Pouget + + * s-shasto.ads, s-shasto.adb: Move Shared_Var_ROpen, Shared_Var_WOpen and + Shared_Var_Close procedure specifications from package spec to package body. + + * rtsfind.ads: Remove RE_Shared_Var_Close, RE_Shared_Var_ROpen, + RE_Shared_Var_WOpen entries. + + * exp_dist.adb: Update RE_Any_Content_Ptr to RE_Any_Container_Ptr in + Build_To_Any_Call, Build_TypeCode_Call and Build_From_Any_Call procedures. + +2008-08-22 Eric Botcazou + + * init.c: adjust EH support code on Alpha/Tru64 as well. + + * raise-gcc.c: Add back a couple of comments. + +2008-08-22 Ed Schonberg + + * exp_ch5.adb (Expand_Simple_Function_Return): If secondary stack is + involved and the return type is class-wide, use the type of the expression + for the generated access type. Suppress useless discriminant checks on the + allocator. + +2008-08-22 Bob Duff + + * exp_ch7.adb: Minor comment fix + + * exp_ch6.ads: Minor comment fix + +2008-08-22 Thomas Quinot + + * sem_ch8.adb: Minor reformatting + Minor code reorganization (introduce subprogram to factor duplicated + code). + +2008-08-22 Sergey Rybin + + * gnat_ugn.texi: Change the description of gnatcheck default rule + settings. + +2008-08-22 Eric Botcazou + + * init.c (__gnat_adjust_context_for_raise): Delete for AIX, HP-UX, + Solaris, FreeBSD, VxWorks and PowerPC/Linux. For x86{-64}/Linux, + do not adjust the PC anymore. + (__gnat_error_handler): Do not call __gnat_adjust_context_for_raise + on AIX, HP-UX, Solaris, FreeBSD and VxWorks. + + * raise-gcc.c (get_call_site_action_for): Use _Unwind_GetIPInfo + instead of _Unwind_GetIP. + +2008-08-22 Gary Dismukes + + * exp_aggr.adb (Static_Array_Aggregate): When a static array aggregate + with a range is transformed into a positional aggregate, any copied + component literals should be marked Is_Static_Expression. + + * sem_eval.adb (Compile_Time_Known_Value): Don't treat null literals as + not being known at at compile time when Configurable_Run_Time_Mode is + true. + +2008-08-22 Robert Dewar + + * exp_attr.adb: + (Expand_N_Attribute_Reference): No validity checking on OUT parameter of + Read or Input attribute. + +2008-08-22 Ed Schonberg + + * sem_ch8.adb (Use_One_Type): when checking which of two use_type + clauses in related units is redundant, if one of the units is a package + instantiation, use its instance_spec to determine which unit is the + ancestor of the other. + +2008-08-22 Javier Miranda + + * exp_attr.adb (Expand_N_Attribute_Reference): In case of access + attributes add missing support to handle designated types that come + from the limited view. + + * exp_disp.adb (Expand_Interface_Conversion): Remove wrong assertion. + +2008-08-22 Sergey Rybin + + * vms_data.ads: Add entry for new gnatcheck -mNNN option + + * gnat_ugn.texi: Add description for gnatcheck option '-m' + +2008-08-22 Sergey Rybin + + * gnat_ugn.texi: Update the gnatcheck subsection for metric rules + acoording to the latest changes in the metric rule interface + +2008-08-22 Vincent Celier + + * make.adb (Check.File_Not_A_Source_Of): New Boolean function + (Check): Check if the file names registered in the ALI file for the + spec, the body and each of the subunits are the ones expected. + +2008-08-22 Robert Dewar + + * g-catiio.adb: Code cleanup. + +2008-08-20 Vincent Celier + + * make.adb (Gnatmake): Remove extra space in version line + + * ali.adb: + (Scan_ALI): Use Name_Find, not Name_Enter to get the name of a subunit, + as the name may already have been entered in the table by the Project + Manager. + +2008-08-20 Jose Ruiz + + * errno.c (__get_errno, __set_errno for MaRTE): Transform then into + weak symbols so we use the version provided by MaRTE when available. + +2008-08-20 Emmanuel Briot + + * g-catiio.ads, g-catiio.adb: + (Value): Avoid an unnecessary system call to Clock in most cases. + This call is only needed when only the time is provided in the string, + and ignored in all other cases. This is more efficient. + +2008-08-20 Eric Botcazou + + * raise-gcc.c: Fix formatting nits. + +2008-08-20 Robert Dewar + + * sem_ch13.adb: + (Adjust_Record_For_Reverse_Bit_Order): Do not access First_Bit for + non-existing component clause. + + * exp_ch5.adb: Minor reformatting + + * g-comlin.adb: Minor reformatting + + * make.adb: Minor reformatting + + * prj-proc.adb: Minor reformatting + + * stylesw.ads: Minor reformatting + +2008-08-20 Vincent Celier + + * make.adb (Gnatmake_Switch_Found): New Boolean global variable + (Switch_May_Be_Passed_To_The_Compiler): New Boolean global variable + (Add_Switches): New Boolean parameter Unknown_Switches_To_The_Compiler + defaulted to True. Fail when Unknown_Switches_To_The_Compiler is False + and a switch is not recognized by gnatmake. + (Gnatmake): Implement new scheme for gnatmake switches and global + compilation switches. + (Switches_Of): Try successively Switches (), + Switches ("Ada"), Switches (others) and Default_Switches ("Ada"). + +2008-08-20 Ed Schonberg + + * styleg-c.ads, styleg-c.adb (Missing_Overriding): new procedure to + implement style check that overriding operations are explicitly marked + at such. + + * style.ads (Missing_Overriding): new procedure that provides interface + to previous one. + + * stylesw.ads, stylesw.adb: New style switch -gnatyO, to enable check + that the declaration or body of overriding operations carries an + explicit overriding indicator. + + * sem_ch8.adb + (Analyze_Subprogram_Renaming): if operation is overriding, check whether + explicit indicator should be present. + + * sem_ch6.adb (Verify_Overriding_Indicator, + Check_Overriding_Indicator): If operation is overriding, check whether + declaration and/or body of subprogram should be present + +2008-08-20 Vincent Celier + + * prj-nmsc.adb (Check_Naming_Schemes): Accept source file names for + gprbuild when casing is MixedCase, whatever the casing of the letters + in the file name. + +2008-08-20 Gary Dismukes + + * exp_ch3.adb (Build_Array_Init_Proc): Clarify comment related to + creating dummy init proc. + (Requires_Init_Proc): Return False in the case No_Default_Initialization + is in force and the type does not have associated default + initialization. Move test of Is_Public (with tests of restrictions + No_Initialize_Scalars and No_Default_Initialization) to end, past tests + for default initialization. + +2008-08-20 Jerome Lambourg + + * g-comlin.adb (For_Each_Simple_Switch): Take care of switches not part + of any alias or prefix but having attached parameters (as \"-O2\"). + +2008-08-20 Robert Dewar + + * s-fileio.adb: Minor reformatting + +2008-08-20 Thomas Quinot + + * exp_strm.adb (Build_Elementary_Input_Call, + Build_Elementary_Write_Call): Fix incorrect condition in circuitry that + selects the stream attribute routines for long float types. + +2008-08-20 Vincent Celier + + * prj-proc.adb (Process_Declarative_Items): Add Location for Array_Data + + * prj.ads (Array_Data): Add a component Location + +2008-08-20 Ed Schonberg + + * sem_prag.adb: + (Analyze_Pragma, case Obsolescent): Add entity information on the pragma + argument for ASIS and navigation use. + +2008-08-20 Ed Schonberg + + * einfo.ads: Add comment. + +2008-08-20 Bob Duff + + * sem_eval.ads: Minor comment fix. + +2008-08-20 Bob Duff + + * exp_ch4.adb (Expand_N_And_Then, Expand_N_Or_Else): Improve constant + folding. We were folding things like "False and then ...", but not + "X and then ..." where X is a constant whose value is known at compile + time. + +2008-08-20 Hristian Kirtchev + + * exp_ch5.adb (Controlled_Type): New routine. + (Expand_N_Extended_Return_Statement): When generating a move of the + final list in extended return statements, check the type of the + function and in the case of double expanded return statements, the type + of the returned object. + (Expand_Simple_Function_Return): Perform an interface conversion when + the type of the returned object is an interface and the context is an + extended return statement. + +2008-08-20 Ed Schonberg + + * sem_util.adb (Set_Debug_Info_Needed): If the entity is a private type + and the full view is visible, set flag on full view as well. + +2008-08-20 Thomas Quinot + + * g-comlin.adb: Minor reformatting + Minor code reorganization. + + * freeze.adb: Minor reformatting + +2008-08-20 Vincent Celier + + * prj-nmsc.adb (Check_File): An excluded Ada source file may be a + source of another project. + +2008-08-20 Pascal Obry + + * s-os_lib.ads: Minor reformatting. + +2008-08-20 Arnaud Charlet + + * gnatvsn.ads: Minor reformatting. + +2008-08-20 Arnaud Charlet + + * a-crbtgk.adb, repinfo.adb, g-traceb.ads, repinfo.ads, + system-linux-s390x.ads, s-fatflt.ads, s-parame-ae653.ads, g-spipat.adb, + g-spipat.ads, g-tasloc.adb, g-debpoo.adb, g-except.ads, g-debpoo.ads, + mdll-utl.adb, g-string.adb, g-soliop-solaris.ads, par-sync.adb, + exp_ch6.ads, a-cihama.ads, g-curexc.ads, system-linux-sh4.ads, + g-utf_32.adb, g-hesorg.adb, s-proinf-irix-athread.ads, s-parint.adb, + s-parint.ads, exp_ch7.ads, system-linux-alpha.ads, g-dirope.adb, + sinfo-cn.adb, par-labl.adb, a-ciorse.adb, g-calend.adb, + s-parame-vms-alpha.ads, nlists.h, exp_imgv.adb, exp_fixd.ads, + g-calend.ads, gnatcmd.ads, g-table.adb, s-memory-mingw.adb, + g-alveop.ads, g-memdum.ads, g-altive.ads, initialize.c, g-regpat.adb, + g-busorg.ads, g-regpat.ads, g-encstr.ads, g-regexp.adb, g-regexp.ads, + live.ads, g-dyntab.adb, prj-nmsc.ads, par-ch12.adb, 9drpc.adb, + g-alvevi.ads, s-memory.adb, math_lib.adb, s-parame.ads, s-memory.ads, + s-regexp.adb, a-exexda.adb, i-cstrea-vms.adb, a-exexpr.adb, + g-soliop-mingw.ads, s-imgrea.adb, namet.adb, system-vms.ads, + s-inmaop-dummy.adb, s-finroo.ads, a-ngcefu.adb, s-hibaen.ads, + g-soliop.ads, s-auxdec.adb, g-locfil.ads, gnatxref.adb, memroot.adb, + osint-b.ads, memroot.ads, s-parame-hpux.ads, errutil.adb, + system-linux-s390.ads, par-util.adb, osint-c.ads, exp_pakd.ads, + i-pacdec.ads, par-endh.adb, mlib-tgt.ads, prj-strt.ads, + s-osprim-vms.adb, s-proinf.ads, output.ads, g-moreex.ads, + a-finali.ads, s-fatlfl.ads, namet.h, mdll.ads, g-dynhta.ads, + s-imgenu.ads, par-tchk.adb, g-excact.ads, memtrack.adb, s-fatgen.adb, + a-exexpr-gcc.adb, g-arrspl.adb, par-ch4.adb, g-cgideb.adb, freeze.ads, + g-altcon.adb, s-fatllf.ads, gnatfind.adb, s-osinte-lynxos-3.adb, + a-exextr.adb, g-htable.ads, a-calfor.adb, s-imgcha.adb, argv.c, + a-chahan.ads, g-hesora.adb, system-vms_64.ads, par-ch5.adb, g-md5.adb, + lib-xref.ads, g-md5.ads, g-casuti.ads, s-fatsfl.ads, exp_dbug.ads, + s-htable.ads, a-ngcoar.adb, s-arit64.ads, a-ngelfu.adb, a-filico.ads, + par-ch6.adb, s-inmaop.ads, s-parame-vxworks.ads, s-casuti.ads, + a-numaux-darwin.adb, a-cohama.ads, system-linux-sparc.ads, g-os_lib.adb, + system-vms-ia64.ads, s-parame-vms-restrict.ads, a-clrefi.ads, + s-parame-vms-ia64.ads, a-strfix.adb, a-coorse.adb, a-comlin.ads, + a-chtgke.adb, s-imgint.adb, g-expect.ads, exp_ch4.ads, s-finimp.adb, + mingw32.h, g-heasor.adb, g-alleve.adb, a-ngrear.adb, s-mastop-irix.adb, + s-poosiz.adb, link.c: Fix copyright notice. + +2008-08-20 Arnaud Charlet + + * g-comlin.ads: Update comments. + +2008-08-20 Ed Schonberg + + * sem_ch8.adb (Analyze_Subprogram_Renaming): Inherit Is_Imported flag. + +2008-08-20 Gary Dismukes + + * exp_ch11.adb: + (Expand_Exception_Handlers): Call Make_Exception_Handler instead of + Make_Implicit_Exception_Handler when rewriting an exception handler with + a choice parameter, and pass the handler's Sloc instead of that of the + handled sequence of statements. Make_Implicit_Exception_Handler sets the + Sloc to No_Location (unless debugging generated code), which we don't + want for the case of a user handler. + +2008-08-20 Robert Dewar + + * freeze.adb (Freeze_Record_Type): Improve msg for non-contiguous field + + * sem_ch13.adb: + (Adjust_Record_For_Reverse_Bit_Order): Messages about layout are + now labeled as info msgs, not warnings. + + * tbuild.ads: Clarify documentation of Make_Implicit_Exception_Handler + + * usage.adb: Minor change to avoid overlong line for -gnatwz/Z + + * a-textio.adb: Remove redundant test. + + * a-witeio.adb: Minor code reorganization + Remove redundant test found working on another issue + + * a-ztexio.adb: Minor code reorganization + Remove redundant test found working on another issue + +2008-08-20 Thomas Quinot + + * s-fileio.adb (Open) Use C helper function to determine whether a + given errno value corresponds to a "file not found" error. + + * sysdep.c (__gnat_is_file_not_found_error): New C helper function. + +2008-08-20 Jose Ruiz + + * errno.c (__get_errno for MaRTE): Use the MaRTE function pthread_errno + to get access to the per-task errno variable. + (__set_errno for MaRTE): Do not redefine this function here since it is + already defined in MaRTE. + +2008-08-20 Tristan Gingold + + * gnat_ugn.texi: Gcov is not supported on static library on AIX. + +2008-08-20 Robert Dewar + + * freeze.adb: Minor reformatting + + * g-comlin.adb: Minor reformatting + + * g-socket.adb: Minor reformatting + + * g-socthi-mingw.adb: Minor reformatting + + * g-stheme.adb: Minor reformatting + +2008-08-20 Ed Schonberg + + * sem_aggr.adb, sem_type.adb, exp_ch9.ads, einfo.ads, + exp_ch6.adb, exp_aggr.adb (Valid_Ancestor): Resolve + confusion between partial and full views of an ancestor of the context + type when the parent is a private extension declared in a parent unit, + and full views are available for the context type. + +2008-08-18 Samuel Tardieu + Robert Dewar + + PR ada/30827 + * bindgen.adb (Gen_Output_File_Ada): Zero-terminate the + version string. + Move comment in the right place. + * g-comver.adb (Version): Look for a zero-termination in + addition to a closing parenthesis. + +2008-08-18 Samuel Tardieu + + * exp_ch13.adb, exp_disp.adb, sem_cat.adb, sem_ch10.adb, + * sem_ch12.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, + * sem_prag.adb, sem_util.adb, sem_warn.adb: Use + Is_Package_Or_Generic_Package instead of hand-crafted tests. + +2008-08-18 Samuel Tardieu + + PR ada/15808 + * sem_ch6.adb (Check_Private_Overriding): Check for generic packages + as well. + +2008-08-17 Aaron W. LaFramboise + + * adaint.c (_gnat_set_close_on_exec) [_WIN32]: Implement. + +2008-08-16 Eric Botcazou + + * gcc-interface/trans.c (call_to_gnu): Use the Sloc of the call + for back-copy statements in lieu of that of the actual. + +2008-08-16 Eric Botcazou + + PR ada/20548 + * gcc-interface/decl.c (gnat_to_gnu_entity): Use DECL_SIZE_UNIT in the + setjmp test consistently. Adjust for new behavior of flag_stack_check. + * gcc-interface/utils2.c (build_call_alloc_dealloc): Remove redundant + test of flag_stack_check. Adjust for new behavior of flag_stack_check. + +2008-08-13 Samuel Tardieu + + PR ada/36777 + * sem_util.ads, sem_util.adb (Is_Protected_Self_Reference): New. + * sem_attr.adb (Check_Type): The current instance of a protected + object is not a type name. + (Analyze_Access_Attribute): Accept instances of protected objects. + (Analyze_Attribute, Attribute_Address clause): Ditto. + * exp_attr.adb (Expand_N_Attribute_Reference): Rewrite + the prefix as being the current instance if needed. + +2008-08-12 Danny Smith + + * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS) [WINDOWS]: + Remove duplicate s-win32.o. Add s-winext.o. + +2008-08-12 Danny Smith + + * g-stsifd-sockets.adb (Create): Replace Constants.SOCK_STREAM + with SOSC.SOCK__STREAM. + * g-socthi-mingw.adb (C_Select) Replace Constants.MSG_OOB with + SOSC.MSG_OOB. + +2008-08-11 Joel Sherrill + + * s-oscons-tmplt.c: RTEMS defines AF_INET6 but does support it. + * gsocket.h, socket.c: Update to support RTEMS. + * gcc-interface/Make-lang.in: Include CFLAGS_FOR_TARGET when cross. + +2008-08-10 Samuel Tardieu + Robert Dewar + + * exp_ch4.adb (Expand_N_Op_Expon): Force evaluation of + left argument even when right argument is 0. + (Expand_N_Op_Mod): Ditto when right argument is 1. + (Expand_N_Op_Multiply): Ditto when any argument is 0. + (Expand_N_Op_Rem): Ditto when right argument is 1. + +2008-08-09 Manuel Lopez-Ibanez + + * gcc-interface/misc.c (gnat_handle_option): Replace set_Wunused + by warn_unused. + +2008-08-08 Ed Schonberg + + * freeze.adb (Generate_Prim_Op_References): New procedure, abstracted + from Freeze_Entity. Used to generate cross-reference information for + types declared in generic packages. + +2008-08-08 Thomas Quinot + + * gcc-interface/Makefile.in: Reintroduce g-soccon.ads as a + compatibility shim. + +2008-08-08 Thomas Quinot + + * gsocket.h: + On Windows, include and redefine only selected errno values + from their definitions. + + * s-osinte-freebsd.ads: Minor reformatting + + * s-osinte-hpux.ads, s-osinte-irix.ads: Minor reformatting + + * g-soccon.ads: New file. + + * g-stheme.adb, g-socthi-vms.adb, g-socthi-vxworks.adb, + g-socthi-mingw.adb, g-sttsne-vxworks.adb, g-socthi.adb, + g-stsifd-sockets.adb, g-socket.adb, g-socket.ads, + g-sothco.adb, g-sothco.ads: Add back GNAT.Sockets.Constants as a child + unit, to allow building software that depends on this internal unit + with both older and newer compilers. + +2008-08-08 Robert Dewar + + * s-strxdr.adb: Minor reformatting + +2008-08-08 Bob Duff + + * gnat_ugn.texi: The "Run-Time Checks" section said "arithmetic overflow + checking for integer operations (including division by zero)", which + is wrong -- divide by zero is not part of overflow checking. + Also added misc clarification about what check-suppression means. + + * gnat_rm.texi: Clarify the meaning of pragma Suppress. + +2008-08-08 Jerome Lambourg + + * g-comlin.adb (Add_Switch): Handle addition of switches at the + begining of the command line. + (Append, Add): Renaming of Append to Add as this now allows addition + at the begining of the list. + + * g-comlin.ads (Add_Switch): Handle addition of switches at the + begining of the command line. + +2008-08-08 Thomas Quinot + + * g-sercom.ads: + (Name): Document application scope (only legacy PC serial ports on + Linux and Windows). + +2008-08-08 Thomas Quinot + + * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Revert + previous change, not needed after all. + +2008-08-08 Ed Schonberg + + * exp_ch4.adb (Expand_Allocator_Expression): add check if null + exclusion indicator is present + +2008-08-08 Robert Dewar + + * g-comlin.adb: Minor code reorganization + Minor reformatting + + * g-comlin.ads: Minor reformatting + + * s-fileio.adb: Minor reformatting + + * sem_attr.adb: Minor code reorganization (use Nkind_In) + Minor reformatting + +2008-08-06 Samuel Tardieu + + * gcc-interface/Make-lang.in: Use GCC_FOR_TARGET when dealing + with s-oscons-tmplt.i. + +2008-08-06 Samuel Tardieu + + * gcc-interface/Make-lang.in (OSCONS_CPPFLAGS): Remove. + +2008-08-06 Ed Schonberg + + * sem_ch3.adb (Analyze_Component_Declaration): Protect against misuse + of incomplete type. + + * sem_ch8.adb (Analyze_Object_Renaming): Diagnose properly a renaming + of a formal parameter of an incomplete type. Improve error message for + other improper uses of incomplete types. + +2008-08-06 Robert Dewar + + * gnat_ugn.texi: Clarify -gnato documentation + +2008-08-06 Thomas Quinot + + * gcc-interface/Makefile.in, + g-socthi-vxworks.adb, g-socthi-mingw.adb, g-sttsne-vxworks.adb, + g-socthi.adb, g-socket.adb, g-socket.ads, g-sothco.ads, + g-soccon-linux-x86.ads, g-soccon-vxworks.ads, g-soccon-mingw.ads, + g-soccon-hpux-ia64.ads, g-soccon-irix.ads, g-soccon-linux-64.ads, + g-soccon-aix.ads, g-soccon-solaris.ads, g-soccon-lynxos.ads, + g-soccon-vms.ads, g-soccon.ads, g-soccon-freebsd.ads, + g-soccon-linux-ppc.ads, g-soccon-tru64.ads, g-soccon-hpux.ads, + g-soccon-solaris-64.ads, gen-oscons.c, g-soccon-darwin.ads, + g-soccon-mingw-64.ads, g-soccon-linux-mips.ads, g-soccon-rtems.ads: + Remove GNAT.Sockets.Constants. This internal package is replaced by + System.OS_Constants. + +2008-08-06 Thomas Quinot + + * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: + Remove obsolete targets referencing gen-soccon + When generating s-oscons.ads, use a file name that includes the + THREAD_KIND, to ensure that the (potentially different) version from a + previous build with a different threads flavour does not get reused. + +2008-08-06 Thomas Quinot + + * sem_res.adb: Minor reformatting + + * s-fileio.adb (Open): When file open operation fails, raise Name_Error + only when the operating system reports a non-existing file or directory + (ENOENT), otherwise raise Name_Error. + + * exp_ch11.adb: Minor reformatting + +2008-08-06 Ed Schonberg + + * sem_ch3.adb (Access_Subprogram_Declaration): If the return type is + incomplete, add the access_to_subprogram type to the list of private + dependents only if the incomplete type will be completed in the current + scope. + (Build_Discriminant_Constraints): If the type of the discriminant is + access_to_variable, reject a constraint that is access_to_constant. + +2008-08-06 Thomas Quinot + + * g-socket-dummy.adb, g-socket-dummy.ads, g-sothco-dummy.adb, + g-sothco-dummy.ads, g-socthi-dummy.adb, g-socthi-dummy.ads, + g-sttsne-dummy.ads: New files. + + * gcc-interface/Makefile.in, Makefile.rtl: Use placeholder sources + with pragma Unimplemented_Unit for sockets packages on Nucleus. + +2008-08-06 Pascal Obry + + * adaint.c: Another fix for ACL support on Windows. + +2008-08-06 Javier Miranda + + * exp_disp (Expand_Interface_Actuals): Adds missing support for + expansion of calls to subprograms using selected components. + +2008-08-06 Ed Schonberg + + * sem_res.adb (Resolve_Call): Use base type to determine whether a + dereference is needed because a subtype of an access_to_subprogram is + simply an access-subtype + +2008-08-06 Jerome Lambourg + + * g-comlin.adb (Set_Command_Line): Now that aliases can contain + parameters, always specify the expected separator. + +2008-08-06 Thomas Quinot + + * xnmake.adb: Use new XUtil package for platform independent text + output. + +2008-08-06 Vincent Celier + + * gnat_ugn.texi: Document compiler switch -gnateG + +2008-08-06 Quentin Ochem + + * s-stausa.adb (Fill_Stack): Fixed pragma assert and top pattern mark + in the case of an empty pattern size. + (Compute_Result): Do not do any computation in the case of an empty + pattern size. + (Report_Result): Fixed computation of the overflow guard. + +2008-08-06 Ed Schonberg + + * g-awk.adb (Finalize): Do not use directly objects of the type in the + finalization routine to prevent elaboration order anomalies in new + finalization scheme. + +2008-08-06 Ed Schonberg + + * sem_ch3.adb (Find_Type_Name): protect against duplicate incomplete + declaration for the same type. + +2008-08-06 Thomas Quinot + + * sem.adb: Minor rewording (comment) + +2008-08-06 Jerome Lambourg + + * g-comlin.adb (Define_Switch, Get_Switches): New. + (Can_Have_Parameter, Require_Parameter, Actual_Switch): New, used when + ungrouping switches. + (For_Each_Simple_Switch): Allow more control over parameters handling. + This generic method now allows ungrouping of switches with parameters + and switches with more than one letter after the prefix. + (Set_Command_Line): Take care of switches that are prefixed with a + switch handling parameters without delimiter (-gnatya and -gnaty3 for + example). + (Add_Switch, Remove_Switch): Handle parameters possibly present inside + a group, as in gnaty3aM80 (3 and 80 are parameters). Report status of + the operation. + (Start, Alias_Switches, Group_Switches): Take care of parameters + possibly present inside a group. + + * g-comlin.ads (Define_Switch): New method used to define a list of + expected switches, that are necessary for correctly ungrouping switches + with more that one character after the prefix. + (Get_Switches): Method that builds a getopt string from the list of + switches as set previously by Define_Switch. + (Add_Switch, Remove_Switch): New versions of the methods, reporting the + status of the operation. Also allow the removal of switches with + parameters only. + (Command_Line_Configuration_Record): Maintain a list of expected + switches. + +2008-08-06 Doug Rupp + + * gcc-interface/decl.c (gnat_to_gnu_param): Force 32bit descriptor if + TARGET_MALLOC64 clear. + + * gcc-interface/utils2.c (build_call_alloc_dealloc): Force 32bit malloc + if TARGET_MALLOC64 clear. + + * gcc-interface/gigi.h (TARGET_ABI_OPEN_VMS): Move here from utils2.c + (TARGET_MALLC64): New macro. Default to clear. + +2008-08-06 Doug Rupp + + * gcc-interface/utils2.c (snames.h) Include + (TARGET_ABI_OPEN_VMS): Initialize. + (build_call_alloc_dealloc); [TARGET_ABI_OPEN_VMS] Allocate on 32bit heap + for Convention C. + +2008-08-06 Ed Schonberg + + * sem_ch3.adb (Process_Discriminants): diagnose redundant or improper + null exclusion in a discriminant declaration + + * sem_ch8.adb (Analyze_Object_Renaming): diagnose null exclusion + indicators when type is not an access type. + + * sem_ch12.adb (Formal_Object_Declaration): diagnose null exclusion + indicators when type is not an access type. + +2008-08-06 Javier Miranda + + * exp_disp (Expand_Interface_Conversion): Freeze the entity associated + with the target interface before expanding the code of the interface + conversion. + +2008-08-05 Ed Schonberg + + * freeze.adb: + (Freeze_Entity): A deferred constant does not violate the restriction + No_Default_Initialization, + + * sem_ch3.adb (Process_Subtype): An allocator is a valid construct that + can carry a null exclusion indicator, and on which an error may be + posted if the indicator is redundant. + + * sem_ch8.adb (Analyze_Object_Renaming): Verify that a null exclusion + does not apply to a subtype mark that already excludes null. + + * sem_ch12.adb (Formal_Object_Declaration): Verify that a null + exclusion does not apply to a subtype mark that already excludes null. + +2008-08-05 Thomas Quinot + + * Makefile.rtl: Compile s-oscons.ads as part of the runtime library. + +2008-08-05 Doug Rupp + + * vms_data.ads: Translation for /POINTER_SIZE qualifier. + +2008-08-05 Thomas Quinot + + * gsocket.h: Make this file includable in a Nucleus environment, which + does not support sockets. + + * socket.c: Remove Nucleus-specific hack. + +2008-08-05 Pascal Obry + + * adaint.c: Remove support for readable attribute on vxworks and nucleus + +2008-08-05 Ed Schonberg + + * sem_attr.adb: + (Analyze_Attribute, case 'Result): handle properly the case where some + operand of the expression in a post-condition generates a transient + block. + + * sem_ch5.adb (Analyze_Assignment_Statement): Apply conversion to + right-hand side when it is an anonymous access_to_subprogram, to force + static accessibility check when needed. + +2008-08-05 Sergey Rybin + + * gnat_ugn.texi: Changing the description of the gnatcheck metrics + rule according to the change in the rule option. + Add documentation for -gnatw.b/-gnatw.B + +2008-08-05 Robert Dewar + + * ug_words: Add entries for -gnatw.b/-gnatw.B + + * vms_data.ads: Add entries for -gnatw.b/-gnatw.B + +2008-08-05 Vincent Celier + + * a-wtdeio.adb (Put (Current_Output)): Use Fore in the call to Put + (File). + + * a-ztdeio.adb: Ditto. + +2008-08-05 Pascal Obry + + * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Add support for the + readable attribute. + +2008-08-05 Vincent Celier + + * s-wchwts.adb: + (Wide_String_To_String): Returns a String with the same 'First as its + parameter S. + (Wide_Wide_String_To_String): Ditto + + * s-wchwts.ads: + (Wide_String_To_String): Document that the lowest index of the returned + String is equal to S'First. + +2008-08-05 Thomas Quinot + + * xoscons.adb, xutil.ads, xutil.adb, s-oscons-tmplt.c: New files. + + * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Generate + s-oscons.ads + +2008-08-05 Robert Dewar + + * opt.ads (Warn_On_Biased_Representation): New flag + + * sem_ch13.adb: + (Analyze_Attribute_Definition_Clause): Issue warning when biased + representation is required. + (Minimum_Size): Don't allow biasing if enum rep clause case + + * sem_warn.adb: + (Set_Dot_Warning_Switch): Add handling of -gnatw.b/B switches + (Set_Warning_Switch): Include -gnatw.b in -gnatwa, -gnatw.B in gnatws + + * usage.adb: Add lines for -gnatw.b/B switches + +2008-08-05 Pascal Obry + + * a-coinve.adb: Reorder the code to avoid uninitialized warning. + + * adaint.c: In UNIX cases do not call __gnat_stat but stat directly. + +2008-08-05 Thomas Quinot + + * socket.c: Minor reformatting. + +2008-08-05 Robert Dewar + + * sem_ch3.adb: Minor reformatting + + * prj-nmsc.adb: Minor reformatting + +2008-08-05 Ed Schonberg + + * sem_ch12.adb (Validate_Array_Type_Instance): Only apply complex + visibility check on the component type if the simple test fails. + +2008-08-05 Jose Ruiz + + * init.c (__gnat_install_handler for linux): If we are building the + Xenomai run time then we need to do two additional things: avoid + memory swapping and transform the Linux environment task into a native + Xenomai task. + + * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for xenomai run + time): Use interface to Xenomai native skin and avoid linux-specific + way of setting CPU affinity. + (EH_MECHANISM for the xenomai run time): Use sjlj exception mechanism. + +2008-08-05 Bob Duff + + * checks.ads: Minor comment fix + +2008-08-05 Thomas Quinot + + * g-sercom.adb, g-sercom.ads, g-sercom-mingw.adb, + g-sercom-linux.adb (Data_Bits): Change literals B7 and B8 to CS7 and + CS8. + +2008-08-05 Robert Dewar + + * mlib.adb: Minor code reorganization + Minor reformatting + + * make.adb: Minor reformatting + + * prj-attr.ads: Minor reformatting + + * s-os_lib.adb: Minor reformatting + + * s-fileio.adb: Minor code reorganization + Minor reformatting + + * prj.ads: Minor reformatting + +2008-08-05 Bob Duff + + * sem_ch3.adb (Analyze_Object_Declaration): Avoid type Any_Access in + unresolved initial value of "null", because it causes implicitly + generated "=" operators to be ambiguous, and because this type should + not be passed to gigi. + +2008-08-05 Vincent Celier + + * mlib.adb: Update comments. + + * make.adb (Switches_Of): Check for Switches (others), before checking + for Default_Switches ("Ada"). + (Gnatmake): Use Builder'Switches (others) in preference to + Builder'Default_Switches ("Ada") if there are several mains. + + * prj-attr-pm.adb: + (Add_Attribute): Add component Others_Allowed in Attribute_Record + aggregate. + + * prj-attr.adb: + Add markers to indicates that attributes Switches allow others as index + (Others_Allowed_For): New Boolean function, returning True for + attributes with the mark. + (Initialize): Recognize optional letter 'O' as the marker for + associative array attributes where others is allowed as the index. + + * prj-attr.ads: + (Others_Allowed_For): New Boolean function + (Attribute_Record): New Boolean component Others_Allowed + + * prj-dect.adb: + (Parse_Attribute_Declaration): For associative array attribute where + others is allowed as the index, allow others as an index. + + * prj-nmsc.adb: + (Process_Binder): Skip associative array attributes with index others + (Process_Compiler): Ditto + + * prj-util.adb: + (Value_Of (Index, In_Array)): Make no attempt to put in lower case when + index is All_Other_Names. + + * prj.ads: + (All_Other_Names): New constant + + * prj-proc.adb: + (Process_Declarative_Items): Skip associative array attribute when index + is reserved word "others". + +2008-08-05 Vasiliy Fofanov + + * gen-oscons.c: Adapt for VMS where termios.h is not available. + +2008-08-05 Thomas Quinot + + * a-rttiev.adb: Minor reformatting (comments) + + * gen-soccon.c: Rename to gen-oscons.c + + * gen-oscons.c: New file. Now generate System.OS_Constants instead of + GNAT.Sockets.Constants. + Add new constants for GNAT.Serial_Communications and System.File_IO. + +2008-08-05 Javier Miranda + + * sem_util.adb (Collect_Interfaces_Info): Minor reformating. + * exp_ch3.adb (Build_Offset_To_Top_Functions): Code cleanup: the + implementation of this routine has been simplified. + +2008-08-05 Pascal Obry + + * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Fix the + Set_Read_Only Win32 implementation. + +2008-08-05 Thomas Quinot + + * exp_strm.adb: Minor reformatting (comments) + + * sem_ch12.adb: Minor reformatting. + +2008-08-05 Robert Dewar + + * sem_ch3.adb: Minor reformatting + + * checks.adb: Minor reformatting + +2008-08-05 Thomas Quinot + + * tbuild.ads (New_External_Name): Update spec to reflect relaxed + restriction on Prefix. + +2008-08-05 Jerome Lambourg + + * g-comlin.adb (Sort_Sections, Group_Switches): New/Modified internal + methods needed to handle switch sections when building a command line. + (Define_Section, Add_Switch, Remove_Switch, Is_New_Section, + Current_Section): New public methods or methods modified to handle + building command lines with sections. + (Set_Command_Line): Take into account sections when analysing a switch + string. + (Start): Sort the switches by sections before iterating the command line + elements. + + * g-comlin.ads (Define_Section, Add_Switch, Remove_Switch, + Is_New_Section, Current_Section): New methods or methods modified to + handle building command lines with sections. + +2008-08-05 Ed Schonberg + + * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For access + discriminants, indicate that the corresponding object declaration has + no initialization, to prevent spurious warnings when the access type is + null-excluding. + +2008-08-05 Ed Schonberg + + * sem_res.adb (Resolve_Call): If this is a call to the predefined + Abort_Task, warn if the call appears within a protected operation. + +2008-08-04 Robert Dewar + + * exp_ch4.adb (Expand_N_In): Suppress range warnings in instances + +2008-08-04 Ed Schonberg + + * sem_ch3.adb: + (Replace_Anonymous_Access_To_Protected_Subprogram): Handle properly an + anonymous access to protected subprogram that is the return type of the + specification of a subprogram body. + + * sem_ch6.adb: + (Analyze_Subprogram_Body): if the return type is an anonymous access to + subprogram, freeze it now to prevent access anomalies in the back-end. + + * exp_ch9.adb: Minor code cleanup. + Make sure that new declarations are inserted into the tree before + analysis (from code reading). + +2008-08-04 Robert Dewar + + * exp_ch5.adb: + (Expand_Simple_Function_Return): Check No_Secondary_Stack restriction + at point of return. + +2008-08-04 Thomas Quinot + + * sem_type.adb, sem_ch4.adb, sprint.adb, exp_ch3.adb: Minor reformatting + +2008-08-04 Vasiliy Fofanov + + * g-soccon-mingw.ads: Fix value for MSG_WAITALL + +2008-08-04 Javier Miranda + + * sem_prag.adb (Process_Convention): Add missing support for + N_Private_Extension_Declaration nodes. + +2008-08-04 Robert Dewar + + * exp_ch4.adb: Minor reformatting + +2008-08-04 Pascal Obry + + * adaint.h: Add missing prototype. + + * adaint.c: Refine support for Windows file attributes. + +2008-08-04 Robert Dewar + + * sem_res.adb: + (Valid_Conversion): Catch case of designated types having different + sizes, even though they statically match. + +2008-08-04 Javier Miranda + + * sem_eval.adb (Subtypes_Statically_Match): Remove superfluous patch + added in previous patch to handle access to subprograms. + +2008-08-04 Robert Dewar + + * freeze.adb: + (Freeze_Entity): Only check No_Default_Initialization restriction for + constructs that come from source + +2008-08-04 Thomas Quinot + + * exp_ch6.adb: Minor comment fix. + + * sem_ch4.adb: Minor reformatting. + +2008-08-04 Robert Dewar + + * sem_res.adb: (Large_Storage_Type): Improve previous change. + +2008-08-04 Pascal Obry + + * adaint.c, s-os_lib.adb, s-os_lib.ads: Use Windows ACL to deal with + file attributes. + +2008-08-04 Javier Miranda + + * sem_ch3.adb (Access_Subprogram_Declaration): Adding missing support + for N_Formal_Object_Declaration nodes. Adding kludge required by + First_Formal to provide its functionality with access to functions. + (Replace_Anonymous_Access_To_Protected_Subprogram): Add missing support + for anonymous access types returned by functions. + + * sem_ch5.adb (Analyze_Assignment): Code cleanup to avoid duplicate + conversion of null-excluding access types (required only once to force + the generation of the required runtime check). + + * sem_type.adb (Covers): minor reformating + + * checks.adb (Null_Exclusion_Static_Checks): Avoid reporting errors + with internally generated nodes. Avoid generating the error inside init + procs. + + * sem_res.adb (Resolve_Membership_Test): Minor reformating. + (Resolve_Null): Generate the null-excluding check in case of assignment + to a null-excluding object. + (Valid_Conversion): Add missing support for anonymous access to + subprograms. + + * sem_ch6.adb (Check_Return_Subtype_Indication): Add missing support for + anonymous access types whose designated type is an itype. This case + occurs with anonymous access to protected subprograms types. + (Analyze_Return_Type): Add missing support for anonymous access to + protected subprogram. + + * sem_eval.adb (Subtypes_Statically_Match): In case of access to + subprograms addition of missing check on matching convention. Required + to properly handle access to protected subprogram types. + + * exp_ch3 (Build_Assignment): Code cleanup removing duplicated check on + null excluding access types. + +2008-08-04 Ed Schonberg + + * sem_ch12.adb: Add comments + + * sem_ch4.adb (Analyze_Allocator): If the designated type is a non-null + access type and the allocator is not initialized, warn rather than + reporting an error. + +2008-08-04 Robert Dewar + + * exp_ch4.adb: Minor reformatting + + * exp_dist.adb: Minor reformatting + + * g-comlin.adb: Minor reformatting + +2008-08-04 Gary Dismukes + + * exp_aggr.adb (Build_Record_Aggr_Code): Perform a conversion of the + target to the type of the aggregate in the case where the target object + is class-wide. + + * exp_ch5.adb (Expand_Simple_Function_Return): When the function's + result type is class-wide and inherently limited, and the expression + has a specific type, create a return object of the specific type, for + more efficient handling of returns of build-in-place aggregates (avoids + conversions of the class-wide return object to the specific type on + component assignments). + + * sem_ch6.adb (Check_Return_Subtype_Indication): Suppress the error + about a type mismatch for a class-wide function with a return object + having a specific type when the object declaration doesn't come from + source. Such an object can result from the expansion of a simple return. + +2008-08-04 Vasiliy Fofanov + + * g-soccon-mingw-64.ads, system-mingw-x86_64.ads: New files. + + * gcc-interface/Makefile.in: Use 64bit-specific system files when + compiling for 64bit windows. + +2008-08-04 Jerome Lambourg + + * g-comlin.adb (Group_Switches): Preserve the switch order when + grouping and allow switch grouping of switches with more than one + character extension (e.g. gnatw.x). + (Args_From_Expanded): Remove this now obsolete method. + +2008-08-04 Ed Schonberg + + * exp_ch4.adb (Get_Allocator_Final_List): Freeze anonymous type for + chain at once, to ensure that type is properly decorated for back-end, + when allocator appears within a loop. + +2008-08-04 Kevin Pouget + + * snames.h, snames.adb, snames.ads: + Add Attr_To_Any, Attr_From_Any and Attr_TypeCode defines. + + * exp_dist.ads, exp_dist.adb: Add Build_From_Any_Call, + Build_To_Any_Call and Build_TypeCode_Call procedures. + + * exp_attr.adb, sem_attr.adb: Add corresponding cases. + + * rtsfind.ads: Add corresponding names. + + * tbuild.adb: Update prefix restrictions to allow '_' character. + +2008-08-04 Doug Rupp + + * gigi.h (fill_vms_descriptor): Add third parameter gnat_actual + * trans.c (call_to_gnu): Call fill_vms_descriptor with new parameter. + * utils2.c (fill_vms_descriptor): Add third parameter for error sloc and + use it. Calculate pointer range overflow using 64bit types. + +2008-08-04 Ed Schonberg + + * sem_ch3.adb (Access_Definition): A formal object declaration is a + legal context for an anonymous access to subprogram. + + * sem_ch4.adb (Analyze_One_Call): If the call can be interpreted as an + indirect call, report success to the caller to include possible + interpretation. + + * sem_ch6.adb (Check_Return_Type_Indication): Apply proper conformance + check when the type + of the extended return is an anonymous access_to_subprogram type. + + * sem_res.adb: + (Resolve_Call): Insert a dereference if the type of the subprogram is an + access_to_subprogram and the context requires its return type, and a + dereference has not been introduced previously. + +2008-08-04 Arnaud Charlet + + * usage.adb (Usage): Minor rewording of -gnatwz switch, to improve + gnatcheck support in GPS. + +2008-08-04 Vincent Celier + + * mlib.adb (Create_Sym_Links): Create relative symbolic links when + requested + +2008-08-04 Vincent Celier + + * gprep.adb (Process_One_File): Call Prep.Preprocess with a Boolean + variable, but don't check the resulting value as it has no impact on + the processing. + + * opt.ads: + (Generate_Processed_File): New Boolean flag, set to True in the compiler + when switch -gnateG is used. + + * prep.adb: + (Preprocess): new Boolean out parameter Source_Modified. Set it to True + when the source is modified by the preprocessor and there is no + preprocessing errors. + + * prep.ads (Preprocess): new Boolean out parameter Source_Modified + + * sinput-l.adb: + (Load_File): Output the result of preprocessing if the source text was + modified. + + * switch-c.adb (Scan_Front_End_Switches): Recognize switch -gnateG + + * switch-m.adb (Normalize_Compiler_Switches): Normalize switch -gnateG + + * ug_words: Add VMS equivalent for -gnateG + + * vms_data.ads: + Add VMS option /GENERATE_PROCESSED_SOURCE, equivalent to switch -gnateG + +2008-08-04 Doug Rupp + + * gcc-interface/utils2.c: + (fill_vms_descriptor): Raise CE if attempt made to pass 64bit pointer + in 32bit descriptor. + +2008-08-04 Robert Dewar + + * par-ch10.adb: Minor reformatting + + * i-cobol.adb: Minor reformatting. + +2008-08-04 Ed Schonberg + + * sem_ch3.adb (Access_Definition): Create an itype reference for an + anonymous access return type of a regular function that is not a + compilation unit. + +2008-08-04 Vincent Celier + + * prj-attr.adb: New Builder attribute Global_Compilation_Switches + + * snames.adb: New standard name Global_Compilation_Switches + + * snames.ads: New standard name Global_Compilation_Switches + + * make.adb: Correct spelling error in comment + +2008-08-04 Arnaud Charlet + + * sem_prag.adb (Check_Form_Of_Interface_Name): Fix handling for CLI + target. + +2008-08-04 Thomas Quinot + + * sem_ch10.adb: Minor comment fix. + +2008-08-04 Robert Dewar + + * restrict.adb: Improved messages for restriction warnings + + * restrict.ads: Improved messages for restriction messages + + * s-rident.ads (Profile_Name): Add No_Profile + +2008-08-04 Robert Dewar + + * system-darwin-x86.ads: Correct bad definition of Max_Nonbinary_Modulus + +2008-08-04 Robert Dewar + + * freeze.adb (Freeze_Entity): Check for size clause for boolean warning + +2008-08-04 Vincent Celier + + * prj-proc.adb: + (Copy_Package_Declarations): When inheriting package Naming from a + project being extended, do not inherit source exception names. + +2008-08-04 Ed Schonberg + + * sem_prag.adb (Check_Precondition_Postcondition): When scanning the + list of declaration to find previous subprogram, do not go to the + original node of a generic unit. + +2008-08-02 Eric Botcazou + + * gcc-interface/utils2.c (build_binary_op) : + New case. Convert BOOLEAN_TYPE operation to the default integer type. + +2008-08-01 Eric Botcazou + + * gcc-interface/ada-tree.h (DECL_PARM_ALT): Now DECL_PARM_ALT_TYPE. + * gcc-interface/decl.c (gnat_to_gnu_param): Fix formatting, simplify + and adjust for above renaming. + * gcc-interface/utils.c (convert_vms_descriptor): Likewise. Add new + gnu_expr_alt_type parameter. Convert the expression to it instead + of changing its type in place. + (build_function_stub): Adjust call to above function. + +2008-08-01 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Remove dead + code. Do not get full definition of deferred constants with address + clause for a use. Do not ignore deferred constant definitions with + address clause. Ignore constant definitions already marked with the + error node. + : Remove obsolete comment. For a deferred constant with + address clause, get the initializer from the full view. + * gcc-interface/trans.c (gnat_to_gnu) : + Rework and remove obsolete comment. + : For a deferred constant with address clause, + mark the full view with the error node. + * gcc-interface/utils.c (convert_to_fat_pointer): Rework and fix + formatting nits. + +2008-08-01 Hristian Kirtchev + + * rtsfind.ads: Add block IO versions of stream routines for Strings. + + * bindgen.adb, gnat_rm.texi, gnat_ugn.texi, opt.ads, + sem_prag.adb, snames.adb, snames.ads, snames.h, + par-prag.adb: Undo previous stream related changes. + + * s-rident.ads: Add new restriction No_Stream_Optimizations. + + * s-ststop.ads, s-ststop.adb: Comment reformatting. + Define enumeration type to designate different IO mechanisms. + Enchance generic package Stream_Ops_Internal to include an + implementation of Input and Output. + + * exp_attr.adb (Find_Stream_Subprogram): If restriction + No_Stream_Optimization is active, choose the default byte IO + implementations of stream attributes for Strings. + Otherwise use the corresponding block IO version. + +2008-08-01 Olivier Hainque + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not + turn Ada Pure into GCC const, now implicitely implying nothrow as well. + +2008-08-01 Robert Dewar + + * par-ch3.adb (P_Defining_Identifier): Avoid repeated attempt to + convert plain identifier into defining identifier. + +2008-08-01 Robert Dewar + + * sem_prag.adb (Check_Form_Of_Interface_Name): Refine and improve + warnings + + * lib-xref.adb: Add error defense. + +2008-08-01 Bob Duff + + * ioexcept.ads, sequenio.ads, directio.ads: Correct comment. + +2008-08-01 Gary Dismukes + + * exp_ch6.adb (Expand_Call): Adjustment to previous fix for passing + correct accessibility levels. In the "when others" case, retrieve the + access level of the Etype of Prev rather than Prev_Orig, because the + original exression has not always been analyzed. + +2008-08-01 Robert Dewar + + * prj-nmsc.adb: Minor reformatting + + * sem_ch4.adb: Minor reformatting + Minor code reorganization + + * prj.ads: Minor reformatting + + * s-os_lib.adb: Minor reformatting + + * par-prag.adb (Prag, case Wide_Character_Encoding): Deal with upper + half encodings + + * scans.ads: Minor reformatting. + + * sem_prag.adb (Analyze_Pragma): Put entries in alpha order + (Analyze_Pragma): Make sure all GNAT pragmas call GNAT_Pragma + + * sem_res.adb: + (Resolve_Call): Check violation of No_Specific_Termination_Handlers + + * sem_ch12.adb: Minor comment reformatting + + * par-ch3.adb (P_Type_Declaration): Properly handle missing type + keyword + +2008-08-01 Robert Dewar + + * sem_ch6.adb (Process_PPCs): Don't copy spec PPC to body if not + generating code + +2008-08-01 Ed Schonberg + + * checks.adb (Apply_Float_Conversion_Check): If the expression to be + converted is a real literal and the target type has static bounds, + perform the conversion exactly to prevent floating-point anomalies on + some targets. + +2008-08-01 Vincent Celier + + * prj-attr.adb: New attribute Compiler'Name_Syntax () + + * prj-nmsc.adb (Process_Compiler): Recognize attribute Name_Syntax + + * prj.adb (Object_Exist_For): Use Object_Generated, not + Objects_Generated that is removed and was never modified anyway. + + * prj.ads: + (Path_Syntax_Kind): New enumeration type + (Language_Config): New component Path_Syntax, defaulted to Host. + Components PIC_Option and Objects_Generated removed, as they are not + used. + + * snames.adb: New standard name Path_Syntax + + * snames.ads: New standard name Path_Syntax + +2008-08-01 Vincent Celier + + * mlib-utl.adb: + (Adalib_Path): New variable to store the path of the adalib directory + when procedure Specify_Adalib_Dir is called. + (Lib_Directory): If Adalib_Path is not null, return its value + (Specify_Adalib_Dir): New procedure + + * mlib-utl.ads (Specify_Adalib_Dir): New procedure + +2008-08-01 Ed Schonberg + + * sem_prag.adb: + (Check_Precondition_Postcondition): If not generating code, analyze the + expression in a postcondition that appears in a subprogram body, so that + it is properly decorated for ASIS use. + +2008-08-01 Gary Dismukes + + * exp_ch6.adb (Expand_Call): Remove ugly special-case code that resets + Orig_Prev to Prev in the case where the actual is N_Function_Call or + N_Identifier. This was interfering with other cases that are rewritten + as N_Identifier, such as allocators, resulting in passing of the wrong + accessibility level, and based on testing this code is apparently no + longer needed at all. + +2008-08-01 Ed Schonberg + + * sem_ch4.adb (Analyze_One_Call): Handle complex overloading of a + procedure call whose prefix + is a parameterless function call that returns an access_to_procedure. + +2008-08-01 Jose Ruiz + + * adaint.c (__gnat_tmp_name): Refine the generation of temporary names + for RTX. Adding a suffix that is incremented at each iteration. + +2008-08-01 Robert Dewar + + * sem_ch6.adb (Analyze_Subprogram_Body): Remove special casing of + Raise_Exception + +2008-08-01 Jerome Lambourg + + * s-os_lib.adb (Normalize_Pathname): Take care of double-quotes in + paths, which are authorized by Windows but can lead to errors when used + elsewhere. + +2008-08-01 Ed Schonberg + + * sem_ch12.ads (Need_Subprogram_Instance_Body): new function, to create + a pending instantiation for the body of a subprogram that is to be + inlined. + + * sem_ch12.adb: + (Analyze_Subprogram_Instantiation): use Need_Subprogram_Instance_Body. + + * sem_prag.adb (Make_Inline): If the pragma applies to an instance, + create a pending instance for its body, so that calls to the subprogram + can be inlined by the back-end. + +2008-08-01 Jose Ruiz + + * gnat_ugn.texi: Document the RTX run times (rts-rtx-rtss and + rts-rtx-w32). + +2008-08-01 Robert Dewar + + * scng.adb (Error_Illegal_Wide_Character): Bump scan pointer + +2008-08-01 Doug Rupp + + * gnat_rm.texi: Document new mechanism Short_Descriptor. + + * types.ads (Mechanism_Type): Modify range for new Short_Descriptor + mechanism values. + + * sem_prag.adb (Set_Mechanism_Value): Enhance for Short_Descriptor + mechanism and Short_Descriptor mechanism values. + + * snames.adb (preset_names): Add short_descriptor entry. + + * snames.ads: Add Name_Short_Descriptor. + + * types.h: Add new By_Short_Descriptor mechanism values. + + * sem_mech.adb (Set_Mechanism_Value): Enhance for Short_Descriptor + mechanism and Short_Descriptor mechanism values. + + * sem_mech.ads (Mechanism_Type): Add new By_Short_Descriptor mechanism + values. + (Descriptor_Codes): Modify range for new mechanism values. + + * treepr.adb (Print_Entity_Enfo): Handle new By_Short_Descriptor + mechanism values. + + * gcc-interface/decl.c (gnat_to_gnu_entity): Handle By_Short_Descriptor. + (gnat_to_gnu_param): Handle By_Short_Descriptor. + + * gcc-interface/gigi.h (build_vms_descriptor64): Remove prototype. + (build_vms_descriptor32): New prototype. + (fill_vms_descriptor): Remove unneeded gnat_actual parameter. + + * gcc-interface/trans.c (call_to_gnu): Removed unneeded gnat_actual + argument in call fill_vms_descriptor. + + * gcc-interface/utils.c (build_vms_descriptor32): Renamed from + build_vms_descriptor and enhanced to hande Short_Descriptor mechanism. + (build_vms_descriptor): Renamed from build_vms_descriptor64. + (convert_vms_descriptor32): New function. + (convert_vms_descriptor64): New function. + (convert_vms_descriptor): Rewrite to handle both 32bit and 64bit + descriptors. + + * gcc-interface/utils2.c (fill_vms_descriptor): Revert previous changes, + no longer needed. + +2008-08-01 Jose Ruiz + + * adaint.c (__gnat_tmp_name): RTSS applications do not support tempnam + nor tmpnam, so we always use c:\WINDOWS\Temp\gnat-XXXXXX as temporary + name. + +2008-08-01 Jose Ruiz + + * cstreams.c (__gnat_full_name): RTSS applications cannot ask for the + current directory so only fully qualified names are allowed. + +2008-08-01 Robert Dewar + + * gnat_ugn.texi: + Minor editing, remove uncomfortable use of semicolon + + * s-ststop.adb: Add some ??? comments + + * sem_ch10.adb: Minor reformatting + + * snames.ads: + Minor comment fixes, some pragmas were not properly + categorized in the comments, documentation change only + + * xref_lib.adb: Minor reformatting + + * sinput.adb: Minor reformatting + + * gnatchop.adb: Minor reformatting + + * sem_util.ads: Minor reformatting. + + * opt.ads: Minor documentation fix + + * scng.adb: Minor reformatting + + * prj-part.adb: Update comments + +2008-08-01 Ed Schonberg + + * exp_disp.adb (Expand_Interface_Conversion): If the target type is a + tagged synchronized type, use corresponding record type. + +2008-08-01 Doug Rupp + + * mlib-tgt-specific-vms-alpha.adb (Build_Dynamic_Library): Output a + dummy transfer address for debugging. + + * mlib-tgt-specific-vms-ia64.adb (Build_Dynamic_Library): Likewise. + + * vms_data.ads: vms_data.ads: New qualfier /MACHINE_CODE_LISTING + +2008-07-31 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity): Fix formatting. + * gcc-interface/utils.c (create_field_decl): Avoid superfluous work. + +2008-07-31 Pascal Obry + + * prj-nmsc.adb: Keep Object and Exec directory casing. + +2008-07-31 Jose Ruiz + + * system-rtx-rtss.ads + Change the default stack size. It is important to set the commit part. + + * s-taprop-rtx.adb + (Initialize): Get the clock resolution. + (RT_Resolution): Return the clock resolution that is indicated by the + system. + + * s-parame-vxworks.adb + Document that this body is used for RTX in RTSS (kernel) mode. + + * gcc-interface/Makefile.in + (LIBGNAT_TARGET_PAIRS for the rtx_rtss run time): Use the + s-parame-vxworks.adb body in order to have reasonable stack sizes in + RTX RTSS kernel mode. Virtual memory is not used in that case, so we + cannot ask for too big values. + +2008-07-31 Robert Dewar + + * exp_aggr.adb: Minor reformatting + + * makeutl.adb: Minor reformatting + + * prj-env.adb: Minor reformatting + +2008-07-31 Hristian Kirtchev + + * exp_disp.adb (Prim_Op_Kind): Retrieve the full view when a private + tagged type is completed by a concurrent type. + +2008-07-31 Gary Dismukes + + * sem_aggr.adb: + (Resolve_Record_Aggregate): Bypass error that a type without + components must have a "null record" aggregate when compiling for Ada + 2005, since it's legal to give an aggregate of form (others => <>) + for such a type. + +2008-07-31 Javier Miranda + + * sem_ch4.adb (Valid_First_Argument_Of): Complete its functionality to + handle synchronized types. Required to handle well the object.operation + notation applied to synchronized types. + +2008-07-31 Quentin Ochem + + * s-stausa.adb (Fill_Stack): Stack_Used_When_Filling is now stored + anymore - just used internally. + Added handling of very small tasks - when the theoretical size is + already full at the point of the call. + (Report_Result): Fixed result computation, Stack_Used_When_Filling does + not need to be added to the result. + +2008-07-31 Hristian Kirtchev + + * sem_ch6.adb (Disambiguate_Spec): Continue the disambiguation if the + corresponding spec is a primitive wrapper. Update comment. + +2008-07-31 Hristian Kirtchev + + * bindgen.adb Comment reformatting. Update the list of run-time globals. + (Gen_Adainit_Ada): Add the declaration, import and value set for + configuration flag Canonical_Streams. + (Gen_Adainit_C): Add the declaration and initial value of external + symbol __gl_canonical_streams. + + * init.c: Update the list of global values computed by the binder. + + * opt.ads: Add flag Canonical_Streams. + + * par-prag.adb (Prag): Include Pragma_Canonical_Streams to the list of + semantically handled pragmas. + + * sem_prag.adb: Add an entry into enumeration type Sig_Flags. + (Analyze_Pragma): Add case for pragma Canonical_Streams. + + * snames.adb: Add character value for name Canonical_Streams. + + * snames.ads: + Add Name_Canonical_Streams to the list of configuration pragmas. + Add Pragma_Canonical_Streams to enumeration type Pragma_Id. + + * snames.h: Add a definition for Pragma_Canonical_Streams. + + * s-ststop.adb: + Add a flag and import to seize the value of external symbol + __gl_canonical_streams. Update comment and initial value of constant + Use_Block_IO. + + * gnat_rm.texi: Add section of pragma Canonical_Streams. + + * gnat_ugn.texi: + Add pragma Canonical_Streams to the list of configuration pragmas. + +2008-07-31 Ed Schonberg + + * sem_ch10.adb (Build_Unit_Name): If the unit name in a with_clause + has the form A.B.C and B is a unit renaming, analyze its compilation + unit and add a with_clause on A.b to the context. + +2008-07-31 Vincent Celier + + * makeutl.adb (Executable_Prefix_Path): If Locate_Exec_On_Path fails, + return the empty string, instead of raising Constraint_Error. + +2008-07-31 Gary Dismukes + + * checks.ads (Apply_Accessibility_Check): Add parameter Insert_Node. + + * checks.adb (Apply_Accessibility_Check): Insert the check on + Insert_Node. + + * exp_attr.adb: + (Expand_N_Attribute_Refernce, Attribute_Access): Pass attribute node + to new parameter Insert_Node on call to Apply_Accessibility_Check. + Necessary to distinguish the insertion node because the dereferenced + formal may come from a rename, but the check must be inserted in + front of the attribute. + + * exp_ch4.adb: + (Expand_N_Allocator): Pass actual for new Insert_Node parameter on + call to Apply_Accessibility_Check. + (Expand_N_Type_Conversion): Pass actual for new Insert_Node parameter + on call to Apply_Accessibility_Check. + Minor reformatting + +2008-07-31 Javier Miranda + + * sem_type.adb (Has_Compatible_Type): Complete support for synchronized + types when the candidate type is a synchronized type. + + * sem_res.adb (Resolve_Actuals): Reorganize code handling synchronized + types, and complete management of synchronized types adding missing + code to handle formal that is a synchronized type. + + * sem_ch4.adb (Try_Primitive_Operation): Avoid testing attributes that + are not available and cause the compiler to blowup. Found compiling + test with switch -gnatc + + * sem_ch6.adb (Check_Synchronized_Overriding): Remove local subprogram + Has_Correct_Formal_Mode plus code cleanup. + +2008-07-31 Bob Duff + + * sinput.adb (Skip_Line_Terminators): Fix handling of LF/CR -- it was + recognized as two end-of-lines, but it should be just one. + +2008-07-31 Thomas Quinot + + * exp_ch9.adb: Minor reformatting + + * tbuild.ads: Fix several occurrences of incorrectly referring to + Name_Find as Find_Name. + +2008-07-31 Ed Schonberg + + * exp_aggr.adb (Aggr_Size_OK): If the aggregate has a single component + and the context is an object declaration with non-static bounds, treat + the aggregate as non-static. + +2008-07-31 Vincent Celier + + * prj-part.adb, prj-part.ads, prj.adb, prj.ads, prj-env.adb: + Move back spec of Parse_Single_Project to body, as it is not called + outside of package Prj.Part. + (Project_Data): Remove components Linker_Name, Linker_Path and + Minimum_Linker_Options as they are no longer set. + Remove function There_Are_Ada_Sources from package Prj and move code + in the only place it was used, in Prj.Env.Set_Ada_Paths. + +2008-07-31 Arnaud Charlet + + * mlib-utl.ads: Fix typo. + +2008-07-31 Robert Dewar + + * sem_ch12.adb: Minor reformatting + +2008-07-31 Sergey Rybin + + * gnat_ugn.texi: Change the description of the + Overly_Nested_Control_Structures: now the rule always requires a + positive parameter for '+R' option + +2008-07-31 Thomas Quinot + + * g-pehage.adb: Minor reformatting + +2008-07-31 Pascal Obry + + * s-finimp.ads: Minor reformatting. + +2008-07-31 Vincent Celier + + * s-regexp.ads: Minor comment fix + +2008-07-31 Arnaud Charlet + + * s-direio.adb (Reset): Replace pragma Unmodified by Warnings (Off), + so that we can compile this file successfully with -gnatc. + +2008-07-31 Hristian Kirtchev + + * exp_attr.adb (Find_Stream_Subprogram): Check the base type instead + of the type when looking for stream subprograms for type String, + Wide_String and Wide_Wide_String. + + * s-ststop.adb: Change the initialization expression of constant + Use_Block_IO. + +2008-07-31 Geert Bosch + + * arit64.c: + New file implementing __gnat_mulv64 signed integer multiplication with + overflow checking + + * fe.h (Backend_Overflow_Checks_On_Target): Define for use by Gigi + + * gcc-interface/gigi.h: + (standard_types): Add ADT_mulv64_decl + (mulv64_decl): Define subprogram declaration for __gnat_mulv64 + + * gcc-interface/utils.c: + (init_gigi_decls): Add initialization of mulv64_decl + + * gcc-interface/trans.c: + (build_unary_op_trapv): New function + (build_binary_op_trapv): New function + (gnat_to_gnu): Use the above functions instead of + build_{unary,binary}_op + + * gcc-interface/Makefile.in + (LIBGNAT_SRCS): Add arit64.c + (LIBGNAT_OBJS): Add arit64.o + +2008-07-31 Vincent Celier + + * prj-nmsc.adb (Check_Library_Attributes): Check if Linker'Switches or + Linker'Default_Switches are declared. Warn if they are declared. + +2008-07-31 Ed Schonberg + + * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use + Insert_Actions to place the pointer declaration in the code, rather + than Insert_Before_And_Analyze, so that insertions of temporaries are + kept in the proper order when transient scopes are present. + + +2008-07-31 Robert Dewar + + * einfo.adb (Spec_PPC): Now defined for generic subprograms + + * einfo.ads (Spec_PPC): Now defined for generic subprograms + + * sem_prag.adb (Check_Precondition_Postcondition): Handle generic + subprogram case + +2008-07-31 Vincent Celier + + * s-os_lib.adb: Minor comment fix + +2008-07-31 Ed Schonberg + + * sem_ch6.adb (Analyze_Generic_Subprogram_Body): After analysis, + transfer pre/postconditions from generic copy to original tree, so that + they will appear in each instance. + (Process_PPCs): Do not transform postconditions into a procedure in a + generic context, to prevent double expansion of check pragmas. + + * sem_attr.adb: In an instance, the prefix of the 'result attribute + can be the renaming of the + current instance, so check validity of the name accordingly. + +2008-07-31 Robert Dewar + + * mlib-utl.ads: Minor reformatting + +2008-07-31 Ed Schonberg + + sem_attr.adb: 'Result can have an ambiguous prefix, and is resolved + from context. This attribute must be usable in Ada95 mode. + The attribute can appear in the body of a function marked + Inline_Always, but in this case the postocondition is not enforced. + + sem_prag.adb (Check_Precondition_Postcondition): within the expansion + of an inlined call pre- and postconditions are legal + +2008-07-31 Vincent Celier + + * prj.adb, prj.ads, clean.adb, prj-nmsc.adb: Remove declarations that + were for gprmake only + +2008-07-31 Robert Dewar + + * gnat_ugn.texi: Update -gnatN documentation. + + * gnat_rm.texi: Add note about pre/postcondition + pragmas not checked in conjunction with front-end inlining. + +2008-07-31 Robert Dewar + + * g-pehage.adb, g-pehage.ads: Minor reformatting + +2008-07-31 Arnaud Charlet + + * mlib-utl.ads, prj-makr.ads: Add comments. + +2008-07-30 Aaron W. LaFramboise + + * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS) + [WINDOWS]: Add s-winext.o. + +2008-07-30 Eric Botcazou + + PR ada/36554 + * back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi. + * gcc-interface/gigi.h (gigi): Take new standard_boolean parameter. + * gcc-interface/decl.c (gnat_to_gnu_entity) : + Set precision to 1 for subtype of BOOLEAN_TYPE. + (set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE. + (make_type_from_size): Deal with BOOLEAN_TYPE. + * gcc-interface/misc.c (gnat_print_type): Likewise. + * gcc-interface/trans.c (gigi): Take new standard_boolean parameter. + Set boolean_type_node as its translation in the table, as well + as boolean_false_node for False and boolean_true_node for True. + * gcc-interface/utils.c (gnat_init_decl_processing): Create custom + 8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM. + (create_param_decl): Deal with BOOLEAN_TYPE. + (build_vms_descriptor): Likewise. + (build_vms_descriptor64): Likewise. + (convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE. + +2008-07-30 Robert Dewar + + * exp_ch9.adb: Minor reformatting + + * exp_util.ads (Find_Prim_Op): Document that Program_Error is raised + if no primitive operation is found. + + * exp_util.adb: (Find_Prim_Op): Add comments for previous change + + * sem_ch8.adb: Minor reformatting + +2008-07-30 Laurent Pautet + + * g-pehage.adb: + Remove a limitation on the length of the words handled by the minimal + perfect hash function generator. + + * g-pehage.ads: + Detail the use of subprograms Insert, Initialize, Compute and Finalize. + Fix some typos. + +2008-07-30 Robert Dewar + + * gnatlink.adb: Minor reformatting + +2008-07-30 Thomas Quinot + + * rtsfind.adb (Check_RPC): Check version consistency even when not + generating RCI stubs. Provide more detailed error message in case of + mismatch. + +2008-07-30 Ed Schonberg + + * sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute + as a actual in an instance, check for a missing attribute to prevent + program_error on an illegal program. + + * exp_util.adb (Find_Prim_Op): Rather than Assert (False), raise program + error if primitive is not found, so that exception can be handled + elsewhere on illegal programs. + +2008-07-30 Robert Dewar + + * uintp.adb (UI_GCD): Fix potential overflow + +2008-07-30 Hristian Kirtchev + + * einfo.adb: Flag245 is now used. + (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Relax the assertion + check to include functions. + (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms. + (Wrapped_Entity, Set_Wrapped_Entity): Relax the assertion check to + include functions. + (Write_Entity_Flags): Move flag Is_Primitive, add Is_Private_Primitive + to the list of displayed flags. + + * einfo.ads: Update comment on the usage of Is_Primitive_Wrapper and + Wrapped_Entity. These two flags are now present in functions. + New flag Is_Private_Primitive. + (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms. + + * exp_ch9.adb: + (Build_Wrapper_Bodies): New subprogram. + (Build_Wrapper_Body): The spec and body have been moved to in + Build_Wrapper_ Bodies. Code cleanup. + (Build_Wrapper_Spec): Moved to the spec of Exp_Ch9. Code cleanup. + Wrappers are now generated for primitives declared between the private + and full view of a concurrent type that implements an interface. + (Build_Wrapper_Specs): New subprogram. + (Expand_N_Protected_Body): Code reformatting. Replace the wrapper body + creation mechanism with a call to Build_Wrapper_Bodies. + (Expand_N_Protected_Type_Declaration): Code reformatting. Replace the + wrapper spec creation mechanism with a call to Build_Wrapper_Specs. + (Expand_N_Task_Body): Replace the wrapper body creation + mechanism with a call to Build_Wrapper_Bodies. + (Expand_N_Task_Type_Declaration): Replace the wrapper spec + creation mechanism with a call to Build_Wrapper_Specs. + (Is_Private_Primitive_Subprogram): New subprogram. + (Overriding_Possible): Code cleanup. + (Replicate_Entry_Formals): Renamed to Replicate_Formals, code cleanup. + + * exp_ch9.ads (Build_Wrapper_Spec): Moved from the body of Exp_Ch9. + + * sem_ch3.adb: Add with and use clause for Exp_Ch9. + (Process_Full_View): Build wrapper specs for all primitives + that belong to a private view completed by a concurrent type + implementing an interface. + + * sem_ch6.adb (Analyze_Subprogram_Body): When the current subprogram + is a primitive of a + concurrent type with a private view that implements an interface, try to + find the proper spec. + (Analyze_Subprogram_Declaration): Mark a subprogram as a private + primitive if the type of its first parameter is a non-generic tagged + private type. + (Analyze_Subprogram_Specification): Code reformatting. + (Disambiguate_Spec): New routine. + (Find_Corresponding_Spec): Add a flag to controll the output of errors. + (Is_Private_Concurrent_Primitive): New routine. + + * sem_ch6.ads: + (Find_Corresponding_Spec): Add a formal to control the output of errors. + +2008-07-30 Doug Rupp + + * gigi.h (build_vms_descriptor64): New function prototype. + (fill_vms_descriptor): Modified function prototype. + + * utils.c (build_vms_descriptor64): New function. + + * utils2.c (fill_vms_descriptor): Fix handling on 32bit systems. + + * trans.c (call_to_gnu): Call fill_vms_descriptor with new third + argument. + + * decl.c (gnat_to_gnu_tree): For By_Descriptor mech, build both a + 64bit and 32bit descriptor and save the 64bit version as an alternate + TREE_TYPE in the parameter. + (make_type_from_size) : Use the appropriate mode for the + thin pointer. + + * ada-tree.h (DECL_PARM_ALT, SET_DECL_PARM_ALT): New macros. + +2008-07-30 Robert Dewar + + * make.adb: Minor reformatting + + * mlib-utl.adb: Minor reformatting + + * osint.ads: Minor reformatting + +2008-07-30 Jose Ruiz + + * adaint.c + (__gnat_file_exists): Do not use __gnat_stat for RTX. + (__main for RTX in RTSS mode): Create this dummy procedure symbol to + avoid the use of this symbol from libgcc.a in RTX kernel mode. + + * cio.c + (put_int, put_int_stderr, put_char, put_char_stderr): For RTX we call + the function RtPrintf for console output. + + * argv.c Do not use the environ variable for RTX. + + * gnatlink.adb (gnatlink): The part that handles the --RTS option has + been moved before the call to Osint.Add_Default_Search_Dirs in order + to take into account the flags in system.ads (RTX_RTSS_Kernel_Module) + from the appropriate run time. + + * targparm.ads + (RTX_RTSS_Kernel_Module_On_Target): Add this flag that is set to True if + target is a RTSS module for RTX. + + * targparm.adb (Targparm_Tags, RTX_Str, Targparm_Str): Add tag RTX for + RTX_RTSS_Kernel_Module + (Get_Target_Parameters): Add processing of RTX_RTSS_Kernel_Module flag. + + * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for RTX): Use gcc + exception handling mechanism for Windows and RTX in Win32 mode, but + not for RTX in kernel mode (RTSS). + (LIBGNAT_SRCS): Remove ada.h + +2008-07-30 Paolo Bonzini + + * gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove X_ADAFLAGS and + T_ADAFLAGS, replace ALL_ADA_CFLAGS with ADA_CFLAGS. + (ALL_ADA_CFLAGS): Remove, replace throughout with ADA_CFLAGS. + * gcc-interface/Makefile.in (XCFLAGS, X_CFLAGS, X_CPPFLAGS, T_CPPFLAGS, + X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS, ADA_CFLAGS, + ALL_ADA_CFLAGS): Remove. + (ALL_ADAFLAGS, MOST_ADAFLAGS): Remove X_ADAFLAGS and T_ADAFLAGS, + replace ALL_ADA_CFLAGS with ADA_CFLAGS. + (GCC_CFLAGS): Remove X_CFLAGS. + (LOOSE_CFLAGS): Remove X_CFLAGS and XCFLAGS. + (ALL_CPPFLAGS): Remove X_CPPFLAGS and T_CPPFLAGS. + (ADA_CFLAGS): Substitute. + +2008-07-30 Laurent Guerby + + PR ada/5911 + * gcc-interface/Makefile.in (MULTISUBDIR, RTSDIR): New variables. + Pass MULTISUBDIR to recursive make. Use $(RTSDIR) instead of rts. + Replace stamp-gnatlib* by stamp-gnatlib*-rts. + * gcc-interface/Make-lang.in: Replace stamp-gnatlib2 + by stamp-gnatlib2-rts. + +2008-07-30 Ralf Wildenhues + + PR documentation/15479 + * gnat-style.texi: Remove AdaCore copyright statement and GPL + statement for GNAT. Add @copying stanza, use it. Update to + GFDL 1.2. Do not list GFDL as Invariant Section, do not list + title as Front-Cover Text. + * gnat_rm.texi: Likewise. + * gnat_ugn.texi: Likewise. + +2008-07-29 Jan Hubicka + + * trans.c (process_inlined_subprograms): Remove tree_really_inline + check. + +2008-07-29 Arnaud Charlet + + * gcc-interface: New directory. + + * ada-tree.def, cuintp.c, gigi.h, Makefile.in, targtyps.c, ada.h, + utils.c, ada-tree.h, decl.c, lang.opt, Make-lang.in, trans.c, + config-lang.in, deftarg.c, lang-specs.h, misc.c, utils2.c: Moved + to gcc-interface subdirectory. + +2008-07-29 Aaron W. LaFramboise + + * Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Remove extra s-win32.o. + +2008-07-28 Jan Hubicka + + * misc.c (gnat_post_options): Do not set flag_no_inline. + +2008-07-28 Richard Guenther + + Merge from gimple-tuples-branch. + + 2008-07-22 Olivier Hainque + + * gigi.h (end_subprog_body): New ELAB_P argument, saying if + this is called for an elab proc to be discarded if empty. + * utils.c (end_subprog_body): Honor ELAB_P. + (build_function_stub): Adjust call to end_subprog_body. + * trans.c (Subprogram_Body_to_gnu): Likewise. + (gigi): Reorganize processing of elab procs to prevent + gimplifying twice, using the new end_subprog_body argument. + + 2008-07-19 Richard Guenther + + * Make-lang.in (trans.o): Add tree-iterator.h dependency. + (utils.o): Likewise. + * trans.c: Include tree-iterator.h. + (gnat_gimplify_expr): Adjust prototype. Fix typo. + (gnat_gimplify_stmt): Use SET_EXPR_LOCATION. + (set_expr_location_from_node): Likewise. + (gigi): Tuplify. + * ada-tree.h (union lang_tree_node): Use TREE_CHAIN instead + of GENERIC_NEXT. + * utils.c: Include tree-iterator.h. + * gigi.h (gnat_gimplify_expr): Adjust prototype. + + 2008-07-18 Aldy Hernandez + + * trans.c: Include gimple.h instead of tree-gimple.h. + * utils.c: Same. + + 2008-07-14 Aldy Hernandez + + * trans.c (gnat_gimplify_expr): Use gimplify_assign. + +2008-07-25 Jan Hubicka + + * utils.c (end_subprog_body): Remove inline trees check. + * misc.c (gnat_post_options): Do not set flag_inline_trees. + +2008-07-25 Rainer Orth + + * raise-gcc.c: Move tsystem.h before tm.h. + +2008-07-20 Arnaud Charlet + + * gnathtml.pl: New file. + +2008-07-19 Olivier Hainque + + * targtyps.c (get_target_default_allocator_alignment): Use + MALLOC_ABI_ALIGNMENT. + +2008-07-17 Olivier Hainque + + * adaint.c (__MINGW32__ section): Include ctype.h and define + a fallback ISALPHA if IN_RTS. + (__gnat_is_absolute_path): Use ISALPHA instead of isalpha. + +2008-07-17 Olivier Hainque + + * utils.c (create_var_decl_1): Relax expectations on the PUBLIC_FLAG + argument, to apply to references in addition to definitions. Prevent + setting TREE_STATIC on externals. + (gnat_pushdecl): Always clear DECL_CONTEXT on public externals. + +2008-07-14 Ralf Wildenhues + + PR documentation/15479 + * gnat_ugn.texi (@ovar): New macro, from autoconf.texi. + Replace backets around optional parameters with @ovar + where possible, use @r{[}, @r{]} otherwise. + Replace some @r, @i, and @emph with @var where appropriate. + +2008-07-02 Eric Botcazou + + * decl.c (make_type_from_size) : Fix typo and tidy up. + +2008-06-27 Kaveh R. Ghazi + + * ada-tree.h (SET_TYPE_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Fix + -Wc++-compat warnings. + * adaint.c (__gnat_locate_regular_file, __gnat_locate_exec, + __gnat_locate_exec_on_path): Likewise. + * decl.c (annotate_value): Likewise. + * misc.c (gnat_handle_option): Likewise. + * trans.c (gnat_to_gnu, extract_encoding, decode_name, + post_error_ne_tree): Likewise. + +2008-06-27 Eric Botcazou + + * utils.c (convert) : When converting it to a packable + version of its type, attempt to first convert its elements. + +2008-06-26 Chris Proctor + + * Makefile.in: Fix *86 kfreebsd target specific pairs. + +2008-06-25 Samuel Tardieu + + * Makefile.in: Use mlib-tgt-specific-linux.adb for sh4 as well. + +2008-06-24 Eric Botcazou + + * utils2.c (known_alignment): Derive the alignment from pointed-to + types only if it is otherwise unknown. + : Tidy. + : Likewise. + : If the alignment of the offset is unknown, use + that of the base. + +2008-06-20 John David Anglin + + PR ada/36573 + * s-osinte-hpux-dce.ads (SA_ONSTACK): Define. + +2008-06-15 Ralf Wildenhues + + * gnat_rm.texi (Implementation Defined Characteristics) + (Standard Library Routines): Use @smallexample for indented + text. Drop Indentation outside examples. + * gnat_ugn.texi: Likewise. + +2008-06-13 Olivier Hainque + + * decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0 + if undefined. + (gnat_to_gnu_entity) : Request stack + realignment with force_align_arg_pointer attribute on foreign + convention subprograms if FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN. + +2008-06-13 Olivier Hainque + + * utils.c (rest_of_record_type_compilation): When computing + encodings for the components of a variable size type, early + strip conversions on the current position expression to make + sure it's shape is visible. Use remove_conversions for this + purpose. + +2008-06-12 Eric Botcazou + + * decl.c (gnat_to_gnu_entity) : In the case of a + constrained subtype of a discriminated type, discard the fields that + are beyond its limits according to its size. + +2008-06-10 Olivier Hainque + + * utils.c (create_subprog_decl): If this is for the 'main' entry + point according to the asm name, redirect main_identifier_node. + +2008-06-09 Eric Botcazou + + * decl.c (components_to_record): Adjust the packedness for the + qualified union as well. + +2008-06-09 Arnaud Charlet + + * Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle + checks non fatal. + +2008-06-07 Samuel Tardieu + + * sem_res.adb (Large_Storage_Type): A type is large if it + requires as many bits as Positive to store its values and its + bounds are known at compile time. + * sem_ch13.adb (Minimum_Size): Note that this function returns + 0 if the size is not known at compile time. + +2008-06-06 Nicolas Setton + Olivier Hainque + + * ada-tree.h (DECL_PARALLEL_TYPE): New language specific + attribute, parallel descriptive type attached to another + type for debug info generation purposes. + * utils.c (add_parallel_type): New function, register + parallel type to be attached to a type. + (get_parallel_type): New function, fetch a registered + parallel type, if any. + (rest_of_record_type_compilation): Register the parallel + type we make for variable size records. + * gigi.h (add_parallel_type, get_parallel_type): Declare. + * decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the + parallel debug types we make. + * trans.c (extract_encoding, decode_name): New functions. + (gigi): If the DWARF attribute extensions are available, setup + to use them. + * lang.opt: Register language specific processing request + for -gdwarf+. + * misc.c (gnat_dwarf_extensions): New global variable. How much + do we want of our DWARF extensions. 0 by default. + (gnat_handle_option) : Increment gnat_dwarf_extensions. + (gnat_post_options): Map gnat_dwarf_extensions to the + commonuse_gnu_debug_info_extensions for later processing. + +2008-06-04 Samuel Tardieu + + * einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP. + +2008-06-03 Ralf Wildenhues + + * Makefile.in (common_tools): Fix typos in $(exeext) extension. + * gnat_ugn.texi (Style Checking) + (Adding the Results of Compiler Checks to gnatcheck Output) + (Example of Binder Output File): Fix typos. + * ali.ads, einfo.ads, exp_ch4.adb, exp_ch6.adb, + exp_dbug.ads, exp_dist.adb, exp_smem.adb, g-socket.ads, + s-osinte-rtems.ads, s-shasto.ads, s-stausa.adb, + s-stausa.ads, sem_cat.adb, sem_ch12.adb, sem_ch3.adb, + sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_util.ads, + sinfo.ads, utils.c: Fix typos in comments. + * sem_ch6.adb, vms_data.ads: Fix typos in strings. + +2008-05-29 Thomas Quinot + + * sem_eval.adb: Minor reformatting + +2008-05-29 Ed Schonberg + + * sem_ch6.adb (Analyze_Subprogram_Specification): if the return type + is abstract, do not apply abstractness check on subprogram if this is + a renaming declaration. + +2008-05-29 Arnaud Charlet + + PR ada/864 + * osint.ads, osint.adb (Program_Name): New parameter "Prog" to + allow recognition of program suffix in addition to prefix. + + * gnatchop.adb (Locate_Executable): Add support for prefix. + + * make.adb, gnatcmd.adb, gnatlink.adb, prj-makr.adb, + mlib-utl.adb: Adjust calls to Program_Name. + +2008-05-29 Robert Dewar + + * sem_ch3.adb: Minor reformatting + * sem_prag.adb: Minor reformatting + * sem_res.adb: Minor reformatting + * sinput-p.ads: Minor reformatting + +2008-05-29 Javier Miranda + + * sem_util.adb: + (Abstract_Interface_List): Add missing support for full type-declaration + associated with synchronized types. + +2008-05-29 Robert Dewar + + * sem_eval.adb (Is_Same_Value): Take care of several more cases + +2008-05-28 Ed Schonberg + + * sem_ch5.adb (Analyze_Assignment): If the name is of a local anonymous + access type, wrap the expression in a conversion to force an + accessibility check. + + * sem_aggr.adb (Aggegate_Constraint_Checks): Apply conversion to force + accessibility checks even when expansion is disabled in order to + generate messages in the presence of previous errors or in + semantics-only mode. + +2008-05-28 Eric Botcazou + + * system-lynxos-ppc.ads (Always_Compatible_Rep): Set to False. + * system-lynxos-x86.ads (Always_Compatible_Rep): Set to False. + +2008-05-28 Vincent Celier + + PR ada/34446 + * gnat_ugn.texi: Document restriction introduced on 2007-04-20 in + preprocessing expressions + +2008-05-28 Vincent Celier + + * sinput-p.adb (Source_File_Is_Subunit): Allow special character used + for preprocessing + + * sinput-p.ads: Minor comment update and reformatting + +2008-05-28 Ed Schonberg + + * sem_res.adb (Valid_Conversion): An anonymous access_to_subprogram + type has a deeper level than any master only when it is the type of an + access parameter. + +2008-05-28 Javier Miranda + + * sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation. + +2008-05-28 Javier Miranda + + * sem_util.ads (Find_Overridden_Synchronized_Primitive): Removed. + * sem_util.adb (Find_Overridden_Synchronized_Primitive): Removed. + * sem_ch6.adb (Check_Synchronized_Overriding): Remove one formal. + Add code that was previously located in + Find_Overridden_Synchronized_Primitive because it is only used here. + +2008-05-28 Sergey Rybin + + * sem_prag.adb (Process_Extended_Import_Export_Subprogram_Pragma): Set + Entity field for formal_parameter_NAME in MECHANISM_ASSOCIATION. + +2008-05-28 Robert Dewar + + * restrict.ads: + Add missing restrictions, and properly label all GNAT defined ones + + * rtsfind.ads: + Add entry for Ada_Real_Time.Timing_Events.Timing_Event + Add entry for Ada.Task_Termination.Set_Specific_Handler + Add entry for Ada.Task_Termination.Specific_Handler + + * s-rident.ads: + Add missing restrictions and properly mark all gnat defined ones + + * sem_ch3.adb: + (Analyze_Object_Declaration): Check No_Local_Timing_Events restriction + + * sem_res.adb: + (Resolve_Call): Check violation of No_Specific_Termination_Handlers + + * gnat_rm.texi: Add missing restrictions, and properly label all + GNAT defined ones + +2008-05-28 Robert Dewar + + * restrict.adb: + (Check_Restriction): violation of restriction No_Finalization is + treated as a serious error to stop expansion + +2008-05-28 Robert Dewar + + * exp_util.adb: Minor reformatting + * exp_util.ads: Minor reformatting. + +2008-05-28 Arnaud Charlet + + * Make-lang.in: Remove gprmake. + + * gprmake.adb, makegpr.ads, makegpr.adb: Removed. + +2008-05-28 Ed Schonberg + + * sem_ch3.adb (Diagnose_Interface): Cleanup error messages involving + improper progenitor names, and avoid cascaded errors. + +2008-05-28 Robert Dewar + + * gnat_rm.texi: Add note on Old giving warning when applied to constant + + * sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is + a constant + +2008-05-28 Robert Dewar + + * exp_fixd.adb (Build_Multiply): Correct one-off error in computing + size + +2008-05-28 Robert Dewar + + * exp_ch5.adb: + (Expand_Simple_Function_Return): Copy unaligned result into temporary + +2008-05-28 Javier Miranda + + * sem_ch3.adb (Derive_Progenitor_Primitives): Add missing support + for user-defined predefined primitives. + + * sem_util.adb (Matches_Prefixed_View_Profile): Ditto. + (Find_Overridden_Synchronized_Primitive): Ditto. + + * sem_ch6.adb (Check_Synchronized_Overriding): Ditto. + +2008-05-27 Arnaud Charlet + + * a-ststio.adb, s-direio.adb: + Further code clean up of previous change. + Update comments. + +2008-05-27 Vincent Celier + + * prj-nmsc.adb: Minor reformatting + +2008-05-27 Bob Duff + + * sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an + untagged private type with a tagged full type, where the full type has + a self reference, create the corresponding class-wide type early, in + case the self reference is "access T'Class". + +2008-05-27 Ed Schonberg + + * exp_aggr.adb (Build_Array_Aggr_Code): If component type includes + tasks and context is an object declaration. create master entity before + expansion. + +2008-05-27 Robert Dewar + + * mlib-prj.adb: Minor reformatting + + * prj-part.adb: Minor reformatting + + * prj.ads: Minor reformatting + + * exp_ch3.adb: Minor reformatting. + + * sem_ch3.ads: Minor reformatting + + * sem_eval.adb: Minor reformatting + +2008-05-27 Vincent Celier + + * gnatcmd.adb: + -gnat stack spawns gnatstack, not -gnatstack + +2008-05-27 Ed Schonberg + + * exp_aggr.adb (Expand_Array_Aggregate): If the aggregate contains + tasks, create an activation chain now, before the expansion into + assignments and build-in-place calls that require the presence of an + activation chain. + (Backend_Processing_Possible): If the component type is inherently + limited, the aggregate must be expanded into individual built-in-place + assignments. + + * sem_ch6.adb (Build_Extra_Formals): Use underlying type of result to + determine whether an allocation extra parameter must be built, to + handle case of a private type whose full type is a discriminated type + with defaults. + +2008-05-27 Bob Duff + + * gnat_rm.texi: + Document the new behavior regarding trampolines. + +2008-05-27 Arnaud Charlet + + * a-direio.adb, a-sequio.adb: Replace address clause by + unrestricted_access, simpler and compatible with .NET. + +2008-05-27 Vincent Celier + + * prj-part.adb: + (Project_Path_Name_Of.Try_Path): Do not use Locate_Regular_File to find + a project file, so that symbolic links are not resolved. + +2008-05-27 Arnaud Charlet + + * a-ztexio.adb, a-textio.adb, a-witeio.adb, s-direio.adb: + Replace heavy address clause by 'Unrestricted_Access, cleaner and more + portable across GNAT targets, since this kind of address clause is not + supported by VM back-ends (.NET/JGNAT). + +2008-05-27 Arnaud Charlet + + * bindgen.adb: Update comments. + + * s-tasinf-mingw.adb: Add "with" of System.OS_Interface + +2008-05-27 Vincent Celier + + * gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb, + prj.ads, makegpr.adb, makeutl.adb, clean.adb, prj-nmsc.adb, + mlib-tgt.adb, prj-env.adb, prj-env.ads: + (Path_Information): New record type + Use component of type Path_Information when there are two paths, one in + canonical format and one in display format. + Update the project manager to these new components. + +2008-05-27 Robert Dewar + + * makeutl.adb: Minor reformatting + * prj-nmsc.adb: Minor reformatting + * s-stausa.adb: Minor reformatting + * s-stausa.ads: Minor reformatting + * sem_ch6.adb: Minor reformatting + +2008-05-27 Thomas Quinot + + * sem_res.adb: Minor comment fixes + +2008-05-27 Thomas Quinot + + * makeutl.adb: Minor code reorganization + + * exp_aggr.adb: Add ??? comment + Fix typo + + * exp_ch6.adb: Minor reformatting + +2008-05-27 Quentin Ochem + + * s-stausa.adb (Initialize): Updated result initialization, and + initialization of environment stack. + (Fill_Stack): Improved computation of the pattern zone, taking into + account already filled at the calling point. + (Get_Usage_Range): Now uses Min_Measure and Max_Measure instead of + Measure and Overflow_Guard. + (Report_Result): Fixed computation of the result using new fields of + Stack_Analyzer. + + * s-stausa.ads (Initialize_Analyzer): Replaced Size / Overflow_Guard + params by more explicit Stack_Size / Max_Pattern_Size params. + (Stack_Analyzer): Added distinct Stack_Size & Pattern_Size fields. + Added Stack_Used_When_Filling field. + (Task_Result): Replaced Measure / Overflow_Guard by more explicit + Min_Measure and Max_Measure fields. + + * s-tassta.adb (Task_Wrapper): Updated call to Initialize_Analyzer. + +2008-05-27 Vincent Celier + + * prj-nmsc.adb: + (Check_File): Make sure that a unit that replaces the same unit in a + project being extended is properly processed. + +2008-05-27 Ed Schonberg + + * sem_ch3.adb: + (Get_Discr_Value): Remove obsolete code that failed to find the value + of a discriminant for an inherited task component appearing in a type + extension. + +2008-05-27 Thomas Quinot + + (System.File_IO.{Close, Delete, Reset}): + Change File parameter from "in out AFCB_Ptr" to "access AFCB_Ptr". + + (Ada.*_IO.{Close, Delete, Reset, Set_Mode}): + Pass File parameter by reference. + +2008-05-27 Vincent Celier + + * prj-nmsc.adb: + (Process_Sources_In_Multi_Language_Mode): Check that there are not two + sources of the same project that have the same object file name. + (Find_Explicit_Sources): Always remove a source exception that was not + found. + +2008-05-27 Thomas Quinot + + * sem_ch3.adb: Minor reformatting + +2008-05-27 Ed Schonberg + + * sem_ch6.adb: + (Is_Interface_Conformant): Handle properly a primitive operation that + overrides an interface function with a controlling access result. + (Type_Conformance): If Skip_Controlling_Formals is true, when matching + inherited and overriding operations, omit as well the conformance check + on result types, to prevent spurious errors. + +2008-05-27 Vincent Celier + + * makeutl.ads, makeutl.adb: + (Set_Location): New procedure + (Get_Location): New function + (Update_Main): New procedure + +2008-05-27 Vincent Celier + + * prj-nmsc.adb: + (Check_Library): Allow standard project to be extended as a static + library project. + (Get_Mains): Do not inherit attribute Main in an extending library + project. + +2008-05-27 Eric Botcazou + + * system-darwin-ppc.ads (Always_Compatible_Rep): Set to False. + * system-darwin-x86.ads (Always_Compatible_Rep): Likewise. + * system-freebsd-x86.ads (Always_Compatible_Rep): Likewise. + * system-linux-ppc.ads (Always_Compatible_Rep): Likewise. + * system-linux-x86_64.ads (Always_Compatible_Rep): Likewise. + * system-linux-x86.ads (Always_Compatible_Rep): Likewise. + * system-mingw.ads (Always_Compatible_Rep): Likewise. + * system-solaris-sparc.ads (Always_Compatible_Rep): Likewise. + * system-solaris-sparcv9.ads (Always_Compatible_Rep): Likewise. + * system-solaris-x86.ads (Always_Compatible_Rep): Likewise. + +2008-05-27 Ed Schonberg + + * sem_attr.adb: add guard to previous patch. + +2008-05-27 Ed Schonberg + + * exp_disp.adb (Build_Dispatch_Tables): For a private type completed by + a synchronized tagged type, do not attempt to build dispatch table for + full view. The table is built for the corresponding record type, which + has its own declaration. + +2008-05-27 Gary Dismukes + + * sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype + to the known type entity E, rather than setting it to Any_Type. Fixes + possible blowup in function Base_Init_Proc, as called from Freeze_Entity + for objects whose type had an illegal constraint. + +2008-05-27 Vincent Celier + + * gnat_ugn.texi: + Add succinct documentation for attribute Excluded_Source_List_File + +2008-05-27 Vincent Celier + + * prj-attr.adb: Add new project level attribute Map_File_Option + + * prj-nmsc.adb (Process_Linker): Process new attribute Map_File_Option + + * prj.ads: Minor reformatting and comment update + (Project_Configuration): New component Map_File_Option + + * snames.adb: New standard name Map_File_Option + + * snames.ads: New standard name Map_File_Option + +2008-05-27 Vincent Celier + + * xsnames.adb: Remove unused variable Oname + +2008-05-27 Doug Rupp + + * exp_ch6.adb: + (Expand_N_Function_Call): Fix comments. Minor reformatting. + + * exp_vfpt.ads: + (Expand_Vax_Foreign_Return): Fix comments. + +2008-05-27 Thomas Quinot + + * exp_dist.adb: Minor reformating + +2008-05-26 Gary Dismukes + + * exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for + No_Default_Initialization, which is now delayed until the freeze point + of the object. Add a comment about deferral of the check. + + * freeze.adb (Freeze_Entity): The check for No_Default_Initialization + on objects is moved here. + +2008-05-26 Eric Botcazou + + * s-casi16.adb (Uhalf): Rewrite it as integer with small alignment. + (Compare_Array_S16): Adjust for above change. + * s-casi32.adb (Uword): Likewise. + (Compare_Array_S32): Likewise. + * s-casi64.adb (Uword): Likewise. + (Compare_Array_S64): Likewise. + * s-caun16.adb (Uhalf): Likewise. + (Compare_Array_U16): Likewise. + * s-caun32.adb (Uword): Likewise. + (Compare_Array_U32): Likewise. + * s-caun64.adb (Uword): Likewise. + (Compare_Array_U64): Likewise. + +2008-05-26 Robert Dewar + + * exp_ch6.adb: Add ??? comment for previous change + + * exp_vfpt.adb: Minor reformatting + + * exp_vfpt.ads: Add ??? comment for last change + + * sem_attr.adb: Add some ??? comments for previous change + + * s-vaflop.ads: Add comments for previous change + +2008-05-26 Doug Rupp + + * s-vaflop-vms-alpha.adb: + Remove System.IO use clause, to prevent spurious ambiguities when + package is access through rtsfind. + +2008-05-26 Sergey Rybin + + * tree_io.ads (ASIS_Version_Number): Update because of the changes + made in front-end + +2008-05-26 Ed Schonberg + + * sem_attr.adb: + (Resolve_Attribute, case 'address): S (A .. B)' address can be safely + converted to S (A)'address only if A .. B is known to be a non-null + range. + +2008-05-26 Doug Rupp + + * s-vaflop.adb: + (Return_D, Return_F, Return_G): New functions. + + * s-vaflop.ads: + (Return_D, Return_F, Return_G): New functions. + + * exp_vfpt.adb: + (Expand_Vax_Foreign_Return): New procedure + + * exp_vfpt.ads: + (Expand_Vax_Foreign_Return): New procedure + + * rtsfind.ads: + (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids + (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements + + * exp_ch6.adb: + Import Exp_Vfpt + (Expand_N_Function_Call): Call Expand_Vax_Foreign_Return. + + * s-vaflop-vms-alpha.adb: + (Return_D, Return_F, Return_G): New functions. + +2008-05-26 Gary Dismukes + + * exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy + init proc entity when there is actual default initialization associated + with the component type, to avoid spurious errors on objects of scalar + array types that are marked Is_Public when No_Default_Initialization + applies. + +2008-05-26 Thomas Quinot + + * rtsfind.ads, rtsfind.adb: + (RE_Get_RACW): New runtime library entity provided by PolyORB s-parint. + (Check_RPC): Support per-PCS-kind API versioning. + + exp_dist.ads, exp_dist.adb: + (Build_Stub_Tag, Get_Stub_Elements): New utility subprograms. + (PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime + library function Get_RACW. + (PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime + library function Get_Reference. + (PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going + through an intermediate Any. + (PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of + going through an intermediate Any. + + * sem_dist.adb: Minor reformatting. + +2008-05-26 Javier Miranda + + * einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias. + (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias. + (Is_Internal): Adding documentation on internal entities that have + attribute Interface_Alias (old attribute Abstract_Interface_Alias) + + * einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias. + (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias. + Added assertion to force entities with this attribute to have + attribute Is_Internal set to True. + (Next_Tag_Component): Simplify assertion using attribute Is_Tag. + + * sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been + renamed as Derive_Progenitor_Subprograms. In addition, its code is + a new implementation. + (Add_Interface_Tag_Components): Remove special management of + synchronized interfaces. + (Analyze_Interface_Declaration): Minor reformating + (Build_Derived_Record_Type): Minor reformating + (Check_Abstract_Overriding): Avoid reporting error in case of abstract + predefined primitive inherited from interface type because the body of + internally generated predefined primitives of tagged types are generated + later by Freeze_Type + (Derive_Subprogram): Avoid generating an internal name if the parent + subprogram overrides an interface primitive. + (Derive_Subprograms): New implementation that keeps separate the + management of tagged types not implementing interfaces, from tagged + types that implement interfaces. + (Is_Progenitor): New implementation. + (Process_Full_View): Add documentation + (Record_Type_Declaration): Replace call to Derive_Interface_Subprograms + by call to Derive_Progenitor_Subprograms. + + * sem_ch6.ads (Is_Interface_Conformant): New subprogram. + (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument + Skip_Controlling_Formals. + + * sem_ch6.adb (Is_Interface_Conformant): New subprogram. + (Check_Conventions): New implementation. Remove local subprogram + Skip_Check. Remove formal Search_From of routine Check_Convention. + (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument + Skip_Controlling_Formals. + (New_Overloaded_Entity): Enable addition of predefined dispatching + operations. + + * sem_disp.ads + (Find_Primitive_Covering_Interface): New subprogram. + + * sem_disp.adb (Check_Dispatching_Operation): Disable registering + the task body procedure as a primitive of the corresponding tagged + type. + (Check_Operation_From_Private_Type): Avoid adding twice an entity + to the list of primitives. + (Find_Primitive_Covering_Interface): New subprogram. + (Override_Dispatching_Operation): Add documentation. + + * sem_type.adb (Covers): Minor reformatings + + * sem_util.ads (Collect_Abstract_Interfaces): Renamed as + Collect_Interfaces. + Rename formal. + (Has_Abstract_Interfaces): Renamed as Has_Interfaces. + (Implements_Interface): New subprogram. + (Is_Parent): Removed. + (Primitive_Names_Match): New subprogram. + (Remove_Homonym): Moved here from Derive_Interface_Subprograms. + (Ultimate_Alias): New subprogram. + + * sem_util.adb (Collect_Abstract_Interfaces): Renamed as + Collect_Interfaces. + Remove special management for synchronized types. Rename formal. Remove + internal subprograms Interface_Present_In_Parent and Add_Interface. + (Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion + on non-record types by code to return false in such case. + (Implements_Interface): New subprogram. + (Is_Parent): Removed. No special management is now required for + synchronized types covering interfaces. + (Primitive_Names_Match): New subprogram. + (Remove_Homonym): Moved here from Derive_Interface_Subprograms. + (Ultimate_Alias): New subprogram. + + * exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram. + Add internal entities associated with secondary dispatch tables to + the list of tagged type primitives that are not interfaces. + (Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities + (Make_Predefined_Primitive_Specs): Code reorganization to improve + the management of predefined equality operator. In addition, if + the type has an equality function corresponding with a primitive + defined in an interface type, the inherited equality is abstract + as well, and no body can be created for it. + + * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved from + exp_util to exp_disp. + (Is_Predefined_Interface_Primitive): New subprogram. Returns True if + an entity corresponds with one of the predefined primitives required + to implement interfaces. + Update copyright notice. + + * exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the + final check on abstract subprograms all the primitives associated with + interface primitives because they must be visible in the public and + private part. + (Write_DT): Use Find_Dispatching_Type to locate the name of the + interface type. This allows the use of this routine, for debugging + purposes, when the tagged type is not fully decorated. + (Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp. + Factorize code calling new subprogram Is_Predefined_Interface_Primitive. + (Is_Predefined_Interface_Primitive): New subprogram. Returns True if an + entity corresponds with one of the predefined primitives required to + implement interfaces. + + * exp_util.adb (Find_Interface_ADT): New implementation + (Find_Interface): Removed. + + * sprint.adb (Sprint_Node_Actual): Generate missing output for the + list of interfaces associated with nodes + N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration. + +2008-05-26 Thomas Quinot + + * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on + condition for assignment to temporary. + +2008-05-26 Ed Schonberg + + * exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint + checks on the upper bound if the index type is a modular type, to + prevent wrap-around computations when size is close to upper bound of + type. + +2008-05-26 Robert Dewar + + * sem_ch3.adb: Minor reformatting + +2008-05-26 Ed Schonberg + + * sem_ch12.adb (Remove_Parent): Use specification of instance + to retrieve generic parent, + to handle properly the case where the instance is a child unit. + Add guard to handle properly wrapper packages. + Minor reformatting + +2008-05-26 Thomas Quinot + + * sinfo.ads: Minor reformatting + +2008-05-26 Hristian Kirtchev + + * exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting. + Generate a tag check when the result subtype of a function, defined by + an access definition, designates a specific tagged type. + (Make_Tag_Check): New routine. + +2008-05-26 Arnaud Charlet + + * ceinfo.adb, csinfo.adb: Remove warnings. Update headers. + +2008-05-26 Eric Botcazou + + * gigi.h (gigi): Remove bogus ATTRIBUTE_UNUSED marker. + (builtin_decl_for): Likewise. + * trans.c (gigi): Likewise. + * utils.c (def_builtin_1): Fix formatting. + +2008-05-26 Hristian Kirtchev + + * exp_ch3.adb (Build_Init_Statements): Alphabetize local variables. + Create the statements which map a string name to protected or task + entry indix. + + * exp_ch9.adb: Add with and use clause for Stringt. + Minor code reformatting. + (Build_Entry_Names): New routine. + (Make_Initialize_Protection, Make_Task_Create_Call): Generate a value + for flag Build_Entry_Names which controls the allocation of the data + structure for the string names of entries. + + * exp_ch9.ads (Build_Entry_Names): New subprogram. + + * exp_util.adb (Entry_Names_OK): New function. + + * exp_util.ads (Entry_Names_OK): New function. + + * rtsfind.ads: Add RO_PE_Set_Entry_Name and RO_TS_Set_Entry_Name to + enumerations RE_Id and RE_Unit_Table. + + * s-taskin.adb Add with and use clause for Ada.Unchecked_Deallocation. + (Free_Entry_Names_Array): New routine. + + * s-taskin.ads: Comment reformatting. + Add types String_Access, Entry_Names_Array, Entry_Names_Array_Access. + Add component Entry_Names to record Ada_Task_Control_Block. + (Free_Entry_Names_Array): New routine. + + * s-tassta.adb (Create_Task): If flag Build_Entry_Names is set, + dynamically allocate an array + of string pointers. This structure holds string entry names. + (Free_Entry_Names): New routine. + (Free_Task, Vulnerable_Free_Task): Deallocate the entry names array. + (Set_Entry_Names): New routine. + + * s-tassta.ads: + (Create_Task): Add formal Build_Entry_Names. The flag is used to + control the allocation of the data structure which stores entry names. + (Set_Entry_Name): New routine. + + * s-tpoben.adb: + Add with and use clause for Ada.Unchecked_Conversion. + (Finalize): Deallocate the entry names array. + (Free_Entry_Names): New routine. + (Initialize_Protection_Entries): When flag Build_Entry_Names is set, + create an array of string pointers to hold the entry names. + (Set_Entry_Name): New routine. + + * s-tpoben.ads: + Add field Entry_Names to record Protection_Entries. + (Initialize_Protection_Entries): Add formal Build_Entry_Names. + (Set_Entry_Name): New routine. + +2008-05-26 Vincent Celier + + * prj-nmsc.adb: + (Process_Project_Level_Simple_Attributes): process attribute Library_GCC + + * prj.ads: + (Project_Configuration): New component Shared_Lib_Driver + +2008-05-26 Ed Schonberg + + * inline.adb: + (Cleanup_Scopes): For a protected operation, transfer finalization list + to protected body subprogram, to force cleanup actions when needed. + +2008-05-26 Robert Dewar + + * sem_cat.adb: Minor reformatting + + * gnatname.adb: Minor reformatting + + * osint.ads: Minor reformatting + + * s-carun8.ads: Minor reformatting + + * g-heasor.ads: Minor comment fix (unit is now pure) + +2008-05-26 Robert Dewar + + * exp_ch2.adb: + (Expand_Current_Value): Properly type generated integer literal + +2008-05-26 Sergey Rybin + + * gnat_ugn.texi: Add description for the new gnatcheck rule - + Separate_Numeric_Error_Handlers. + +2008-05-26 Pascal Obry + + * sem_aggr.adb: Minor reformatting. + +2008-05-26 Jose Ruiz + + * s-osinte-aix.adb: + (To_Target_Priority): Setting the time slice value to 0 or greater sets + the scheduling policy to FIFO within priorities or round-robin + respectively. + Hence, the priority must be set in this case to the one selected by the + user. + +2008-05-26 Ed Schonberg + + * sem_ch12.adb: + (Remove_Parent): If the enclosing scope is an instance whose generic + parent is declared within some parent scope of the just completed + instance, make full views of the entities in that parent visible, when + applicable. + +2008-05-26 Kai Tietz + + * mingw32.h (STD_MINGW): Set to true for target w64. + +2008-05-25 Eric Botcazou + + * trans.c (Attribute_to_gnu) : Set TREE_NO_TRAMPOLINE + instead of TREE_STATIC on the ADDR_EXPR. + +2008-05-24 Eric Botcazou + + * trans.c (gnat_to_gnu): Do not set source location info on NOP_EXPRs. + (Sloc_to_locus): Do not overwrite known GCC locations when translating + GNAT standard locations. + +2008-05-23 Eric Botcazou + + * gigi.h (mark_visited): Declare. + * decl.c (gnat_to_gnu_entity): Use mark_visited instead of marking + only the topmost node of expressions. + (elaborate_expression_1): Look deeper for read-only variables. + * trans.c (add_decl_expr): Use mark_visited instead of marking by hand. + (mark_visited): Move logic to mark_visited_r. Invoke walk_tree. + (mark_visited_r): New function. + +2008-05-23 Vincent Celier + + * snames.adb: New standard name Excluded_Source_List_File. + + * snames.ads: New standard name Excluded_Source_List_File. + + * prj-attr.adb: New project level attribute Excluded_Source_List_File. + + * prj-nmsc.adb: (Find_Excluded_Sources): New parameter Project. + Get excluded sources from + file indicated by attribute Excluded_Source_List_File, when present and + neither Excluded_Source_Files nor Locally_Removed_Files are declared. + +2008-05-23 Robert Dewar + + * exp_dist.adb: Minor reformatting + +2008-05-23 Ed Schonberg + + * sem_attr.adb (Resolve_Attribute, case 'address): If the prefix is a + slice, convert it to an indexed component, which is equivalent, more + efficient, and usable even if the slice itself is not addressable. + +2008-05-23 Olivier Hainque + + * gnat_ugn.texi (Calling Conventions): Document that the Intrinsic + convention also allows access to named compiler built-in subprograms + such as the GCC __builtin family. + +2008-05-23 Vincent Celier + + * prj-nmsc.adb (Check_Naming_Schemes): Check a file for spec, body and + sep. If there are several possibilities, choose the one with the + longer prefix. + +2008-05-23 Vincent Celier + + * gnatlink.adb (Process_Args): Do not disable scanning of ALI file for + back end switches when executable specified with --GCC= is same as + default, even if there are additional options. + + * gnat_ugn.texi: + Document when the back end switches from the ALI file are taken into + account when gnatlink is invoked with --GCC= + +2008-05-23 Thomas Quinot + + * s-os_lib.adb: + (copy_File): Do not open destination file if source file is unreadable. + +2008-05-23 Eric Botcazou + + * utils.c (handle_type_generic_attribute): Adjust to accept + fixed arguments before an elipsis. + +2008-05-21 Thomas Quinot + + * g-sothco.ads, g-sothco.adb: New files. + +2008-05-20 Thomas Quinot + + * Makefile.rtl (GNAT.Sockets.Thin_Common): New unit. + + * g-sttsne-vxworks.adb: Add missing dependency on Sockets.Constants. + Add missing "with" of Ada.Unchecked_Conversion + + * g-soccon-linux-ppc.ads, g-soccon-linux-64.ads, g-soccon-lynxos.ads, + g-soccon-linux-x86.ads, g-soccon-hpux-ia64.ads, + g-soccon-solaris-64.ads, g-soccon-tru64.ads, g-soccon-aix.ads, + g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads, + g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads, + g-socthi-vxworks.adb, g-soccon-freebsd.ads, g-soccon.ads: + Move common code out of GNAT.Sockets.Thin implementations and into + Thin_Common. + New constant SIZEOF_fd_set + New flag Has_Sockaddr_Len + New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6 + + * g-stsifd-sockets.adb + (Create): Remove call to Set_Length; use Set_Family to set the family + and (on appropriate platforms) length fields in struct sockaddr. + + * g-socthi.adb, g-socthi.ads, g-socthi-vms.ads, g-socthi-vms.adb, + g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.adb, + g-soccon-darwin.ads, g-soccon-darwin.ads: New constant SIZEOF_fd_set + Move common code out of GNAT.Sockets.Thin implementations and into + Thin_Common. + + * g-socket.ads, g-socket.adb: + Move common code out of GNAT.Sockets.Thin implementations and into + Thin_Common. + (Connect_Socket, Accept_Socket): Provide new versions of these two + routines that operate with a user specified timeout. + (Bind_Socket, Connect_Socket, Send_Socket): Remove calls to Set_Length, + this is now handled automatically by Set_Family on platforms that + require it. + + * gen-soccon.c: + Move common code out of GNAT.Sockets.Thin implementations and into + Thin_Common. + (SIZEOF_sockaddr_in6): On platforms where IPv6 is not supported, define + this constant to 0 (not -1) because we use it to initialize an + unsigned_char value. + Align values for numeric constants only. + Handle the case of systems that do not support AF_INET6. + New constant SIZEOF_fd_set + New flag Has_Sockaddr_Len + New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6 + + * gsocket.h: New flag Has_Sockaddr_Len + New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6 + +2008-05-20 Santiago Uruena + + * i-cobol.ads: Interfaces.COBOL should be preelaborate. + +2008-05-20 Arnaud Charlet + + * s-linux-hppa.ads (atomic_lock_t): Put back proper alignment now that + the underlying issue with malloc/free has been fixed. Remove associated + comments. + Minor reformatting. + Related to PR ada/24533 + +2008-05-20 Robert Dewar + + * ali.adb: Correct casing of ASCII.NUL + + * styleg-c.adb (Check_Identifier): Handle case of names in ASCII + properly. + +2008-05-20 Robert Dewar + Gary Dismukes + + * checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate + overflow if result converted to wider integer type. + (Apply_Type_Conversion_Checks): Don't emit checks on conversions to + discriminated types when discriminant checks are suppressed. + +2008-05-20 Vincent Celier + + * cstand.adb (Print_Standard): Issue the correct Size clause for type + Wide_Wide_Character. + +2008-05-20 Tristan Gingold + + * decl.c: Do not emit a variable for a object that has an address + representation clause whose value is known at compile time. + When a variable has an address clause whose value is known at compile + time, refer to this variable by using directly the address instead of + dereferencing a pointer. + +2008-05-20 Robert Dewar + + PR ada/30740 + * einfo.ads, einfo.adb (Non_Binary_Modulus): Applies to all types and + subtypes, always False for non-modular types. + Shared_Var_Assign_Proc (node22) and Shared_Var_Read_Proc (node 15) + entry nodes have been replaced by Shared_Var_Procs_Instance (node22) + for Shared_Storage package. + (Is_RACW_Stub_Type): New entity flag. + + * exp_ch4.adb + (Expand_N_Op_Expon): Avoid incorrect optimization of a*(2**b) in the + case where we have a modular type with a non-binary modules. + Comments reformattings. + + * sem_intr.adb: Simplify code not that Non_Binary_Modulus applies to + all types. + +2008-05-20 Javier Miranda + + * exp_aggr.adb + (Build_Record_Aggr_Code): Fix wrong tests checking progenitors. Previous + tests did not covered the case in which the type of the aggregate has + no progenitors but some its parents has progenitors. + +2008-05-20 Gary Dismukes + Hristian Kirtchev + + * exp_ch3.adb + (Expand_N_Object_Declaration): Correct the condition which triggers the + generation of a call to Displace when initializing a class-wide object. + (Build_Dcheck_Functions): Build discriminant-checking for null variants + when Frontend_Layout_On_Target is true to ensure that they're available + for calling when a record variant size function is built in Layout. + +2008-05-20 Ed Schonberg + + * exp_ch5.adb (Expand_Assign_Record): Within an initialization + procedure for a derived type retrieve the discriminant values from the + parent using the corresponding discriminant. + (Expand_N_Assignment_Statement): Skip generation of implicit + if-statement associated with controlled types if we are + compiling with restriction No_Finalization. + +2008-05-20 Vincent Celier + + * prj.adb (Hash (Project_Id)): New function + (Project_Empty): Add new component Interfaces_Defined + + * prj.ads (Source_Data): New component Object_Linked + (Language_Config): New components Object_Generated and Objects_Linked + (Hash (Project_Id)): New function + (Source_Data): New Boolean components In_Interfaces and + Declared_In_Interfaces. + (Project_Data): New Boolean component Interfaces_Defined + + * prj-attr.adb: + New project level attribute Object_Generated and Objects_Linked + Add new project level attribute Interfaces + + * prj-dect.adb: Use functions Present and No throughout + (Parse_Variable_Declaration): If a string type is specified as a simple + name and is not found in the current project, look for it also in the + ancestors of the project. + + * prj-makr.adb: + Replace procedure Make with procedures Initialize, Process and Finalize + to implement H414-023: process different directories with different + patterns. + Use functions Present and No throughout + + * prj-makr.ads: + Replace procedure Make with procedures Initialize, Process and Finalize + + * prj-nmsc.adb + (Add_Source): Set component Object_Exists and Object_Linked accordnig to + the language configuration. + (Process_Project_Level_Array_Attributes): Process new attributes + Object_Generated and Object_Linked. + (Report_No_Sources): New Boolean parameter Continuation, defaulted to + False, to indicate that the erreor/warning is a continuation. + (Check): Call Report_No_Sources with Contnuation = True after the first + call. + (Error_Msg): Process successively contnuation character and warning + character. + (Find_Explicit_Sources): Check that all declared sources have been found + (Check_File): Indicate in hash table Source_Names when a declared source + is found. + (Check_File): Set Other_Part when found + (Find_Explicit_Sources): In multi language mode, check if all exceptions + to the naming scheme have been found. For Ada, report an error if an + exception has not been found. Otherwise, disregard the exception. + (Check_Interfaces): New procedure + (Add_Source): When Other_Part is defined, set mutual pointers in spec + and body. + (Check): In multi-language mode, call Check_Interfaces + (Process_Sources_In_Multi_Language_Mode): Set In_Interfaces to False + for an excluded source. + (Remove_Source): A source replacing a source in the interfaces is also + in the interfaces. + + * prj-pars.adb: Use function Present + + * prj-part.adb: Use functions Present and No throughout + (Parse_Single_Project): Set the parent project for child projects + (Create_Virtual_Extending_Project): Register project with no qualifier + (Parse_Single_Project): Allow an abstract project to be extend several + times. Do not allow an abstract project to extend a non abstract + project. + + * prj-pp.adb: Use functions Present and No throughout + (Print): Take into account the full associative array attribute + declarations. + + * prj-proc.adb: Use functions Present and No throughout + (Expression): Call itself with the same From_Project_Node for the + default value of an external reference. + + * prj-strt.adb: Use functions Present and No throughout + (Parse_Variable_Reference): If a variable is specified as a simple name + and is not found in the current project, look for it also in the + ancestors of the project. + + * prj-tree.ads, prj-tree.adb (Present): New function + (No): New function + Use functions Present and No throughout + (Parent_Project_Of): New function + (Set_Parent_Project_Of): New procedure + + * snames.ads, snames.adb: + Add new standard names Object_Generated and Objects_Linked + +2008-05-20 Hristian Kirtchev + + * exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent + and the derived type are of the same kind. + (Expand_Call): Generate type conversions for actuals of + record or array types when the parent and the derived types differ in + size and/or packed status. + +2008-05-20 Javier Miranda + Ed Schonberg + + * exp_disp.adb (Make_DT, Make_Secondary_DT, Make_Tags): Avoid + generating dispatch tables of locally defined tagged types statically. + Remove implicit if-statement that is no longer required. + (Expand_Dispatching_Call): If this is a call to an instance of the + generic dispatching constructor, the type of the first argument may be + a subtype of Tag, so always use the base type to recognize this case. + +2008-05-20 Thomas Quinot + + * exp_dist.adb + (GARLIC_Support.Add_RACW_Read_Attribute): When a zero value is received, + and the RACW is null-excluding, raise CONSTRAINT_ERROR instead of + assigning NULL into the result, to avoid a spurious warning. + (Add_RACW_Features, case Same_Scope): Add assertion that designated type + is not frozen. + (Add_Stub_Type): Set entity flag Is_RACW_Stub_Type on generated stub + type. + (Build_From_Any_Function, Build_To_Any_Function, + Build_TypeCode_Function): For a type that has user-specified stream + attributes, use an opaque sequence of octets as the representation. + +2008-05-20 Kevin Pouget + + * exp_smem.ads, exp_smem.adb: Construction of access and assign + routines has been replaced by an instantiation of + System.Shared_Storage.Shared_Var_Procs generic package, while expanding + shared variable declaration. + Calls to access and assign routines have been replaced by calls to + Read/Write routines of System.Shared_Storage.Shared_Var_Procs + instantiated package. + + * rtsfind.ads: RE_Shared_Var_Procs entry has been added in RE_Unit_Table + It identifies the new generic package added in s-shasto. + + * s-shasto.adb, s-shasto.ads: A new generic package has been added, it + is instantiated for each shared passive variable. It provides + supporting procedures called upon each read or write access by the + expanded code. + + * sem_attr.adb: + For this runtime unit (always compiled in GNAT mode), we allow + stream attributes references for limited types for the case where + shared passive objects are implemented using stream attributes, + which is the default in GNAT's persistent storage implementation. + +2008-05-20 Ed Schonberg + + * freeze.adb + (Freeze_Enumeration_Type): For a subtype that inherits a foreign + convention from its base type, do not set the type to that of integer, + because it may inherit a size clause. + Warn on a size clause with a size different + from that of Integer, if the type has convention C. + +2008-05-20 Vincent Celier + + * gnatname.adb + (Scan_Args): Rewrite to take into account new switch --and to separate + arguments into sections. + (Gnatname): Call Prj.Makr.Initialize, then Prj.Makr.Process for each + section, then Finalize. + +2008-05-20 Tristan Gingold + + * init.c: Enable stack probing on ppc-linux. + + * tracebak.c: Add symbolic traceback for ppc-linux. + + * system-linux-ppc.ads: Enable stack probing on ppc-linux. + +2008-05-20 Arnaud Charlet + + * Makefile.in + (common-tools): New rule, to avoid parallel build failure on gnat tools. + Reenable parallel builds on this Makefile. + + * Make-lang.in: Update dependencies. + +2008-05-20 Robert Dewar + + * opt.ads (Treat_Restrictions_As_Warnings): New switch + + * sem_prag.adb, par-prag.adb, restrict.ads: Implement flag + Treat_Restrictions_As_Warnings. + + * switch-c.adb: Recognize new switch -gnatr + + * usage.adb: Add line for -gnatr + +2008-05-20 Hristian Kirtchev + + * par-ch3.adb + (P_Access_Definition): Change the error message when parsing "access + all" in Ada 95 mode. The message no longer forces the user to recompile + in 05 mode only to discover that anonymous access types are not allowed + to have "all". + +2008-05-20 Hristian Kirtchev + + * par-ch9.adb + (P_Protected): Update the error message on missing "-gnat05" switch when + using interfaces in conjunction with protected types. Remove the + incorrect error message associated with the presence of "private" after + a "with". + +2008-05-20 Ed Schonberg + + * sem_aggr.adb: Update comments. + Improve previous change for PR ada/17985 + +2008-05-20 Thomas Quinot + + * sem_cat.adb + (Set_Categorization_From_Scope): Do not set In_Remote_Types unless in + the visible part of the spec of a remote types unit. + (Validate_Remote_Access_Object_Type_Declaration): + New local subprogram Is_Valid_Remote_Object_Type, replaces + Is_Recursively_Limited_Private. + (Validate_RACW_Primitives): Enforce E.2.2(14) rules: the types of all + non-controlling formals (and the return type, even though this is not + explicit in the standard) must support external streaming. + (Validate_RCI_Subprogram_Declaration): Enforce E.2.3(14) rules: same + as above for of RAS types and RCI subprograms. (The return type is not + checked yet). + Update comments related to RACWs designating limited interfaces per + ARG ruling on AI05-060. + + * sem_util.ads, sem_util.adb + (Is_Remote_Access_To_Class_Wide_Type): Only rely on Is_Remote_Types and + Is_Remote_Call_Interface to identify RACW types in a stable and + consistent way. We used to rely in this predicate on the privateness of + the designated type and its ancestors, but depending on the currently + visible private parts, this caused false negatives. We now uniformly + rely on checks made at the point where the RACW type is declared. + (Inspect_Deferred_Constant_Completion): Moved from Sem_Ch7. + +2008-05-20 Javier Miranda + Ed Schonberg + Hristian Kirtchev + + * sem_ch3.adb + (Analyze_Object_Declaration): Fix over-conservative condition + restricting use of predefined assignment with tagged types that have + convention CPP. + (Analyze_Object_Declaration): Relax the check regarding deferred + constants declared in scopes other than packages since they can be + completed with pragma Import. + Add missing escaping of all-caps word 'CPP' in error messages. + (Build_Discriminated_Subtype): Do not inherit representation clauses + from parent type if subtype already carries them, because they are + inherited earlier during derivation and already include those that may + come from a partial view. + + * sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body): + Check the declarations of a subprogram body for proper deferred + constant completion. + + * sem_ch7.ads, sem_ch7.adb + (Inspect_Deferred_Constant_Completion): Moved to sem_util. + +2008-05-20 Ed Schonberg + Thomas Quinot + + * sem_ch4.adb + (Try_Indexed_Call): Handle properly a construct of the form F(S) where + F is a parameterless function that returns an array, and S is a subtype + mark. + (Analyze_Call): Insert dereference when the prefix is a parameterless + function that returns an access to subprogram and the call has + parameters. + Reject a non-overloaded call whose name resolves to denote + a primitive operation of the stub type generated to support a remote + access-to-class-wide type. + +2008-05-20 Ed Schonberg + + * sem_ch8.adb + (Note_Redundant_Use): Diagnose a redundant use within a subprogram body + when there is a use clause for the same entity in the context. + (Analyze_Subprogram_Renaming): A renaming_as_body is legal if it is + created for a stream attribute of an abstract type or interface type. + +2008-05-20 Thomas Quinot + + * sem_dist.ads, sem_dist.adb (Is_RACW_Stub_Type_Operation): New + subprogram. + + * sem_type.adb + (Add_One_Interp): Ignore any interpretation that is a primitive + operation of an RACW stub type (these primitives are only executed + through dispatching, never through static calls). + (Collect_Interps): When only one interpretation has been found, set N's + Entity and Etype to that interpretation, otherwise Entity and Etype may + still refer to an interpretation that was ignored by Add_One_Interp, + in which case would end up with being marked as not overloaded but with + an Entity attribute not pointing to its (unique) correct interpretation. + +2008-05-20 Ed Schonberg + + * sem_eval.adb + (Eval_Slice): Warn when a slice whose discrete range is a subtype name + denotes the whole array of its prefix. + +2008-05-20 Robert Dewar + + * sem_res.adb (Resolve_Op_Not): Warn on double negation + +2008-05-20 Ed Schonberg + + * sprint.adb + (Print_Itype): Do not modify the sloc of the component type of a + (packed) array itype, because it is an unrelated type whose source + location is independent of the point of creation of the itype itself. + +2008-05-20 Thomas Quinot + + * uintp.adb, urealp.adb: Replace calls to Increment_Last + Set with + Append. + +2008-05-20 Robert Dewar + Vincent Celier + + * vms_data.ads: Add entry for -gnatr + Put GNAT SYNC section in proper alpha order + Add VMS qualifier /DISPLAY_PROGRESS equivalent to gnatmake switch -d + + * gnat_ugn.texi: Add documentation for new gnatname switch --and + Update the style checks section + Add documentation of -gnatr + Add to the "Adding the Results of Compiler Checks to gnatcheck Output" + subsection the explanation how compiler checks should be disabled for + gnatcheck. + Update the list of Ada 95 reserved words used by in the project language + Add documentation for project qualifiers. + Document that abstract projects may be extended by different projects in + the same project tree. + Add documentation for gnatmake switch -d + + * ug_words: Add -gnatyy VMS equivalence string. + Add entry for -gnatr + +2008-05-20 Bob Duff + + * a-rttiev.adb + (Set_Handler): Remove code from both of these that implements + RM-D.15(15/2), because it causes a race condition and potential + deadlock. + (Process_Queued_Events): Add comment explaining "exception when others + => null". Add clarifying ".all", even though implicit .all is legal + here. + +2008-05-20 Arnaud Charlet + + * s-winext.ads: Replace representation clause by pragma Pack. Gives + equivalent representation, but has the advantage of allowing + compilation of this file under 64 bits platforms. + + * s-os_lib.adb (Normalize_Pathname): Mark Cur_Dir constant. + + * s-osinte-irix.ads: (Alternate_Stack_Size): Add dummy declaration. + + * adaint.c: + Don't define dummy implementation of convert_addresses on ppc-linux. + +2008-05-20 Ed Schonberg + + * exp_ch7.adb + (Expand_Ctrl_Function_Call): Do not attach result to finalization list + if expression is aggregate component. + +2008-05-20 Robert Dewar + + * g-byorma.adb, gnatlink.adb, prepcomp.adb, sinfo.ads, + sem_ch12.adb: Update comments. Minor reformatting. + + * exp_ch2.adb: Typo + + * s-unstyp.ads: Fixed some typos in comments. + +2008-05-20 Arnaud Charlet + + * s-taspri-vxworks.ads (Task_Address, Task_Address_Size): New + type/constant. + + * g-socthi-vxworks.ads: Update to latest socket changes. + + * a-caldel-vms.adb: Resync with a-caldel spec. + + * exp_ch9.ads, sem_ch8.ads, inline.adb: Minor reformatting. + Update comments. + +2008-05-17 Eric Botcazou + + * trans.c (gnat_to_gnu) : Account + for dummy types pointed to by the converted pointer types. + +2008-05-15 Eric Botcazou + + * trans.c (add_decl_expr): At toplevel, mark the TYPE_ADA_SIZE field + of records and unions. + (gnat_to_gnu) : Fix formatting. + +2008-05-14 Samuel Tardieu + Robert Dewar + + * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Add + restrictions to the prefix of 'Old. + * sem_util.ads, sem_util.adb (In_Parameter_Specification): New. + * gnat_rm.texi ('Old): Note that 'Old cannot be applied to local + variables. + +2008-05-13 Eric Botcazou + + PR ada/24880 + PR ada/26635 + * utils.c (convert) : When converting an additive + expression to an integral type with lower precision, use NOP_EXPR + directly in a couple of special cases. + +2008-05-12 Samuel Tardieu + Ed Schonberg + + * sem_ch3.adb (Build_Derived_Record_Type): Accept statically matching + constraint expressions. + +2008-05-12 Tomas Bily + + * utils2.c (known_alignment, contains_save_expr_p) + (gnat_mark_addressable): Use CASE_CONVERT. + * decl.c (annotate_value): Likewise. + * trans.c (maybe_stabilize_reference): Likewise. + * utils2.c (build_binary_op): Use CONVERT_EXPR_P. + * utils.c (rest_of_record_type_compilation): Likewise. + * trans.c (protect_multiple_eval, Attribute_to_gnu) + (protect_multiple_eval): Likewise. + +2008-05-08 Andreas Schwab + + * utils.c (handle_pure_attribute, init_gigi_decls): Rename + DECL_IS_PURE to DECL_PURE_P. + +2008-05-05 Eric Botcazou + + * decl.c (maybe_pad_type): Add ??? comment. + +2008-05-03 Eric Botcazou + + * decl.c (components_to_record): Zero the alignment of the qualified + union built for the variant part upon creating it. + +2008-05-03 Eric Botcazou + + * decl.c (maybe_pad_type): Try to get a form of the type with integral + mode even if the alignment is not a factor of the original size. But + make sure to create the inner field with the original size. Reorder. + * trans.c (addressable_p) : Treat the field of a padding + record as always addressable. + * utils.c (convert): Deal specially with conversions between original + and packable versions of a record type. + * utils2.c (build_binary_op) : Be more restrictive when + recognizing an assignment between padded objects. + +2008-05-01 Eric Botcazou + + * decl.c (make_packable_type): Resize the last component to its RM size + only if it is of an aggregate type. + * trans.c (call_to_gnu): Fix nit in comment. + (gnat_to_gnu): Likewise. + +2008-04-30 Samuel Tardieu + + * Makefile.in: Adapt sh4-linux target. + +2008-04-29 Ed Schonberg + + PR ada/35792 + * sem_ch3.adb (Find_Type_Name): Refuse completion of an incomplete + tagged type by an untagged protected or task type. + +2008-04-28 Eric Botcazou + Tristan Gingold + + PR ada/36007 + * decl.c (gnat_to_gnu_entity) : Do not promote alignment + of aliased objects with an unconstrained nominal subtype. + Cap the promotion to the effective alignment of the word mode. + +2008-04-28 Ralf Wildenhues + + * Make-lang.in (ada.tags, check-acats, ada/treeprs.ads) + (ada/einfo.h, ada/sinfo.h, ada/nmake.adb, ada/nmake.ads): + Use '&&' instead of ';'. + +2008-04-24 Olivier Hainque + + * trans.c (Attribute_to_gnu) : Length computation + doesn't require signed arithmetic anymore. + +2008-04-23 Paolo Bonzini + + * trans.c (Attribute_to_gnu): Don't set TREE_INVARIANT. + (call_to_gnu): Don't set TREE_INVARIANT. + * utils2.c (gnat_build_constructor): Don't set TREE_INVARIANT. + +2008-04-22 Joel Sherrill + + * s-osinte-rtems.adb: Add sigalstack function. + * s-osinte-rtems.ads: Add SO_ONSTACK and sigalstack + function. Add Alternate_Stack and Alternate_Stack_Size. + Add missing process_shared field to pthread_condattr_t + and change ss_low_priority to int from timespec. + +2008-04-22 Samuel Tardieu + + * i-forbla.adb: Link against -llapack and -lblas by default + instead of the private -lgnalasup. + +2008-04-21 Olivier Hainque + + Access to most C builtins from Ada + * utils.c: #include "langhooks.h" and define GCC_DIAG_STYLE. + (handle_pure_attribute, handle_novops_attribute, + handle_nonnull_attribute, handle_sentinel_attribute, + handle_noreturn_attribute, handle_malloc_attribute, + handle_type_generic_attribute): New attribute handlers, from C fe. + (gnat_internal_attribute_table): Map the new handlers. + (gnat_init_decl_processing): Move call to gnat_install_builtins to ... + (init_gigi_decls): ... here. + (handle_const_attribute, handle_nothrow_attribute, builtin_decl_for): + Move to a section dedicated to builtins processing. + (build_void_list_node, builtin_type_for_size): New functions. + (def_fn_type, get_nonnull_operand): Likewise. + (install_builtin_elementary_type, install_builtin_function_types, + install_builtin_attributes): Likewise. + (fake_attribute_handler): Fake handler for attributes we don't + support in Ada. + (def_builtin_1): New function, worker for DEF_BUILTIN. + (install_builtin_functions): New function. + (gnat_install_builtins): Move to the builtins processing section. + Now calling the newly introduced installers. + +2008-04-20 Eric Botcazou + + * decl.c (gnat_to_gnu_entity) : Also promote the alignment of + constant objects, but not exceptions. + * trans.c (add_decl_expr): Use gnat_types_compatible_p for type + compatibility test. + * utils.c (create_var_decl_1): Likewise. + * utils2.c (build_binary_op) : Also use the padded view of + the type when copying to padded object and the source is a constructor. + +2008-04-18 Eric Botcazou + + * decl.c (gnat_to_gnu_entity) : When trying to promote the + alignment, reset it to zero if it would end up not being greater + than that of the type. + +2008-04-18 Eric Botcazou + + * decl.c (maybe_pad_type): Only generate the XVS parallel type if + the padded type has a variable size. + +2008-04-18 Eric Botcazou + + * decl.c (gnat_to_gnu_entity) : Use the return by + target pointer mechanism as soon as the size is not constant. + +2008-04-18 Eric Botcazou + + * gigi.h (create_var_decl_1): Declare. + (create_var_decl): Turn into a macro invoking create_var_decl_1. + (create_true_var_decl): Likewise. + * utils.c (create_var_decl_1): Make global and reorder parameters. + (create_var_decl): Delete. + (create_true_var_decl): Likewise. + +2008-04-17 Eric Botcazou + + * decl.c (gnat_to_gnu_entity) : Promote the alignment of + objects by default. + * fe.h (Debug_Flag_Dot_A): Delete. + * debug.adb (-gnatd.a): Update documentation. + +2008-04-17 Samuel Tardieu + + * g-socket.ads, g-socket.adb (Get_Address): Make Stream a + "not null" parameter. + +2008-04-17 Samuel Tardieu + + * g-socket.adb: Add a message "IPv6 not supported" to the + Socket_Error exception. + +2008-04-16 Samuel Tardieu + + PR ada/29015 + * sem_ch12.adb (Instantiate_Type): Check whether the full view of + the type is known instead of the underlying type. + +2008-04-15 Ed Schonberg + + PR ada/22387 + * exp_ch5.adb (Expand_Assign_Record): Within an initialization + procedure for a derived type retrieve the discriminant values from + the parent using the corresponding discriminant. + +2008-04-15 Samuel Tardieu + Gary Dismukes + + PR ada/28733 + * sem_ch8.adb (Analyze_Use_Package): Do not allow "use" of something + which is not an entity (and hence not a package). + (End_Use_Package): Ditto. + +2008-04-15 Ed Schonberg + + PR ada/16086 + * sem_ch12.adb (Analyze_Formal_Subprogram): The default can be any + protected operation that matches the signature, not only an entry, a + regular subprogram or a literal. + +2008-04-15 Eric Botcazou + + * ada-tree.h (DECL_BY_COMPONENT_PTR_P): Use DECL_LANG_FLAG_3. + * decl.c (gnat_to_gnu_entity) : Call maybe_pad_type only + if a size or alignment is specified. Do not take into account + alignment promotions for the computation of the object's size. + : Call maybe_pad_type only if a size or alignment is specified. + (maybe_pad_type): Really reuse the RM_Size of the original type if + requested. + * trans.c (Attribute_to_gnu): Fix a couple of nits. + * utils2.c (build_binary_op) : Merge related conditional + statements. Use the padded view of the type when copying between + padded objects of the same underlying type. + +2008-04-14 Ralf Wildenhues + + * vms_data.ads: Fix typo in constant. + * gen-soccon.c: Fix typo in error string. + * gnat_rm.texi (Pragma Optimize_Alignment, Pragma Postcondition): + Fix typos. + * a-calcon.ads, a-calend-vms.adb, a-calend.adb, a-crdlli.ads, + bcheck.adb, checks.adb, einfo.ads, errout.adb, erroutc.adb, + erroutc.ads, exp_attr.adb, exp_ch11.adb, exp_ch2.adb, + exp_ch5.adb, exp_ch9.adb, exp_ch9.ads, exp_pakd.adb, + exp_util.adb, fmap.adb, g-soccon-linux-mips.ads, + g-soccon-rtems.ads, g-timsta.adb, g-timsta.ads, lib-writ.ads, + mlib-tgt-specific-linux.adb, mlib-tgt-specific-tru64.adb, + s-interr-vxworks.adb, s-interr.adb, s-osinte-lynxos.ads, + s-rident.ads, s-taprop-solaris.adb, s-tassta.adb, s-win32.ads, + sem_aggr.adb, sem_attr.ads, sem_ch10.adb, sem_ch13.ads, + sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, + sem_prag.ads, sem_res.adb, sem_util.adb, sem_util.ads, + sinfo.ads: Fix typos in comments. + +2008-04-14 Robert Dewar + + * sem_prag.adb (Analyze_Pragma, Linker_Section case): Extend error + to every non-object and change error message. + +2008-04-14 Robert Dewar + + * sem_util.ads, sem_util.adb (In_Subprogram): Remove. + * sem_attr.adb (Anayze_Attribute): Check for Current_Subprogram + directly. + +2008-04-14 Samuel Tardieu + + PR ada/18680 + * sem_prag.adb (Analyze_Pragma, Linker_Section case): Refuse to + apply pragma Linker_Section on type. + +2008-04-14 Samuel Tardieu + + PR ada/16098 + * sem_prag.adb (Error_Pragma_Ref): New. + (Process_Convention): Specialized message for non-local + subprogram renaming. Detect the problem in homonyms as well. + +2008-04-14 Samuel Tardieu + + PR ada/15915 + * sem_util.ads, sem_util.adb (Denotes_Variable): New function. + * sem_ch12.adb (Instantiate_Object): Use it. + * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ensure that + storage pool denotes a variable as per RM 13.11(15). + +2008-04-14 Samuel Tardieu + + * sem_util.ads, sem_util.adb (In_Subprogram): New function. + * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Use it. + +2008-04-14 Rolf Ebert + + PR ada/20822 + * xgnatugn.adb (Put_Line): New procedure, ensuring Unix + line endings even on non-Unix platforms. + +2008-04-14 Samuel Tardieu + + PR ada/35050 + * xref_lib.adb (Parse_Identifier_Info): Correctly parse and ignore the + renaming information. + +2008-04-13 Samuel Tardieu + + PR ada/17985 + * sem_aggr.adb (Valid_Ancestor_Type): A type is not an ancestor of + itself. + +2008-04-13 Ralf Wildenhues + + * sfn_scan.adb, sfn_scan.ads, sinfo.ads, + sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.ads, + snames.ads, sprint.adb, stand.ads, stringt.ads, + styleg.adb, styleg.ads, stylesw.adb, stylesw.ads, + switch.ads, sysdep.c, table.adb, table.ads, + targparm.ads, tb-gcc.c, tbuild.ads, tracebak.c, + trans.c, tree_io.adb, treepr.adb, types.adb, types.ads, + uintp.adb, uintp.ads, utils.c, utils2.c, validsw.ads, + vms_conv.adb, vms_conv.ads, vms_data.ads, widechar.adb, + widechar.ads, xeinfo.adb, xgnatugn.adb, xr_tabls.adb, + xr_tabls.ads, xref_lib.adb, xref_lib.ads, xsinfo.adb: + Fix comment typos. + + * sem_ch10.adb, sem_ch10.ads, + sem_ch12.adb, sem_ch12.ads, sem_ch13.adb, sem_ch13.ads, + sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, + sem_ch6.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, + sem_elab.adb, sem_elab.ads, sem_elim.ads, sem_eval.adb, + sem_eval.ads, sem_intr.adb, sem_mech.adb, sem_mech.ads, + sem_prag.adb, sem_prag.ads, sem_res.adb, sem_res.ads, + sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb, + sem_warn.ads: Fix comment typos. + + * s-secsta.adb, s-sequio.ads, s-shasto.ads, + s-soflin.ads, s-stalib.ads, s-stausa.adb, + s-stausa.ads, s-strxdr.adb, s-taenca.adb, s-taenca.ads, + s-taprob.adb, s-taprop-hpux-dce.adb, s-taprop-irix.adb, + s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-posix.adb, + s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb, + s-taprop-vxworks.adb, s-taprop.ads, s-tarest.adb, + s-tarest.ads, s-tasini.adb, s-tasini.ads, s-taskin.ads, + s-tasque.ads, s-tassta.adb, s-tassta.ads, s-tasuti.ads, + s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, + s-tpopsp-posix.adb, s-tpopsp-rtems.adb, s-tposen.adb, + s-tposen.ads, s-traceb-hpux.adb, s-traces.ads, + s-trafor-default.ads, s-unstyp.ads, s-utf_32.ads, + s-vaflop.adb, s-vaflop.ads, s-valrea.adb, s-valuti.adb, + s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, scans.ads, + scn.adb, scng.adb, seh_init.c, sem.ads, sem_aggr.adb, + sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads, + sem_cat.adb, sem_cat.ads: Fix comment typos. + +2008-04-12 Joel Sherrill + + PR ada/35825 + * g-soccon-rtems.ads: Add IP_PKTINFO as unsupported. + +2008-04-12 Arnaud Charlet + + * s-linux-hppa.ads: Fix syntax errors. + +2008-04-10 Ralf Wildenhues + + * gnat_ugn.texi: Fix typos. + * raise-gcc.c, repinfo.adb, repinfo.ads, restrict.adb, + restrict.ads, rtsfind.adb, rtsfind.ads, s-arit64.ads, + s-asthan-vms-alpha.adb, s-auxdec.ads, s-casuti.ads, + s-fatflt.ads, s-fatgen.adb, s-fatlfl.ads, + s-fatllf.ads, s-fatsfl.ads, s-filofl.ads, + s-finimp.adb, s-finroo.ads, s-fishfl.ads, + s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads, + s-hibaen.ads, s-htable.ads, s-imgcha.adb, + s-imgenu.ads, s-imgint.adb, s-imgrea.adb, + s-inmaop-dummy.adb, s-inmaop.ads, s-interr-vms.adb, + s-interr-vxworks.adb, s-interr.adb, s-interr.ads, + s-intman-vxworks.ads, s-intman.ads, s-mastop-irix.adb, + s-os_lib.adb, s-os_lib.ads, s-osinte-aix.ads, + s-osinte-darwin.ads, s-osinte-freebsd.ads, + s-osinte-hpux.ads, s-osinte-lynxos-3.adb, + s-osinte-lynxos-3.ads, s-osinte-lynxos.ads, + s-osinte-rtems.ads, s-osinte-solaris-posix.ads, + s-osprim-mingw.adb, s-osprim-vms.adb, s-parame-ae653.ads, + s-parame-hpux.ads, s-parame-vms-alpha.ads, + s-parame-vms-ia64.ads, s-parame-vms-restrict.ads, + s-parame-vxworks.ads, s-parame.ads, s-parint.adb, + s-parint.ads, s-poosiz.adb, s-proinf-irix-athread.ads, + s-proinf.ads, s-regexp.adb, s-regpat.adb, s-regpat.ads, + s-rident.ads: Fix comment typos. + +2008-04-09 Samuel Tardieu + + PR ada/28305 + * sem_ch6.adb (Build_Body_To_Inline): Do not save and restore + environment if generic instance is a top-level one. + +2008-04-09 Doug Rupp + + * decl.c (validate_size): Set minimum size for fat pointers same as + access types. Code clean ups. + + * gmem.c (xstrdup32): New macro for 32bit dup on VMS, noop otherwise + (__gnat_gmem_a2l_initialize): Dup exename into 32 bit memory on VMS + + * s-auxdec-vms_64.ads, s-auxdec.ads (Short_Address_Size): New constant + + * s-crtl.ads (malloc32) New function, alias for malloc + (realloc32) New function, alias for realloc + + * socket.c (__gnat_new_socket_set): Malloc fd_set in 32 bits on VMS + + * utils2.c (build_call_alloc_dealloc): Return call to short malloc if + allocator size is 32 and default pointer size is 64. + (find_common_type): Document assumption on t1/t2 vs lhs/rhs. Force use of + lhs type if smaller, whatever the modes. + + * gigi.h (malloc32_decl): New macro definition + + * utils.c (init_gigi_decls): New malloc32_decl + Various code clean ups. + + * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to + Task_Address vice System.Address. + + * s-taspri-vms.ads: Import System.Aux_DEC + (Task_Address): New subtype of System.Aux_DEC.Short_Address + (Task_Address_Size): New constant size of System.Aux_DEC.Short_Address + + * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to + Task_Address vice System.Address. + + * s-inmaop-vms.adb: Import System.Task_Primitives + (To_Address): Unchecked convert to Task_Address vice System.Address + + * s-taprop-vms.adb (Timed_Delay): Always set the timer even if delay + expires now. + (To_Task_ID) Unchecked convert from Task_Adddress vice System.Address + (To_Address) Unchecked convert to Task_Address vice System.Address + + * s-tpopde-vms.adb: Remove unnecessary warning pragmas + + * g-socthi-vms.ads: Add 32bit size clauses on socket access types. + +2008-04-08 Eric Botcazou + + * gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc. + (fdesc_type_node): Define. + (null_fdesc_node): Likewise. + * decl.c (gnat_to_gnu_entity) : If the target + uses descriptors for vtables and the type comes from a dispatch table, + return the descriptor type. + * trans.c (Attribute_to_gnu) : If the target + uses descriptors for vtables and the type comes from a dispatch table, + build a descriptor in the static case and copy the existing one in the + non-static case. + (gnat_to_gnu) : If the target uses descriptors for vtables and + the type is a pointer-to-subprogram coming from a dispatch table, + return the null descriptor. + : If the target uses descriptors for + vtables, the source type is the descriptor type and the target type + is a pointer type, first build the pointer. + * utils.c (init_gigi_decls): If the target uses descriptors for vtables + build the descriptor type and the null descriptor. + +2008-04-08 Eric Botcazou + + * decl.c (prepend_attributes): Fix typo. + * trans.c (Pragma_to_gnu): Likewise. + * utils.c (gnat_genericize): Likewise. + +2008-04-08 Eric Botcazou + Richard Kenner + + * ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed. + * decl.c (gnat_to_gnu_entity): Adjust for above change. + : Try to get a better form of the component for + packing, even if it has an integral mode. + : Likewise. + * trans.c (gnat_to_gnu): Do not require BLKmode for the special + exception suppressing the final conversion between record types. + +2008-04-08 Eric Botcazou + + * decl.c (gnat_to_gnu_entity) : If -gnatd.a and not optimizing + alignment for space, promote the alignment of non-scalar variables with + no size and alignment. + * gigi.h (gnat_types_compatible_p): Declare. + * misc.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Set to above predicate. + * trans.c (gnat_to_gnu): Revert revision 129339 change. Minor cleanup. + * utils.c (gnat_types_compatible_p) : New predicate. + (convert): Use it throughout to test for cases where a mere view + conversion is sufficient. + * utils2.c (build_binary_op): Minor tweaks. + (build_unary_op): Likewise. + +2008-04-08 Eric Botcazou + + * decl.c (adjust_packed): Expand comment. + +2008-04-08 Arnaud Charlet + + * s-tasuti.ads: Use Task_Address instead of System.Address. + + * makeutl.adb (Path_Or_File_Name): New function + + * nlists.ads, itypes.ads: Update comments. + + * s-crtl.ads (malloc32, realloc32): New functions. + + * s-auxdec.ads (Short_Address_Size): New constant. + + * a-taside.adb, s-tasdeb.adb: Use Task_Address. + + * s-ststop.ads, s-ststop.adb: New file. + + * exp_tss.ads, s-taprop-lynxos.adb: Update comments. + Minor reformatting. + +2008-04-08 Pascal Obry + + * g-sercom.ads, g-sercom.adb (Data_Rate): Add B115200. + (Stop_Bits_Number): New type. + (Parity_Check): Likewise. + (Set): Add parameter to set the number of stop bits and + the parity. Parameter timeout is now a duration instead + of a plain integer. + + * g-sercom-linux.adb: + Implement the stop bits and parity support for GNU/Linux. + Fix handling of timeout, it must be given in tenth of seconds. + + * g-sercom-mingw.adb: + Implement the stop bits and parity support for Windows. + Use new s-win32.ads unit instead of declaring Win32 services + directly into this body. + Update handling of timeout as now a duration. + + * s-win32.ads, s-winext.ads: New files. + +2008-04-08 Eric Botcazou + Arnaud Charlet + + * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads: Removed. + + s-taspri-posix-noaltstack.ads, s-linux.ads, s-linux-alpha.ads, + s-linux-hppa.ads: New files. Disable alternate stack on ia64-hpux. + + * s-osinte-lynxos-3.ads, + (Alternate_Stack): Remove when not needed. Simplify declaration + otherwise. + (Alternate_Stack_Size): New constant. + + s-osinte-mingw.ads, s-taprop-mingw.adb: Code clean up: avoid use of + 'Unrestricted_Access. + + * s-osinte-hpux.ads, s-osinte-solaris-posix.ads, s-osinte-aix.ads, + s-osinte-lynxos.ads, s-osinte-freebsd.ads s-osinte-darwin.ads, + s-osinte-tru64.ads, s-osinte-irix.ads, s-osinte-linux.ads, + s-osinte-solaris.ads, s-osinte-vms.ads + (SA_ONSTACK): New constant. + (stack_t): New record type. + (sigaltstack): New imported function. + (Alternate_Stack): New imported variable. + (Alternate_Stack_Size): New constant. + + * system-linux-x86_64.ads: (Stack_Check_Probes): Set to True. + + * s-taspri-lynxos.ads, s-taspri-solaris.ads, s-taspri-tru64.ads, + s-taspri-hpux-dce.ads, s-taspri-dummy.ads, s-taspri-posix.ads, + s-taspri-vms.ads (Task_Address): New subtype of System.Address + (Task_Address_Size): New constant size of System.Address + (Alternate_Stack_Size): New constant. + + * s-taprop-posix.adb, s-taprop-linux.adb (Get_Stack_Attributes): Delete. + (Enter_Task): Do not notify stack to System.Stack_Checking.Operations. + Establish the alternate stack if the platform makes use of n alternate + signal stack for stack overflows. + (Create_Task): Take into account the alternate stack in the stack size. + (Initialize): Save the address of the alternate stack into the ATCB for + the environment task. + (Create_Task): Fix assertions for NPTL library (vs old LinuxThreads). + + * s-parame.adb (Minimum_Stack_Size): Increase value to 16K + + * system-linux-x86.ads: (Stack_Check_Probes): Set to True. + + * s-intman-posix.adb: + (Initialize): Set SA_ONSTACK for SIGSEGV if the platform makes use of an + alternate signal stack for stack overflows. + + * init.c (__gnat_adjust_context_for_raise, Linux version): On i386 and + x86-64, adjust the saved value of the stack pointer if the signal was + raised by a stack checking probe. + (HP-UX section): Use global __gnat_alternate_stack as signal handler + stack and only for SIGSEGV. + (Linux section): Likewise on x86 and x86-64. + [VxWorks section] + (__gnat_map_signal): Now static. + (__gnat_error_handler): Not static any more. + (__gnat_adjust_context_for_raise): New function. Signal context + adjustment for PPC && !VTHREADS && !RTP, as required by the zcx + propagation circuitry. + (__gnat_error_handler): Second argument of a sigaction handler is a + pointer, not an int, and is unused. + Adjust signal context before mapping to exception. + Install signal handlers for LynxOS case. + + * s-taskin.ads (Common_ATCB): New field Task_Alternate_Stack. + (Task_Id): Set size to Task_Address_Size + (To_Task_id): Unchecked convert from Task_Address vice System.Address + (To_Address): Unchecked convert to Task_Address vice System.Address + + * s-tassta.adb (Task_Wrapper): Define the alternate stack and save its + address into the ATCB if the platform makes use of an alternate signal + stack for stack overflows. + (Free_Task): Add call to Finalize_Attributes_Link. + Add argument Relative_Deadline to pass the value specified for + the task. This is not yet used for any target. + + * s-tassta.ads (Create_Task): Add argument Relative_Deadline to pass + the value specified for the task. + +2008-04-08 Arnaud Charlet + + (s-osinte-vxworks6.ads): Removed, merged with s-osinte-vxworks.ads/.adb + (s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.ads, + s-vxwext-rtp.adb): New files. + + * s-taprop-vxworks.adb, s-osinte-vxworks.ads, s-osinte-vxworks.adb: + Minor updates to accomodate changes above. + +2008-04-08 Pascal Obry + + * a-exetim-mingw.adb, s-gloloc-mingw.adb, s-taprop-mingw.adb, + s-tasinf-mingw.ad{s,b}, s-taspri-mingw.ads: + Use new s-win32.ads unit instead of declaration + from s-osinte-mingw.ads. + + * s-osinte-mingw.ads: + Move all non tasking based interface to s-win32.ads. + + * s-osprim-mingw.adb: + Remove duplicated declarations and use s-win32.ads + unit instead. + +2008-04-08 Vincent Celier + Arnaud Charlet + + * mlib-tgt-aix.adb, mlib-tgt-darwin.adb, mlib-tgt-hpux.adb, + mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-lynxos.adb, + mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb, + mlib-tgt-vms.ads, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, + mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb: Renamed into... + + * mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb, + mlib-tgt-specific-hpux.adb, mlib-tgt-specific-irix.adb, + mlib-tgt-specific-linux.adb, mlib-tgt-specific-lynxos.adb, + mlib-tgt-specific-solaris.adb, mlib-tgt-specific-tru64.adb, + mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads, + mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb, + mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb, + mlib-tgt-specific-mingw.adb: New names. + + * Makefile.in: + On VxWorks platforms use s-stchop-limit.ads for s-stchop.ads + Get rid of gnatbl. + (EXTRA_GNATRTL_NONTASKING_OBJS): Add s-win32.o + Files mlib-tgt-*.adb have been renamed mlib-tgt-specific-*.adb + Minor updates for VMS + + * gnatbl.c: Removed. + +2008-04-08 Thomas Quinot + + * g-expect-vms.adb, a-textio.adb, a-witeio.adb, exp_dbug.adb, + g-expect.adb, g-locfil.adb, gnatchop.adb, gnatdll.adb, gnatlbr.adb, + gnatmem.adb, g-regist.adb, i-vxwork.ads, mlib-utl.adb, i-vxwork-x86.ads, + a-ztexio.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-ia64.adb, + s-os_lib.adb, s-regpat.adb, s-regpat.ads: Fix incorrect casing of + ASCII.NUL throughout. + +2008-04-08 Arnaud Charlet + Matthew Heaney + + * a-cgcaso.adb, a-convec.adb: (Swap, Sift): Avoid use of complex + renaming. + + * a-cgaaso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, + a-crdlli.ads, a-coormu.ads, a-ciormu.ads: modified header to conform + to convention for non-RM specs. + Add descriptive header, and documented each operation + document each operation + +2008-04-08 Robert Dewar + Bob Duff + Gary Dismukes + Ed Schonberg + + * alloc.ads: Add entries for Obsolescent_Warnings table + + * einfo.ads, einfo.adb: Minor reformatting. + (Is_Discriminal): New subprogram. + (Is_Prival): New subprogram. + (Is_Protected_Component): New subprogram. + (Is_Protected_Private): Removed. + (Object_Ref, Set_Object_Ref): Removed. + (Prival, Set_Prival): Change assertion. + (Privals_Chain, Set_Privals_Chain): Removed. + (Prival_Link, Set_Prival_Link): New subprogram. + (Protected_Operation, Set_Protected_Operation): Removed. + (Protection_Object, Set_Protection_Object): New subprogram. + (Write_Field17_Name): Remove case for Object_Ref. + (Write_Field20_Name): Add case for Prival_Link. + (Write_Field22_Name): Remove case for Protected_Operation, + Privals_Chain. + Add case for Protection_Object. + (Can_Use_Internal_Rep): Make this into a [base type only] attribute, + so clients + (Overlays_Constant): New flag + (Is_Constant_Object): New predicate + (Is_Standard_Character_Type): New predicate + (Optimize_Alignment_Space): New flag + (Optimize_Alignment_Time): New flag + (Has_Postconditions): New flag + (Obsolescent_Warrning): Field removed + (Spec_PPC_List): New field + (Relative_Deadline_Variable, Set_Relative_Deadline_Variable): Add + subprograms to get and set the relative deadline associated to a task. + + * exp_attr.adb (May_Be_External_Call): Account for the case where the + Access attribute is part of a named parameter association. + (Expand_Access_To_Protected_Op): Test for the attribute occurring + within an init proc and use that directly as the scope rather than + traversing up to the protected operation's enclosing scope. Only apply + assertion on Is_Open_Scopes in the case the scope traversal is done. + For the init proc case use the address of the first formal (_init) as + the protected object reference. + Implement Invalid_Value attribute + (Expand_N_Attribute_Reference): Case Attribute_Unrestricted_Access. + contents of the dispatch table there is no need to duplicate the + itypes associated with record types (i.e. the implicit full view + of private types). + Implement Enum_Val attribute + (Expand_N_Attribute_Reference, case Old): Properly handle appearence + within _Postconditions procedure + (Expand_N_Attribute_Reference, case Result): Implement new attribute + + * exp_ch5.adb (Expand_N_Simple_Return_Statement): Handle case in which + a return statement calls a function that is not available in + configurable runtime. + (Analyze_If_Statement): don't optimize simple True/False cases in -O0 + (Expand_Non_Function_Return): Generate call to _Postconditions proc + (Expand_Simple_Function_Return): Ditto + + * frontend.adb: Add call to Sem_Aux.Initialize + + * sem_aux.ads, sem_aux.adb: New file. + + * par-prag.adb: Add entries for pragmas Precondition/Postcondition + Add new Pragma_Relative_Deadline. + Add support for pragmas Check and Check_Policy + + * sem_attr.ads, sem_attr.adb (Check_Not_CPP_Type): New subprogram. + (Check_Stream_Attribute): Add missing check (not allowed in CPP types) + (Analyze_Attribute): In case of attributes 'Alignment and 'size add + missing check because they are not allowed in CPP tagged types. + Add Sure parameter to Note_Possible_Modification calls + Add implementation of Invalid_Value attribute + Implement new attribute Has_Tagged_Values + Implement Enum_Val attribute + (Analyze_Attribute, case Range): Set Name_Req True for prefix of + generated attributes. + (Analyze_Attribute, case Result): If prefix of the attribute is + overloaded, it always resolves to the enclosing function. + (Analyze_Attribute, case Result): Properly deal with analysis when + Postconditions are not active. + (Resolve_Attribute, case Result): Properly deal with appearence during + preanalysis in spec. + Add processing for attribute Result + + * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Code cleanup + for operators. + (Analyze_Subprogram_Body): Install private_with_clauses when the body + acts as a spec. + (Check_Inline_Pragma): recognize an inline pragma that appears within + the subprogram body to which it applies. + (Analyze_Function_Return): Check that type of the expression of a return + statement in a function with a class-wide result is not declared at a + deeper level than the function. + (Process_PPCs): Deal with enabling/disabling, using PPC_Enabled flag + (Verify_Overriding_Indicator): Handle properly subprogram bodies for + user- defined operators. + (Install_Formals): Moved to spec to allow use from Sem_Prag for + analysis of precondition/postcondition pragmas. + (Analyze_Subprogram_Body.Last_Real_Spec_Entity): New name for + Last_Formal, along with lots of comments on what this is about + (Analyze_Subprogram_Body): Fix case where we move entities from the + spec to the body when there are no body entities (now possible with + precondition and postcondition pragmas). + (Process_PPCs): New procedure + (Analyze_Subprogram_Body): Add call to Process_PPCs + + * sem_ch8.adb (Use_One_Type): refine warning on a redundant use_type + clause. + (Pop_Scope): Restore Check_Policy_List on scope exit + (Push_Scope): Save Check_Policy_List on scope entry + Change name In_Default_Expression => In_Spec_Expression + Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression + Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve + (Analyze_Object_Renaming): Allow 'Reference as object + (Analyze_Pragma, case Restriction_Warnings): Call GNAT_Pragma + (Process_Restrictions_Or_Restriction_Warnings): Check for bad spelling + of restriction identifier. + Add Sure parameter to Note_Possible_Modication calls + + * sem_prag.ads, sem_prag.adb (Analyze_Pragma, case Stream_Convert): + Don't check for primitive operations when calling Rep_Item_Too_Late. + (Process_Import_Or_Interface): Do not place flag on formal + subprograms. + (Analyze_Pragma, case Export): If the entity is a deferred constant, + propagate information to full view, which is the one elaborated by the + back-end. + (Make_Inline): the pragma is effective if it applies to an internally + generated subprogram declaration for a body that carries the pragma. + (Analyze_Pragma, case Optimize_Alignment): Set new flag + Optimize_Alignment_Local. + (Analyze_PPC_In_Decl_Part): New procedure + (Get_Pragma_Arg): Moved to outer level + (Check_Precondition_Postcondition): Change to allow new visibility + rules for package spec + (Analyze_Pragma, case Check_Policy): Change placement rules to be + same as pragma Suppress/Unsuppress. + Change name In_Default_Expression => In_Spec_Expression + Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression + Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve + (Check_Precondition_Postcondition): Do proper visibility preanalysis + for the case of these pragmas appearing in the spec. + (Check_Enabled): New function + (Initialize): New procedure + (Tree_Read): New procedure + (Tree_Write): New procedure + (Check_Precondition_Postcondition): New procedure + Implement pragmas Check and Check_Policy + Merge Assert processing with Check + + * sem_warn.adb (Warn_On_Known_Condition): Handle pragma Check + New warning flag -gnatw.e + + * sinfo.ads, sinfo.adb (Has_Relative_Deadline_Pragma): New function + returning whether a task (or main procedure) has a pragma + Relative_Deadline. + (Set_Has_Relative_Deadline_Pragma): Procedure to indicate that a task + (or main procedure) has a pragma Relative_Deadline. + Add Next_Pragma field to N_Pragma node + (PPC_Enabled): New flag + (Next_Pragma): Now used for Pre/Postcondition processing + + * snames.h, snames.ads, snames.adb: New standard name + Inherit_Source_Path + Add entry for 'Invalid_Value attribute + Add entry for new attribute Has_Tagged_Values + Add entry for Enum_Val attribute + Add new standard names Aggregate, Configuration and Library. + Add _Postconditions + Add _Result + Add Pragma_Precondition + Add Pragma_Postcondition + Add Attribute_Result + New standard name Archive_Builder_Append_Option + (Preset_Names): Add _relative_deadline and relative_deadline definitions + There was also a missing non_preemptive_within_priorities. + (Get_Pragma_Id, Is_Pragma_Name): Add support for pragma + Relative_Deadline. + Add support for pragmas Check and Check_Policy + + * tree_gen.adb: Call Sem_Aux.Tree_Write + + * tree_in.adb: Call Sem_Aux.Tree_Read + + * exp_ch11.adb (Expand_N_Raise_Statement): New Build_Location calling + sequence + + * exp_intr.adb (Expand_Source_Info): New Build_Location calling + sequence + + * exp_prag.adb (Expand_Pragma_Relative_Deadline): New procedure. + (Expand_N_Pragma): Call the appropriate procedure for expanding pragma + Relative_Deadline. + (Expand_Pragma_Check): New procedure + + * sinput.ads, sinput.adb (Build_Location_String): Now appends to name + buffer. + + * sinfo.adb (PPC_Enabled): New flag + +2008-04-08 Robert Dewar + Gary Dismukes + Javier Miranda + Ed Schonberg + + * fe.h: Remove global Optimize_Alignment flag, no longer used + + * layout.adb: Test Optimize_Alignment flags rather than global switch + + * lib.ads, lib.adb: New OA_Setting field in library record + + * lib-load.adb: New OA_Setting field in library record + + * lib-writ.ads, lib-writ.adb (Collect_Withs, Write_With_Lines): Place + units mentioned in limited_with_ clauses in the ali file, with an + 'Y' marker. + New Ox fields in U line + + * opt.adb: New flag Optimize_Alignment_Local + (Check_Policy_List[_Config]): New flags + + * opt.ads (Invalid_Value_Used): New flag + New switch Optimize_Alignment_Local + (Warn_On_Parameter_Order): New flag + (Check_Policy_List[_Config]): New flags + + * ali.ads, ali.adb: Add indicator 'Y' to mark mark the presence of + limited_with clauses. + New data structures for Optimize_Alignment + + * bcheck.adb (Check_Consistent_Restriction_No_Default_Initialization): + New procedure + (Check_Consistent_Optimize_Alignment): Rework for new structure + (Check_Consistent_Restrictions): Fix incorrect error message + + sem_ch10.adb (Decorate_Tagged_Type): Set the Parent field of a newly + created class-wide type (to the Parent field of the specific type). + (Install_Siblings): Handle properly private_with_clauses on subprogram + bodies and on generic units. + (Analyze_With_Clause, Install_Limited_Withed_Unit): Guard against an + illegal limited_with_clause that names a non-existent package. + (Check_Body_Required): Determine whether a unit named a limited_with + clause needs a body. + (Analyze_Context): A limited_with_clause is illegal on a unit_renaming. + Capture Optimize_Alignment settings to set new OA_Setting field in + library record. + (Build_Limited_Views): Include task and protected type declarations. + + * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Handle the + case of a possible constant redeclaration where the current object is + an entry index constant. + (Analyze_Object_Declaration): Generate an error in case of CPP + class-wide object initialization. + (Analyze_Object_Declaration): Add extra information on warnings for + declaration of unconstrained objects. + (Access_Type_Declaration): Set Associated_Final_Chain to Empty, to avoid + conflicts with the setting of Stored_Constraint in the case where the + access type entity has already been created as an E_Incomplete_Type due + to a limited with clause. + Use new Is_Standard_Character_Type predicate + (Analyze_Object_Declaration): Apply access_constant check only after + expression has been resolved, given that it may be overloaded with + several access types. + (Constant_Redeclaration): Additional legality checks for deferred + constant declarations tha involve anonymous access types and/or null + exclusion indicators. + (Analyze_Type_Declaration): Set Optimize_Alignment flags + (Analyze_Subtype_Declaration): Ditto + (Analyze_Object_Declaration): Ditto + (Analyze_Object_Declaration): Don't count tasks in generics + Change name In_Default_Expression => In_Spec_Expression + Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression + Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve + (Process_Discriminants): Additional check for illegal use of default + expressions in access discriminant specifications in a type that is not + explicitly limited. + (Check_Abstract_Overriding): If an inherited function dispaches on an + access result, it must be overridden, even if the type is a null + extension. + (Derive_Subprogram): The formals of the derived subprogram have the + names and defaults of the parent subprogram, even if the type is + obtained from the actual subprogram. + (Derive_Subprogram): In the presence of interfaces, a formal of an + inherited operation has the derived type not only if it descends from + the type of the formal of the parent operation, but also if it + implements it. This is relevant for the renamings created for the + primitive operations of the actual for a formal derived type. + (Is_Progenitor): New predicate, to determine whether the type of a + formal in the parent operation must be replaced by the derived type. + + * sem_util.ads, sem_util.adb (Has_Overriding_Initialize): Make + predicate recursive to handle components that have a user-defined + Initialize procedure. Handle controlled derived types whose ancestor + has a user-defined Initialize procedured. + (Note_Possible_Modification): Add Sure parameter, generate warning if + sure modification of constant + Use new Is_Standard_Character_Type predicate + (Find_Parameter_Type): when determining whether a protected operation + implements an interface operation, retrieve the type of the formal from + the entity when the formal is an access parameter or an + anonymous-access-to-subprogram. + Move Copy_Parameter_List to sem_util, for use when building stubbed + subprogram bodies. + (Has_Access_Values): Tagged types now return False + (Within_HSS_Or_If): New procedure + (Set_Optimize_Alignment_Flags): New procedure + Change name In_Default_Expression => In_Spec_Expression + Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression + Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve + +2008-04-08 Tristan Gingold + + * s-fileio.adb: Name_Error shouldn't be raised for a tempory file. + +2008-04-08 Tristan Gingold + +PR ada/10768 + + * cuintp.c: Fix 16 bits issue for AVR. + On AVR, integer is 16 bits, so it can't be used to do math with + Base (=32768). + So use long_integer instead. + +2008-04-08 Hristian Kirtchev + + * a-calend-vms.ads, a-calend-vms.adb: Add with and use clause for + System.OS_Primitives. + Change type of various constants, parameters and local variables from + Time to representation type OS_Time. + (To_Ada_Time, To_Unix_Time): Correct sign of origin shift. + Remove the declaration of constant Mili_F from several routines. New + body for internal package Conversions_Operations. + (Time_Of): Add default parameters for several formals. + + * a-caldel.adb: Minor reformatting + + * a-calend.ads, a-calend.adb: New body for internal package + Conversions_Operations. + (Time_Of): Add default parameters for several formals. + + * Makefile.rtl: Add a-ststop + Add Ada.Calendar.Conversions to the list of runtime files. + Add g-timsta + + * a-calcon.adb, a-calcon.ads: New files. + +2008-04-08 Jose Ruiz + Tristan Gingold + + * s-interr-dummy.adb, s-interr-vms.adb, s-interr-sigaction.adb + (Install_Restricted_Handlers): New procedure + which is a simplified version of Install_Handlers that does not store + previously installed. + + * s-interr-vxworks.adb: Fix ACATS cxc3001 + On VxWorks interrupts can't be detached. + (Install_Restricted_Handlers): New procedure. + + * s-interr.ads, s-interr.adb (Install_Restricted_Handlers): New + procedure. + +2008-04-08 Olivier Hainque + + * s-intman-vxworks.ads, s-intman-vxworks.adb + (Map_And_Raise_Exception): Remove. Was an import of only part of the + required services already implemented elsewhere. + (Notify_Exception): Delete body, import __gnat_error_handler instead. + (Initialize): Add SA_SIGINFO to the sa_flags, to get the sigcontext + argument passed to the handler, which we need for ZCX propagation + purposes. + +2008-04-08 Hristian Kirtchev + + * adaint.h, adaint.c (__gnat_current_time_string): New routine. + + * g-timsta.adb, g-timsta.ads: New files. + +2008-04-08 Robert Dewar + + * a-except-2005.ads, a-except-2005.adb, a-except.ads, a-except.adb + (Raise_Exception): In accordance with AI-446, raise CE for Null_Id + (Raise_Exception_Always): Fix documentation accordingly + +2008-04-08 Robert Dewar + + * a-strbou.ads, a-strbou.adb (From_String): New procedure (for use by + Stream_Convert) + + * sem_ch13.ads (Rep_Item_Too_Late): Document that Stream_Convert sets + FOnly + +2008-04-08 Javier Miranda + Robert Dewar + Ed Schonberg + + * a-tags.adb (Register_Interface_Offset): New subprogram. + (Set_Dynamic_Offset_To_Top): New subprogram (see previous comment). + (To_Predef_Prims_Table_Ptr): Removed. + (Acc_Size): Removed. + (To_Acc_Size): Removed. + (Parent_Size): Modified to the call the subprogram returning the size of + the parent by means of the new TSD component Size_Func. + + * a-tags.ads (Offset_To_Top_Ptr): New access type declaration. + (DT_Offset_To_Top_Offset): New constant value that is used to generate + code referencing the Offset_To_Top component of the dispatch table's + prologue. + (Prim_Ptr): New declaration of access to procedure. Used to avoid the + use of 'address to initialize dispatch table slots. + (Size_Func): New component of the TSD. Used by the run-time to call the + size primitive of the tagged type. + + * checks.adb (Apply_Access_Check): Avoid check when accessing the + Offset_To_Top component of a dispatch table. + (Null_Exclusion_Static_Checks): If the non-null access type appears in a + deferred constant declaration. do not add a null expression, to prevent + spurious errors when full declaration is analyzed. + (Apply_Discriminant_Check): If both discriminant constraints share a + node which is not static but has no side effects, do not generate a + check for that discriminant. + (Generate_Index_Checks): Set Name_Req to true in call to duplicate + subexpr, since the prefix of an attribute is a name. + + * checks.ads: Fix nit in comment. + + * exp_ch3.ads, exp_ch3.adb (Freeze_Record_Type): Do not add the spec + and body of predefined primitives in case of CPP tagged type + derivations. + (Freeze_Type): Deal properly with no storage pool case + (Make_Predefined_Primitive_Specs): Generate specification of abstract + primitive Deep_Adjust if a nonlimited interface is derived from a + limited interface. + (Build_Dcheck_Functions): Create discriminant-checking functions only + for variants that have some component(s). + (Build_Slice_Assignment): In expanded code for slice assignment, handle + properly the case where the slice bounds extend to the last value of the + underlying representation. + (Get_Simple_Init_Val): New calling sequence, accomodate Invalid_Value + (Is_Variable_Size_Record): An array component has a static size if + index bounds are enumeration literals. + + * exp_disp.adb (Make_DT): Use the first subtype to determine whether + an external tag has been specified for the type. + (Building_Static_DT): Add missing support for private types. + (Make_DT): Add declaration of Parent_Typ to ensure consistent access + to the entity associated with the parent of Typ. This is done to + avoid wrong access when the parent is a private type. + (Expand_Interface_Conversion): Improve error message when the + configurable runtime has no support for dynamic interface conversion. + (Expand_Interface_Thunk): Add missing support to interface types in + configurable runtime. + (Expand_Dispatching_Call): remove obsolete code. + (Make_DT): Replace occurrences of RE_Address by RE_Prim_Ptr, and + ensure that all subtypes and aggregates associated with dispatch + tables have the attribute Is_Dispatch_Table_Entity set to true. + (Register_Primitive): Rename one variable to improve code reading. + Replace occurrences of RE_Addres by RE_Prim_Ptr. Register copy o + of the pointer to the 'size primitive in the TSD. + + * rtsfind.ads (RE_DT_Offset_To_Top_Offset): New entity. + (RE_Offset_To_Top_Ptr): New entity. + (RE_Register_Interface_Offset): New entity. + (RE_Set_Dynamic_Offset_To_Top): New entity. + (RE_Set_Offset_To_Top): Removed entity. + (RE_Prim_Ptr): New entity + (RE_Size_Func): New entity + (RE_Size_Ptr): New entity + (RTU_Id): Add Ada_Dispatching and Ada_Dispatching_EDF. + (Ada_Dispatching_Child): Define this new subrange. + (RE_Id): Add new required run-time calls (RE_Set_Deadline, RE_Clock, + RE_Time_Span, and RE_Time_Span_Zero). + (RE_Unit_Table): Add new required run-time calls + + * rtsfind.adb (Get_Unit_Name): Add processing for Ada.Dispatching + children. + + * exp_atag.ads, exp_atag.adb (Build_Offset_To_Top): New subprogram. + (Build_Set_Static_Offset_To_Top): New subprogram. Generates code that + initializes the Offset_To_Top component of a dispatch table. + (Build_Predef_Prims): Removed. + (Build_Get_Predefined_Prim_Op_Address): Replace call to Predef_Prims by + its actual code. + (Build_Set_Size_Function): New subprogram. + + * exp_ch13.adb: Do not generate storage variable for storage_size zero + (Expand): Handle setting/restoring flag Inside_Freezing_Actions + +2008-04-08 Robert Dewar + + * a-ztdeau.adb, a-tideau.adb, a-wtdeau.adb (Puts_Dec): Fix error in + computing Fore when Exp > 0 + +2008-04-08 Robert Dewar + + * back_end.adb: Remove Big_String_Ptr declarations (now in Types) + + * errout.adb: Remove Big_String_Ptr declarations (now in Types) + Change name Is_Style_Msg to Is_Style_Or_Info_Msg + + * fmap.adb: Remove Big_String declarations (now in Types) + (No_Mapping_File): New Boolean global variable + (Initialize): When mapping file cannot be read, set No_Mapping_File to + False. + (Update_Mapping_File): Do nothing if No_Mapping_File is True. If the + tables were empty before adding entries, open the mapping file + with Truncate = True, instead of delete/re-create. + + * fname-sf.adb: Remove Big_String declarations (now in Types) + + * s-strcom.adb, g-dyntab.ads, g-table.ads, s-carsi8.adb, + s-stalib.ads, s-carun8.adb: Add zero size Storage_Size clauses for + big pointer types + + * table.ads: Add for Table_Ptr'Storage_Size use 0 + + * types.ads: Add Big_String declarations + Add Size_Clause of zero for big pointer types + +2008-04-08 Vincent Celier + + * clean.adb (Parse_Cmd_Line): Recognize switch --subdirs= + (Usage): Add line for switch --subdirs= + Add new switch -eL, to follow symbolic links when processing project + files. + + * gnatcmd.adb: Process switches -eL and --subdirs= + (Non_VMS_Usage): Output "gnaampcmd" instead of "gnat", and call + Program_Name to get proper tool names when AAMP_On_Target is set. + (Gnatcmd): Call Add_Default_Search_Dirs and Get_Target_Parameters to get + AAMP_On_Target set properly for use of GNAAMP tools (this is needed by + Osint.Program_Name). + + * gnatname.adb: (Scan_Args): Recognize switches -eL and --subdirs= + (Usage): Add lines for switches -eL and --subdirs= + + * makeusg.adb: Add line for switch --subdirs= + + * prj.ads: + (Source_Data): New Boolean component Compiled, defaulted to True + (Empty_File_Name: New global variable in private part, initialized in + procedure Initialize. + (Subdirs_Option): New constant string + (Subdirs): New String_Ptr global variable + (Language_Config): New component Include_Compatible_Languages + (Project_Qualifier): New type for project qualifiers + (Project_Data): New component Qualifier + (Project_Configuration): New component Archive_Builder_Append_Option + + * prj-nmsc.adb (Get_Unit_Exceptions): When a unit is already in + another imported project indicate the name of this imported project. + (Check_File): When a unit is in two project files, indicate the project + names and the paths of the source files for each project. + (Add_Source): Set Compiled to False if compiler driver is empty. Only + set object, dependency and switches file names if Compiled is True. + (Process_Compiler): Allow the empty string for value of attribute Driver + (Get_Directories): When Subdirs is not null and Object_Dir is not + specified, locate and create if necessary the actual object dir. + (Locate_Directory): When Subdirs is not empty and Create is not the + empty string, locate and create if necessary the actual directory + as a subdirectory of directory Name. + (Check_Library_Attributes.Check_Library): Allow a project where the only + "sources" are header files of file based languages to be imported by + library projects, in multi-language mode (gprbuild). + (Check_Library_Attributes.Check_Library): In multi-language mode + (gprbuild), allow a library project to import a project with no + sources, even when this is not declared explicitly. + (Check_If_Externally_Built): A virtual project extending an externally + built project is also externally built. + (Check_Library_Attributes): For a virtual project extending a library + project, inherit the library directory. + (Process_Project_Level_Array_Attributes): Process new attribute + Inherit_Source_Path. + For projects with specified qualifiers "standard", "library" or + "abstract", check that the project conforms to the qualifier. + (Process_Project_Level_Simple_Attributes): Process new attribute + Archive_Builder_Append_Option. + + * switch-m.adb: (Scan_Make_Switches): Process switch --subdirs= + (Normalize_Compiler_Switches): Only keep compiler switches that are + passed to gnat1 by the gcc driver and that are stored in the ALI file + by gnat1. + Do not take into account switc -save-temps + + * makegpr.adb (Compile_Link_With_Gnatmake): Transmit switch -eL if + gprmake is called with -eL. + (Scan_Arg): Recognize switch -eL + (Usage): Add line for switch -eL + + * prj.adb (Initialize): Initialize Empty_File_Name + (Project_Empty): New component Qualifier + + * prj-attr.ads, prj-attr.adb: New project level attribute + Inherit_Source_Path. + New project level attribute Archive_Builder_Append_Option + + * prj-dect.adb: Replace System.Strings by GNAT.Strings. + + * prj-ext.adb (Initialize_Project_Path): In Multi_Language mode, add + /lib/gnat in the project path, after /share/gpr, for + upward compatibility. + + * prj-part.adb (Project_Path_Name_Of.Try_Path): In high verbosity, put + each Trying ..." on different lines. + (Parse_Single_Project): Recognize project qualifiers. Fail in qualifier + is "configuration" when not in configuration. Fail when in configuration + when a specified qualifier is other than "configuration". + + * prj-proc.adb (Process_Declarative_Items): Link new elements of copied + full associative array together. + (Recursive_Process): Put the project qualifier in the project data + + * prj-tree.ads, prj-tree.adb: (Project_Qualifier_Of): New function + (Set_Project_Qualifier_Of): New procedure + +2008-04-08 Robert Dewar + + * errout.ads: Update comments for new handling of info: messages + + * erroutc.adb (Matches): New procedure + (Warning_Specifically_Suppressed): Modified to handle multiple * chars + (Is_Style_Or_Info_Msg): New name for Is_Style_Msg, now set for + info messages as well as style messages. + + * erroutc.ads: Remove unneeded fields from Specific_Warning_Entry + + * sem_elab.adb (Supply_Bodies): Create actual bodies for stubbed + subprograms. + (Check_A_Call): Special "info: " warnings now have ? in the text + (Elab_Warning): Use info message in static case + +2008-04-08 Ed Schonberg + + * exp_aggr.adb (Static_Array_Aggregate): Use Max_Aggr_Size to determine + whether an array aggregate with static bounds and scalar components + should be expanded into a static constant. + +2008-04-08 Gary Dismukes + Ed Schonberg + Robert Dewar + + * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Add tests of + Has_Stream_Attribute_ Definition when checking for available stream + attributes on parameters of a limited type in Ada 2005. Necessary for + proper recognition of visible stream attribute clauses. + (Has_Stream_Attribute_Definition): If the type is derived from a + private type, then use the derived type's underlying type for checking + whether it has stream attributes. + (Validate_Object_Declaration): The check for a user-defined Initialize + procedure applies also to types with controlled components or a + controlled ancestor. + Reject an object declaration in a preelaborated unit if the type is a + controlled type with an overriding Initialize procedure. + (Validate_Remote_Access_To_Class_Wide_Type): Return without further + checking when the parent of a dereference is a selected component and + the name has not been analyzed. + + * sem_ch4.adb (Analyze_Selected_Component): Add checking for selected + prefixes that are invalid explicit dereferences of remote + access-to-class-wide values, first checking whether the selected + component is a prefixed form of call to a tagged operation. + (Analyze_Call): Remove code that issues an error for limited function + calls in illegal contexts, as we now support all of the contexts that + were forbidden here. + Allow a function call that returns a task.and appears as the + prefix of a selected component. + (Analyze_Reference): Give error message if we try to make a 'Reference + for an object that is atomic/aliased without its type having the + corresponding attribute. + (Analyze_Call): Remove condition checking for attributes to allow + calls to functions with inherently limited results as prefixes of + attributes. Remove related comment about Class attributes. + (Analyze_Selected_Component): If the prefix is a remote type, check + whether this is a prefixed call before reporting an error. + (Complete_Object_Operation): If the controlling formal is an access to + variable reject an actual that is a constant or an access to one. + (Try_Object_Operation): If prefix is a tagged protected object,retrieve + primitive operations from base type. + + * exp_ch4.adb (Expand_N_Indexed_Component): Test for prefix that is a + build-in-place + function call and call Make_Build_In_Place_Call_In_Anonymous_Context. + (Expand_N_Selected_Component): Test for prefix that is a build-in-place + function call and call Make_Build_In_Place_Call_In_Anonymous_Context. + (Expand_N_Slice): Test for prefix that is a build-in-place function call + and call Make_Build_In_Place_Call_In_Anonymous_Context. + (Analyze_Call): Remove code that issues an error for limited function + calls in illegal contexts, as we now support all of the contexts that + were forbidden here. + New calling sequence for Get_Simple_Init_Val + (Expand_Boolean_Operator): Add call to Silly_Boolean_Array_Xor_Test + (Expand_N_Op_Not): Add call to Silly_Boolan_Array_Not_Test + +2008-04-08 Hristian Kirtchev + Ed Schonberg + Robert Dewar + + * exp_ch2.adb: Minor reformatting. + (Expand_Entry_Index_Parameter): Set the type of the identifier. + (Expand_Entry_Reference): Add call to Expand_Protected_Component. + (Expand_Protected_Component): New routine. + (Expand_Protected_Private): Removed. + Add Sure parameter to Note_Possible_Modification calls + + * sem_ch12.ads, sem_ch12.adb (Analyze_Subprogram_Instantiation): The + generated subprogram declaration must inherit the overriding indicator + from the instantiation node. + (Validate_Access_Type_Instance): If the designated type of the actual is + a limited view, use the available view in all cases, not only if the + type is an incomplete type. + (Instantiate_Object): Actual is illegal if the formal is null-excluding + and the actual subtype does not exclude null. + (Process_Default): Handle properly abstract formal subprograms. + (Check_Formal_Package_Instance): Handle properly defaulted formal + subprograms in a partially parameterized formal package. + Add Sure parameter to Note_Possible_Modification calls + (Validate_Derived_Type_Instance): if the formal is non-limited, the + actual cannot be limited. + (Collect_Previous_Instances): Generate instance bodies for subprograms + as well. + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Small): Don't + try to set RM_Size. + Add Sure parameter to Note_Possible_Modification calls + (Analyze_At_Clause): Preserve Comes_From_Source on Rewrite call + (Analyze_Attribute_Definition_Clause, case Attribute_Address): Check for + constant overlaid by variable and issue warning. + Use new Is_Standard_Character_Type predicate + (Analyze_Record_Representation_Clause): Check that the specified + Last_Bit is not less than First_Bit - 1. + (Analyze_Attribute_Definition_Clause, case Address): Check for + self-referential address clause + + * sem_ch5.ads, sem_ch5.adb (Diagnose_Non_Variable_Lhs): Rewrite the + detection mechanism when the lhs is a prival. + (Analyze_Assignment): Call Check_Unprotected_Access to detect + assignment of a pointer to protected data, to an object declared + outside of the protected object. + (Analyze_Loop_Statement): Check for unreachable code after loop + Add Sure parameter to Note_Possible_Modication calls + Protect analysis from previous syntax error such as a scope mismatch + or a missing begin. + (Analyze_Assignment_Statement): The assignment is illegal if the + left-hand is an interface. + + * sem_res.ads, sem_res.adb (Resolve_Arithmetic_Op): For mod/rem check + violation of restriction No_Implicit_Conditionals + Add Sure parameter to Note_Possible_Modication calls + Use new Is_Standard_Character_Type predicate + (Make_Call_Into_Operator): Preserve Comes_From_Source when rewriting + call as operator. Fixes problems (e.g. validity checking) which + come from the result looking as though it does not come from source). + (Resolve_Call): Check case of name in named parameter if style checks + are enabled. + (Resolve_Call): Exclude calls to Current_Task as entry formal defaults + from the checking that such calls should not occur from an entry body. + (Resolve_Call): If the return type of an Inline_Always function + requires the secondary stack, create a transient scope for the call + if the body of the function is not available for inlining. + (Resolve_Actuals): Apply Ada2005 checks to view conversions of arrays + that are actuals for in-out formals. + (Try_Object_Operation): If prefix is a tagged protected object,retrieve + primitive operations from base type. + (Analyze_Selected_Component): If the context is a call to a protected + operation the parent may be an indexed component prior to expansion. + (Resolve_Actuals): If an actual is of a protected subtype, use its + base type to determine whether a conversion to the corresponding record + is needed. + (Resolve_Short_Circuit): Handle pragma Check + + * sem_eval.adb: Minor code reorganization (usea Is_Constant_Object) + Use new Is_Standard_Character_Type predicate + (Eval_Relational_Op): Catch more cases of string comparison + +2008-04-08 Robert Dewar + Gary Dismukes + + * s-rident.ads: Add No_Default_Initialization restriction + + * exp_tss.adb: + (Has_Non_Null_Base_Init_Proc): Handle No_Default_Initialization case + (Set_TSS): Handle No_Default_Initialization case + + * exp_ch6.adb (Expand_N_Subprogram_Body): Handle restriction + No_Default_Initialization + (Expand_N_Subprogram_Body): Remove redundant initialization of out + parameters when Normalize_Scalars is active. + (Add_Final_List_Actual_To_Build_In_Place_Call): Add formal Sel_Comp + Fix casing error in formal parameter name in call + (Register_Predefined_DT_Entry): Replace occurrences of RE_Address by + (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a + dispatching call on VM targets. + +2008-04-08 Gary Dismukes + Thomas Quinot + + * exp_ch7.adb (Find_Final_List): Change the test for generating a + selected component from an access type's Associated_Final_Chain to + check for the presence of that field, rather than assuming it exists + for all named access types. + (Make_Clean): New formal Chained_Cleanup_Action allowing to specify a + procedure to call at the end of the generated cleanup procedure. + (Expand_Cleanup_Actions): When a new cleanup procedure is generated, and + and an At_End_Proc already exists in the handled sequence of statements + for which cleanup actions are being expanded, the original cleanup + action must be preserved. + +2008-04-08 Hristian Kirtchev + Ed Schonberg + Robert Dewar + Gary Dismukes + + * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry, + Build_Unprotected_Subprogram_Body): Generate debug info for + declarations related to the handling of private data in task and + protected types. + (Debug_Private_Data_Declarations): New subprogram. + (Install_Private_Data_Declarations): Remove all debug info flagging. + This is now done by Debug_Private_Data_Declarations at the correct + stage of expansion. + (Build_Simple_Entry_Call): If the task name is a function call, expand + the prefix into an object declaration, and make the surrounding block a + task master. + (Build_Master_Entity): An internal block is a master if it wraps a call. + Code reformatting, update comments. Code clean up. + (Make_Task_Create_Call): Use 'Unrestricted_Access instead of 'Address. + (Replicate_Entry_Formals): If the formal is an access parameter or + anonymous access to subprogram, copy the original tree to create new + entities for the formals of the subprogram. + (Expand_N_Task_Type_Declaration): Create a Relative_Deadline variable + for tasks to store the value passed using pragma Relative_Deadline. + (Make_Task_Create_Call): Add the Relative_Deadline argument to the + run-time call to create a task. + (Build_Wrapper_Spec): If the controlling argument of the interface + operation is an access parameter with a non-null indicator, use the + non-null indicator on the wrapper. + + * sem_ch9.adb (Analyze_Protected_Type): Only retrieve the full view when + present, which it may not be in the case where the type entity is an + incomplete view brought in by a limited with. + (Analyze_Task_Type): Only retrieve the full view when present, which it + may not be in the case where the type entity is an incomplete view brought + in by a limited with. + (Analyze_Protected_Definition): Set Is_Frozen on all itypes generated for + private components of a protected type, to prevent the generation of freeze + nodes for which there is no proper scope of elaboration. + + * exp_util.ads, exp_util.adb + (Remove_Side_Effects): If the expression is a function call that returns a + task, expand into a declaration to invoke the build_in_place machinery. + (Find_Protection_Object): New routine. + (Remove_Side_Effects): Also make a copy of the value + for attributes whose result is of an elementary type. + (Silly_Boolean_Array_Not_Test): New procedure + (Silly_Boolean_Array_Xor_Test): New procedure + (Is_Volatile_Reference): New function + (Remove_Side_Effects): Use Is_Volatile_Reference + (Possible_Bit_Aligned_Component): Handle slice case properly + + * exp_pakd.adb (Expand_Packed_Not): Move silly true/true or false/false + case test to Exp_Util + (Expand_Packed_Xor): Move silly true/true case test to Exp_Util + +2008-04-08 Thomas Quinot + + * exp_dist.ads, exp_dist.adb: Fix casing error in formal parameter name + in call + (Add_RACW_Features): When processing an RACW in another unit than the + main unit, set Body_Decls to No_List to indicate that the bodies of + the type's TSS must not be generated. + (GARLIC_Support.Add_RACW_Read_Attribute, + GARLIC_Support.Add_RACW_Write_Attribute): Do not generate bodies if + Body_Decls is No_List. + (PolyORB_Support.Add_RACW_Read_Attribute, + PolyORB_Support.Add_RACW_Write_Attribute, + PolyORB_Support.Add_RACW_From_Any, + PolyORB_Support.Add_RACW_To_Any, + PolyORB_Support.Add_RACW_TypeCode): Same. + (Transmit_As_Unconstrained): New function. + (Build_Ordered_Parameters_List): Use the above to order parameters. + (GARLIC_Support.Build_General_Calling_Stubs): + Use the above to determine which parameters to unmarshall using 'Input + at the point where their temporary is declared (as opposed to later on + with a 'Read call). + (PolyORB_Support.Build_General_Calling_Stubs): + Use the above to determine which parameters to unmarshall using From_Any + at the point where their temporary is declared (as opposed to later on + with an assignment). + +2008-04-08 Ed Schonberg + + * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): If this is + an Input function for an access type, do not perform default + initialization on the local variable that receives the value, to + prevent spurious warnings when the type is null-excluding. + +2008-04-08 Robert Dewar + Ed Schonberg + + * freeze.adb (Freeze_Entity): Improve warnings on access types in pure + units. + (Size_Known): Generic formal scalar types have known at compile + time size, so remove check. + Fix casing error in formal parameter name in call + (Freeze_Subprogram): If the subprogram is a user-defined operator, + recheck its overriding indication. + +2008-04-08 Vincent Celier + + * gnat1drv.adb: Send all messages indicating an error to standard error + +2008-04-08 Robert Dewar + + * gnatbind.adb (Restriction_Could_Be_Set): New procedure + (List_Applicable_Restrictions): Do not list existing restrictions + +2008-04-08 Thomas Quinot + + * g-socket.ads, g-socket.adb: Improve documentation of GNAT.Sockets: + add a pointer to generic sockets literature + do not mention that the given example is "typical" usage. + Remove obsolete comment about multicast not being supported on Windows. + (Connect_Socket): Make Server mode IN rather than IN OUT + since this formal is never modified. + +2008-04-08 Robert Dewar + + * sprint.adb (Write_Itype): Handle Itypes whose Parent field points to + the declaration for some different entity. + (Sprint_Node_Actual, case N_Derived_Type_Definition): When an interface + list is precent (following the parent subtype indication), display + appropriate "and" keyword. + + * itypes.adb: Remove unnecessary calls to Init_Size_Align and Init_Esize + Remove unnecessary calls to Init_Size_Align and Init_Esize. + Add notes on use of Parent field of an Itype + +2008-04-08 Ed Schonberg + Robert Dewar + Gary Dismukes + + * lib-xref.adb (Is_On_LHS): Remove dead code + (Output_Overriden_Op): If the overridden operation is itself inherited, + list the ancestor operation, which is the one whose body or absstract + specification is actually being overridden. For source navigation + purposes. + + * sem_ch7.adb (Is_Primitive_Of): use base type to determine whether + operation is primitive for the type. + (Declare_Inherited_Private_Subprograms): If the new operation overrides + an inherited private subprogram, set properly the Overridden_Operation + attribute, for better cross-reference information. + (Analyze_Package_Specification): Do late analysis of spec PPCs + (Install_Private_Declaration, Uninstall_Declarations): Save/restore + properly the full view and underlying full views of a private type in a + child unit, whose full view is derived from a private type in a parent + unit, and whose own full view becomes visible in the child body. + + * sem_disp.adb (Check_Dispatching_Operation): When a body declares a + primitive operation after the type has been frozen, add an explicit + reference to the type and the operation, because other primitive + references have been emitted already. + (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a + dispatching call on VM targets. + +2008-04-08 Vincent Celier + Thomas Quinot + + * make.adb: (Gnatmake_Called): Remove, no longer necessary + (Compile_Surces): Call Delete_Temp_Config_Files only if Gnatmake_Called + is True and Debug_Flag_N is False. Debug_Flag_N means "keep temp files". + (Insert_Project_Sources): Take into account index in multi-unit source + files. + After building a library project, delete all temporary files. + (Initialize): Reset current output after parsing project file. + (Collect_Arguments_And_Compile): Never insert in the queue the sources + of library projects that are externally built. + Put file name in error and inform messages if -df is used + (Display): If invoked with -d7, do not display path names, but only + file names. + + * makeutl.ads (Path_Or_File_Name): New function + (Path_Or_File_Name): New function + +2008-04-08 Arnaud Charlet + + * Make-lang.in: Disable warnings during first stage of bootstrap + Get rid of gnatbl. + Update dependencies. + +2008-04-08 Vincent Celier + + * mlib-prj.adb (Build_Library): Compare with ALI file name in canonical + case to decide if ALI object file is included in library. + (Build_Library): Never attempt to build a library if the project is + externally built. + +2008-04-08 Thomas Quinot + + * nlists.adb (Is_Non_Empty_List): Remove redundant test. First + (No_List) is defined to return Empty. + +2008-04-08 Jose Ruiz + + * osint.ads, osint.adb (Get_Libraries_From_Registry): Improve + documentation. + Update comments. + (Read_Default_Search_Dirs): Do not consider spaces as path separators + because spaces may be part of legal paths. + +2008-04-08 Robert Dewar + + * par-ch11.adb (P_Exception_Handler): Check indentation level for + handler + +2008-04-08 Ed Schonberg + + * par-ch3.adb (P_Type_Declaration) Reject the keyword "synchronized" + in a type declaration, if this is not an interface declaration or + private type extension. + +2008-04-08 Vincent Celier + + * prj-util.adb (Executable_Of): New String parameter Language. When + Ada_Main is False and Language is not empty, attempt to remove the body + suffix or the spec suffix of the language to get the base of the + executable file name. + (Put): New Boolean parameter Lower_Case, defauilted to False. When + Lower_Case is True, put the value in lower case in the name list. + (Executable_Of): If there is no executable suffix in the configuration, + then do not modify Executable_Extension_On_Target. + + * prj-util.ads (Executable_Of): New String parameter Language, + defaulted to the empty string. + (Put): New Boolean parameter Lower_Case, defauilted to False + +2008-04-08 Robert Dewar + + * scng.adb (Scan_Identifier): Handle case of identifier starting with + wide character using UTF-8 encoding. + +2008-04-08 Javier Miranda + + * sem.adb (Analyze): Consider case in which we analyze an empty node + that was generated by a call to a runtime function that is not + available under the configurable runtime. + + * sem.ads (Inside_Freezing_Actions): New flag. + (Save_Check_Policy_List): New field in scope stack entry + +2008-04-08 Ed Schonberg + Robert Dewar + + * sem_aggr.adb (Analyze_N_Extension_Aggregate): Add legality checks for + the ancestor part of an extension aggregate for a limited type. + (Resolve_Array_Aggregate): Issue warning for sliding of aggregate with + enumeration index bounds. + (Resolve_Array_Aggregate): Add circuit for diagnosing missing choices + when array is too short. + (Check_Expr_OK_In_Limited_Aggregate): Move function + Check_Non_Limited_Type from Resolve_Record_Aggregate to top level (and + change name). + (Resolve_Array_Aggregate.Resolve_Aggr_Expr): + Check_Expr_OK_In_Limited_Aggregates called to check for illegal limited + component associations. + (Check_Non_Limited_Type): Moved to outer level and renamed. + (Resolve_Record_Aggregate): In an extension aggregate, an association + with a box initialization can only designate a component of the + extension, not a component inherited from the given ancestor + + * sem_case.adb: Use new Is_Standard_Character_Type predicate + +2008-04-08 Robert Dewar + + * s-imgdec.adb (Set_Decimal_Digits): Fix error when input is zero with + negative scale + (Set_Decimal_Digits): Properly handle Aft=0 (equivalent to Aft=1) + Properly handle case where Aft > Scale and input number is less than + one. + +2008-04-08 Hristian Kirtchev + + * s-stoele.ads, s-soflin.ads: Move the location of + Dummy_Communication_Block from System.Storage_Elements to + System.Soft_Links. + + * s-tpobop.ads: Add comment on usage of Dummy_Communication_Block to + emulate Communication_Block in certain scenarios. + +2008-04-08 Hristian Kirtchev + + * s-strxdr.adb, s-stratt.ads, s-stratt.adb (Block_IO_OK): New + subprogram. + Add new subtype S_WWC, unchecked conversion routines From_WWC and + To_WWC. + (I_WWC, O_WWC): New routines for input and output of + Wide_Wide_Character. + +2008-04-08 Robert Dewar + + * stringt.adb (Write_String_Table_Entry): Handle wide characters + properly + +2008-04-08 Robert Dewar + + * styleg.adb (Check_Comment): Allow special char after -- in + non-end-of-line case + +2008-04-08 Robert Dewar + + * stylesw.adb: Implement -gnaty + - y options + (Set_GNAT_Style_Check_Options): Includ I in style check string + + * stylesw.ads: Add comments for new style switch options + +2008-04-08 Sergey Rybin + + * tree_io.ads: Increase ASIS_Version_Number because of adding Sem_Aux + to the set of the GNAT components needed by ASIS. + +2008-04-08 Bob Duff + + * types.h: Change CE_Null_Exception_Id to the correct value (8, was 9). + +2008-04-08 Tristan Gingold + + * vxaddr2line.adb: Use Unsigned_32 instead of Integer for address type. + Improve error message generation. + +2008-04-08 Vincent Celier + + * a-direct.adb (Start_Search): Check for Name_Error before checking for + Use_Error, as specified in the RM. Check if directory is open and raise + Use_Error if it is not. + +2008-04-08 Vincent Celier + Robert Dewar + + * vms_conv.adb (Output_Version): Print "GNAAMP" instead of "GNAT when + AAMP_On_Target is set. + + * vms_data.ads: Add NOxxx to style check switch list + Add entry COMPONENTS for -gnatVe + Add VMS qualifiers for -eL (/FOLLOW_LINKS_FOR_FILES) and --subdirs= + (/SUBDIRS=). + (GCC_Switches): Add /ALL_BACK_END_WARNINGS. + Add qualifiers for gnatmetric coupling options + Add note that -gnata enables all checks + Add entries [NO]PARAMETER_ORDER for -gnatw.p[P] + Fix inconsistency for VMS qualifier for the gnatpp '-rnb' option + New warning flag -gnatw.e + + * usage.adb: Add entries for -gnaty+ -gnaty- -gnatyy + Add entry for -gnatyN (forgotten before) + Line for new warning switch -gnatw.p + New warning flag -gnatw.e + + * gnat_ugn.texi: Add documentation fpr project file switch -aP + Document -gnaty - + y + Replace occurences of "package specification" with "package spec" + Define preprocessing symbols in documentation of gnatprep + Clarify reason for distinguishing overflow checking + Add documentation for project-aware tool switches -eL and --subdirs= + Complete list of configuration pragmas + Specify that, even when gnatmake switch -x is used, mains on the command + line need to be sources of project files. + Editing of gnatcheck/gnatmetric doc. + Add documentation for -gnatw.p/-gnatw.P + Add missing documentation for -fno-inline-functions. + Add documentation for -gnatw.e + + * gnat_rm.texi: Add documentation for No_Default_Initialization + Replace occurences of "package specification" with "package spec" + Document use of * in Warnings Off string + Update documentation of alignment/component clauses. + Add documentation for Invalid_Value + Document new consistency rule for Optimize_Alignment + Add documentation for Precondition and Postcondition pragmas + Add documentation for Check and Check_Policy pragmas + Document new Enum_Val attribute + Remove requirement for static string in pragma Assert + Add documentation on GNAT.Time_Stamp + + * ug_words: add entry for -gnatVe + Add entries for -gnat.p[P] /WARNINGS=[NO]PARAMETER_ORDER + Add entry for -gnatw.e + + * debug.adb: Add missing documentation for d.a flag + Document new -gnatd.a switch. + Add documentation for new gnatmake debug switch -df + +2008-04-08 Thomas Quinot + + * gen-soccon.c: Bump year in copyright notices. + + * g-soccon-vxworks.ads: Add new constant IP_PKTINFO + +2008-04-08 Eric Botcazou + + * ctrl_c.c: Improve handling of ctrl-c on LynxOS and Windows. + Minor reformatting. + +2008-04-08 Robert Dewar + Bob Duff + + * impunit.adb: Add Interfaces.Java.JNI, System.Strings.Stream_Ops, + Ada.Calendar.Conversions, Ada.Dispatching.EDF, GNAT.Time_Stamp + + * s-intman-mingw.adb: Minor comment fix -- spell 'explicitly' correctly + + * g-trasym.adb: Minor comment fix -- spell 'explicitly' correctly + + * g-trasym.ads: Minor comment improvements + + * s-stalib.adb: Minor comment fix -- spell 'explicitly' correctly + + * a-sequio.ads, a-direio.ads: improve message for tagged type + + * a-strunb.ads: Minor reformatting + + * a-tifiio.adb: Minor reformatting + + * atree.adb (Fix_Parents): Use clearer names for formals + Cleanup and simplify code + Use named notation in calls + + * exp_fixd.adb (Do_Multiply_Fixed_Universal): Use named notation in + confusing calls + + * uintp.adb: Used named notation for some confusing calls + + * bindusg.adb: Minor change in one line of output + + * cstand.adb: Minor reformatting of src representation of Standard + + * a-assert.ads: Add comment. + + * g-decstr.adb: Fix bad indentation + + * expander.ads, expander.adb: Code clean up. + + * sem_dist.ads: Minor comment improvement + + * sem_type.adb, g-dirope.ads, g-exctra.ads, s-valwch.adb, + s-wchstw.adb, targparm.ads, widechar.adb: Minor reformatting + + * i-cstrin.adb: Fix casing error in formal parameter name in call + +2008-04-08 Ed Schonberg + + * binde.adb (Gather_All_Links, Gather_Dependencies): units that are + mentioned in limited_with_clauses to do create semantic dependencies + even though they appear in the ali file. + +2008-04-08 Emmanuel Briot + + * g-comlin.ads, g-comlin.adb (Expansion): Remove unreachable return + statement. + (Get_Configuration): New subprogram. + + * prj-pp.ads, prj-pp.adb (Pretty_Print): new parameters Id and Id_Tree + These optional parameters help preserve the casing of the project's name + when pretty-printing. + +2008-04-08 Jerome Lambourg + Arnaud Charlet + + * bindgen.adb (Gen_Adainit_Ada): If the main program is a CIL function, + then use __gnat_set_exit_status to report the returned status code. + + * comperr.adb (Compiler_Abort): Convert most bug boxes into clean error + messages on .NET, since some constructs of the language are not + properly supported. + + * gnatlink.adb (Gnatlink): In case the command line is too long for the + .NET linker, gnatlink now concatenate all .il files and pass this to + ilasm. + +2008-04-07 Aurelien Jarno + Xavier Grave + + * Makefile.in: Add make ifeq define for mips/mipsel support. + * g-soccon-linux-mips.ads, system-linux-mipsel.ads, + system-linux-mips.ads: New files. + +2008-04-07 Aurelien Jarno + + * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to + detect systems using GNU libc. + * gsocket.h: ditto. + * socket.c: ditto. + * adaint.c: ditto. + * link.c: ditto. + +2008-04-07 Aurelien Jarno + + * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New + constant constant for sysconf call. + (bit_field): New packed boolean type used by cpu_set_t. + (cpu_set_t): New type corresponding to the C type with + the same name. Note that on the Ada side we use a bit + field array for the affinity mask. There is not need + for the C macro for setting individual bit. + (pthread_setaffinity_np): New imported routine. + * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb + on GNU/kFreeBSD. + +2008-04-07 Eric Botcazou + + * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too. + +2008-04-07 Eric Botcazou + + * gigi.h (create_subprog_type): Remove returns_with_dsp parameter. + * decl.c (gnat_to_gnu_entity): Adjust for above new prototype. + * utils.c (create_subprog_type): Remove returns_with_dsp parameter. + * trans.c (gnat_to_gnu) : Remove code dealing with + Return by Depressed Stack Pointer. + +2008-04-06 Eric Botcazou + + * decl.c (is_variable_size): Do not unconditionally return false + on non-strict alignment platforms. + +2008-04-06 Eric Botcazou + + * decl.c (rest_of_type_decl_compilation_no_defer): New local function + used to process all the variants of the specified type. + (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral + types too. Call rest_of_type_decl_compilation_no_defer if undeferring. + (rest_of_type_decl_compilation): Likewise. + * utils.c (gnat_pushdecl): Propagate the name to all variants of type. + +2008-04-03 Paolo Bonzini + + * gigi.h (insert_block): Kill. + * utils.c (insert_block): Kill. + +2008-04-02 Eric Botcazou + + * decl.c (gnat_to_gnu_entity) : For a constant object whose + type has self-referential size, get the size from the initializing + expression directly if it is also a constant whose nominal type + has self-referential size. + +2008-04-01 John David Anglin + + PR ada/33688 + * g-soccon-darwin.ads: Define new constant IP_PKTINFO. + + PR ada/33857 + * env.c: Always include crt_externs.h if __APPLE__ is defined. + (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined. + +2008-04-01 Andreas Jaeger + + * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and + IP_PKTINFO. + +2008-03-31 Ralf Wildenhues + + * g-table.adb, g-tasloc.adb, g-traceb.ads, + g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c, + gnatbind.adb, gnatchop.adb, gnatcmd.adb, + gnatcmd.ads, gnatdll.adb, gnatfind.adb, + gnatlink.adb, gnatmem.adb, gprep.adb, + i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads, + i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb, + layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb, + lib-xref.ads, lib.adb, link.c, live.ads, + make.adb, makegpr.adb, makeutl.adb, math_lib.adb, + mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads, + misc.c, mlib-prj.adb, mlib-tgt-hpux.adb, + mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads, + namet.adb, namet.h, nlists.adb, nlists.ads, + nlists.h, opt.ads, osint-b.ads, osint-c.adb, + osint-c.ads, osint.adb, osint.ads, output.ads, + par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb, + par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb, + par-endh.adb, par-labl.adb, par-prag.adb, + par-sync.adb, par-tchk.adb, par-util.adb, + par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads, + prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb, + prj-nmsc.ads, prj-pp.adb, prj-proc.adb, + prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos. + +2008-03-31 Eric Botcazou + + * decl.c (gnat_to_gnu_entity) : Do not force a non-null + size if it has overflowed. + +2008-03-31 Olivier Hainque + Eric Botcazou + + * utils2.c (find_common_type): Document assumption on t1/t2 vs + lhs/rhs. Force use of lhs type if smaller, whatever the modes. + +2008-03-30 Ralf Wildenhues + + * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads, + einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb, + exp_imgv.adb, exp_intr.adb, exp_pakd.adb, + exp_pakd.ads, exp_prag.adb, exp_smem.adb, + exp_tss.ads, exp_util.adb, exp_util.ads, + exp_vfpt.adb, freeze.adb, freeze.ads, + frontend.adb, g-alleve.adb, g-altcon.adb, + g-altive.ads, g-alveop.ads, g-alvevi.ads, + g-arrspl.adb, g-busorg.ads, g-calend.adb, + g-calend.ads, g-casuti.ads, g-cgideb.adb, + g-comlin.adb, g-comlin.ads, g-curexc.ads, + g-debpoo.adb, g-debpoo.ads, g-decstr.adb, + g-dirope.adb, g-dirope.ads, g-dynhta.ads, + g-dyntab.adb, g-encstr.ads, g-excact.ads, + g-except.ads, g-expect.ads, g-heasor.adb, + g-hesora.adb, g-hesorg.adb, g-htable.ads, + g-locfil.ads, g-md5.adb, g-md5.ads, + g-memdum.ads, g-moreex.ads, g-os_lib.adb, + g-pehage.adb, g-pehage.ads, g-regexp.adb, + g-regexp.ads, g-regpat.adb, g-regpat.ads, + g-soccon-aix.ads, g-soccon-darwin.ads, + g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads, + g-soccon-hpux.ads, g-soccon-irix.ads, + g-soccon-linux-64.ads, g-soccon-linux-ppc.ads, + g-soccon-linux-x86.ads, g-soccon-lynxos.ads, + g-soccon-mingw.ads, g-soccon-solaris-64.ads, + g-soccon-solaris.ads, g-soccon-tru64.ads, + g-soccon-vms.ads, g-soccon-vxworks.ads, + g-soccon.ads, g-socket.adb, g-socket.ads, + g-socthi-mingw.adb, g-socthi-vms.adb, + g-socthi-vxworks.adb, g-soliop-mingw.ads, + g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb, + g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment + typos. + +2008-03-27 Eric Botcazou + + * decl.c (gnat_to_gnu_entity) : Also set the public flag + if the procedure is imported. + +2008-03-26 Arnaud Charlet + + * adaint.c: Fix warnings. + +2008-03-26 Arnaud Charlet + + * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec. + +2008-03-26 Arnaud Charlet + + * a-witeio.adb: Fix problem with Current_Output (introduce Self). + Fix problem of status check for null file + +2008-03-26 Arnaud Charlet + + * s-proinf-irix-athread.ads, s-vxwork-mips.ads, + s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, + s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads, + i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads, + s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update + comments. + +2008-03-26 Thomas Quinot + + PR ada/33688 + * g-socket.ads, g-socket.adb (Options, Set_Socket_Option, + Get_Socket_Option): Add support for Receive_Packet_Info. + + * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads, + g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads, + g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads, + g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads, + g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add + new constants SO_REUSEPORT and IP_PKTINFO + +2008-03-26 Robert Dewar + + * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb, + a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb, + a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads, + a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads, + a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads, + a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads, + s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads, + s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads, + a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads, + s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads, + s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, + s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads, + s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb, + s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads, + s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads, + s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads, + s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads, + s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb, + s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb, + s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb, + a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads, + a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads, + s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads, + s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads, + s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads, + s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb, + s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb, + a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb, + a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb, + s-tasloc.adb: Minor reformatting. + Update comments. + Remove "used for" sections from comments. + +2008-03-26 Robert Dewar + + * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb, + s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb, + s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads, + s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb, + s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, + a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb, + a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, + a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads, + a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads, + a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads, + a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb, + i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads, + a-nlrear.ads, a-nucoar.ads, a-nurear.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-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads, + double spaced if it fits on one line and otherwise single spaced. + +2008-03-26 Arnaud Charlet + + * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb, + s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb, + s-taprop-posix.adb (Create_Task): Do not attempt to set task priority + or task info if the thread could not be created. + +2008-03-26 Arnaud Charlet + + * gnatvsn.ads (Library_Version): Bump to 4.4. + (Current_Year): Bump to 2008. + +2008-03-26 Robert Dewar + + * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record + + * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure + + * debug.adb: Add debug flags d.r and d.v + Add debug flag .T (Optimize_Alignment (Time)) + Add debug flag .S (Optimize_Alignment (Space)) + + * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components + depending on setting of relevant debug flags. + Replace use of Warnings_Off by Has_Warnings_Off + (Freeze_Entity): In circuit for warning on suspicious convention + actuals, do not give warning if subprogram has same entity as formal + type, or if subprogram does not come from source. + (Freeze_Entity): Don't reset Is_Packed for fully rep speced record + if Optimize_Alignment set to Space. + + * frontend.adb: Add call to Sem_Warn.Initialize + Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings + Reset Optimize_Alignment mode from debug switches .S and .T + + * layout.adb (Layout_Composite_Object): Rewritten for + Optimize_Aligment pragma. + + * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment + mode. + + * opt.ads, opt.adb: (Optimize_Alignment): New global switch + + * par-prag.adb (N_Pragma): Chars field removed, use Chars + (Pragma_Identifier (.. instead, adjustments throughout to accomodate + this change. Add entry for pragma Optimize_Alignment + + * sem_prag.adb (N_Pragma): Chars field removed, use Chars + (Pragma_Identifier (.. + instead, adjustments throughout to accomodate this change. + (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg + (Favor_Top_Level): Use new function Is_Access_Subprogram_Type + Add implementation of pragma Optimize_Alignment + +2008-03-26 Vincent Celier + + * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line): + Improve memory usage to avoid use of stack. + +2008-03-26 Robert Dewar + + * a-teioed.ads: Correct value of Default_Fill + + * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill + +2008-03-26 Robert Dewar + + * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem + with Current_Output (introduce Self). + +2008-03-26 Robert Dewar + + * checks.adb (Ensure_Valid): Capture valid status if possible + (eliminate checks) + +2008-03-26 Robert Dewar + + * stand.ads: Deal with reordering of package standard declarations + + * cstand.adb: Put package Standard declarations in proper order + +2008-03-26 Robert Dewar + + * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars + (Pragma_Identifier (.. instead. + (OK_To_Reorder_Components): New flag + (Has_Entries): Code cleanup. + (Warnings_Off_Used): New flag + (Warnings_Off_Used_Unmodified): New flag + (Warnings_Off_Used_Unreferenced): New flag + (Has_Warnings_Off): New function + (Has_Unmodified): New function + (Has_Unreferenced): New function + (Is_Trivial_Subprogram): New flag + (Is_Static_Dispatch_Table_Entity): New attribute. + Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind + (more consistent with other similar names) + (Access_Subprogram_Type): New classification function + +2008-03-26 Robert Dewar + + * errout.ads: Document new !! insertion sequence + + * errout.adb (N_Pragma): Chars field removed, use Chars + (Pragma_Identifier (.. instead. + Replace use of Warnings_Off by Has_Warnings_Off + (Error_Msg_Internal): Don't delete warning ending in !! + +2008-03-26 Robert Dewar + + * par.adb (Check_No_Right_Paren): Removed no longer used + + * par-ch10.adb (N_Pragma): Chars field removed, use Chars + (Pragma_Identifier (.. instead. + + * par-ch10.adb (P_Subunit): Improvement in error recovery and message + + * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb, + par-ch4.adb: Minor improvements in error recovery and messages. + + * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as + non-serious + + * par-ch9.adb: Minor improvements in error recovery and messages + (P_Protected): Better error recovery for "protected type x;" + + * par-util.adb: Minor improvements in error recovery and messages + (Check_No_Right_Paren): Removed no longer used + +2008-03-26 Ed Schonberg + + * exp_aggr.adb (Replace_Type): When checking for self-reference, verify + that the prefix of an attribute is the type of the aggregate being + expanded. + +2008-03-26 Javier Miranda + Robert Dewar + + * exp_attr.adb (N_Pragma): Chars field removed. + (Expand_N_Attribute_Reference): If the designated type associated with + attribute 'Unrestricted_Access is a subprogram entity then replace it + by an E_Subprogram_Type itype. + Implement attribute Old + + * sem_attr.ads (Attribute_Class_Array): Move to snames.ads + + * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation. + Replace call to + New_Internal_Entity by call to Create_Itype to centralize calls + building itypes, ad propagate the convention of the designated + subprogram. In addition, disable the machinery cleaning constant + indications from all entities in current scope when 'Unrestricted_Access + corresponds with a node initializing a dispatch table slot. + (Analyze_Attribute): Parameterless attributes returning a string or a + type will not be called with improper arguments, so we can remove junk + code that was dealing with this case. + Implement attribute Old + + * snames.ads, snames.h, snames.adb: Add entries for attribute Old + Add entry for pragma Optimize_Alignment + New standard names Sync and Synchronize + +2008-03-26 Robert Dewar + Arnaud Charlet + + * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise + stmt. + (No_Exception_Propagation_Active): New function. + (Expand_Exception_Handlers): Use No_Exception_Propagation_Active. + Update comments, and review all uses of No_Exception_Propagation, which + are now correct and in sync with what gigi expects. + + * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New + function. + (Expand_Exception_Handlers): Use No_Exception_Propagation_Active. + Update comments, and review all uses of No_Exception_Propagation, which + are now correct and in sync with what gigi expects. + +2008-03-26 Ed Schonberg + + * sem_ch3.adb (Access_Definition): If the access type is the return + result of a protected function, create an itype reference for it + because usage will be in an inner scope from the point of declaration. + (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and + OK_To_Reorder_Components. + (Make_Index): If an overloaded range includes a universal integer + interpretation, resolve to Standard.Integer. + (Analyze_Subtype_Indication): Copy Convention to subtype + (Check_Abstract_Interfaces): Complete semantic checks on the legality of + limited an synchronized progenitors in type declaration and private + extension declarations. + + * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a + protected subprogram body, determine proper scope from subprogram + declaration. + +2008-03-26 Robert Dewar + + * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for + No_Run_Time_Mode + +2008-03-26 Gary Dismukes + + * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation + of a heap allocator for a limited unconstrained function return when + resstriction No_Allocators is active. + (Analyze_Allocator): The restriction No_Allocators is now only checked + on allocators that have Comes_From_Source set, as per RM-H.4(7). + + * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation + of a heap allocator for a limited unconstrained function return when + resstriction No_Allocators is active. + (Analyze_Allocator): The restriction No_Allocators is now only checked + on allocators that have Comes_From_Source set, as per RM-H.4(7). + (Has_Fixed_Op): If the name in a function call is Standard."*" and the + operands are fixed-point types, the universal_fixed predefined operation + is used, regardless of whether the operand type (s) have a primitive + operation of the same name. + +2008-03-26 Javier Miranda + + * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute + Is_Static_Dispatch_Table + (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls + to Exchange_Declarations to exchange the private and full-view. Bug + found working in this issue. + (Expand_Dispatching_Call): Propagate the convention of the subprogram + to the subprogram pointer type. + (Make_Secondary_DT): Replace generation of Prim'Address by + Address (Prim'Unrestricted_Access) + (Make_DT): Replace generation of Prim'Address by + Address (Prim'Unrestricted_Access) + (Make_Disp_*_Bodies): When compiling for a restricted profile, use + simple call form for single entry. + (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch + tables of predefined primitives). + (Make_Secondary_DT): Add support to handle access to dispatch tables of + predefined primitives. + (Make_Tags): Add entities to Access_Dispatch_Table associated with + access to dispatch tables containing predefined primitives. + + * exp_ch6.adb (N_Pragma): Chars field removed, use Chars + (Pragma_Identifier (.. instead, adjustments throughout to accomodate + this change. + (Register_Predefined_DT_Entry): Updated to handle the new contents + of attribute Access_Disp_Table (pointers to dispatch tables containing + predefined primitives). + + * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New + subprogram. + (Find_Interface_ADT): Updated to skip the new contents of attribute + Access_Dispatch_Table (pointers to dispatch tables containing predefined + primitives). + + * sem_util.adb (Has_Abstract_Interfaces): Add missing support for + concurrent types. + (Set_Convention): Use new function Is_Access_Subprogram_Type + (Collect_Interfaces_Info): Updated to skip the new contents of attribute + Access_Dispatch_Table (pointers to dispatch tables containing predefined + primitives). + + * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve + expanded code avoiding calls to Build_Predef_Prims. + (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding + call to Build_Get_Predefined_Prim_Op_Address. + +2008-03-26 Javier Miranda + + * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized + subprogram Corresponding_Runtime_Package to know the runtime package + that will provide support to a given protected type. + + * exp_ch9.adb (Add_Private_Declarations, + Build_Protected_Subprogram_Call, + Build_Protected_Entry, Build_Simple_Entry_Call, + Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration, + Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code + cleanup using the new centralized subprogram Corresponding_Runtime + Package to know the runtime package that provides support to + a given protected type. + +2008-03-26 Ed Schonberg + + * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component + assignment is within the initialization procedure for a packed array, + and Initialize_Scalars is enabled, compile right-hand side with checks + off, because the value is purposely out of range. + +2008-03-26 Vincent Celier + + * gnatcmd.adb: Add processing for GNAT SYNC + + * vms_conv.ads: (Command_Type): Add command Sync + + * vms_conv.adb (Initialize): Add Command_List data for new command Sync + + * vms_data.ads: Add entries for -gnatw.w + Add qualifier for gnatstub --header-file option + Add switches for GNAT SYNC + + * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC + (Add_Package_Name): New procedure + (Package_Name_List): New function + (Initialize): Add known package names to the list + (Register_New_Package): Add the new package name to the list + +2008-03-26 Robert Dewar + + * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb, + s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace + Raise_Exception by "raise with" construct. + +2008-03-26 Pascal Obry + + * Makefile.in: Add proper GNAT.Serial_Communications implementation on + supported platforms. + + * Makefile.rtl: Add g-sercom.o. + + * impunit.adb: Add g-sercom.adb. + + * s-crtl.ads (open): New routine. + (close): Likewise. + (write): Likewise. + + * s-osinte-mingw.ads (BYTE): New type. + (CHAR): Likewise. + (OVERLAPPED): Likewise. + (GENERIC_READ): New constant. + (GENERIC_WRITE): Likewise. + (OPEN_EXISTING): Likewise. + (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access + type instead. + (CreateFile): New routine. + (WriteFile): Likewise. + (ReadFile): Likewise. + (CloseHandle): Move next to the other file oriented routines. + + * g-sercom.ads: New unit. + + * g-sercom.adb: Default implementation, calls to this unit will raise + a program error exception. + + * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and + GNU/Linux implementations. + +2008-03-26 Robert Dewar + + * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind + + * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for + unchecked conversion for different conventions only for subprogram + pointers or on VMS. + +2008-03-26 Vincent Celier + + * osint-c.adb (Set_Library_Info_Name): Use canonical case file names + to check if the specified object file is correct. + +2008-03-26 Thomas Quinot + + * sem_cat.adb (Validate_RACW_Primitives): Do not rely on + Comes_From_Source to exclude primitives from being checked. We want to + exclude predefined primitives only, so use the appropriate specific + predicate. Also, flag a formal parameter of an anonymous + access-to-subprogram type as illegal for a primitive operation of a + remote access to class-wide type. + +2008-03-26 Vincent Celier + + * prj-dect.adb (Parse_Package_Declaration): When a package name is not + known, check if it may be a missspelling of a known package name. In + not verbose, not mode, issue warnings only if the package name is a + possible misspelling. + In verbose mode, always issue a warning for a not known package name, + plus a warning if the name is a misspelling of a known package name. + + * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non + limited withs or limited withs are parse during one call. + (Parse_Single_Project): Post parse context clause in two passes: non + limited withs before current project and limited withs after current + project. + + * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended + project with the name With_Name, even if it is only extended indirectly. + (Recursive_Process): Process projects in order: first single withs, then + current project, then limited withs. + + * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended + project with the name With_Name, even if it is only extended indirectly. + +2008-03-26 Robert Dewar + + * scn.adb (Initialize_Scanner): Format messages belong on standard error + +2008-03-26 Ed Schonberg + + * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is + a generic subprogram that is imported, do not attempt to compile + non-existent body. + + * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is + imported, do not generate a raise_program_error for the non-existent + body. + (Pre_Analyze_Actuals): If an error is detected during pre-analysis, + perform minimal name resolution on the generic to avoid spurious + warnings. + (Find_Actual_Type): the designated type of the actual in a child unit + may be declared in a parent unit without being an actual. + +2008-03-26 Robert Dewar + + * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ + * sinfo.ads, sinfo.adb (From_At_End): New flag + +2008-03-26 Ed Schonberg + + * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on + operations that have an interface parameter. + (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag + Don't treat No_Return call as raise. + + * sem_disp.adb (Check_Dispatching_Operations): apply check for + non-primitive interface primitives to access parameters, not to all + parameters of an access type. + +2008-03-26 Ed Schonberg + + * sem_ch7.adb (Install_Parent_Private_Declarations): If the private + declarations of a parent unit are made visible when compiling a child + instance, the parent is not a hidden open scope, even though it may + contain other pending instance. + + * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a + hidden open scope for some child instance, it does affect the + visibility status of other stach entries. + (Analyze_Object_Renaming): Check that a class-wide object cannot be + renamed as an object of a specific type. + +2008-03-26 Robert Dewar + + * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite + recursion and raise SE directly. + (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is + set for formal type for IN mode parameter. + +2008-03-26 Robert Dewar + + * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table + (Initialize): New procedure + (Output_Warnings_Off_Warnings): New procedure + (Check_References): Suppress certain msgs if Is_Trivial_Subprogram + (Output_Non_Modifed_In_Out_Warnings): Ditto + (Warn_On_Unreferenced_Entity): Ditto + +2008-03-26 Vincent Celier + + * a-direct.adb (Start_Search): Raise Use_Error if the directory is not + readable. + +2008-03-26 Matthew Heaney + + * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads, + a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads: + Marked with clauses as private, and controlled operations as overriding + +2008-03-26 Robert Dewar + + * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized + +2008-03-26 Robert Dewar + + * back_end.adb, back_end.ads: Minor reformatting + + * bindgen.adb: Minor clarification of comments + + * fname.ads: Minor comment fixes + + * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads, + prj-nmsc.adb, sem_aggr.adb: Minor reformatting + + * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb, + xsnames.adb: Remove warnings off pragma no longer needed + + * a-catizo.ads, a-calari.ads, a-calfor.adb, + a-calfor.ads: Fix header. + +2008-03-26 Tristan Gingold + + * init.c: Do not adjust pc for HPARITH on alpha/vms. + +2008-03-26 Robert Dewar + + * lib-xref.adb: (OK_To_Set_Reference): New function + (Generate_Reference): Don't set referenced from occurrence in Warnings, + Unmodified, or Unreferenced pragma + +2008-03-26 Robert Dewar + + * alloc.ads: Add entries for Warnings_Off_Pragmas table + +2008-03-26 GNAT Script + + * Make-lang.in: Makefile automatically updated + +2008-03-26 Robert Dewar + + * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c, + par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field + removed, use Chars (Pragma_Identifier (.. instead, adjustments + throughout to accomodate this change. + + * s-pooglo.ads, s-pooloc.ads: Minor comment updates + + * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not + Einfo.Set_Needs_Debug_Info) + +2008-03-26 Robert Dewar + + * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W + Add description for the new gnatstub option '--header-file' + clarification of -gnatwz/-gnatwZ + Add a "Irix-Specific Considerations" section to document the need to + set LD_LIBRARY_PATH when using the default shared runtime library. + Added documentation for both gcov and gprof. + + * gnat_rm.texi: Document that pragma Compile_Time_Warning generates + messages that are not suppressed when clients are compiled. + Add documentation of s-pooglo s-pooloc + Document the new GNAT.Serial_Communications API. + Add documentation for 'Old attribute + Add description of pragma Optimize_Alignment + + * ug_words: Add entries for -gnatw.w -gnatw.W + + * usage.adb: Add line for -gnatw.w (warn on warnings off) + +2008-03-25 Eric Botcazou + + Revert + 2008-03-05 Eric Botcazou + PR ada/35186 + * decl.c (maybe_pad_type): Avoid padding an integral type when + bumping its alignment is sufficient. + +2008-03-25 Arnaud Charlet + + * exp_ch6.adb, exp_disp.adb: Update copyright notice. + Fix wrong formatting (lines too long) + +2008-03-24 Ralf Wildenhues + + * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb, + a-calend-vms.adb, a-calend.adb, a-calend.ads, + a-calfor.adb, a-chahan.ads, a-chtgke.adb, + a-cihama.ads, a-ciorse.adb, a-clrefi.ads, + a-cohama.ads, a-comlin.ads, a-coorse.adb, + a-crbtgk.adb, a-direct.adb, a-except-2005.adb, + a-except-2005.ads, a-except.adb, a-except.ads, + a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb, + a-exextr.adb, a-filico.ads, a-finali.ads, + a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb, + a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads, + a-sequio.ads, a-strbou.ads, a-strfix.adb, + checks.adb, exp_ch3.adb, exp_ch4.adb, + exp_ch4.ads, exp_ch5.adb, exp_ch6.adb, + exp_ch6.ads, exp_ch7.adb, exp_ch7.ads, + exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, + exp_dbug.ads, exp_disp.adb, exp_dist.adb, + exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos. + +2008-03-24 Robert Dewar + + * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb, + s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb, + s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads, + s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb, + s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, + a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb, + a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, + a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads, + a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads, + a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads, + a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb, + i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads, + a-nlrear.ads, a-nucoar.ads, a-nurear.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-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads, + double spaced if it fits on one line and otherwise single spaced. + +2008-03-24 Ralf Wildenhues + + PR documentation/15479 + * Make-lang.in (doc/gnat_ugn.texi) Renamed from ... + (doc/gnat_ugn_unw.texi): ... this, and adjusted. + (doc/gnat_ugn.info): Renamed from ... + (doc/gnat_ugn_unw.info): ... this. + (doc/gnat_ugn.dvi): Renamed from ... + (doc/gnat_ugn_unw.dvi): ... this. + (doc/gnat_ugn.pdf): Renamed from ... + (doc/gnat_ugn_unw.pdf): ... this. + (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi): + Adjusted. + * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename + unconditionally to gnat_ugn.info. Fix cross references to the + GNAT Reference Manual. Convert links to the GCC, GDB, Emacs, + and GNU make manuals to be proper texinfo links. + * gnat_rm.texi: Fix cross references to the GNAT User's Guide. + +2008-03-21 Olivier Hainque + + * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb) + ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0). + +2008-03-21 Eric Botcazou + + * trans.c (addressable_p): Add notes on addressability issues. + +2008-03-21 Olivier Hainque + Ed Schonberg + + * trans.c (addressable_p): Accept COND_EXPR when both arms + are addressable. + (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR. + (call_to_gnu): Do not use name reference in the error message + for a misaligned by_reference_parameter. The actual may be a + general expression. + +2008-03-18 Paolo Bonzini + + * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete. + +2008-03-15 Ralf Wildenhues + + * gnat_rm.texi (Implementation Defined Characteristics) + (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where + appropriate. + * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind) + (Switches for gnatchop, Installing a library): Likewise. + +2008-03-10 Eric Botcazou + + * trans.c (emit_range_check): Do not emit the check if the base type + of the expression is the type against which its range must be checked. + +2008-03-08 Eric Botcazou + + * decl.c (maybe_pad_type): Use value_factor_p. + +2008-03-08 Eric Botcazou + + * lang.opt (nostdlib): Move around. + * misc.c (gnat_handle_option): Fix formatting. + (gnat_dwarf_name): Move around. + * trans.c (Case_Statement_to_gnu): Fix formatting. + (gnat_to_gnu): Likewise. + * utils.c (aggregate_type_contains_array_p): Likewise. + (create_subprog_decl): Likewise. + +2008-03-08 Eric Botcazou + + * decl.c (gnat_to_gnu_entity) : Do not + bother propagating the TYPE_USER_ALIGN flag when creating a JM type. + +2008-03-08 Eric Botcazou + + * decl.c (gnat_to_gnu_entity) : Do not force + BIGGEST_ALIGNMENT when capping the alignment of records with + strict alignment and size clause. + +2008-03-08 Eric Botcazou + + * lang-specs.h: Pass -gnatwa if -Wall is passed. + * misc.c (gnat_handle_option) : Expand into -Wunused + and -Wuninitialized. + (gnat_post_options): Clear warn_unused_parameter. + +2008-03-08 Eric Botcazou + + * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently + aligned bit-fields, bumping the alignment of the record type if deemed + profitable. + (value_factor_p): Return false instead of 0. + +2008-03-08 Eric Botcazou + + * decl.c (gnat_to_gnu_entity) : Add support + for scalar types with small alignment. + +2008-03-08 Eric Botcazou + + * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label + from that of the front-end's end label. + (gnat_gimplify_stmt) : Set the SLOC of the backward goto + from that of the loop label. + +2008-03-07 Eric Botcazou + + * decl.c (gnat_to_gnu_entity) : Add + comment for the packed array type case. + * utils.c (build_template): Use a loop to strip padding or + containing records for justified modular types. + +2008-03-07 Eric Botcazou + + * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously + large alignments specified for types. + (validate_alignment): Minor cleanup. + +2008-03-07 Eric Botcazou + + * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined. + (gnat_to_gnu_entity) : Try to get a smaller form of + the component for packing, if possible, as well as if a component + size clause is specified. + : For an array type used to implement a packed + array, get the component type from the original array type. + Try to get a smaller form of the component for packing, if possible, + as well as if a component size clause is specified. + (round_up_to_align): New function. + (make_packable_type): Add in_record parameter. + For a padding record, preserve the size. If not in_record and the + size is too large for an integral mode, attempt to shrink the size + by lowering the alignment. + Ditch the padding bits of the last component. + Compute sizes and mode manually, and propagate the RM size. + Return a BLKmode record type if its size has shrunk. + (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT. + Use Original_Array_Type to retrieve the type in case of an error. + Adjust call to make_packable_type. + (gnat_to_gnu_field): Likewise. + (concat_id_with_name): Minor tweak. + * trans.c (larger_record_type_p): New predicate. + (call_to_gnu): Compute the nominal type of the object only if the + parameter is by-reference. Do the conversion actual type -> nominal + type if the nominal type is a larger record. + (gnat_to_gnu): Do not require integral modes on the source type to + avoid the conversion for types with identical names. + (addressable_p): Add gnu_type parameter. If it is specified, do not + return true if the expression is not addressable in gnu_type. + Adjust recursive calls. + * utils.c (finish_record_type): Remove dead code. + +2008-03-05 Eric Botcazou + + PR ada/35186 + * decl.c (maybe_pad_type): Avoid padding an integral type when + bumping its alignment is sufficient. + +2008-03-02 Ralf Wildenhues + + * gnatfind.adb, gnatxref.adb: Fix argument parsing typos. + * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright + statement. + * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb, + gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb, + sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source + code output strings. + * sem_type.adb, system-vms-ia64.ads, system-vms.ads, + system-vms_64.ads: Fix typos in ada source code comments. + * sinfo-cn.adb: Remove incomplete sentence. + + PR documentation/15479 + * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word. + +2008-02-27 Samuel Tardieu + + PR ada/22255 + * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed. + +2008-02-27 Samuel Tardieu + + PR ada/34799 + * sem_ch13.adb (Analyze_Record_Representation_Clause): Check + that underlying type is present. + +2008-02-26 Tom Tromey + + * misc.c (internal_error_function): Remove test of + USE_MAPPED_LOCATION. + * trans.c (gigi): Remove test of USE_MAPPED_LOCATION. + (Sloc_to_locus): Remove old location code. + +2008-02-25 Ralf Wildenhues + + * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and + `i.e.' by adding comma or `@:' as appropriate. + * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of + plain characters `C', use `@samp{C}'. + * gnat_ugn.texi (File Naming Rules, About gnatkr) + (Krunching Method): Likewise. + + * gnat_ugn.texi (Conventions): List environment variables and + metasyntactic variables. + (Compiling Programs): Fix notation of metasyntactic variables. + Add @file where appropriate. Use @file for file extensions, + @samp for strings. + * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp + instead of @file, @env instead of @code. + +2008-02-24 Ralf Wildenhues + + PR documentation/15479 + * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..' + and `...' with `@dots{}' or `@enddots{}'. + + PR documentation/15479 + * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command, + use @command instead of @code, @option instead of @samp or @code, + @code instead of @var, @samp instead of @file. + + PR documentation/15479 + * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors + in Makefile rules, by using `&&' rather than `;'. + +2008-02-17 Ralf Wildenhues + + PR documentation/15479 + * gnat_ugn.texi: In non-code, avoid space before colon. + (Regular Expressions in gnatfind and gnatxref): Fix indentation. + (Examples of gnatxref Usage): Use @command{vi} instead of + @file{vi}. + (Character Set Control): Do not use @code for UTF-8. + (Validity Checking): Fix typo "NaNs" instead of "NaN's". Do not + use @code for IEEE. + * gnat_rm.texi (Aggregates with static bounds): Fix typo in code + sample. + * gnat_rm.texi, gnat_ugn.texi: Fix typos. Bump copyright years. + +2008-02-11 Joel Sherrill + + PR ada/35143 + * env.c: Add __rtems__ to if defined. + * s-osinte-rtems.adb: Add To_Target_Priority. Fix formatting. + * s-osinte-rtems.ads: Add To_Target_Priority prototype and + PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants. Add + pragma Convention as required. + * gsocket.h: Make compile in and out of RTS. + * Makefile.in: Add system-rtems.ads. Build DEC extensions. + Use g-soccon-rtems.ads. + * g-soccon-rtems.ads, system-rtems.ads: New files. + +2008-02-06 Kaveh R. Ghazi + + PR other/35107 + * Make-lang.in (gnat1): Add $(GMPLIBS). + +2008-01-26 Eric Botcazou + + * decl.c (components_to_record): Improve comment. + +2008-01-22 Eric Botcazou + + * decl.c (components_to_record): Do not reuse the empty union type + if there is a representation clause on the record. + * trans.c (addressable_p): Return true for INTEGER_CST. + +2008-01-21 Eric Botcazou + + * trans.c (gnat_to_gnu) : Use POINTER_PLUS_EXPR + in pointer arithmetics. + * utils2.c (build_allocator): Likewise. + +2008-01-17 Eric Botcazou + + * utils.c (build_function_stub): Properly build the call expression. + +2008-01-14 Eric Botcazou + + * decl.c (gnat_to_gnu_entity) : Process renamings + before converting the expression to the type of the object. + * trans.c (maybe_stabilize_reference) : New case. + Stabilize constructors for special wrapping types. + +2008-01-13 Eric Botcazou + + * trans.c (call_to_gnu): Invoke the addressable_p predicate only + when necessary. Merge some conditional statements. Update comments. + Rename unchecked_convert_p local variable to suppress_type_conversion. + Do not suppress conversions in the In case. + (addressable_p) : Do not take alignment issues + into account on non strict-alignment platforms. + +2008-01-12 Eric Botcazou + + * utils.c (aggregate_type_contains_array_p): New predicate. + (create_field_decl): In a packed record, force byte alignment + for fields without specified position that contain an array. + +2008-01-12 Eric Botcazou + + * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression. + +2008-01-10 John David Anglin + + PR ada/34466 + * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for + sysconf call. + (bit_field): New packed boolean type used by cpu_set_t. + (cpu_set_t): New type corresponding to the C type with + the same name. Note that on the Ada side we use a bit + field array for the affinity mask. There is not need + for the C macro for setting individual bit. + (pthread_setaffinity_np): New imported routine. + +2008-01-03 Tero Koskinen + + PR ada/34647 + * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp() + on OpenBSD as is done on other BSD systems. + + PR ada/34645 + * sysdep.c (__gnat_ttyname, getc_immediate_nowait, + getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate + I/O. + + PR ada/34644 + * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing + clearenv(). + + PR ada/34646 + * init.c (__gnat_error_handler, __gnat_install_handler, + __gnat_init_float): Define for OpenBSD. + + * initialize.c (__gnat_initialize): Define for OpenBSD. + + + +Copyright (C) 2008 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. -- 2.11.4.GIT