diff options
Diffstat (limited to 'gcc/ada/ChangeLog')
-rw-r--r-- | gcc/ada/ChangeLog | 5709 |
1 files changed, 2 insertions, 5707 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 026f202af58..f9f8fc0c950 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,5714 +1,9 @@ -2018-12-23 Iain Sandoe <iain@sandoe.co.uk> - - * adaint.c [__APPLE__] (__gnat_lwp_self): Ensure that the system - interface used is available on the target. - -2018-12-14 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (rm_size): Take into account the padding in - the case of a record type containing a template. - * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Size>: Likewise. - Do not subtract the padded size for Max_Size_In_Storage_Elements. - <Attr_Descriptor_Size>: Tweak comment. - -2018-12-14 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (choices_to_gnu): Directly use a naked boolean - discriminant if the value is the boolean true. - -2018-12-11 Eric Botcazou <ebotcazou@adacore.com> - - PR ada/88429 - * gcc-interface/Makefile.in (./stamp-gnatlib1-$(RTSDIR)): Also pass - MULTISUBDIR to sub-make and add quotes around $(THREAD_KIND). - (gnatlib-shared-dual): Also pass PICFLAG_FOR_TARGET to sub-make. - (gnatlib-sjlj): Also pass MULTISUBDIR to sub-make, but do not pass - PICFLAG_FOR_TARGET. - (gnatlib-zcx): Likewise. - -2018-12-11 Piotr Trojanek <trojanek@adacore.com> - - * libgnat/a-calend.ads: Add "Global => null" contract to pure routines. - -2018-12-11 Hristian Kirtchev <kirtchev@adacore.com> - - * freeze.adb (Check_Pragma_Thread_Local_Storage): Use the - violating set to diagnose detect an illegal initialization, - rather than the complement of the OK set. - (Freeze_Object_Declaration): Factorize code in - Has_Default_Initialization. - (Has_Default_Initialization, Has_Incompatible_Initialization): - New routines. - -2018-12-11 Dmitriy Anisimkov <anisimko@adacore.com> - - * libgnat/g-socket.ads (Family_Type): Add new enumerated value - Family_Unspec to be able to use it in Get_Address_Info parameter - and find IPv4 together with IPv6 addresses. - (Inet_Addr_Bytes_Length): Zero length for Family_Unspec. New - IPv6 predefined constant addresses. - (IPv4_To_IPv6_Prefix): IPv4 mapped to IPv6 address prefix. - (Is_IPv4_Address): Rename from Is_IP_Address and published. - (Is_IPv6_Address): New routine. - (Image of Inet_Addr_Type): Fix description about IPv6 address - text representation. - (Level_Type): New propocol level IP_Protocol_For_IPv6_Level. - (Add_Membership_V4): New socket option equal to Add_Membership. - (Drop_Membership_V4): New socket option equal to - Drop_Membership. - (Multicast_If_V4): New socket option equal to Multicast_If. - (Multicast_Loop_V4, Add_Membership_V6, Drop_Membership_V6, - Multicast_If_V6, Multicast_Loop_V6, Multicast_Hops, IPv6_Only): - New socket option for IPv6. - (Address_Info): New record to keep address info. - (Address_Info_Array): Array to keep address info records. - (Get_Address_Info): Routine to get address info records by host - and service names. - (Host_Service): Record to keep host and service names. - (Get_Name_Info): New routine to get host and service names by - address. - (Create_Socket): Add Level parameter, IP_Protocol_For_IP_Level - default. - (Name_Array, Inet_Addr_Array): Change array index to Positive. - * libgnat/g-socket.adb (IPV6_Mreq): New record definition for - IPv6. - (Hex_To_Char): Remove. - (Short_To_Network, Network_To_Short): Move to package - GNAT.Sockets.Thin_Common. - (Is_IP_Address): Remove. - (To_In_Addr, To_Inet_Addr): Move to package - GNAT.Sockets.Thin_Common. - (Get_Socket_Option): Get value of Multicast_Loop option as - integer boolean, process IPv6 options. Don't try to get - Add_Membership_V4, Add_Membership_V6, Drop_Membership_V4, and - Drop_Membership_V6 as not supported by the socket API. - (Set_Socket_Option): Set value of Multicast_Loop option as - integer boolean, process IPv6 options. - * gsocket.h - (IPV6_ADD_MEMBERSHIP): Define from IPV6_JOIN_GROUP if necessary - for VxWorks. - (IPV6_DROP_MEMBERSHIP): Define from IPV6_LEAVE_GROUP if - necessary for VxWorks - (HAVE_INET_NTOP): New definition. - (HAVE_INET_PTON): Includes VxWorks now. - * socket.c (__gnat_getaddrinfo, __gnat_getnameinfo, - __gnat_freeaddrinfo, __gnat_gai_strerror, __gnat_inet_ntop): New - routines. - * libgnat/g-sothco.ads, libgnat/g-sothco.adb - (socklen_t, In6_Addr, To_In6_Addr): New. - (To_In_Addr, To_Inet_Addr): Move from package body GNAT.Sockets. - (To_Inet_Addr): New overload with In6_Addr type parmeter. - (In_Addr_Access_Array): Remove. - (Sockaddr): Unchecked_Union instead of Sockaddr_In and old - defined generic Sockaddr. - (Set_Address): Use it to set family, port and address into - Sockaddr. - (Get_Address): New routine to get Socket_Addr_Type from - Sockaddr. - (Addrinfo): Structure to use with getaddrinfo. - (C_Getaddrinfo, C_Freeaddrinfo, C_Getnameinfo, C_GAI_Strerror, - Inet_Ntop): New routine import. - (Short_To_Network, Network_To_Short): Move from package body - GNAT.Sockets. - * libgnat/g-stsifd__sockets.adb: Use Sockaddr instead of - Sockaddr_In. - * s-oscons-tmplt.c (AF_UNSPEC, EAI_SYSTEM, SOCK_RAW, - IPPROTO_IPV6, IP_RECVERR, SIZEOF_socklen_t, IF_NAMESIZE): New - constants. - (AI_xxxx_OFFSET): Constants to consider platform differences in - field positions and sizes for addrinfo structure. - (AI_xxxxx): Flags for getaddrinfo. - (NI_xxxxx): Flags for getnameinfo. - (IPV6_xxxxx): Socket options for IPv6. - (Inet_Ntop_Linkname): New routine. - -2018-12-11 Yannick Moy <moy@adacore.com> - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Deactivate - expansion in ignored ghost subprogram body. - * sem_ch7.adb (Analyze_Package_Body_Helper): Deactivate - expansion in ignored ghost package body. - -2018-12-11 Ed Schonberg <schonberg@adacore.com> - - * exp_unst.adb (Register_Subprogram): A subprogram whose address - is taken (through attribute Address or Access) is reachable and - cannot be eliminated, even if there is no explicit call to it: - the address may be used in an indirect call or in some - address-related operation. - -2018-12-11 Ed Schonberg <schonberg@adacore.com> - - * sem_util.adb (Get_Actual_Subtype): Function can return type - mark. - (Get_Cursor_Type): Improve recovery and error message on a - misplaced First aspect for an iterable type. - -2018-12-11 Hristian Kirtchev <kirtchev@adacore.com> - - * checks.adb: Add with and use clauses for Sem_Mech. - (Ensure_Valid): Update the "annoying special case" to include - entry and function calls. Use Get_Called_Entity to obtain the - entry or subprogram being invoked, rather than retrieving it - manually. Parameters passed by reference do not need a validity - check. - -2018-12-11 Yannick Moy <moy@adacore.com> - - * sem_prag.adb (Analyze_Global_Item): Refine error message. - -2018-12-11 Ed Schonberg <schonberg@adacore.com> - - * exp_ch7.adb (Check_Unnesting_In_Declarations): Extend - subprogram so that it is usable for visible and private - declarations of a package declaration, not just for declarations - in the pakage body. - * exp_ch13.adb (Expand_Freeze_Entity): Handle properly the - freezing of a finalizer routine generated for a controlled objet - declaration. Special processing already applies to finalizers - because they are usually displaced into another construct. - -2018-12-11 Arnaud Charlet <charlet@adacore.com> - - * exp_unst.adb (Unnest_Subprogram): Ensure Current_Subprogram is - always initialized. - -2018-12-11 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (gnat_to_gnu_entity): Add - gnat_annotate_type local variable initialized to Empty. - <E_Record_Subtype>: Set it to the Cloned_Subtype, if any. For - types, back-annotate alignment and size values earlier and only - if the DECL was created here; otherwise, if gnat_annotate_type - is present, take the values from it. - (gnat_to_gnu_field): Add gnat_clause local variable. If a - component clause is present, call validate_size only once on the - Esize of the component. Otherwise, in the packed case, do not - call validate_size again on the type of the component but - retrieve directly its RM size. - (components_to_record): Minor tweak. - (set_rm_size): Remove useless test. - * gcc-interface/trans.c (gnat_to_gnu): Do not wrap the instance of - a boolean discriminant attached to a variant part. - -2018-12-11 Ed Schonberg <schonberg@adacore.com> - - * sem_aggr.adb (Array_Aggr_Subtype. Resolve_Aggr_Expr): Indicate - that aggregate subtype has a predicate if the component type has - a predicate; do not rely on exisatence of predicate function for - component, in case component is a type no yet frozen, for which - predicate function has not been created yet. - -2018-12-11 Eric Botcazou <ebotcazou@adacore.com> - - * exp_aggr.adb (Packed_Array_Aggregate_Handled): Bail out for - any non-scalar type as component type of the array. - -2018-12-11 Eric Botcazou <ebotcazou@adacore.com> - - * einfo.ads (Is_Bit_Packed_Array): Fix values of component size. - (Is_Packed): Likewise. - * gcc-interface/utils.c (convert): Do not extract the value of a - justified modular type if the destination type is a regular - array. - * gcc-interface/decl.c (gnat_to_gnu_component_type): Pass - TYPE_DECL to validate_size wherever the array has packed - components. - -2018-12-11 Bob Duff <duff@adacore.com> - - * gnat1drv.adb (gnat1drv): Pass the correct Object value when - calling Write_ALI in the case of -gnatQ. - * gnatbind.adb (Gnatbind): Avoid silent failure; give an error - message. - -2018-12-11 Ed Schonberg <schonberg@adacore.com> - - * exp_unst.adb (Needs_Fat_Pointer): A fat pointer is required if - the entity has a private type whose full view is an - unconstrained array type. - (Rewrite_One_Ref): If the reference is to a static constant, use - its value rather than create a reference through the activation - record. This is more efficient, and furthermore indispensable if - the context requires a static constant, such as in a branch of a - case statement. - -2018-12-11 Ed Schonberg <schonberg@adacore.com> - - * sem_ch3.adb (Analyze_Object_Declaration): Apply - Dynamic_Predicate check to an object of an array type - initialized with an aggregate. - -2018-12-11 Hristian Kirtchev <kirtchev@adacore.com> - - * freeze.adb (Add_To_Result): Move the ignored Ghost-specific - handling of freeze nodes to... - (Freeze_Entity): ...here. This ensures that the freeze nodes of - constructs that have recursive freezing are preserved when the - context is ignored Ghost, and the top level construct being - frozen is non-Ghost. - -2018-12-11 Ed Schonberg <schonberg@adacore.com> - - * uintp.ads, uintp.adb (UI_From_Integral): New generic function, - to simplify construction of Universal_Integer representations - from any Integer type. If type is small enough the code is - equivalent to a call to UI_To_Int with appropriate conversions; - otherwise the routine uses the existing mechanism of building a - vector of suitable integer values and calling Vector_To_Uint. - The routine must not be applied to a biased type. - -2018-12-11 Ed Schonberg <schonberg@adacore.com> - - * sem_ch3.adb (Build_Itype_Reference): Handle properly an itype - reference created for a function that is a compilation unit, for - example if the function builds in place an object of a limited - type. - -2018-12-11 Dmitriy Anisimkov <anisimko@adacore.com> - - * libgnat/g-socket.ads, libgnat/g-socket.adb: Fix duration - computations to be compatible with the type for socket timeouts - on Windows. - -2018-12-11 Gary Dismukes <dismukes@adacore.com> - - * exp_util.ads: Use preferred U.S. spelling of "honored". - * sem_spark.adb: Remove extra whitespace. - -2018-12-11 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_util.adb (Insert_Action): Add new formal parameter - Spec_Expr_OK. - (Insert_Actions): Add new formal parameter Spec_Expr_OK. Update - all calls to Insert_Actions where relevant. Honour an insertion - from a spec expression context when requested by the caller. - * exp_util.ads (Insert_Action): Add new formal parameter - Spec_Expr_OK. - (Insert_Actions): Add new formal parameter Spec_Expr_OK. - * freeze.adb (Add_To_Result): Force the insertion of the freeze - node even when the context is a spec expression. - -2018-12-11 Jerome Lambourg <lambourg@adacore.com> - - * vxaddr2line.adb, vxlink-bind.adb, vxlink-bind.ads, - vxlink-link.adb, vxlink-link.ads, vxlink-main.adb, vxlink.adb, - vxlink.ads: Remove. - * gcc-interface/Make-lang.in, gcc-interface/Makefile.in: Remove - bits for vxaddr2line. - -2018-12-11 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_aggr.adb, exp_ch7.adb, gnat1drv.adb, sem_ch10.adb, - sem_ch13.adb, sem_ch6.adb, sem_ch7.adb, sem_util.adb: Minor - reformatting. - -2018-12-11 Eric Botcazou <ebotcazou@adacore.com> - - * fe.h (Is_Atomic_Object): Declare. - (Is_Volatile_Object): Likewise. - * gcc-interface/trans.c (atomic_or_volatile_copy_required_p): New. - (Call_to_gnu): Generate a copy for an actual parameter passed by - reference if the conditions set forth by RM C.6(19) are met and - specificially deal with an atomic actual parameter. - -2018-12-11 Piotr Trojanek <trojanek@adacore.com> - - * sem_util.adb (Is_Subprogram_Stub_Without_Prior_Declaration): - Return False on stubs that complete a generic subprogram. - * sem_util.ads: Update corresponding comment. - -2018-12-11 Ed Schonberg <schonberg@adacore.com> - - * sem_ch4.adb (Analyze_Allocator): In GNATprove mode build a - subtype declaration if the allocator has a subtype indication - with a constraint. This allows additional proofs to be applied - to allocators that designate uninitialized constrained objects. - -2018-12-11 Yannick Moy <moy@adacore.com> - - * sem_util.adb (Has_Full_Default_Initialization): Consider - access types as having full default initialization. - -2018-12-11 Yannick Moy <moy@adacore.com> - - * gnat1drv.adb (Gnat1drv): Issue specific error message in - GNATprove mode when multiple file names on the command line. - * osint.adb, osint.ads (Dump_Command_Line_Source_File_Names): - New procedure to print file names on the command line. - -2018-12-11 Javier Miranda <miranda@adacore.com> - - * exp_aggr.adb (Convert_To_Assignments): When gnerating C, do - not declare a temporary to initialize an aggregate assigned to - Out or In_Out parameters whose type has no discriminants. This - avoids stack overflow errors at runtime. - -2018-12-11 Ed Schonberg <schonberg@adacore.com> - - * exp_ch7.adb (Check_Unnesting_Elaboration_Code): Extend - algorithm to cover subprograms generated in nested loops and in - exception handlers, in order to build an explicit elaboration - procedure in more complex cases. - -2018-12-11 Jerome Lambourg <lambourg@adacore.com> - - * Makefile.rtl, gcc-interface/Makefile.in: Remove crtbe bits for - VxWorks. - * libgnat/system-vxworks-arm-rtp-smp.ads, - libgnat/system-vxworks-arm-rtp.ads, - libgnat/system-vxworks-arm.ads, - libgnat/system-vxworks-e500-kernel.ads, - libgnat/system-vxworks-e500-rtp-smp.ads, - libgnat/system-vxworks-e500-rtp.ads, - libgnat/system-vxworks-ppc-kernel.ads, - libgnat/system-vxworks-ppc-rtp-smp.ads, - libgnat/system-vxworks-ppc-rtp.ads, - libgnat/system-vxworks-ppc.ads, - libgnat/system-vxworks-x86-kernel.ads, - libgnat/system-vxworks-x86-rtp-smp.ads, - libgnat/system-vxworks-x86-rtp.ads, - libgnat/system-vxworks7-aarch64-rtp-smp.ads, - libgnat/system-vxworks7-aarch64.ads, - libgnat/system-vxworks7-arm-rtp-smp.ads, - libgnat/system-vxworks7-e500-kernel.ads, - libgnat/system-vxworks7-e500-rtp-smp.ads, - libgnat/system-vxworks7-e500-rtp.ads, - libgnat/system-vxworks7-ppc-kernel.ads, - libgnat/system-vxworks7-ppc-rtp-smp.ads, - libgnat/system-vxworks7-ppc-rtp.ads, - libgnat/system-vxworks7-ppc64-kernel.ads, - libgnat/system-vxworks7-ppc64-rtp-smp.ads, - libgnat/system-vxworks7-x86-kernel.ads, - libgnat/system-vxworks7-x86-rtp-smp.ads, - libgnat/system-vxworks7-x86-rtp.ads, - libgnat/system-vxworks7-x86_64-kernel.ads, - libgnat/system-vxworks7-x86_64-rtp-smp.ads: Remove pragma - Linker_Options for --specs. - * vx_crtbegin.c, vx_crtbegin.inc, vx_crtbegin_array.c, - vx_crtbegin_attr.c, vx_crtend.c, vxworks-gnat-crtbe-link.spec: - Remove. - -2018-12-11 Ed Schonberg <schonberg@adacore.com> - - * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations, - Freeze_Entity_Checks): Process aspect Predicate in the same - fashion as aspect Dynamic_Predicate. - -2018-12-11 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.c (elaborate_all_entities_for_package): - Skip aliasing subprograms. - -2018-12-11 Bob Duff <duff@adacore.com> - - * doc/gnat_ugn/gnat_utility_programs.rst: Update gnatmetric - documentation for the Libadalang-based version. - -2018-12-11 Javier Miranda <miranda@adacore.com> - - * exp_aggr.adb (In_Object_Declaration): Removed. - (Is_CCG_Supported_Aggregate): New subprogram that replaces - In_Object_Declaration extending its functionality to indicate if - an aggregate is in a context supported by the CCG backend. - -2018-12-11 Bob Duff <duff@adacore.com> - - * doc/gnat_ugn/gnat_utility_programs.rst: Update gnatstub - documentation for the Libadalang-based version. - * gnat_ugn.texi: Regenerate. - -2018-12-11 Ed Schonberg <schonberg@adacore.com> - - * sem_ch13.adb (Push_Type, Pop_Type): New procedures, used for - analysis of aspect expressions for record types, whose - components (not only discriminants) may be referenced in aspect - expressions. - (Analyze_Aspect_Specifications, Analyze_Aspects_At_Freeze_Point, - Analyze_Aspect_At_End-Of_Declarations, - Resolve_Aspect_Expressions): Use the new subprograms. - (Check_Aspect_At_End_Of_Declarations): Improve error message. - (Build_Predicate_Functions): Do not build their bodies in a - generic unit. - (Is_Derived_Type_With_Constraint): New subprogram to uncover and - reject aspect specificationss on types that appear after the - type is frozen. - * sem_ch13.ads (Push_Scope_And_Install_Discriminants, - Uninstall_Discriminants_And_Pop_Scope): Remove. - * sem_ch6.adb, sem_ch6.ads (Fully_Conformant_Expressions): - Additional parameter to improve error message on illegal aspect - specifications whose resolution differ between aspect - specification and freeze point. - * freeze.adb: Remove references to - Install/Uninstall_Discriminants. - -2018-12-11 Pierre-Marie de Rodat <derodat@adacore.com> - - * doc/gnat_ugn/building_executable_programs_with_gnat.rst: - Document the -fgnat-encodings switch. - * gnat_ugn.texi: Regenerate. - -2018-12-11 Justin Squirek <squirek@adacore.com> - - * sem_ch10.adb (Analyze_Subunit): Modify conditional to fully - remove parent contexts from library-level subprogram bodies in - addition to package bodies. - -2018-12-11 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_prag.adb (Expand_Pragma_Initial_Condition): Do not - generate an Initial_Condition procedure and a call to it when - the associated pragma is ignored. - * sem_ch10.adb (Analyze_Compilation_Unit): Minor cleanup. - -2018-12-11 Eric Botcazou <ebotcazou@adacore.com> - - * fe.h (Debug_Generated_Code): Declare. - * gcc-interface/gigi.h (enum inline_status_t): Rename - is_disabled to is_default, is_enabled to is_requested and add - is_prescribed. - * gcc-interface/decl.c (inline_status_for_subprog): New function. - (gnat_to_gnu_entity) <E_Subprogram_Type>: Use it to get the - inlining status of the subprogram. - * gcc-interface/trans.c (gigi): Adjust to above renaming. - (build_raise_check): Likewise. - (Compilation_Unit_to_gnu): Likewise. - (gnat_to_gnu): Likewise. - * gcc-interface/utils.c (create_subprog_decl): Likewise. Deal - with is_prescribed status by setting - DECL_DISREGARD_INLINE_LIMITS. Do not set the - DECL_NO_INLINE_WARNING_P flag if Debug_Generated_Code is true. - -2018-12-03 Gary Dismukes <dismukes@adacore.com> - - * sem_aux.adb (Object_Type_Has_Constrained_Partial_View): Return - True for an untagged discriminated formal derived type when - referenced within a generic body (augments existing test for - formal private types). - * sem_util.adb (Is_Dependent_Component_Of_Mutable_Type): If the - prefix of the name is a qualified expression, retrieve the - operand of that. Add a test of whether the (possible) - dereference prefix is a variable, and also test whether that - prefix might just be of an access type (occurs in some implicit - dereference cases) rather than being an explicit dereference. - Retrieve the Original_Node of the object name's main prefix and - handle the possibility of that being a qualified expression. - Remove special-case code for explicit dereferences that don't - come from source. Add test for the renaming not being within a - generic body for proper determination of whether a formal access - type is known to be constrained (it is within a generic spec, - but not in the body). Fix an existing incorrect test for - renaming of a discriminant-dependent component of a untagged - generic formal type being within a generic body, adding test of - taggedness and calling In_Generic_Body (now properly checks for - cases where the renaming is in a nongeneric body nested within a - generic). Return False in cases where the selector is not a - component (or discriminant), which can occur for - prefixed-notation calls. - -2018-12-03 Ed Schonberg <schonberg@adacore.com> - - * sem_res.adb (Apply_Check): For array types, apply a length - check rather than a qualification, to avoid spurious errors when - the value of a dependend expression has a matching length but - different bounds from those of the type of the contect. - -2018-12-03 Hristian Kirtchev <kirtchev@adacore.com> - - * libgnat/a-calend.adb: Update the number of leap seconds. Add - the hard time values for year 2015 and 2016. - -2018-12-03 Gary Dismukes <dismukes@adacore.com> - - * exp_ch3.adb, libgnarl/s-taasde.adb, libgnarl/s-taenca.adb, - libgnarl/s-tarest.adb, libgnarl/s-tasini.adb, - libgnarl/s-taskin.ads, libgnarl/s-tasren.adb, - libgnarl/s-tassta.adb, libgnarl/s-tasuti.adb: Spelling fixes and - minor reformatting. - -2018-12-03 Eric Botcazou <ebotcazou@adacore.com> - - * exp_aggr.adb (Convert_To_Positional): Use - Static_Array_Aggregate to decide whether to set - Compile_Time_Known_Aggregate on an already flat aggregate. - (Expand_Array_Aggregate): Remove test on - Compile_Time_Known_Aggregate that turns out to be dead and - simplify. - (Is_Static_Component): New predicate extracted from... - (Static_Array_Aggregate): ...here. Test neither Is_Tagged_Type - nor Is_Controlled for the type, but test whether the component - type has discriminants. Use the Is_Static_Component predicate - consistently for the positional and named cases. - -2018-12-03 Eric Botcazou <ebotcazou@adacore.com> - - * freeze.adb (Freeze_Entity): Do not freeze the partial view of - a private subtype if its base type is also private with delayed - freeze before the full type declaration of the base type has - been seen. - * sem_ch7.adb (Preserve_Full_Attributes): Add assertion on - freeze node. - -2018-12-03 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch3.adb (Build_Record_Init_Proc): Inherit an - initialization procedure if it is present, even if it is null. - -2018-12-03 Patrick Bernardi <bernardi@adacore.com> - - * libgnarl/s-taskin.ads (ATC_Level_Base): Redefine to span from - -1 to Max_ATC_Nesting so that 0 represents no ATC nesting and -1 - represented a completed task. To increase readability, new - constants are introduced to represent key ATC nesting levels. - Consequently, Level_No_Pending_Abort replaces - ATC_Level_Infinity. ATC_Level related definitions now - documented. - (Ada_Task_Control_Block): The default initialization of - components ATC_Nesting_Level and Pending_ATC_Level now use new - ATC_Level_Base constants. Comments improved - * libgnarl/s-taskin.adb (Initialize): Improve the initialisation - of the first element of the Entry_Calls array to facilitate - better maintenance. - * libgnarl/s-taasde.ads: Update comment. - * libgnarl/s-taasde.adb, libgnarl/s-taenca.adb, - libgnarl/s-tasren.adb, libgnarl/s-tassta.adb, - libgnarl/s-tasuti.ads, libgnarl/s-tasuti.adb: Use new - ATC_Level_Base constants. - * libgnarl/s-tarest.adb (Create_Restricted_Task): Improve the - initialisation of the first element of the task's Entry_Calls - array to facilitate better maintenance. - * libgnarl/s-tasini.ads (Locked_Abort_To_Level): Update - signature to accept ATC_Level_Base. - * libgnarl/s-tasini.adb (Locked_Abort_To_Level): Update - signature to accept ATC_Level_Base. Use new ATC_Level_Base - constants and only modify the aborting task's Entry_Calls array - if any entry call is happening. - * libgnarl/s-tposen.adb (Protected_Single_Entry_Call): Reference - the first element of the task's Entry_Calls array via 'First - attribute to facilitate better maintenance. - -2018-12-03 Eric Botcazou <ebotcazou@adacore.com> - - * einfo.adb (Write_Entity_Info): Don't take Scope of Standard - package. - * sem_ch4.adb (Remove_Abstract_Operations): Add missing blank - lines to -gnatdv output. - * sem_type.adb (Write_Overloads): Take Entity of entity names - only. - -2018-12-03 Hristian Kirtchev <kirtchev@adacore.com> - - * checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch3.adb, - exp_util.adb, exp_util.ads, repinfo.adb, sem_attr.adb, - sem_ch3.adb, sem_res.adb, sem_util.adb: Minor reformatting. - -2018-12-03 Ed Schonberg <schonberg@adacore.com> - - * sem_ch3.adb (Complete_Private_Subtype): Enhance comment. - -2018-12-03 Olivier Hainque <hainque@adacore.com> - - * gcc-interface/lang.opt (fopenacc): New option for Ada. - * gcc-interface/misc.c (gnat_handle_option): Handle it. - * gcc-interface/trans.c (struct loop_info_d): Add OMP - attributes. - (Iterate_Acc_Clause_Arg, Acc_gnat_to_gnu): New functions, - helpers for OpenACC pragmas processing in Pragma_to_gnu. - (Acc_Var_to_gnu, Acc_Reduc_Var_to_gnu, Acc_Reduc_to_gnu): - Likewise. - (Acc_Size_Expr_to_gnu, Acc_Size_List_to_gnu): Likewise. - (Pragma_Acc_Data_to_gnu): Likewise. - (Pragma_to_gnu): Handle Pragma_Acc_Loop, Pragma_Acc_Data, - Pragma_Acc_Kernels and Pragma_Acc_Parallel. - (Acc_Loop_to_gnu, Regular_Loop_to_gnu): New functions. Helpers - for ... - (Loop_Statement_to_gnu): Rework to handle OpenACC loops. - -2018-12-03 Olivier Hainque <hainque@adacore.com> - - * gcc-interface/targtyps.c (MALLOC_OBSERVABLE_ALIGNMENT): Set to - 2 * POINTER_SIZE. - -2018-12-03 Ed Schonberg <schonberg@adacore.com> - - * sem_res.adb (Set_Slice_Subtype): The index type of a slice is - constrained. - -2018-11-26 Matthias Klose <doko@ubuntu.com> - - PR ada/88191 - * libgnarl/s-linux__alpha.ads: Define SIGSYS. - -2018-11-19 Alexandre Oliva <oliva@adacore.com> - - PR ada/81878 - * gcc-interface/config-lang.in (lang_requires): Set to "c c++" - when gnattools wants it. - -2018-11-19 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/cuintp.c (UI_From_gnu): Remove code for 32-bit hosts. - -2018-11-15 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/misc.c (gnat_init_gcc_eh): Do not override the switch - -fnon-call-exceptions passed on the command line in -gnatp mode. - -2018-11-14 Ed Schonberg <schonberg@adacore.com> - - * exp_util.ads, exp_util.adb: Change the profile of - Silly_Boolean_Array_Xor_Test, adding a formal that can be a copy - of the right opersnd. This prevents unnesting anomalies when - that operand contains uplevel references. - * exp_ch4.adb (Expand_Boolean_Operation): Use this new profile. - * exp_pakd.adb (Expand_Packed_Boolean_Operator): Ditto. - -2018-11-14 Patrick Bernardi <bernardi@adacore.com> - - * libgnarl/a-intnam__linux.ads: Add SIGSYS. - * libgnarl/s-linux__alpha.ads, libgnarl/s-linux__android.ads, - libgnarl/s-linux__hppa.ads, libgnarl/s-linux__mips.ads, - libgnarl/s-linux__riscv.ads, libgnarl/s-linux__sparc.ads, - libgnarl/s-linux__x32.ads: Rename SIGLTHRRES, SIGLTHRCAN and - SIGLTHRDBG to SIG32, SIG33 and SIG34 as their names are - implementation specific. - * libgnarl/s-osinte__linux.ads, libgnarl/s-linux.ads: Add - SIGSYS. Move SIG32, SIG33 and SIG34 from the unmasked list to - the reserved list. - -2018-11-14 Eric Botcazou <ebotcazou@adacore.com> - - * exp_aggr.adb (Is_Static_Element): New predicate extracted - from... - (Check_Static_Components): ...here. Call Is_Static_Element on - each element of the component association list, if any. - (Flatten): Duplicate the expression of an others choice only if - it is static or is an aggregate which can itself be flattened. - -2018-11-14 Olivier Hainque <hainque@adacore.com> - - * sigtramp-vxworks-target.inc: Fix stack checking test errors in - ACATS, now that GCC can emit CFI rules referring to sp in - absence of a frame pointer. - -2018-11-14 Eric Botcazou <ebotcazou@adacore.com> - - * exp_aggr.adb (Check_Static_Components): Remove dead test. - (Flatten): Likewise. Move comment around. - -2018-11-14 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch6.adb (Analyze_Null_Procedure): Capture Ghost and - SPARK-related global state at the start of the routine. Set the - Ghost mode of the completed spec if any. Restore the saved - Ghost and SPARK-related global state on exit from the routine. - -2018-11-14 Eric Botcazou <ebotcazou@adacore.com> - - * doc/gnat_ugn/building_executable_programs_with_gnat.rst - (-gnatR): Document new -gnatR4 level. - * gnat_ugn.texi: Regenerate. - * opt.ads (List_Representation_Info): Bump upper bound to 4. - * repinfo.adb: Add with clause for GNAT.HTable. - (Relevant_Entities_Size): New constant. - (Entity_Header_Num): New type. - (Entity_Hash): New function. - (Relevant_Entities): New set implemented with GNAT.HTable. - (List_Entities): Also list compiled-generated entities present - in the Relevant_Entities set. Consider that the Component_Type - of an array type is relevant. - (List_Rep_Info): Reset Relevant_Entities for each unit. - * switch-c.adb (Scan_Front_End_Switches): Add support for -gnatR4. - * switch-m.adb (Normalize_Compiler_Switches): Likewise - * usage.adb (Usage): Likewise. - -2018-11-14 Javier Miranda <miranda@adacore.com> - - * exp_disp.adb (Expand_Interface_Thunk): Extend handling of - renamings of the predefined equality primitive. - (Make_Secondary_DT): When calling Expand_Interface_Thunk() pass - it the primitive, instead of its Ultimate_Alias; required to - allow the called routine to identify renamings of the predefined - equality operation. - -2018-11-14 Hristian Kirtchev <kirtchev@adacore.com> - - * freeze.adb (Check_Pragma_Thread_Local_Storage): New routine. A - variable with suppressed initialization has no initialization - for purposes of the pragma. - (Freeze_Object_Declaration): Remove variable - Has_Default_Initialization as it is no longer used. Use routine - Check_Pragma_Thread_Local_Storage to verify the semantics of - pragma Thread_Local_Storage. - -2018-11-14 Ed Schonberg <schonberg@adacore.com> - - * sem_res.adb (Resolve_If_Expression): Verify that the subtypes - of all dependent expressions obey the constraints of the - expected type for the if-expression. - (Analyze_Expression): Only add qualificiation to the dependent - expressions when the context type is constrained. Small - adjustment to previous patch. - -2018-11-14 Eric Botcazou <ebotcazou@adacore.com> - - * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Don't - register a compile-time warning or error for 'Alignment or 'Size - of an entity declared in a generic unit. - -2018-11-14 Justin Squirek <squirek@adacore.com> - - * sem_ch8.adb (Use_One_Package): Add test for out-of-scope - homonyms. - -2018-11-14 Ed Schonberg <schonberg@adacore.com> - - * exp_ch3.adb: (Expand_N_Object_Declaration): If the expression - is a limited aggregate its resolution is delayed until the - object declaration is expanded. - * sem_ch3.adb: (Analyze_Object_Declaration): If the expression - is a limited aggregate and the declaration has a following - address clause indicate that resolution of the aggregate (which - must be built in place) must be delayed. - -2018-11-14 Bob Duff <duff@adacore.com> - - * sem_attr.adb (To_Address): Simplify setting of - Is_Static_Expression. Remove second (unconditional) call to - Set_Is_Static_Expression -- surely it's not static if the - operand is not. Initialize Static on declaration. Do not try - to fold 'To_Address, even though it's static. - * exp_attr.adb (To_Address): Preserve Is_Static_Expression. - * sinfo.ads, sem_eval.ads, sem_eval.adb (Is_Static_Expression, - Is_OK_Static_Expression, Raises_Constraint_Error): Simplify - documentation. There was too much repetition and redundancy. - -2018-11-14 Ed Schonberg <schonberg@adacore.com> - - * sem_ch3.adb (Analyze_Object_Declaration): Use the - Actual_Subtype to preserve information about a constant - initialized with a non-static entity that is known to be valid, - when the type of the entity has a narrower range than that of - the nominal subtype of the constant. - * checks.adb (Determine_Range): If the expression is a constant - entity that is known-valid and has a defined Actual_Subtype, use - it to determine the actual bounds of the value, to enable - additional optimizations. - -2018-11-14 Hristian Kirtchev <kirtchev@adacore.com> - - * back_end.adb, checks.adb, exp_ch3.adb, exp_ch4.adb, - exp_ch7.adb, exp_disp.adb, exp_unst.adb, exp_util.adb, - freeze.adb, sem_ch13.adb, sem_ch6.adb, sem_ch7.adb, - sem_prag.adb, sem_spark.adb, sem_util.adb: Minor reformatting. - -2018-11-14 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch4.adb (Find_Aliased_Equality): New routine. - (Find_Equality): Reimplemented. - (Is_Equality): New routine. - -2018-11-14 Hristian Kirtchev <kirtchev@adacore.com> - - * ghost.adb (Ghost_Entity): New routine. - (Mark_And_Set_Ghost_Assignment): Reimplemented. - * sem_ch5.adb (Analyze_Assignment): Assess whether the target of - the assignment is an ignored Ghost entity before analyzing the - left hand side. - * sem_ch8.adb (Find_Direct_Name): Update the subprogram - signature. Do not generate markers and references when they are - not desired. - (Nvis_Messages): Do not execute when errors are not desired. - (Undefined): Do not emit errors when they are not desired. - * sem_ch8.ads (Find_Direct_Name): Update the subprogram - signature and comment on usage. - * sem_util.adb (Ultimate_Prefix): New routine. - * sem_util.ads (Ultimate_Prefix): New routine. - -2018-11-14 Justin Squirek <squirek@adacore.com> - - * sem_ch7.adb (Uninstall_Declarations): Add conditional to avoid - uninstalling potential visibility during freezing on enumeration - literals. - -2018-11-14 Jerome Lambourg <lambourg@adacore.com> - - * env.c: Do not include crt_externs.h on iOS, as it does not - exist there. This is also true for the iPhone Simulator SDK. - -2018-11-14 Ed Schonberg <schonberg@adacore.com> - - * exp_ch7.adb (Check_Unnesting_In_Declarations): New procedure - to transform blocks that appear in the declarative part of a - package body into subprograms if they contain generated - subprograms (such as finalization routines). Needed to generate - the proper upward references in unnesting mode. - -2018-11-14 Ed Schonberg <schonberg@adacore.com> - - * freeze.adb (Freeze_Fixed_Point_Type): If the given low bound - of the type is less than the nearest model number, do not expand - the range of the type to include the model number below the - bound. Similar adjustment if the upper bound is larger than the - nearest model number. - -2018-11-14 Hristian Kirtchev <kirtchev@adacore.com> - - * checks.adb (Install_Primitive_Elaboration_Check): Do not - create the check when exceptions cannot be used. - * exp_ch6.adb (Expand_N_Extended_Return_Statement): Do not raise - Program_Errror when exceptions cannot be used. Analyze the - generated code with all checks suppressed. - * exp_ch7.adb (Build_Finalizer): Remove the declaration of - Exceptions_OK. - (Make_Deep_Array_Body): Remove the declaration of Exceptions_OK. - (Make_Deep_Record_Body): Remove the declaration of - Exceptions_OK. - (Process_Transients_In_Scope): Remove the declaration of - Exceptions_OK. - * exp_util.adb (Exceptions_In_Finalization_OK): Renamed to - Exceptions_OK. - * exp_util.ads (Exceptions_In_Finalization_OK): Renamed to - Exceptions_OK. - -2018-11-14 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch4.adb (Expand_N_Op_Eq): Remove duplicated code and use - routine Find_Equality instead. - (Find_Equality): New routine. - -2018-11-14 Piotr Trojanek <trojanek@adacore.com> - - * sem_util.adb (First_From_Global_List): Do not expect - N_Selected_Component in the Global contract; simplify assertion - with Nam_In. - -2018-11-14 Piotr Trojanek <trojanek@adacore.com> - - * sem_ch12.adb (Instantiate_Object): Set - Corresponding_Generic_Association on generic actuals with - default expression. - * sinfo.ads (Corresponding_Generic_Association): Update comment. - -2018-11-14 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch4.adb (Expand_Concatenate): Use the proper routine to - set the need for debug info. - * exp_dbug.adb (Build_Subprogram_Instance_Renamings): Use the - proper routine to set the need for debug info. - * exp_prag.adb (Expand_Pragma_Initial_Condition): Use the proper - routine to set the need for debug info. - * exp_util.adb (Build_DIC_Procedure_Declaration): Use the proper - routine to set the need for debug info. - (Build_Invariant_Procedure_Declaration): Use the proper routine - to set the need for debug info. - * ghost.adb (Record_Ignored_Ghost_Node): Add statements as a - whole class to the list of top level ignored Ghost nodes. - * sem_util.adb (Set_Debug_Info_Needed): Do not generate debug - info for an ignored Ghost entity. - -2018-11-14 Piotr Trojanek <trojanek@adacore.com> - - * bindgen.adb, exp_cg.adb, repinfo.adb, sprint.adb: Minor reuse - Cancel_Special_Output where possible. - -2018-11-14 Piotr Trojanek <trojanek@adacore.com> - - * exp_dbug.ads, sem_util.ads: Minor fixes in comments. - -2018-11-14 Arnaud Charlet <charlet@adacore.com> - - * adabkend.adb (Scan_Back_End_Switches): Handle -gx switches - explicitly. - -2018-11-13 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/misc.c (gnat_init_gcc_eh): Set -fnon-call-exceptions - for the runtime on platforms where System.Machine_Overflow is true. - -2018-11-08 Eric Botcazou <ebotcazou@adacore.com> - - * fe.h (Suppress_Checks): Declare. - * gcc-interface/misc.c (gnat_init_gcc_eh): Set -fnon-call-exceptions - only if checks are not suppressed and -faggressive-loop-optimizations - only if they are. - * gcc-interface/trans.c (struct loop_info_d): Remove has_checks and - warned_aggressive_loop_optimizations fields. - (gigi): Do not clear warn_aggressive_loop_optimizations here. - (Raise_Error_to_gnu): Do not set has_checks. - (gnat_to_gnu) <N_Indexed_Component>: Remove support for aggressive - loop optimizations. - -2018-11-08 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (components_to_record): Remove obsolete kludge. - * gcc-interface/utils.c (make_packable_type): Set TYPE_PACKED on the - new type but do not take into account the setting on the old type for - the new fields. Rename a local variable. - (finish_record_type): Clear DECL_BIT_FIELD_TYPE on a variant part at - offset 0, if any. - (create_field_decl): Tweak comment. - -2018-10-22 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/utils.c (unchecked_convert): Use local variables for - the biased and reverse SSO attributes of both types. - Further extend the processing of integral types in the presence of - reverse SSO to all scalar types. - -2018-10-22 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.c (Pragma_to_gnu) <Pragma_Inspection_Point>: Use - a simple memory constraint in all cases. - - * gcc-interface/lang-specs.h: Bump copyright year. - -2018-10-17 David Malcolm <dmalcolm@redhat.com> - - * gcc-interface/Make-lang.in (selftest-ada): New. - -2018-10-09 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch3.adb (Is_Null_Statement_List): New predicate. - (Build_Array_Init_Proc): Use it to find out whether the - initialization procedure Is_Null_Init_Proc; if so, set - Warnings_Off on the parameter. - (Build_Init_Procedure): Likewise. - (Init_Formals): Use an in/out first parameter only for - unconstrained arrays and for records either containing or built - for proteced types or task types; use an out parameter in all - the other cases. - * fe.h (Is_Init_Proc): Declare. - * gcc-interface/decl.c (type_requires_init_of_formal): Do not - return true for a discriminant in an unchecked union. - (gnat_to_gnu_param): Do not create a PARM_DECL for the Out - parameter of an initialization procedure. - -2018-10-09 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: If - this is not a definition, retrieve the expression in all cases - even if we are just annotating types. - * gcc-interface/trans.c (gnat_to_gnu): Also translate Size - attribute for constrained types in this mode. - -2018-10-09 Eric Botcazou <ebotcazou@adacore.com> - - * adaint.c (__gnat_get_executable_suffix_ptr): Add new line. - (__gnat_locate_exec): Check that HOST_EXECUTABLE_SUFFIX is not - empty before doing a string search for it. - * socket.c (ATTRIBUTE_UNUSED): Define. - (__gnat_disable_sigpipe): Add ATTRIBUTE_UNUSED on parameter. - * terminals.c (ATTRIBUTE_UNUSED): Move around. - (__gnat_setup_child_communication): Add ATTRIBUTE_UNUSED on - parameter. - (__gnat_send_header): Add ATTRIBUTE_UNUSED on parameters. - -2018-10-09 Yannick Moy <moy@adacore.com> - - * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Rewrite - pragmas as null statements in GNATprove mode. - -2018-10-09 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize the temporary - made for an Out parameter if the formal type has discriminants. - -2018-10-09 Maroua Maalej <maalej@adacore.com> - - * sem_spark.adb (Check_Declaration): fix bug related to non - access object permissions. - -2018-10-09 Doug Rupp <rupp@adacore.com> - - * libgnat/a-ncelfu.ads: Fix name in header to match package. - -2018-10-09 Eric Botcazou <ebotcazou@adacore.com> - - * exp_disp.adb (Make_Disp_Asynchronous_Select_Spec): Set - Warnings_Off on the B out parameter. - -2018-10-09 Eric Botcazou <ebotcazou@adacore.com> - - * einfo.ads: Small comment fix. - -2018-10-09 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch7.adb (Has_Referencer): Add comment for the - N_Freeze_Entity case. Do not rely on - Has_Referencer_Of_Non_Subprograms to clear the Is_Public flag on - subprogram entities. - -2018-10-09 Ed Schonberg <schonberg@adacore.com> - - * exp_unst.adb (In_Synchronized_Call): Handle properly private - types whose full views are synchronized types, in order to - recognize generated subprograms whose bodies must be considered - reachable even if no direct calls to them are visible in the - source. - -2018-10-09 Ed Schonberg <schonberg@adacore.com> - - * exp_ch4.adb (Expand_Modular_Op): When expanding an operation - on nonbinary modular types, convert the opersnds to an integer - type that is large enough to hold the modulus of the type, which - may be larger than Integer'Last. - -2018-10-09 Ed Schonberg <schonberg@adacore.com> - - * exp_unst.adb (Unnest_Subprogram): When an uplevel reference - is to an unconstrained formal, the 'Access reference that is - created to initialize the corresponding component of the - activation record must be wrapped in an unchecked conversion to - the generated type of the component. Otherwise, spurious suvtype - conformance errors will be generated when the code is within an - instantiation and the type of the formal is a formal type of the - enclosing generic. Note that during unnesting there is no simple - way to determine that the code appears within an instance - because ther is no scope stack. - -2018-10-09 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (type_requires_init_of_formal): New - predicate. - (gnat_to_gnu_param): Use it to determine whether a PARM_DECL - must be created for an Out parameter passed by copy. - -2018-10-09 Arnaud Charlet <charlet@adacore.com> - - * libgnat/a-coboho.ads (Storage_Element): Fix a typo. - -2018-10-09 Claire Dross <dross@adacore.com> - - * libgnat/a-cfinve.ads: Remove default value for - Max_Size_In_Storage_Elements as it was not supported in SPARK. - -2018-10-09 Ed Schonberg <schonberg@adacore.com> - - * exp_ch6.adb (Add_Call_By_Copy_Node, - Add_Simple_Call_By_Copy_Node, Expand_Call_Helper): Reset - Is_True_Constant on entities used as Out or In_Out parameters in - calls. - -2018-10-09 Ed Schonberg <schonberg@adacore.com> - - * exp_unst.adb (Unnest_Subprogram): Do not load System to obtain - the Address entity unless an activation record is being built. - Removes useless with_clauses for System when nested subprograms - do not have uplevel references, and therefore do not need - activation records. - -2018-10-09 Ed Schonberg <schonberg@adacore.com> - - * sem_ch6.adb (Fully_Conformant_Expressions): Handle properly - the conformance check on an aspect expression that includes a - call to an instance of Unchecked_Conversion, or more generally a - call to an intrinsic operation. - -2018-10-09 Eric Botcazou <ebotcazou@adacore.com> - - * repinfo.adb: Remove with/use clause for Stand. - (List_Mechanisms): List the mechanism of functions only. - -2018-10-09 Bob Duff <duff@adacore.com> - - * doc/gnat_ugn/gnat_utility_programs.rst: Correct spelling of - --eol switch. Document the language-version switches. Update - description for --no-exception. - -2018-10-09 Vasiliy Fofanov <fofanov@adacore.com> - - * libgnat/s-os_lib.ads (Normalize_Pathname): Fix incorrect - comment. - -2018-10-09 Arnaud Charlet <charlet@adacore.com> - - * vxlink.adb: Remove pragma Annotate, no longer needed. - -2018-10-09 Ed Schonberg <schonberg@adacore.com> - - * checks.adb (Apply_Type_Conversion_Checks): Use GNATprove_Mode - rather than SPARK_mode in order to preserve the Do_Range_Check - flag for verification purposes. - -2018-10-09 Ed Schonberg <schonberg@adacore.com> - - * exp_aggr.adb (Expand_Array_Aggregate): If it is not possible - to build in place an aggregate with component associations, set - the Warnings_Off flag on the generated temporary, to prevent - spurious warnings from the backend when compiling with the - -Wuninitialized gcc flag. - -2018-09-30 Alexandre Oliva <oliva@adacore.com> - - * gcc-interface/lang-specs.h (default_compilers): When given - fcompare-debug-second, adjust auxbase like cc1, and pass - gnatd_A. - * gcc-interface/misc.c (flag_compare_debug): Remove variable. - (gnat_post_options): Do not set it. - * lib-writ.adb (flag_compare_debug): Remove import. - (Write_ALI): Do not test it. - -2018-09-28 Eric Botcazou <ebotcazou@adacore.com> - Pierre-Marie de Rodat <derodat@adacore.com> - - * gcc-interface/decl.c (is_cplusplus_method): Do not require C++ - convention on Interfaces. - * gcc-interface/trans.c (Subprogram_Body_to_gnu): Try to create a - bona-fide thunk and hand it over to the middle-end. - (get_controlling_type): New function. - (use_alias_for_thunk_p): Likewise. - (thunk_labelno): New static variable. - (make_covariant_thunk): New function. - (maybe_make_gnu_thunk): Likewise. - * gcc-interface/utils.c (finish_subprog_decl): Set DECL_CONTEXT of the - result DECL here instead of... - (end_subprog_body): ...here. - -2018-09-27 Martin Sebor <msebor@redhat.com> - - * gcc-interface/utils.c (make_packable_type): Introduce a temporary - to avoid -Wnonnull. - (unchecked_convert): Same. - -2018-09-26 Elisa Barboni <barboni@adacore.com> - - * sem_prag.adb (Check_Refined_Global_Item): Improve error - message. - -2018-09-26 Thomas Quinot <quinot@adacore.com> - - * sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): For a - representation item that is an N_Aspect_Definition, retrieve the - entity it applies to using the Entity attribute. - -2018-09-26 Justin Squirek <squirek@adacore.com> - - * sem_ch8.adb (Analyze_Subprogram_Renaming): Add extra condition - to check for unmarked subprogram references coming from - renamings. - -2018-09-26 Arnaud Charlet <charlet@adacore.com> - - * back_end.adb (Scan_Compiler_Arguments): Store -G xxx switches. - -2018-09-26 Yannick Moy <moy@adacore.com> - - * errout.ads: Update comment for insertion character '?'. - * inline.adb: Use simple insertion character '?' for GNATprove - info messages. - * sem_res.adb (Resolve_Call): Issue an info message on inlining - in GNATprove mode. - -2018-09-26 Ed Schonberg <schonberg@adacore.com> - - * checks.adb (Apply_Type_Conversion_Checks): Do not generate a - range check on the expression of the conversion if it involves a - fixed-point type, as such conversions are handled specially - during expansion. - * exp_ch4.adb (Expand_N_Type_Conversion): In a conversion from - Fixed to Integer, use the base type of the expression to ensure - that the caller will generate the proper constraint check when - needed. - -2018-09-26 Maroua Maalej <maalej@adacore.com> - - * sem_spark.adb (Check_Loop_Statement): Fix a bug related to - loop exit environment. - (Check_Statement): fixing a bug when comparing the source and - target in an assignment statement. - -2018-09-26 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch12.adb (Instantiate_Package_Body): Capture and restore - the full compilation context. - (Instantiate_Subprogram_Body): Capture and restore the full - compilation context. - -2018-09-26 Yannick Moy <moy@adacore.com> - - * debug.adb: Add use for -gnatd_f switch. - * inline.adb (Cannot_Inline): Only issue info message for - failure to inline in GNATprove mode when switch -gnatd_f is - used. - -2018-09-26 Javier Miranda <miranda@adacore.com> - - * exp_disp.adb (Expand_Interface_Conversion): No displacement of - the pointer needed when the type of the operand is an interface - type that maches the target type and we are compiling under - configurable runtime. Adding also documentation explaining why - this cannot be done when compiling with the full runtime. - * exp_intr.adb: Update comment. - -2018-09-26 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch5.adb (Wrap_Loop_Statement): Annotate as No_Return. - -2018-09-26 Ed Schonberg <schonberg@adacore.com> - - * exp_util.adb (Make_Predicate_Call): Use OK_Convert_To when - applying a predicate check to prevent spurious errors when - private ancestors are involved. - -2018-09-26 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch4.adb (Expand_N_Allocator): Ensure that the use of the - secondary stack does not clash with restriction - No_Secondary_Stack. - * exp_ch6.adb (Expand_N_Extended_Return_Statement): Ensure that - the use of the secondary stack does not clash with restriction - No_Secondary_Stack. - * sem_ch5.adb (Analyze_Loop_Statement): Wrap the loop in a block - prior to analysis in order to either provide a local scope for - an iterator, or ensure that the secondary stack is properly - managed. - (Check_Call): Account for the case where the tree may be - unanalyzed or contain prior errors. - (Has_Call_Using_Secondary_Stack): Renamed to Has_Sec_Stack_Call. - Update all uses of the subprogram. - (Prepare_Loop_Statement): New routine. - -2018-09-26 Javier Miranda <miranda@adacore.com> - - * sem_res.adb (Resolve_Actuals): If the formal is a class-wide - type conversion then do not skip resolving and expanding the - conversion; required to displace the pointer to the object and - reference the dispatch table associated with the target - interface type. - -2018-09-26 Hristian Kirtchev <kirtchev@adacore.com> - - * libgnat/g-dynhta.adb (Prepend_Or_Replace): Update the number - of key-value pairs in the hash table only when adding a brand - new pair. - -2018-09-26 Sergey Rybin <rybin@adacore.com> - - * doc/gnat_ugn/gnat_utility_programs.rst: Add note about - processing of aggregate projects in gnatmetric and gnatstub. - -2018-09-26 Hristian Kirtchev <kirtchev@adacore.com> - - * contracts.adb, exp_unst.adb, exp_util.adb, gnat1drv.adb, - opt.ads, par-prag.adb, sem_ch3.adb, sem_ch5.adb, sem_prag.adb, - sinfo.ads, snames.ads-tmpl: Minor reformatting. - -2018-09-26 Hristian Kirtchev <kirtchev@adacore.com> - - * gcc-interface/Make-lang.in: Add unit GNAT.Sets to the list of - front end sources. - * impunit.adb: Add unit GNAT.Sets to the list of predefined - units. - * Makefile.rtl: Add unit GNAT.Sets to the list of non-tasking - units. - * libgnat/g-sets.adb: New unit. - * libgnat/g-sets.ads: New unit. - * libgnat/g-dynhta.adb (Minimum_Size): Decrease to 8 in order to - allow for small sets. Update all occurrences of Table_Locked to - Iterated. - (Ensure_Unlocked): Query the number of iterators. - (Find_Node): Use the supplied equality. - (Is_Empty): New routine. - (Lock): Update the number of iterators. - (Prepend_Or_Replace): Use the supplied equality. - (Size): Update the return type. - (Unlock): Update the number of iterators. - * libgnat/g-dynhta.ads: Update all occurrences of Table_Locked - to Iterated. Rename formal subprogram Equivalent_Keys to "=". - (Bucket_Range_Type, Pair_Count_Type): Remove types. - (Not_Created, Table_Locked, Iterator_Exhausted): Remove - exceptions. - (Hash_Table): Update to store the number of iterators rather - than locks. - (Is_Empty): New routine. - (Size): Update the return type. - * libgnat/g-lists.adb: Update all occurrences of List_Locked to - Iterated. - (Ensure_Unlocked): Query the number of iterators. - (Length): Remove. - (Lock): Update the number of iterators. - (Size): New routine. - (Unlock): Update the number of iterators. - * libgnat/g-lists.ads: Update all occurrences of List_Locked to - Iterated. - (Element_Count_Type): Remove type. - (Not_Created, Table_Locked, Iterator_Exhausted): Remove - exceptions. - (Linked_List): Update type to store the number of iterators - rather than locks. - (Length): Remove. - (Size): New routine. - * libgnat/gnat.ads (Bucket_Range_Type): New type. - (Iterated, Iterator_Exhausted, and Not_Created): New exceptions. - -2018-09-26 Javier Miranda <miranda@adacore.com> - - * checks.adb (Install_Null_Excluding_Check): Do not add - null-excluding checks when the tree may not be fully decorated. - This patch cascade errors. - -2018-09-26 Gary Dismukes <dismukes@adacore.com> - - * sem_ch3.adb (Analyze_Object_Declaration): Remove test for - Comes_From_Source, which prevented implicit conversions from - being applied to anonymous access-to-subprogram formals in - constant declartions that arise from instance associations for - generic formal objects. Add RM and AARM references to comment. - -2018-09-26 Olivier Hainque <hainque@adacore.com> - - * opt.ads (OpenAcc_Enabled): New flag. False by default. True - when OpenACC pragmas are requested to be honored, when -fopenacc - is found on the command line. - * back_end.adb (Scan_Compiler_Arguments): Set OpenACC_Enabled if - -fopenacc is seen on the command line. - * sinfo.adb, sinfo.ads (Is_OpenAcc_Environment): New - flag/predicate on Loop statements which embed an Acc_Kernels, - Acc_Parallel or Acc_Data pragma. - (Is_OpenAcc_Loop): New flag/predicate on Loop statements which - embed an Acc_Loop pragma. - (Set_Is_OpenAcc_Environment, Set_Is_OpenAcc_Loop): Setters for - the new flags. - * par-prag.adb (Prag): Handle Acc_Data, Acc_Loop, Acc_Parallel - and Acc_Kernels pragmas. Nothing to do here, all handled by - sem_prag. - * sem_prag.adb (Acc_First, Acc_Next, - Validate_Acc_Condition_Clause, Validate_Acc_Data_Clause, - Validate_Acc_Int_Expr_Clause, Validate_Acc_Int_Expr_List_Clause, - Validate_Acc_Loop_Collapse, Validate_Acc_Loop_Gang, - Validate_Acc_Loop_Vector, Validate_Acc_Loop_Worker, - Validate_Acc_Name_Reduction, Validate_Acc_Size_Expressions): New - helper for Analyze_Pragma, to handle OpenACC pragmas. - (Analyze_Pragma): Handle Acc_Data, Acc_Loop, Acc_Parallel and - Acc_Kernels pragmas. - * sem_ch5.adb (Disable_Constant): Unset Is_True_Constant on - variable entity, action for ... - (Disable_Constants): Helper for Analyze_Loop_Statement, to ... - (Analyze_Loop_Statement): Disable True_Constant on variables - referenced within an OpenACC environment. - * snames.ads-tmpl: Declare Name_Ids for the OpenACC directives - and clauses we can handle. Remove an exraneous whitespace before - columns, preventing line length overflow in the generated spec - with Ids now reaching beyond 999. - * doc/gnat_rm/implementation_defined_pragmas.rst: Document - pragma Acc_Parallel, Acc_Loop, Acc_Kernels and Acc_Data. - * gnat_rm.texi: Regenerate. - -2018-09-26 Ed Schonberg <schonberg@adacore.com> - - * sem_ch3.adb (Is_Onown_Limited): A derived type whose parent P - is a derived limited record is not itself limited if P is a - derived limited interface. - -2018-09-26 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch7.adb (Has_Referencer): Remove Top_Level parameter and - add In_Nested_Instance and - Has_Outer_Referencer_Of_Non_Subprograms parameters. Rename - Has_Non_Subprograms_Referencer variable into - Has_Referencer_Of_Non_Subprograms and initialize it with the new - third parameter. Adjust recursive calls and to the renaming. - Replace test on Top_Level with test on In_Nested_Instance to - decide whether to clear the Is_Public flag on entities. - (Hide_Public_Entities): Adjust call to Has_Referencer. - -2018-09-26 Eric Botcazou <ebotcazou@adacore.com> - - * exp_disp.adb (Expand_Interface_Conversion): Use Present test. - (Expand_Interface_Thunk): Propagate debug info setting from - target. - * exp_util.ads (Find_Interface_Tag): Adjust comment. - * exp_util.adb (Find_Interface_Tag): Remove assertions of - success. - * sem_util.adb (Is_Variable_Size_Record): Only look at - components and robustify the implementation. - * fe.h (Find_Interface_Tag): Declare. - (Is_Variable_Size_Record): Likewise. - -2018-09-26 Thomas Quinot <quinot@adacore.com> - - * exp_util.adb (Make_CW_Equivalent_Type): Propagate bit order - and scalar storage order from root type to classwide equivalent - type, to prevent rejection of the equivalent type by the - freezing circuitry. - -2018-09-26 Justin Squirek <squirek@adacore.com> - - * sem_ch5.adb (Analyze_Iterator_Specification): Add conditional - to freeze called functions within iterator specifications during - full analysis. - (Preanalyze_Range): Minor typo fix. - -2018-09-26 Ed Schonberg <schonberg@adacore.com> - - * sem_ch6.adb (Analyze_Function_Return): If the return type has - a dynamic_predicate, apply a Predicate_Check to the expression, - given that it is implicitly converted to the return type. - Exclude case expressions from the check, because in this context - the expression is expanded into individual return statements. - -2018-09-26 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Task_Type>: In - -gnatct mode, process the discriminants only for a definition. - -2018-09-26 Eric Botcazou <ebotcazou@adacore.com> - - * repinfo.adb (List_Record_Layout): Be prepared for JSON output. - (List_Record_Info): Use the flat representation for record - subtypes in the JSON format. - -2018-09-26 Justin Squirek <squirek@adacore.com> - - * lib-writ.adb, lib-writ.ads (Write_With_Lines): Add - documentation and an extra conditional check for RCI units so - that generated ali files will list the spec only instead of a - body when a body is not found. - -2018-09-26 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/gigi.h (error_gnat_node): Delete. - * gcc-interface/trans.c (error_gnat_node): Likewise. - (gigi): Replace it with Current_Error_Node. - (gnat_to_gnu): Likewise. - * gcc-interface/utils.c (rest_of_subprog_body_compilation): - Likewise. - * gcc-interface/misc.c (internal_error_function): Do not set it. - -2018-09-26 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Adjust - code retrieving the address when a clause has already been - processed. - * gcc-interface/trans.c (gnat_to_gnu) - <N_Attribute_Definition_Clause>: For an object with a Freeze - node, build a meaningful expression. - -2018-09-26 Arnaud Charlet <charlet@adacore.com> - - * gnat1drv.adb (Adjust_Global_Switches): -gnatd_A sets - Opt.Disable_ALI_File. - * debug.adb: Update debug flags documentation. - -2018-09-26 Ed Schonberg <schonberg@adacore.com> - - * contracts.adb (Analyze_Entry_Or_Subprogram_Contract): The - analysis of preconditions specified by pragmas (rather than - aspects) is not delayed, and therefore expressions functions - that are completions do not need special handling during - expansion. - -2018-09-26 Ed Schonberg <schonberg@adacore.com> - - * exp_unst.adb: Fix handling of up level references for entries. - -2018-09-26 Ed Schonberg <schonberg@adacore.com> - - * contracts.adb (Expand_Subprogram_Contract, - Process_Preconditions_For): Apply Freeze_Expr_Types to the - expression for a precondition of an expression function that is - a completion, when the completion appears in the private part - and the declaration it completes is in the visible part of the - same package. - * freeze.adb (Freeze_Expr_Types): Do not establish the scope of - the operation if it is already installed, as will be the case - when called to analyze the contract oc the subprogram (which - happens when generating code inside the subprogram body). - -2018-09-26 Maroua Maalej <maalej@adacore.com> - - * sem_spark.adb (Check_Param_In, Setup_Parameter_Or_Global): - Change the operation associated to assigning to an IN parameter. - In SPARK, IN access-to-variable is an observe operation for a - function, and borrow operation for a procedure. - -2018-09-26 Arnaud Charlet <charlet@adacore.com> - - * vxlink.adb: Minor reformatting. - -2018-09-26 Gary Dismukes <dismukes@adacore.com> - - * exp_ch9.adb, layout.adb, sem_attr.adb, sem_res.adb: Fix - miscellaneous typos. - -2018-09-26 Jerome Lambourg <lambourg@adacore.com> - - * vxlink.adb: Kill a CodePeer warning. - -2018-09-24 Eric Botcazou <ebotcazou@adacore.com> - - PR ada/87396 - * fe.h (Get_Attribute_Definition_Clause): Use 'unsigned char' instead - of 'char' as the type of the second parameter. - -2018-09-13 Eric Botcazou <ebotcazou@adacore.com> - - * Makefile.rtl (arm% linux-gnueabi%): Always set EH_MECHANISM to -arm. - -2018-09-13 Eric Botcazou <ebotcazou@adacore.com> - - PR ada/81103 - * terminals.c: Do not include termio.h. - -2018-08-27 Martin Liska <mliska@suse.cz> - - * gcc-interface/decl.c (update_profile): Use new function - fndecl_built_in_p and remove check for FUNCTION_DECL if - possible. - * gcc-interface/gigi.h (call_is_atomic_load): Likewise. - * gcc-interface/utils.c (gnat_pushdecl): Likewise. - -2018-08-23 Giuliano Belinassi <giuliano.belinassi@usp.br> - - * exp_unst.ads: Fix typo 'exapnded' to 'expanded'. - -2018-08-21 Hristian Kirtchev <kirtchev@adacore.com> - - * checks.adb, contracts.adb, exp_aggr.adb, exp_attr.adb, - exp_ch6.adb, exp_ch7.adb, exp_ch9.adb, exp_unst.adb, - exp_util.adb, freeze.adb, gnatlink.adb, layout.adb, - lib-writ.adb, lib-xref-spark_specific.adb, sem_ch13.adb, - sem_ch3.adb, sem_ch6.adb, sem_res.adb, sem_util.adb, sinfo.ads, - sprint.adb: Minor reformatting. - -2018-08-21 Jerome Lambourg <lambourg@adacore.com> - - * vxlink-bind.adb, vxlink-bind.ads, vxlink-link.adb, - vxlink-link.ads, vxlink-main.adb, vxlink.adb, vxlink.ads: Add a - new tool vxlink to handle VxWorks constructors in DKMs. - * gcc-interface/Makefile.in: add rules to build vxlink - -2018-08-21 Ed Schonberg <schonberg@adacore.com> - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper, Mask_Type): - Refine the handling of freezing types for expression functions - that are not completions, when analyzing the generated body for - the function: the body is inserted at the end of the enclosing - declarative part, and its analysis may freeze types declared in - the same scope that have not been frozen yet. - -2018-08-21 Ed Schonberg <schonberg@adacore.com> - - * sem_ch6.adb: Remove Freeze_Expr_Types. - * freeze.ads, freeze.adb (Freeze_Expr_Types): Moved from - sem_ch6.adb, and extended to handle other expressions that may - contain unfrozen types that must be frozen in their proper - scopes. - * contracts.adb (Analyze_Entry_Or_Subprogram_Contract): If the - contract is for the generated body of an expression function - that is a completion, traverse the expressions for pre- and - postconditions to freeze all types before adding the contract - code within the subprogram body. - -2018-08-21 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch10.adb: Remove the with and use clause for unit Ghost. - (Analyze_With_Clause): Do not mark a with clause which mentions - an ignored Ghost code for elimination. - -2018-08-21 Javier Miranda <miranda@adacore.com> - - * lib-writ.adb (Write_Unit_Information): Handle pragmas removed - by the expander. - -2018-08-21 Ed Schonberg <schonberg@adacore.com> - - * sem_ch6.adb (Check_Synchronized_Overriding): The conformance - between an overriding protected operation and the overridden - abstract progenitor operation requires subtype conformance; - requiring equality of return types in the case of a function is - too restrictive and leads to spurious errors when the return - type is a generic actual. - -2018-08-21 Ed Schonberg <schonberg@adacore.com> - - * exp_ch9.adb (Expand_N_Timed_Entry_Call, - Expand_Conditional_Entry_Call): Use Reset_Scopes_Of to set - properly the scope of all entities created in blocks generated - by the expansion of these constructs. - -2018-08-21 Ed Schonberg <schonberg@adacore.com> - - * sem_ch13.adb (Build_Predicate_Functioss): Apply - Reset_Quantified_Variables_Scope after predicate function has - been analyzed, so that the scope can be reset on the generated - loop statements that have replaced the quantified expressions. - -2018-08-21 Bob Duff <duff@adacore.com> - - * einfo.ads, einfo.adb (Private_View, Shadow_Entities): Remove - obsolete code. - -2018-08-21 Maroua Maalej <maalej@adacore.com> - - * sem_spark.adb (Check_Call_Statement): Check global and formal - parameter permissions at call sites. - (Check_Callable_Body): Assume permissions on globals and - parameters depending on their modes then analyse the body - operations. - (Check_Declaration): Consider both deep (including elementary - access) object declarations and normal variables. First check - whether the deep object is of Ownership Aspec True or not, then, - depending on its initialization, assign the appropriate state. - Check related to non access type variables deal with - initialization value permissions. - (Check_Expression): Check nodes used in the expression being - analyzed. - (Check_Globals): Call by Check_Call_Statement to perform the - check on globals. - (Check_List): Call Check_Node on each element of the list. - (Check_Loop_Statement): Check the Iteration_Scheme and loop - statements. - (Check_Node): Main traversal procedure to check safe pointer usage. - (Check_Package_Body): Check subprogram's body. - (Check_Param_In): Take a formal and an actual parameter and - Check the permission of every in-mode parameter. - (Check_Param_Out): Take a formal and an actual parameter and - check the state of out-mode and in out-mode parameters. - (Check_Statement): Check statements other than procedure call. - (Get_Perm, Get_Perm_Or_Tree, Get_Perm_Tree): Find out the state - related to the given name. - (Is_Deep): Return True if an object is of access type or has - subfields of access type. - (Perm_Error, Perm_Error_Subprogram_End): Add an error message - whenever the found state on the given name is different from the - one expected (in the statement being analyzed). - (Process_Path): Given an operation and a current state, call - Perm_Error if there is any mismatch. - (Return_Declarations, Return_Globals, Return_The_Global): Check - the state of a given name at the end of the subprogram. These - procedures may change depending on how we shall finally deal - with globals and the rhs state in a move operation. - (Set_Perm_Extensions, Set_Perm_Prefixes_Borrow, - Set_Perm_Prefixes, Setup_Globals, Setup_Parameter_Or_Global, - Setup_Parameters): Set up the new states to the given node and - up and down the tree after an operation. - (Has_Ownership_Aspect_True): This function may disappear later - when the Ownership Aspect will be implemented in the FE. - -2018-08-21 Ed Schonberg <schonberg@adacore.com> - - * sem_res.adb (Resolve_Call): Resolve correctly a parameterless - call that returns an access type whose designated type is the - component type of an array, when the function has no defaulted - parameters. - -2018-08-21 Yannick Moy <moy@adacore.com> - - * doc/gnat_ugn/building_executable_programs_with_gnat.rst: - Document entries of the target parametrization file. - * gnat_ugn.texi: Regenerate. - -2018-08-21 Ed Schonberg <schonberg@adacore.com> - - * sem_attr.adb: Set scope of elaboration flag for 'Access. - -2018-08-21 Ed Schonberg <schonberg@adacore.com> - - * sprint.adb: Add guard on printing aspects. - -2018-08-21 Javier Miranda <miranda@adacore.com> - - * exp_cg.adb (Generate_CG_Output): Handle calls removed by the - expander. - -2018-08-21 Ed Schonberg <schonberg@adacore.com> - - * layout.adb: Do not set size of access subprogram if unnesting. - -2018-08-21 Ed Schonberg <schonberg@adacore.com> - - * freeze.adb: Remove warnings for access to subprograms when - unnesting is active. - -2018-08-21 Ed Schonberg <schonberg@adacore.com> - - * exp_aggr.adb (Expand_Array_Aggregate): If the component type - is limited, the array must be constructed in place, so set flag - In_Place_Assign_OK_For_Declaration accordingly. This prevents - improper copying of an array of tasks during initialization. - -2018-08-21 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.c (Call_to_gnu): Always suppress an - unchecked conversion around the actual for an In parameter - passed by copy. - -2018-08-21 Eric Botcazou <ebotcazou@adacore.com> - - * exp_util.adb (Is_Possibly_Unaligned_Object): For the case of a - selected component inherited in a record extension and subject - to a representation clause, retrieve the position and size from - the original record component. - -2018-08-21 Ed Schonberg <schonberg@adacore.com> - - * sem_util.ads, sem_util.adb (New_External_Entity): Type of - Suffix_Index must be Int, not Nat, so that a negative value can - be used to generate a unique name for an external object, as - specified in Tbuild.New_External_Name. - (Scope_Within): Handle private type whose completion is a - synchronized type (For unnesting). - * itypes.ads, itypes.adb (Create_Itype): Ditto - * sem_ch3.adb (Constrain_Corresponding_Record): Generate a - unique name for the created subtype, because there may be - several discriminated tasks present in the same scope, and each - needs its distinct corresponding record subtype. - -2018-08-21 Yannick Moy <moy@adacore.com> - - * doc/gnat_ugn/gnat_and_program_execution.rst: Update - documentation of dimensionality analysis. - * gnat_ugn.texi: Regenerate. - * Makefile.rtl, impunit.adb: Consider the new units. - * libgnat/s-dfmkio.ads, libgnat/s-dfmopr.ads, - libgnat/s-diflmk.ads: New units based on Float. - * libgnat/s-dilomk.ads, libgnat/s-dlmkio.ads, - libgnat/s-dlmopr.ads: New units based on Long_Float. - * libgnat/s-dmotpr.ads: Rename to libgnat/s-dgmgop.ads and turn - into an instance of - System.Dim.Generic_Mks.Generic_Other_Prefixes. - * libgnat/s-dimmks.ads: Rename to libgnat/s-digemk.ads and turn - into an instance of System.Dim.Generic_Mks. - -2018-08-21 Hristian Kirtchev <kirtchev@adacore.com> - - * impunit.adb: Add g-lists to the set of non-implementation - units. - * libgnat/g-lists.adb, libgnat/g-lists.ads: New unit. - * Makefile.rtl: Add g-lists to the set of non-tasking units. - * gcc-interface/Make-lang.in: Add g-lists to the set of files - used by gnat1. - -2018-08-21 Ed Schonberg <schonberg@adacore.com> - - * exp_ch9.adb (Reset_Scopes): Do not recurse into type - declarations when resetting the scope of entities declared the - procedures generated for entry bodies and accept alternatives. - Use the entity of the procedure declaration, not its body, as - the new scope. - -2018-08-21 Hristian Kirtchev <kirtchev@adacore.com> - - * einfo.adb (Elaboration_Entity): Include entries and entry - families in the set of legal entities. - (Elaboration_Entity_Required): Include entries and entry - families in the set of legal entities. - (Set_Elaboration_Entity): Include entries and entry families in - the set of legal entities. - (Set_Elaboration_Entity_Required): Include entries and entry - families in the set of legal entities. - (Write_Field13_Name): Update the output of attribute - Elaboration_Entity. - * einfo.ads: Attributes Elaboration_Entity and - Elaboration_Entity_Required now apply to entries and entry - families. - -2018-08-21 Arnaud Charlet <charlet@adacore.com> - - * set_targ.adb: Mark some CodePeer message as Intentional. - -2018-08-21 Ed Schonberg <schonberg@adacore.com> - - * sem_res.adb (Resolve_Call): Force the freezing of an - expression function that is called to provide a default value - for a defaulted discriminant in an object initialization. - -2018-08-21 Hristian Kirtchev <kirtchev@adacore.com> - - * libgnat/g-dynhta.adb, libgnat/g-dynhta.ads: New package - Dynamic_HTable. - -2018-08-21 Javier Miranda <miranda@adacore.com> - - * checks.ads (Determine_Range): Adding documentation. - * checks.adb (Determine_Range): Don't deal with enumerated types - with non-standard representation. - (Convert_And_Check_Range): For conversion of enumeration types - with non standard representation to an integer type perform a - direct conversion to the target integer type. - -2018-08-21 Piotr Trojanek <trojanek@adacore.com> - - * lib-xref.ads, lib-xref-spark_specific.adb - (Enclosing_Subprogram_Or_Library_Package): Now roughtly works - for pragmas that come from aspect specifications. - -2018-08-21 Pierre-Marie de Rodat <derodat@adacore.com> - - * sa_messages.ads, sa_messages.adb: New source files. - -2018-08-03 Pierre-Marie de Rodat <derodat@adacore.com> - - Reverts - 2018-07-06 Jim Wilson <jimw@sifive.com> - - * Make-generated.in (treeprs.ads): Use $(GNATMAKE) instead of gnatmake. - (einfo.h, sinfo.h, stamp-snames, stamp-nmake): Likewise. - * gcc-interface/Makefile.in (xoscons): Likewise. - -2018-07-31 Alexandre Oliva <oliva@adacore.com> - Olivier Hainque <hainque@adacore.com> - - * gcc-interface/trans.c: Include debug.h. - (file_map): New static variable. - (gigi): Set it. Create decl_to_instance_map when needed. - (Subprogram_Body_to_gnu): Pass gnu_subprog_decl to... - (Sloc_to_locus): ... this. Add decl parm, map it to instance. - * gcc-interface/gigi.h (Sloc_to_locus): Adjust declaration. - -2018-07-31 Arnaud Charlet <charlet@adacore.com> - - * clean.adb, gnatchop.adb, gnatfind.adb, gnatls.adb, - gnatmake.ads, gnatxref.adb, make.adb, make.ads, make_util.ads, - sfn_scan.adb, vxaddr2line.adb, xeinfo.adb, xoscons.adb, - xr_tabls.adb, xref_lib.adb: Address CodePeer messages. - -2018-07-31 Arnaud Charlet <charlet@adacore.com> - - * gnatlink.adb: Fix potential Constraint_Error if - Library_Version is too long. - -2018-07-31 Arnaud Charlet <charlet@adacore.com> - - * sem_elab.adb: Remove duplicate condition detected by CodePeer. - -2018-07-31 Ed Schonberg <schonberg@adacore.com> - - * exp_unst.adb (Subp_Index): In the case of a protected - operation, the relevant entry is the generated - protected_subprogram_body into which the original body is - rewritten. Assorted cleanup and optimizations. - -2018-07-31 Ed Schonberg <schonberg@adacore.com> - - * exp_attr.adb (Expand_Attribute, case Fixed_Value): Set the - base type of the result to ensure that proper overflow and range - checks are generated. If the target is a fixed-point tyoe, - generate the required overflow and range checks explicitly, - rather than relying on Apply_Type_Conversion_Checks, which might - simply set the Do_Range_Check flag and rely on the backend to - add the check. - -2018-07-31 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_res.adb (Resolve_Call): Establish a transient scope to - manage the secondary stack when the designated type of an - access-to-subprogram requires it. - -2018-07-31 Ed Schonberg <schonberg@adacore.com> - - * exp_ch7.adb (Check_Unnesting_Elaboration_Code): To find local - subprograms in the elaboration code for a package body, recurse - through nested statement sequences because a compiler-generated - procedure may appear within a condition statement. - -2018-07-31 Ed Schonberg <schonberg@adacore.com> - - * exp_ch6.adb (Expand_Protected_Subprogram_Call): Handle - properly a protected call that includes a default parameter that - is a call to a protected function of the same type. - -2018-07-31 Justin Squirek <squirek@adacore.com> - - * lib-writ.adb (Write_With_Lines): Modfiy the generation of - dependencies within ali files so that source unit bodies are - properly listed even if said bodies are missing. Perform legacy - behavior in GNATprove mode. - * lib-writ.ads: Modify documentation to reflect current behavior. - -2018-07-31 Eric Botcazou <ebotcazou@adacore.com> - - * libgnarl/s-osinte__solaris.ads (upad64_t): New private type. - (mutex_t): Use it for 'lock' and 'data' components. - (cond_t): Likewise for 'data' and use single 'flags' component. - -2018-07-31 Justin Squirek <squirek@adacore.com> - - * exp_ch5.adb (Make_Field_Assign): Force temporarily generated - objects for assignment of overlaid user objects to be renamings - instead of constant declarations. - -2018-07-31 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch9.adb (Analyze_Pragmas): New routine. - (Build_Private_Protected_Declaration): Code clean up. Relocate - relevant aspects and pragmas from the stand-alone body to the - newly created spec. Explicitly analyze any pragmas that have - been either relocated or produced by the analysis of the - aspects. - (Move_Pragmas): New routine. - * sem_prag.adb (Find_Related_Declaration_Or_Body): Recognize the - case where a pragma applies to the internally created spec for a - stand-along subprogram body declared in a protected body. - -2018-07-31 Gary Dismukes <dismukes@adacore.com> - - * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace - calls to Current_Scope in three assertions with calls to - Current_Subprogram. - -2018-07-31 Ed Schonberg <schonberg@adacore.com> - - * sem_eval.adb (Check_Non_Static_Context): Do not warn on an - integer literal greater than the upper bound of - Universal_Integer'Last when expansion is disabled, to avoid a - spurious warning over ranges involving 64-bit modular types. - -2018-07-31 Arnaud Charlet <charlet@adacore.com> - - * einfo.adb (Write_Entity_Flags): Also print - Is_Activation_Record flag. - -2018-07-31 Piotr Trojanek <trojanek@adacore.com> - - * exp_aggr.adb, exp_ch4.adb, exp_ch6.adb, lib-xref.adb, - repinfo.adb, sem_ch9.adb: Minor replace Ekind membership tests - with a wrapper routine. - -2018-07-31 Piotr Trojanek <trojanek@adacore.com> - - * ali.adb (Known_ALI_Lines): Remove 'F' as a prefix for lines - related to the FORMAL analysis done by GNATprove. - -2018-07-31 Javier Miranda <miranda@adacore.com> - - * sem.ads (Inside_Preanalysis_Without_Freezing): New global - counter. - * sem.adb (Semantics): This subprogram has now the - responsibility of resetting the counter before analyzing a unit, - and restoring its previous value before returning. - * freeze.adb (Freeze_Entity): Do not freeze if we are - preanalyzing without freezing. - * sem_res.adb (Preanalyze_And_Resolve): Set & restore - In_Preanalysis_Without_Freezing. - -2018-07-31 Ed Schonberg <schonberg@adacore.com> - - * sem_ch4.adb (Traverse_Homonyms): Consider generic actuals that - may rename a matching class-wide operation only if the renaming - declaration for that actual is in an enclosing scope (i.e. - within the corrresponding instance). - -2018-07-31 Hristian Kirtchev <kirtchev@adacore.com> - - * checks.adb, contracts.adb, exp_aggr.adb, exp_ch5.adb, - exp_disp.adb, make.adb, sem_ch4.adb, sem_eval.adb, sem_res.adb, - usage.adb: Minor reformatting. - -2018-07-31 Bob Duff <duff@adacore.com> - - * sem_res.adb (Resolve_Allocator): Do not complain about the - implicit allocator that occurs in the expansion of a return - statement for a build-in-place function. - -2018-07-20 Martin Sebor <msebor@redhat.com> - - PR middle-end/82063 - * gcc-interface/misc.c (gnat_handle_option): Change function argument - to HOST_WIDE_INT. - -2018-07-17 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (choices_to_gnu): Rename parameters. Deal with - an operand of Character type. Factor out range generation to the end. - Check that the bounds are literals and convert them to the type of the - operand before building the ranges. - * gcc-interface/utils.c (make_dummy_type): Minor tweak. - (make_packable_type): Propagate TYPE_DEBUG_TYPE. - (maybe_pad_type): Likewise. - -2018-07-17 Ed Schonberg <schonberg@adacore.com> - - * sem_ch4.adb (Try_Object_Operation): Handle properly a prefixed call - in an instance, when the generic parameters include an interface type - and a abstract operation of that type, and the actuals in the instance - include an interface type and a corresponding abstract operation of it, - with a different name than the corresponding generic subprogram - parameter. - -2018-07-17 Arnaud Charlet <charlet@adacore.com> - - * sem_eval.adb (Rewrite_In_Raise_CE): Keep the original reason in more - cases. - -2018-07-17 Arnaud Charlet <charlet@adacore.com> - - * checks.adb (Apply_Division_Check): Add provision for floating-point - checks. - -2018-07-17 Ed Schonberg <schonberg@adacore.com> - - * exp_aggr.adb (Component_OK_For_Backend): If an array component of the - enclosing record has a bound that is out of range (and that has been - rewritten as a raise statement) the aggregate is not OK for any back - end, and should be expanded into individual assignments. - -2018-07-17 Piotr Trojanek <trojanek@adacore.com> - - * atree.adb (Relocate_Node): Simplify with Is_Rewrite_Substitution. - -2018-07-17 Piotr Trojanek <trojanek@adacore.com> - - * sem_util.ads (Denotes_Same_Object): Likewise. - * sem_warn.adb (Warn_On_Overlapping_Actuals): Fix RM rule references. - -2018-07-17 Eric Botcazou <ebotcazou@adacore.com> - - * exp_disp.adb (Make_Tags): When the type has user-defined primitives, - build the access type that is later used by Build_Get_Prim_Op_Address - as pointing to a subtype of Ada.Tags.Address_Array. - -2018-07-17 Patrick Bernardi <bernardi@adacore.com> - - * libgnat/s-memory__mingw.adb: Remove. - * Makefile.rtl: Remove s-memory.adb target pair from the Cygwin/Mingw32 - section. - -2018-07-17 Hristian Kirtchev <kirtchev@adacore.com> - - * frontend.adb (Frontend): The removal of ignored Ghost code must be - the last semantic operation performed on the tree. - -2018-07-17 Hristian Kirtchev <kirtchev@adacore.com> - - * frontend.adb (Frontend): Update the call to Register_Config_Switches. - * inline.ads: Add new component Config_Switches to record - Pending_Body_Info which captures the configuration state of the pending - body. Remove components Version, Version_Pragma, SPARK_Mode, and - SPARK_Mode_Pragma from record Pending_Body_Info because they are - already captured in component Config_Switches. - * opt.adb (Register_Opt_Config_Switches): Rename to - Register_Config_Switches. - (Restore_Opt_Config_Switches): Rename to Restore_Config_Switches. - (Save_Opt_Config_Switches): Rename to Save_Config_Switches. This - routine is now a function, and returns the saved configuration state as - an aggregate to avoid missing an attribute. - (Set_Opt_Config_Switches): Rename to Set_Config_Switches. - * opt.ads (Register_Opt_Config_Switches): Rename to - Register_Config_Switches. - (Restore_Opt_Config_Switches): Rename to Restore_Config_Switches. - (Save_Opt_Config_Switches): Rename to Save_Config_Switches. This - routine is now a function. - (Set_Opt_Config_Switches): Rename to Set_Config_Switches. - * par.adb (Par): Update the calls to configuration switch-related - subprograms. - * sem.adb (Semantics): Update the calls to configuration switch-related - subprograms. - * sem_ch10.adb (Analyze_Package_Body_Stub): Update the calls to - configuration switch-related subprograms. - (Analyze_Protected_Body_Stub): Update the calls to configuration - switch-related subprograms. - (Analyze_Subprogram_Body_Stub): Update calls to configuration - switch-related subprograms. - * sem_ch12.adb (Add_Pending_Instantiation): Update the capture of - pending instantiation attributes. - (Inline_Instance_Body): Update the capture of pending instantiation - attributes. It is no longer needed to explicitly manipulate the SPARK - mode. - (Instantiate_Package_Body): Update the restoration of the context - attributes. - (Instantiate_Subprogram_Body): Update the restoration of context - attributes. - (Load_Parent_Of_Generic): Update the capture of pending instantiation - attributes. - (Set_Instance_Env): Update the way relevant configuration attributes - are saved and restored. - -2018-07-17 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Deal with - more rvalues in the expression of a renaming. - -2018-07-17 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/ada-tree.h (TYPE_RETURN_BY_DIRECT_REF_P): Define for - METHOD_TYPE too. - (TYPE_RETURN_UNCONSTRAINED_P): Likewise. - (TYPE_CI_CO_LIST): Likewise. - * gcc-interface/gigi.h (is_cplusplus_method): Delete. - (fntype_same_flags_p): Adjust comment. - * gcc-interface/decl.c (Has_Thiscall_Convention): Delete. - (gnat_to_gnu_entity) <E_Subprogram_Type>: Do not set the "thiscall" - attribute directly. - (is_cplusplus_method): Make static and adjust head comment. - (gnat_to_gnu_param): Return a pointer for the "this" parameter of - C++ constructors. - (gnat_to_gnu_subprog_type): Turn imported C++ constructors into their - callable form. Generate a METHOD_TYPE node for imported C++ methods. - Set param_list at the very end of the processing. - (substitute_in_type) <METHOD_TYPE>: New case. - * gcc-interface/misc.c (gnat_print_type) <METHOD_TYPE>: Likewise. - (gnat_type_hash_eq): Accept METHOD_TYPE. - * gcc-interface/trans.c (Identifier_to_gnu): Deal with METHOD_TYPE. - (Attribute_to_gnu): Likewise. - (Call_to_gnu): Likewise. - (process_freeze_entity): Likewise. - * gcc-interface/utils.c (create_subprog_decl): Adjust head comment. - (fntype_same_flags_p): Likewise. - -2018-07-17 Piotr Trojanek <trojanek@adacore.com> - - * inline.adb (Expand_Inlined_Call): Remove extra parentheses. - -2018-07-17 Eric Botcazou <ebotcazou@adacore.com> - - * exp_disp.adb (Gen_Parameters_Profile): Make the _Init parameter an - In/Out parameter. - (Set_CPP_Constructors): Adjust comment accordingly. - -2018-07-17 Bob Duff <duff@adacore.com> - - * exp_disp.adb (Build_Class_Wide_Check): Return early if the - precondition is supposed to be ignored. - -2018-07-17 Ed Schonberg <schonberg@adacore.com> - - * sem_ch6.adb (Check_Untagged_Equality): Extend check to operations - declared in the same scope as the operand type, when that scope is a - procedure. - -2018-07-17 Ed Schonberg <schonberg@adacore.com> - - * exp_unst.adb (Unnest_Subprograms): Do nothing if the expander is not - active. Don't use Get_Actual_Subtype for record subtypes. Ignore - rewritten identifiers and uplevel references to bounds of types that - come from the original type reference. - -2018-07-17 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch13.adb, exp_ch7.adb, exp_unst.adb, freeze.adb, - libgnat/s-os_lib.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, - sem_eval.adb, sem_res.adb, sem_util.adb: Minor reformatting. - -2018-07-17 Javier Miranda <miranda@adacore.com> - - * exp_ch13.adb (Expand_N_Freeze_Entity): Handle subtype declared for an - iterator. - * freeze.adb (Freeze_Expression): Handle freeze of an entity defined - outside of a subprogram body. This case was previously handled during - preanalysis; the frozen entities were remembered and left pending until - we continued freezeing entities outside of the subprogram. Now, when - climbing the parents chain to locate the correct placement for the - freezeing node, we check if the entity can be frozen and only when no - enclosing node is marked as Must_Not_Freeze the entity is frozen. - * sem_ch3.ads (Preanalyze_Default_Expression): Declaration moved to the - package body. - * sem_ch3.adb (Preanalyze_Default_Expression): Code adjusted to invoke - the new subprogram Preanalyze_With_Freezing_And_Resolve. - * sem_ch6.adb (Preanalyze_Formal_Expression): New subprogram. - (Analyze_Expression_Function, Process_Formals): Invoke - Preanalyze_Formal_Expression instead of Preanalyze_Spec_Expression - since the analysis of the formals may freeze entities. - (Analyze_Subprogram_Body_Helper): Skip building the body of the - class-wide clone for eliminated subprograms. - * sem_res.ads, sem_res.adb (Preanalyze_And_Resolve): New subprogram. - Its code is basically the previous version of this routine but extended - with an additional parameter which is used to specify if during - preanalysis we are allowed to freeze entities. If the new parameter is - True then the subtree root node is marked as Must_Not_Freeze and no - entities are frozen during preanalysis. - (Preanalyze_And_Resolve): Invokes the internal version of - Preanalyze_And_Resolve without entity freezing. - (Preanalyze_With_Freezing_And_Resolve): Invokes the internal version of - Prenalyze_And_Resolve with freezing enabled. - -2018-07-17 Piotr Trojanek <trojanek@adacore.com> - - * einfo.ads, libgnat/g-comlin.ads: Minor change "ie" to "i.e." in docs - and comments. - -2018-07-17 Justin Squirek <squirek@adacore.com> - - * libgnat/s-os_lib.adb (Argument_String_To_List): Fix trimming of - whitespace. - -2018-07-17 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_prag.adb (Has_Visible_State): Do not consider constants as - visible state because it is not possible to determine whether a - constant depends on variable input. - (Propagate_Part_Of): Add comment clarifying the behavior with respect - to constant. - -2018-07-17 Yannick Moy <moy@adacore.com> - - * gnat1drv.adb (Gnat1drv): Do not issue warning about exception not - being propagated in GNATprove mode. - -2018-07-17 Dmitriy Anisimkov <anisimko@adacore.com> - - * libgnat/g-socket.adb, libgnat/g-socket.ads: Reorganize and make - public components of Inet_Addr_Type. Introduce public binary - operations. - -2018-07-17 Javier Miranda <miranda@adacore.com> - - * exp_ch7.adb (Make_Transient_Block): When determining whether an - enclosing scope already handles the secondary stack, take into account - transient blocks nested in a block that do not manage the secondary - stack and are located within a loop. - -2018-07-17 Ed Schonberg <schonberg@adacore.com> - - * sem_util.adb (Enclosing_Subprogram): Protected entries and task - entries must be treated separately: task entries are within the - enclosing subprogram of the task type, while protected entries are - transformed into the corresponding Protected_Body_Subprogram, which is - the enclosing_subprogram of any subprogram declared within the entry - body. - -2018-07-17 Hristian Kirtchev <kirtchev@adacore.com> - - * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add missing - sections on -gnatH and -gnatJ compiler switches. - * gnat_ugn.texi: Regenerate. - -2018-07-17 Hristian Kirtchev <kirtchev@adacore.com> - - * alloc.ads: Update the allocation metrics of the ignored Ghost nodes - table. - * atree.adb: Add a soft link for a procedure which is invoked whenever - an ignored Ghost node or entity is created. - (Change_Node): Preserve relevant attributes which come from the Flags - table. - (Mark_New_Ghost_Node): Record a newly created ignored Ghost node or - entity. - (Rewrite): Preserve relevant attributes which come from the Flags - table. - (Set_Ignored_Ghost_Recording_Proc): New routine. - * atree.ads: Define an access-to-suprogram type for a soft link which - records a newly created ignored Ghost node or entity. - (Set_Ignored_Ghost_Recording_Proc): New routine. - * ghost.adb: Remove with and use clause for Lib. Remove table - Ignored_Ghost_Units. Add new table Ignored_Ghost_Nodes. - (Add_Ignored_Ghost_Unit): Removed. - (Initialize): Initialize the table which stores ignored Ghost nodes. - Set the soft link which allows Atree.Mark_New_Ghost_Node to record an - ignored Ghost node. - (Is_Ignored_Ghost_Unit): Use the ultimate original node when checking - an eliminated ignored Ghost unit. - (Lock): Release and lock the table which stores ignored Ghost nodes. - (Mark_And_Set_Ghost_Assignment): Record rather than propagate ignored - Ghost nodes. - (Mark_And_Set_Ghost_Procedure_Call): Record rather than propagate - ignored Ghost nodes. - (Mark_Ghost_Clause): Record rather than propagate ignored Ghost nodes. - (Mark_Ghost_Declaration_Or_Body): Record rather than propagate ignored - Ghost nodes. - (Mark_Ghost_Pragma): Record rather than propagate ignored Ghost nodes. - (Propagate_Ignored_Ghost_Code): Removed. - (Record_Ignored_Ghost_Node): New routine. - (Remove_Ignored_Ghost_Code): Reimplemented. - (Remove_Ignored_Ghost_Node): New routine. - (Ultimate_Original_Node): New routine. - * ghost.ads (Check_Ghost_Completion): Removed. - * sem_ch8.adb (Analyze_Use_Package): Remove obsolete code. Mark a use - package clause as ignored Ghost if applicable. - * sem_util.adb (Is_Body_Or_Package_Declaration): Reimplemented. - -2018-07-17 Javier Miranda <miranda@adacore.com> - - * sem_ch5.adb (Has_Call_Using_Secondary_Stack): Moved to library level - to reuse it. - (Analyze_Loop_Statement): Wrap the loop in a block when the evaluation - of the loop iterator relies on the secondary stack. - -2018-07-17 Piotr Trojanek <trojanek@adacore.com> - - * sem_util.adb (Next_Actual): If the parent is a N_Null_Statement, - which happens for inlined calls, then fetch the next actual from the - original AST. - -2018-07-17 Ed Schonberg <schonberg@adacore.com> - - * einfo.ads: Update documentation for Scalar_Range. - -2018-07-17 Piotr Trojanek <trojanek@adacore.com> - - * lib-xref-spark_specific.adb (Create_Heap): Attach the HEAP entity to - the Standard package. - -2018-07-17 Piotr Trojanek <trojanek@adacore.com> - - * einfo.adb (Is_Wrapper_Package): Remove extra parentheses. - -2018-07-17 Ed Schonberg <schonberg@adacore.com> - - * sem_util.adb (Enclosing_Subprogram): Handle properly entries, and - synchronized types that are completions of limited types or private - extensions. - (Scope_Within): Handle properly accept statements in task bodies. - -2018-07-17 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_prag.adb (Has_Visible_State): Do not consider generic formals - because they are not part of the visible state space. Add constants to - the list of acceptable visible states. - (Propagate_Part_Of): Do not consider generic formals when propagating - the Part_Of indicator. - * sem_util.adb (Entity_Of): Do not follow renaming chains which go - through a generic formal because they are not visible for SPARK - purposes. - * sem_util.ads (Entity_Of): Update the comment on usage. - -2018-07-17 Ed Schonberg <schonberg@adacore.com> - - * sem_util.adb (Gather_Components): A discriminant of an ancestor may - have been constrained by a later ancestor, so when looking for the - value of that hidden discriminant we must examine the stored constraint - of other ancestors than the immediate parent type. - -2018-07-17 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch6.adb (Build_Heap_Or_Pool_Allocator): Ensure that scoping - constructs and entities within receive new entities when replicating a - tree. - (Expand_N_Extended_Return_Statement): Ensure that scoping constructs - and entities within receive new entities when replicating a tree. - * sem_util.adb (New_Copy_Tree): Add new formal Scopes_In_EWA_OK. - (Visit_Entity): Visit entities within scoping constructs inside - expression with actions nodes when requested by the caller. Add blocks, - labels, and procedures to the list of entities which need replication. - * sem_util.ads (New_Copy_Tree): Add new formal Scopes_In_EWA_OK. Update - the comment on usage. - -2018-07-17 Arnaud Charlet <charlet@adacore.com> - - * doc/gnat_ugn/about_this_guide.rst, - doc/gnat_ugn/gnat_and_program_execution.rst: Remove references to gcov. - * gnat_ugn.texi: Regenerate. - -2018-07-16 Hristian Kirtchev <kirtchev@adacore.com> - - * contracts.adb (Analyze_Contracts): Add specialized processing for - package instantiation contracts. - (Analyze_Package_Contract): Remove the verification of a missing - Part_Of indicator. - (Analyze_Package_Instantiation_Contract): New routine. - * contracts.ads (Analyze_Package_Contract): Update the comment on - usage. - * sem_prag.adb (Check_Missing_Part_Of): Ensure that the entity of the - instance is being examined when trying to determine whether a package - instantiation needs a Part_Of indicator. - -2018-07-16 Hristian Kirtchev <kirtchev@adacore.com> - - * einfo.adb, exp_ch7.adb, exp_ch9.adb, exp_unst.adb, inline.adb, - sem.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, sem_eval.adb, - sem_util.adb: Minor reformatting. - -2018-07-16 Arnaud Charlet <charlet@adacore.com> - - * frontend.adb: Only unnest subprograms if no previous errors were - detected. - -2018-07-16 Ed Schonberg <schonberg@adacore.com> - - * exp_ch7.adb (Check_Unnesting_Elaboration_Code): Handle loops that - contain blocks in the elaboration code for a package body. Create the - elaboration subprogram wrapper only if there is a subprogram - declaration in a block or loop. - -2018-07-16 Ed Schonberg <schonberg@adacore.com> - - * exp_ch4.adb (Expand_Set_Membership): Use New_Copy_Tree to perform a - deep copy of the left operand when building each conjuct of the - expanded membership operation, to avoid sharing nodes between them. - This sharing interferes with the unnesting machinery and is generally - undesirable. - -2018-07-16 Ed Schonberg <schonberg@adacore.com> - - * exp_unst.adb (Visit_Node): Handle 'Address references that are - calls. - -2018-07-16 Ed Schonberg <schonberg@adacore.com> - - * exp_unst.adb (Visit_Node): Handle the semantic of Storage_Pool field - in relevant nodes: Allocate, Free, and return statements. - -2018-07-16 Ed Schonberg <schonberg@adacore.com> - - * sem_ch12.adb (Analyze_Package_Instantiation): Handle properly an - instance that carries an aspect Default_Storage_Pool that overrides a - default storage pool that applies to the generic unit. The aspect in - the generic unit was removed before copying it in the instance, rather - than removing it from the copy of the aspects that are appended to the - aspects in the instance. - -2018-07-16 Ed Schonberg <schonberg@adacore.com> - - * einfo.adb (Set_Is_Uplevel_Referenced_Entity): Flag can appear on - loop parameters. - * exp_ch7.adb (Check_Unnesting_Elaboration_Code): Handle subprogram - bodies. - * exp_ch9.adb (Reset_Scopes_To): Set the scopes of entities local to an - entry body to be the corresponding generated subprogram, for correct - analysis of uplevel references. - * exp_unst.adb (Visit_Node): Handle properly binary and unary operators - Ignore pragmas, fix component associations. - (Register_Subprograms): Subprograms in synchronized types must be - treated as reachable. - -2018-07-16 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_util.adb (Check_No_Hidden_State): Ignore internally-generated - states and variables. - -2018-07-16 Piotr Trojanek <trojanek@adacore.com> - - * sinfo.ads, sinfo.adb (Withed_Body): Remove. - (Set_Withed_Body): Remove. - -2018-07-16 Piotr Trojanek <trojanek@adacore.com> - - * sem.adb (Walk_Library_Items): Skip units with configuration pragmas - when printing debug info. - -2018-07-16 Piotr Trojanek <trojanek@adacore.com> - - * sem.adb (Walk_Library_Items): Reuse local constant. - (Is_Subunit_Of_Main): Turn condition to positive and flip the - IF-THEN-ELSE branches; avoid potentially ineffective assignment to the - Lib variable. - -2018-07-16 Piotr Trojanek <trojanek@adacore.com> - - * sem.adb (Walk_Library_Items): Deconstruct dead code. - -2018-07-16 Ed Schonberg <schonberg@adacore.com> - - * exp_ch4.adb (Expand_N_Op_Xor): Use common routine - Expand_Nonbinary_Modular_Op. Needed for unnesting. - -2018-07-16 Ed Schonberg <schonberg@adacore.com> - - * sem_ch3.adb (Inherit_Predicate_Flags): A non-discrete type may have a - static predicate (for example True) but has no - static_discrete_predicate. - -2018-07-16 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_attr.adb (Build_Record_VS_Func): Handle corner cases dealing with - class-wide types and record extensions. - -2018-07-16 Justin Squirek <squirek@adacore.com> - - * sem_eval.adb (Eval_Integer_Literal): Add exception for avoiding - checks on expanded literals within if and case expressions. - -2018-07-16 Hristian Kirtchev <kirtchev@adacore.com> - - * libgnat/s-wchwts.adb (Wide_String_To_String): Use the appropriate - longest sequence factor. Code clean up. - (Wide_Wide_String_To_String): Use the appropriate longest sequence - factor. Code clean up. - -2018-07-16 Javier Miranda <miranda@adacore.com> - - * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Report an error - on Bit_Order when defined for a record extension. - -2018-07-16 Arnaud Charlet <charlet@adacore.com> - - * libgnat/s-objrea.ads: Minor code clean up. - -2018-07-16 Piotr Trojanek <trojanek@adacore.com> - - * sem_ch3.adb (Process_Discriminants): Adjust reference to the SPARM RM - rule. - -2018-07-16 Arnaud Charlet <charlet@adacore.com> - - * adaint.c (__gnat_set_file_time_name): Code clean up. - -2018-07-16 Javier Miranda <miranda@adacore.com> - - * inline.adb (Build_Body_To_Inline): Minor code reorganization that - ensures that calls to function Has_Single_Return() pass a decorated - tree. - (Has_Single_Return.Check_Return): Peform checks on entities (instead on - relying on their characters). - -2018-07-16 Javier Miranda <miranda@adacore.com> - - * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): Code cleanup. Required - to avoid generating an ill-formed tree that confuses gnatprove causing - it to blowup. - -2018-07-16 Yannick Moy <moy@adacore.com> - - * inline.adb (Has_Single_Return): Rewrap comment. - -2018-07-16 Eric Botcazou <ebotcazou@adacore.com> - - * einfo.ads: Minor tweak in comment. - -2018-07-16 Javier Miranda <miranda@adacore.com> - - * sem_ch4.adb (Analyze_Membership_Op): Code cleanup. - -2018-07-16 Javier Miranda <miranda@adacore.com> - - * exp_attr.adb (Expand_N_Attribute_Reference ['Count]): Do not - transform 'Count into a function call if the current scope has been - eliminated. - -2018-07-16 Javier Miranda <miranda@adacore.com> - - * sem_util.ads, sem_util.adb (Has_Prefix): Move this function to the - public part of this package. - -2018-07-16 Yannick Moy <moy@adacore.com> - - * sem_res.adb (Resolve_Call): Do not inline calls inside - compiler-generated functions translated as predicates in GNATprove. - -2018-07-16 Gary Dismukes <dismukes@adacore.com> - - * exp_ch4.adb (Expand_N_Allocator): Test for Storage_Pool being RTE in - addition to the existing test for no Storage_Pool as a condition - enabling generation of the call to Check_Standard_Allocator when the - restriction No_Standard_Allocators_After_Elaboration is active. - * libgnat/s-elaall.ads (Check_Standard_Allocator): Correct comment to - say that Storage_Error will be raised (rather than Program_Error). - * libgnat/s-elaall.adb (Check_Standard_Allocator): Raise Storage_Error - rather than Program_Error when Elaboration_In_Progress is False. - -2018-07-16 Gary Dismukes <dismukes@adacore.com> - - * sem_eval.adb: Fix spelling for compile-time-known. - -2018-07-16 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_eval.adb (Compile_Time_Known_Value): Add a guard which prevents - the compiler from entering infinite recursion when trying to determine - whether a deferred constant has a compile time known value, and the - initialization expression of the constant is a reference to the - constant itself. - -2018-07-16 Nicolas Roche <roche@adacore.com> - - * libgnat/a-strunb.adb, libgnat/a-strunb__shared.adb: Adjust growth - factor from 1/32 to 1/2 for Unbounded_String. - -2018-07-13 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/lang.opt (funsigned-char): New option. - * gcc-interface/misc.c (gnat_handle_option): Accept it. - * gcc-interface/utils.c (finish_character_type): Tweak comment. - -2018-07-07 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (gnat_to_gnu_entity): Add GNAT_DECL local - variable and use it throughout. - <E_Variable>: If the nominal subtype of the object is unconstrained, - compute the Ada size separately and put in on the padding type if the - size is not fixed. - <E_Record_Type>: Minor tweak. - * gcc-interface/misc.c (gnat_type_max_size): Rename max_size_unit - into max_size_unit throughout. - -2018-07-07 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/gigi.h (add_decl_expr): Adjust prototype. - * gcc-interface/decl.c (gnat_to_gnu_entity): Remove useless test. - * gcc-interface/trans.c (add_stmt_with_node): Remove exceptions. - (add_decl_expr): Change type of second parameter and rename it. - (renaming_from_instantiation_p): New function moved from... - (set_expr_location_from_node): Test for exceptions here and add one - for actual subtypes built for unconstrained composite actuals. - * gcc-interface/utils.c (renaming_from_instantiation_p): ...here. - -2018-07-07 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.c (lvalue_required_p): Remove ALIASED parameter - and adjust recursive calls. - (Identifier_to_gnu): Adjust calls to lvalue_required_p. - (gnat_to_gnu): Likewise. - -2018-07-07 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (gnat_to_gnu_param): Minor tweak. - (gnat_to_gnu_subprog_type): New pure_flag local variable. Set it for - a pure Ada function with a by-ref In parameter. Propagate it onto the - function type by means of the TYPE_QUAL_RESTRICT flag. - * gcc-interface/utils.c (finish_subprog_decl): Set DECL_PURE_P if the - function type has the TYPE_QUAL_RESTRICT flag set. - -2018-07-06 Jim Wilson <jimw@sifive.com> - - * Makefile.rtl: Add riscv*-linux* support. - * libgnarl/s-linux__riscv.ads: New. - * libgnat/system-linux-riscv.ads: New. - - * Make-generated.in (treeprs.ads): Use $(GNATMAKE) instead of gnatmake. - (einfo.h, sinfo.h, stamp-snames, stamp-nmake): Likewise. - * gcc-interface/Makefile.in (xoscons): Likewise. - -2018-07-06 Sebastian Huber <sebastian.huber@embedded-brains.de> - - * libgnat/system-rtems.ads (Frontend_Exceptions): Set to False. - (ZCX_By_Default): Set to True. - -2018-07-02 Martin Liska <mliska@suse.cz> - - * gnatvsn.ads: Bump Library_Version to 9. - -2018-06-12 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/ada-tree.h (TYPE_RETURN_BY_DIRECT_REF_P): Change from - using TYPE_LANG_FLAG_4 to using TYPE_LANG_FLAG_0. - (TYPE_ALIGN_OK): Move around. - (TYPE_PADDING_FOR_COMPONENT): Remove superfluous parentheses. - * gcc-interface/decl.c (change_qualified_type): Move to... - (gnat_to_gnu_entity): Adjust comment. - * gcc-interface/gigi.h (change_qualified_type): ...here; make inline. - (ceil_pow2): Use ceil_log2. - * gcc-interface/utils.c (finish_subprog_decl): Add couple of comments - and do not set TREE_SIDE_EFFECTS. - (handle_noreturn_attribute): Use change_qualified_type. - -2018-06-12 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Do not get - the expression of a dispatch table that is not being defined. - <E_Record_Subtype>: Remove obsolete kludge. - -2018-06-12 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (warn_on_field_placement): Use specific wording - for discriminants. - (warn_on_list_placement): New static function. - (components_to_record): Use it to warn on multiple fields in list. - -2018-06-12 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (variant_desc): Add AUX field. - (gnat_to_gnu_entity) <discrete_type>: Do not call compute_record_mode - directly. - (reverse_sort_field_list): New static function. - (components_to_record): Place the variant part at the beginning of the - field list when there is an obvious order of increasing position. - (build_variant_list): Initialize it. - (create_variant_part_from): Do not call compute_record_mode directly. - (copy_and_substitute_in_layout): Likewise. Always sort the fields with - fixed position in order of increasing position, in the record and all - the variants, in any. Call reverse_sort_field_list. - * gcc-interface/utils.c (make_packable_type): Compute the sizes before - calling finish_record_type. Do not call compute_record_mode directly. - (finish_record_type): Overhaul final processing depending on REP_LEVEL - and call finish_bitfield_layout if it is equal to one or two. - -2018-06-11 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Reuse the - existing fields of a dummy fat pointer type, if any. Clear the - TYPE_DECL_SUPPRESS_DEBUG on the fat pointer type after completing it. - -2018-06-11 Hristian Kirtchev <kirtchev@adacore.com> - - * contracts.adb (Process_Body_Postconditions): Expand only checked - postconditions. - (Process_Contract_Cases_For): Expand only checked contract cases. - (Process_Inherited_Preconditions): Ignored class-wide preconditions are - partially expanded because some of their semantic checks are tied to - the expansion. - (Process_Preconditions_For): Expand only checked preconditions. - (Process_Spec_Postconditions): Expand only checked preconditions. - Ignored class-wide preconditions are partially expanded because some of - their semantic checks are tied to the expansion. - * exp_prag.adb (Expand_N_Pragma): Suppress the expansion of ignored - assertion pragmas. - * exp_util.adb (Add_Inherited_Invariants): Code clean up. - * sem_util.adb (Propagate_Invariant_Attributes): Code clean up. - -2018-06-11 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch9.adb, exp_unst.adb, inline.adb, libgnat/a-ciorma.adb, - libgnat/a-ciormu.adb, libgnat/a-ciorse.adb, libgnat/a-coorma.adb, - libgnat/a-coormu.adb, libgnat/a-coorse.adb, sem_prag.adb: Minor - reformatting. - -2018-06-11 Gary Dismukes <dismukes@adacore.com> - - * exp_unst.ads, exp_unst.adb: Typo fixes and minor reformatting. - -2018-06-11 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call): Do - not add any actuals when the size of the object is known, and the - caller will allocate it. - (Build_Heap_Allocator): Rename to Build_Heap_Or_Pool_Allocator to - better illustrate its functionality. Update the comment on the - generated code. Generate a branch for the heap and pool cases where - the object is not necessarity controlled. - (Expand_N_Extended_Return_Statement): Expand the extended return - statement into four branches depending the requested mode if the caller - will not allocate the object on its side. - (Make_Build_In_Place_Call_In_Allocator): Do not allocate a controlled - object on the caller side because this will violate the semantics of - finalizable types. Instead notify the function to allocate the object - on the heap or a user-defined storage pool. - (Needs_BIP_Alloc_Form): A build-in-place function needs to be notified - which of the four modes to employ when returning a limited controlled - result. - * exp_util.adb (Build_Allocate_Deallocate_Proc): Remove a redundant - guard which is already covered in Needs_Finalization. - -2018-06-11 Olivier Hainque <hainque@adacore.com> - - * libgnat/s-excmac*.ads: Factorize Unwind_Action definitions ... - * libgnat/a-exexpr.adb: ... Here, then add comments describing the - major datastructures associated with the current exception raised. - (Setup_Current_Excep): Accept a "Phase" argument conveying the - unwinding phase during which this subprogram is called. For an Ada - exception, don't update the current exception buffer from the raised - exception object during SEARCH_PHASE, as this is redundant with the - call now issued just before propagation starts. - (Propagate_GCC_Exception): Move call to Setup_Current_Excep ahead of - the unwinding start, conveying Phase 0. - (Unhandled_Except_Handler): Pass UA_CLEANUP_PHASE as the Phase value on - the call to Setup_Current_Excep. - * raise-gcc.c (personality_body): Pass uw_phases as the Phase argument - on calls to Setup_Current_Excep. - -2018-06-11 Ed Schonberg <schonberg@adacore.com> - - * exp_unst.ads, exp_unst.adb (Needs_Fat_Pointer, - Build_Access_Type_Decl): New subprograms to handle uplevel references - to formals of an unconstrained array type. The activation record - component for these is an access type, and the reference is rewritten - as an explicit derefenrence of that component. - -2018-06-11 Bob Duff <duff@adacore.com> - - * libgnat/a-ciorma.adb, libgnat/a-ciormu.adb, libgnat/a-ciorse.adb, - libgnat/a-coorma.adb, libgnat/a-coormu.adb, libgnat/a-coorse.adb: - (Element): Add code to detect dangling cursors in some cases. - -2018-06-11 Yannick Moy <moy@adacore.com> - - * sem_ch6.adb (Build_Subprogram_Declaration): Mark parameters as coming - from source. - -2018-06-11 Ed Schonberg <schonberg@adacore.com> - - * sem_ch13.adb (Build_Predicate_Functions): For a derived type, ensure - that its parent is already frozen so that its predicate function, if - any, has already been constructed. - -2018-06-11 Yannick Moy <moy@adacore.com> - - * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context): Adapt for - possible task unit as the enclosing context. - -2018-06-11 Eric Botcazou <ebotcazou@adacore.com> - - * gnat1drv.adb: Remove use clause for Repinfo. - (Gnat1drv): Beef up comment about the interplay between -gnatc and - back-end annotations. Use full qualified name for List_Rep_Info. - -2018-06-11 Hristian Kirtchev <kirtchev@adacore.com> - - * libgnat/g-arrspl.ads: Add pragma Preelaborate. - -2018-06-11 Arnaud Charlet <charlet@adacore.com> - - * exp_ch4.adb (Expand_Record_Equality): Remove extraneous "True and - then" and general logical "ada" in codepeer mode. - -2018-06-11 Javier Miranda <miranda@adacore.com> - - * exp_ch9.adb (Expand_N_Protected_Body): Add missing handling of - N_Call_Marker nodes. - -2018-06-11 Arnaud Charlet <charlet@adacore.com> - - * exp_ch3.adb, exp_unst.adb, inline.adb, sem_prag.adb: Minor - reformatting. - -2018-06-11 Yannick Moy <moy@adacore.com> - - * doc/gnat_rm/implementation_defined_pragmas.rst: Add Suppressible - argument to Assertion_Policy - * gnat_rm.texi: Regenerate. - -2018-06-11 Yannick Moy <moy@adacore.com> - - * gnat1drv.adb: Do not check representation information in CodePeer and - GNATprove modes, as these modes call a special backend instead of gigi, - so do not have the information. - -2018-06-11 Yannick Moy <moy@adacore.com> - - * inline.adb (Build_Body_To_Inline): Consider case of extended return - of unconstrained type as one case where inlining is not supported. - (Expand_Inlined_Call): Remove special case for body as extended return - of unconstrained type. - -2018-06-11 Yannick Moy <moy@adacore.com> - - * sem_prag.adb (Analyze_Part_Of): Only allow Part_Of on non-generic - unit. - (Check_Missing_Part_Of): Do not force Part_Of on generic unit. - -2018-06-11 Piotr Trojanek <trojanek@adacore.com> - - * sem_ch13.adb (Analyze_Aspect_Specifications): Don't split AND THEN - expressions in Pre/Post contracts while in GNATprove_Mode. - -2018-06-11 Piotr Trojanek <trojanek@adacore.com> - - * sem_util.adb (Is_Potentially_Unevaluated): Fix detection of contracts - with AND THEN expressions broken down into individual conjuncts. - -2018-06-11 Ed Schonberg <schonberg@adacore.com> - - * exp_ch7.adb (Check_Unnesting_Elaboration_Code): Add guard. - -2018-06-11 Ed Schonberg <schonberg@adacore.com> - - * exp_unst.adb (Visit_Node): Skip generic associations. - -2018-06-11 Arnaud Charlet <charlet@adacore.com> - - * libgnat/memtrack.adb (fwrite): Remove second definition. - -2018-06-11 Javier Miranda <miranda@adacore.com> - - * sinfo.ads (Is_Dynamic_Coextension): Adding documentation. - (Is_Static_Coextension): Adding documentation. - * sinfo.adb (Is_Dynamic_Coextension): Extending the assertion. - (Is_Static_Coextension): Extending the assertion. - * sem_util.adb (Mark_Allocator): Clear Is_Static_Coextension when - setting flag Is_Dynamic_Coextension (and vice versa). - -2018-06-11 Ed Schonberg <schonberg@adacore.com> - - * exp_unst.adb (Search_Subprograms): Handle explicitly stubs at the top - level of a compilation unit, becuase they may contain nested - subprograms that need an activation record. - -2018-06-11 Arnaud Charlet <charlet@adacore.com> - - * Makefile.rtl: Compile Ada files with $(ADAC) instead of $(CC). - -2018-06-11 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch11.adb, exp_unst.adb, inline.adb, sem_ch12.adb, sem_util.adb: - Minor reformatting. - * sinfo.ads: Fix a typo. - -2018-06-11 Ed Schonberg <schonberg@adacore.com> - - * inline.adb (Expand_Inlined_Call): If no optimization level is - specified, the expansion of a call to an Inline_Always function is - fully performed in the front-end even on a target that support back-end - inlining. - -2018-06-11 Arnaud Charlet <charlet@adacore.com> - - * bindgen.adb (Gen_Adainit): Protect reference to System.Parameters - with Sec_Stack_Used. - -2018-06-11 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch8.adb (Find_Direct_Name): Mode the declaration of - Is_Assignment_LHS further in. Use predicate - Needs_Variable_Reference_Marker to determine whether to create a - variable marker. - (Find_Expanded_Name): Mode the declaration of Is_Assignment_LHS further - in. Use predicate Needs_Variable_Reference_Marker to determine whether - to create a variable marker. - * sem_elab.adb (Build_Variable_Reference_Marker): Remove the various - checks that determine whether the identifier or expanded name is a - suitable variable reference. The checks are now performed by - Needs_Variable_Reference_Marker. - * sem_res.adb (Resolve_Actuals): Use predicate - Needs_Variable_Reference_Marker to determine whether to create a - variable marker. - * sem_util.adb (Needs_Variable_Reference_Marker): New routine. - * sem_util.ads (Needs_Variable_Reference_Marker): New routine. - -2018-06-11 Valentine Reboul <reboul@adacore.com> - - * doc/gnat_rm.rst, doc/gnat_ugn.rst: Rename "GPL Edition" into - "Community Edition". - -2018-06-11 Ed Schonberg <schonberg@adacore.com> - - * sem_ch12.adb (Install_Body): In order to determine the placement of - the freeze node for an instance of a generic nested within another - instance, take into account that the outer instance may be declared in - the visible part of a package and the inner intance may be in the - private part of the same package. - -2018-06-11 Eric Botcazou <ebotcazou@adacore.com> - - * errout.adb (Special_Msg_Delete): Remove handling of Atomic and VFA. - -2018-06-11 Nicolas Roche <roche@adacore.com> - - * libgnat/s-valuti.adb (Bad_Value): Ensure that we do not generate a - stack overflow while raising a constraint error. - -2018-06-11 Eric Botcazou <ebotcazou@adacore.com> - - * repinfo.ads (Rep_Value): Use a single line. - * repinfo.adb (Rep_Value): Likewise. - (List_Attr): Do not use string concatenation. - -2018-06-11 Ed Schonberg <schonberg@adacore.com> - - * exp_unst.adb (Visit_Node): Check reference to formal parameter of - current procedure, because the bounds of its type may be uplevel - references. - -2018-06-02 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: If this is - not a definition, retrieve the expression only if it's a compile-time - known value if we are just annotating types. - - * gcc-interface/utils.c (convert): Do not try to upcast properly for a - conversion between tagged types in type_annotate_only mode. - -2018-06-02 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/ada-tree.h (TYPE_PADDING_FOR_COMPONENT): New macro. - * gcc-interface/decl.c (gnat_to_gnu_component_type): Cache the padding - type built for an aliased component with variable size. - -2018-05-31 Pierre-Marie de Rodat <derodat@adacore.com> - - * doc/gnat_ugn/project-manager-figure.png: Delete. - -2018-05-31 Pierre-Marie de Rodat <derodat@adacore.com> - - * vxworks-arm-link.spec, vxworks-e500-link.spec, - vxworks-gnat-crtbe-link.spec, vxworks-smp-arm-link.spec, - vxworks-smp-e500-link.spec, vxworks-smp-ppc-link.spec, - vxworks-smp-x86-link.spec: New files. - -2018-05-31 Pierre-Marie de Rodat <derodat@adacore.com> - - * gnatvsn.adb: Re-center the copyright header. - * indepsw-darwin.adb: Adjust the starting copyright year to 2011. - -2018-05-31 Fedor Rybin <frybin@adacore.com> - - * doc/gnat_ugn/gnat_utility_programs.rst: Document Stubs_Subdir in - gnattest section on user guide. - -2018-05-31 Ed Schonberg <schonberg@adacore.com> - - * sem_res.adb (Resolve_String_Literal): If the type is a string type - whose component subtype has a static predicate, ensure that the - predicate is applied to each character by expanding the string into the - equivalent aggregate. This is also done if the component subtype is - constrained. - -2018-05-31 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.c (Call_to_gnu): Remove obsolete code. - -2018-05-31 Piotr Trojanek <trojanek@adacore.com> - - * sem_ch6.adb (Check_Missing_Return): Handle procedures with no - explicit spec. - -2018-05-31 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.c (Call_to_gnu): In the by-reference case, if - the type of the parameter is an unconstrained array type, convert - to the type of the actual before the type of the formal only if the - conversion was suppressed earlier. Use in_param and gnu_actual_type - local variables throughout, and uniform spelling for In Out or Out. - Also remove dead code in the component-by-reference case. - -2018-05-31 Frederic Konrad <konrad@adacore.com> - - * tracebak.c (STOP_FRAME): Harden condition. - (is_return_from, EXTRA_STOP_CONDITION): New helpers for VxWorks in RTP - mode. - -2018-05-31 Ed Schonberg <schonberg@adacore.com> - - * checks.adb (Apply_Discriminant_Check): Do not apply discriminant - check to a call to a build-in-place function, given that the return - object is limited and cannot be copied. - -2018-05-31 Olivier Hainque <hainque@adacore.com> - - * libgnat/s-atopri.ads: Update comment on __atomic_compare_exchange - builtins. - -2018-05-31 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.c (Call_to_gnu): If this is a function call and - there is no target, also create a temporary for the return value for - an allocator if the type is an unconstrained record type with default - discriminant. - -2018-05-31 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch7.adb (Find_Transient_Context): An iteration scheme is a valid - boudary for a transient scope. - -2018-05-31 Valentine Reboul <reboul@adacore.com> - - * gnatvsn.ads: Rename "GPL" version to "Community". - -2018-05-31 Ed Schonberg <schonberg@adacore.com> - - * einfo.ads: Improve documentation for the Is_Unsigned_Type entity - flag. - -2018-05-31 Piotr Trojanek <trojanek@adacore.com> - - * sem_prag.adb (Analyze_Pragma): Replace call to Unique_Defining_Entity - with a semantically equivalent call to Defining_Entity. - -2018-05-31 Piotr Trojanek <trojanek@adacore.com> - - * sem_prag.adb (Analyze_Pragma): Set Etype on the rewritten - Max_Queue_Length expression. - -2018-05-31 Sergey Rybin <rybin@adacore.com> - - * doc/gnat_ugn/gnat_and_program_execution.rst: gnatelim does not need - that the main unit to be built before the call, now it computes the - closure of the main unit itself. - * gnat_ugn.texi: Regenerate. - -2018-05-31 Eric Botcazou <ebotcazou@adacore.com> - - * repinfo.adb (List_Structural_Record_Layout): Set First to false - after having listed the fields of the parent type, if any. - -2018-05-31 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (gnat_to_gnu_entity) <discrete_type>: Do not - deal with the ___XP suffix for packed array types here... - <E_Array_Subtype>: ...or here when processing the implementation type - but when processing the original type instead. Do not reuse the DECL - of the implementation type for the original type. Tidy up. - -2018-05-31 Eric Botcazou <ebotcazou@adacore.com> - - * einfo.ads (Object_Size_Clause): Declare. - * einfo.adb (Object_Size_Clause): New function. - * gcc-interface/utils.c (maybe_pad_type): Test Has_Size_Clause before - retrieving Size_Clause and post the warning on the object size clause - if Has_Object_Size_Clause is true. - -2018-05-31 Javier Miranda <miranda@adacore.com> - - * sem_util.ads, sem_util.adb (Find_Primitive_Eq): New subprogram. - * exp_ch4.adb (Expand_Composite_Equality): Use the new subprogram - Find_Primitive_Eq to search for the primitive of types whose underlying - type is a tagged type. - -2018-05-31 Yannick Moy <moy@adacore.com> - - * sem_prag.adb (Analyze_Pragma.Check_Loop_Pragma_Placement): Inverse - order of treatment between nodes recognized as loop pragmas (or - generated from one) and block statements. - -2018-05-31 Doug Rupp <rupp@adacore.com> - - * libgnat/s-osprim__posix2008.adb (Clock): Implement using - clock_gettime. - -2018-05-31 Ed Schonberg <schonberg@adacore.com> - - * exp_unst.ads, exp_unst.adb (In_Synchronized_Unit): New predicate to - mark subprograms that cannot be eliminated because they must be treated - as reachable from outside the current unit. This includes entry bodies - and protected operations. - -2018-05-31 Ed Schonberg <schonberg@adacore.com> - - * exp_ch4.adb (Expand_Modular_Addition, Expand_Modular_Subtraction): - Convert all operands of the generated code to Standard.Unsigned, to - prevent spurious visibility errors. This is needed when the generated - expansion involves a modular index type of an array type, and the index - type is not immediately visible. - -2018-05-30 Piotr Trojanek <trojanek@adacore.com> - - * einfo.ads (Package_Instantiation): Update comment after a routine - that uses this field has been renamed. - -2018-05-30 Ed Schonberg <schonberg@adacore.com> - - * exp_ch11.adb (Replace_Raise_By_Goto): The transfomation is legal even - if the local raise statement includes a string expression. This - expression might be picked up by an outer handler or discarded, but - plays no role in this transformation. - -2018-05-30 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_aggr.adb, exp_unst.adb, freeze.adb, libgnat/a-direct.adb: Minor - reformatting. - -2018-05-30 Ed Schonberg <schonberg@adacore.com> - - * exp_unst.adb (Visit_Node): Handle the semantic Procedure_To_Call - field in relevant nodes: Allocate, Free, and return statements. - -2018-05-30 Ed Schonberg <schonberg@adacore.com> - - * exp_unst.adb (Visit_Node): Do not traverse a Component_Association - that has not been analyzed, as will be the case for a nested aggregate - that is expanded into individual assignments. - -2018-05-30 Justin Squirek <squirek@adacore.com> - - * aspects.adb, aspects.ads: Register new aspect. - * par-prag.adb (Prag): Register new pragma. - * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing for new - aspect similar to Aspect_Max_Queue_Length. - * sem_prag.adb, sem_prag.ads (Analyze_Pragma): Register new pragma and - set it to use the same processing as Pragma_Max_Queue_Length. - * snames.ads-tmpl: Move definition of Name_Max_Entry_Queue_Depth so - that it can be processed as a pragma in addition to a restriction and - add an entry for the pragma itself. - -2018-05-30 Ed Schonberg <schonberg@adacore.com> - - * freeze.adb (Freeze_Object_Declaration): A pragma Thread_Local_Storage - is now legal on a variable of composite type initialized with an - aggregate that is fully static and requires no elaboration code. - * exp_aggr.adb (Convert_To_Positional): Recognize additional cases of - nested aggregates that are compile-time static, so they can be used to - initialize variables declared with Threqd_Local_Storage. - * doc/gnat_rm/implementation_defined_pragmas.rst: Add documentation on - Thread_Local_Storage. - * gnat_rm.texi: Regenerate. - -2018-05-30 Yannick Moy <moy@adacore.com> - - * sem_util.adb (Policy_In_Effect): Take into account CodePeer and - GNATprove modes. - -2018-05-30 Justin Squirek <squirek@adacore.com> - - * libgnat/a-direct.adb, libgnat/a-direct.ads (Name_Case_Equivalence): - Add implementation. - (Start_Search): Modify to use Start_Search_Internal - (Start_Search_Internal): Add to break out an extra flag for searching - case insensative due to the potential for directories within the same - OS to allow different casing schemes. - * sysdep.c (__gnat_name_case_equivalence): Add as a default fallback - for when the more precise solution fails. - -2018-05-30 Hristian Kirtchev <kirtchev@adacore.com> - - * checks.adb, exp_ch5.adb, exp_ch7.adb, exp_unst.adb, sem_eval.adb: - Minor reformatting. - -2018-05-30 Pascal Obry <obry@adacore.com> - - * libgnat/g-comlin.ads (Value_Callback, Define_Switch): New. - * libgnat/g-comlin.adb: Add corresponding implementation. - -2018-05-30 Gary Dismukes <dismukes@adacore.com> - - * sem_res.adb, sem_util.adb: Fix several typos. - -2018-05-30 Olivier Hainque <hainque@adacore.com> - - * vx_crtbegin_attr.c (CTOR_ATTRIBUTE, DTOR_ATTRIBUTE): Empty. - (eh_registration_ctors, eh_registration_tors): New static variables, - forced in a .ctors/.dtors section, respectively, with priority. - -2018-05-30 Bob Duff <duff@adacore.com> - - * aspects.ads, contracts.adb, exp_util.adb, expander.adb, expander.ads, - freeze.adb, inline.adb, lib-xref.adb, sem.ads, sem_aggr.adb, - sem_attr.adb, sem_ch13.adb, sem_ch3.adb, sem_ch5.adb, sem_ch6.adb, - sem_ch8.adb, sem_dim.adb, sem_elab.adb, sem_res.adb, sem_res.ads, - sinfo.ads: Spell preanalysis, preanalyze correctly. - -2018-05-30 Bob Duff <duff@adacore.com> - - * libgnat/g-sestin.ads: Rework documentation comments. - -2018-05-30 Piotr Trojanek <trojanek@adacore.com> - - * errout.adb, exp_aggr.adb, exp_ch7.adb, exp_util.adb, lib.adb, - sem_ch13.adb, sem_ch4.adb, sem_res.adb, sem_util.adb - (Has_Original_Node): Refactor to use Is_Rewrite_Substitution. - -2018-05-30 Piotr Trojanek <trojanek@adacore.com> - - * sem_prag.adb (Analyze_Pragma): Remove conjuncts that are always true. - -2018-05-30 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_util.adb (Is_Atomic_Object): Cleaned up. Split the entity logic - in a separate routine. - (Is_Atomic_Object_Entity): New routine. - (Is_Atomic_Prefix): Cleaned up. - (Is_Synchronized_Object): Check that the object is atomic, or its type - is atomic. - (Object_Has_Atomic_Components): Removed. - * sem_util.ads (Is_Atomic_Object): Reword the comment on usage. - (Is_Atomic_Object_Entity): New routine. - -2018-05-30 Ed Schonberg <schonberg@adacore.com> - - * sem_ch3.adb (Access_Subprogram_Declaration): The flag - Needs_Activation_Record is only needed on a subprogram type, not on a - pointer to such. - * sem_res.adb (Resolve_Selected_Component): If the context type and the - component type are anonymous access to subprograms, use the component - type to obtain the proper value of Needs_Activation_Record flag for the - expression. - -2018-05-30 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Add - comment about the memset case. - -2018-05-30 Bob Duff <duff@adacore.com> - - * exp_ch5.adb (Expand_Formal_Container_Element_Loop): Remove the code - to analyze the Elmt_Decl, because it gets analyzed in the wrong scope. - We need to analyze it as part of analyzing the block, so that if the - call to Element that initializes Elmt_Decl returns on the secondary - stack, the block will ss_mark/ss_release. This block is inside the - loop; we don't want to leak memory until the loop exits. The purpose - of analyzing Elmt_Decl first was to catch the error of modifying it, - which is illegal because it's a loop parameter. The above causes us to - miss that error. Therefore, we add a flag Is_Loop_Parameter, and set - it on the Element entity, so we end up with an E_Variable node with the - flag set. - * einfo.ads, einfo.adb (Is_Loop_Parameter): New flag. - * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Give the "assignment to loop - parameter not allowed" error if Is_Loop_Parameter. - * sem_util.adb (Is_Variable): Return False if Is_Loop_Parameter, to - trigger the call to Diagnose_Non_Variable_Lhs. - -2018-05-30 Arnaud Charlet <charlet@adacore.com> - - * checks.adb (Apply_Scalar_Range_Check): - * sem_eval.adb (Check_Non_Static_Context, Out_Of_Range): Ignore out of - range values for System.Priority in CodePeer mode since the actual - target compiler may provide a wider range. - -2018-05-30 Ed Schonberg <schonberg@adacore.com> - - * exp_unst.adb: Search specification of main unit as well, for - unnesting. - -2018-05-30 Ed Schonberg <schonberg@adacore.com> - - * exp_ch7.adb (Check_Unnesting_Elaboration_Code): The statement part of - a package body that is a compilation unit may contain blocks that - declare local subprograms. In Subprogram_Unnesting Mode such - subprograms must be handled as nested inside the (implicit) elaboration - procedure that executes that statement part. To handle properly uplevel - references we construct that subprogram explicitly, to contain blocks - and inner subprograms, The statement part of the compilation unit - becomes a call to this subprogram. This is only done if blocks are - present in the statement list of the body. - -2018-05-30 Bob Duff <duff@adacore.com> - - * exp_ch7.adb: Minor comment fix. - -2018-05-30 Ed Schonberg <schonberg@adacore.com> - - * exp_unst.adb (Visit_Node): Handle properly subprogram instantiations - that have no corresponding body and appear as attributes of the - corresponding wrapper package declaration. - (Register_Subprogram): New subprogram, used for subprogram bodies and - for subprogram instantiations to enter callable entity into Subp table. - -2018-05-30 Hristian Kirtchev <kirtchev@adacore.com> - - * libgnat/s-secsta.adb: Reimplement the secondary stack support. - * libgnat/s-secsta.ads: Update the documentation of all routines in the - public part of the package. Reimplement the private part of the - package to account for the new secondary stack structure. Add types - and subprograms for testing purposes. Add several documentation - sections. - -2018-05-30 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_aggr.adb, exp_ch3.adb, exp_ch4.adb, exp_ch7.adb, exp_unst.adb, - exp_util.adb, exp_util.ads, libgnat/a-calcon.adb, libgnat/a-calcon.ads, - libgnat/s-os_lib.adb, repinfo.adb, sem_ch3.adb, sem_disp.adb, - sem_disp.ads, sem_util.adb: Minor reformatting. - -2018-05-30 Arnaud Charlet <charlet@adacore.com> - - * gcc-interface/Makefile.in: Move special flags for Ada runtime files - from here... - * Makefile.rtl: ... to here. Update comments. Protect call to - "GCC_FOR_TARGET" in case target_os isn't defined. - -2018-05-30 Arnaud Charlet <charlet@adacore.com> - - * gcc-interface/Makefile.in: Move target pair settings from here... - * Makefile.rtl: ... to here. - (setup-rts): New target. - -2018-05-29 Eric Botcazou <ebotcazou@adacore.com> - - * doc/gnat_ugn/building_executable_programs_with_gnat.rst (Alphabetical - List of All Switches): Replace "modules" with "units". - (Subprogram Inlining Control): Likewise. - * gnat_ugn.texi: Regenerate. - * usage.adb (Usage): Fix description of -gnatn switch. - -2018-05-29 Arnaud Charlet <charlet@adacore.com> - - * gcc-interface/Makefile.in: Fix typos. - -2018-05-29 Ed Schonberg <schonberg@adacore.com> - - * exp_ch7.adb (Build_Finalizer_Call): Attach to tree the reference to - the finalizer procedure in the At_End handler, for use in LLVM - generation. - -2018-05-29 Javier Miranda <miranda@adacore.com> - - * exp_ch4.adb (Expand_N_Op_Eq, Expand_Composite_Equality): Use the new - subprogram Inherits_From_Tagged_Full_View to identify more reliably - untagged private types completed with a derivation of an untagged - private whose full view is a tagged type. - * sem_util.ads, sem_util.adb (Inherits_From_Tagged_Full_View): New - subprogram. - (Collect_Primitive_Operations): Handle untagged private types completed - with a derivation of an untagged private type whose full view is a - tagged type. In such case, collecting the list of primitives we may - find two equality primitives: one associated with the untagged private - and another associated with the ultimate tagged type (and we must - remove from the returned list this latter one). - -2018-05-29 Ed Schonberg <schonberg@adacore.com> - - * exp_unst.adb (Visit_Node): Handle statement sequences that include an - At_End handler. - -2018-05-29 Eric Botcazou <ebotcazou@adacore.com> - - * repinfo.adb (List_Entities): Also recurse into blocks without label. - -2018-05-29 Ed Schonberg <schonberg@adacore.com> - - * exp_ch6.adb (Expand_N_Subprogram_Body): Do not generate push/pop for - exceptions if subprogram unnesting is in effect, because these branch - nodes are relevant only in the presence of nested subprograms. - -2018-05-29 Ed Schonberg <schonberg@adacore.com> - - * libgnat/s-fatgen.adb (Succ, Pred): Raise Constraint_Error - unconditionally when applied to the largest positive (resp. largest - negative) value of a floating-point type. - -2018-05-29 Ed Schonberg <schonberg@adacore.com> - - * einfo.ads, einfo.adb: Clarify use of Activation_Record_Component: - discriminants and exceptions are never components of such. The flag - Needs_Activation_Record is set on subprogram types, not on access to - them. - -2018-05-29 Ed Schonberg <schonberg@adacore.com> - - * sem_ch3.adb: Set scope of component of subtype. - -2018-05-29 Ed Schonberg <schonberg@adacore.com> - - * exp_unst.adb (Visit_Node): Exclude selected components whose prefix - carry no type. Such selected components appear in unit names that are - child units, both in the specification and possibly in an end label for - the unit, and they do not contain any relevant uplevel references. - -2018-05-29 Arnaud Charlet <charlet@adacore.com> - - * libgnat/a-calend.ads, libgnat/a-calend.adb (Epoch_Offset): Make it a - function. - -2018-05-29 Olivier Hainque <hainque@adacore.com> - - * libgnat/system-vxworks7-ppc-rtp.ads: New file. - * libgnat/system-vxworks7-ppc-kernel.ads: New file. - * libgnat/system-vxworks7-e500-rtp.ads: New file. - * libgnat/system-vxworks7-e500-kernel.ads: New file. - * libgnat/system-vxworks7-x86-rtp.ads: New file. - * libgnat/system-vxworks-ppc64-kernel.ads: Rename as ... - * libgnat/system-vxworks7-ppc64-kernel.ads: and adjust name of - gnat-crtbe link spec to use the vx7 variant. - -2018-05-29 Olivier Hainque <hainque@adacore.com> - - * vx_crtbegin.inc: Use a consistent naming convention for the - registration/deregistration functions across RTP or kernel. Remove the - ctor/dtor attribute setting based on RTP/kernel, expect the optional - attribute extension to be provided by includers instead. - * vx_crtbegin.c: Mere inclusion of vx_crtbegin.inc with empty attribute - extension for the registration/deregistration functions. - * vx_crtbegin_attr.c: New file. Include vx_crtbegin.inc with explicit - constructor/destructor attribute extensions. - * vx_crtbegin_array.c: New file. Include vx_crtbegin.inc with empty - attribute extensions and declare _ctors/_dtors arrays. - * vx_crtbegin_auto.c: Remove. - * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Use - vxworks7-gnat-crtbe-link.spec. - * libgnat/system-vxworks7-aarch64.ads: Likewise. - * libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise. - * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise. - * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise. - * libgnat/system-vxworks7-x86-kernel.ads: Likewise. - * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise. - * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise. - * libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise. - -2018-05-29 Piotr Trojanek <trojanek@adacore.com> - - * ali.adb: Minor reformatting. - -2018-05-29 Joel Brobecker <brobecker@adacore.com> - - * doc/gnat_ugn/platform_specific_information.rst: Update package - requirements for 32bit GNAT on x86_64-linux. - * gnat_ugn.texi: Regenerate. - -2018-05-29 Eric Botcazou <ebotcazou@adacore.com> - - * doc/gnat_ugn/building_executable_programs_with_gnat.rst (Debugging - Control): Adjust description of -gnatRj. - * gnat_ugn.texi: Regenerate. - * opt.ads (List_Representation_Info_To_JSON): Likewise. - * repinfo.adb (List_Rep_Info): Do not automatically create a file - if List_Representation_Info_To_JSON is true. - * switch-c.adb (Scan_Front_End_Switches) <R>: Remove incompatibility - check between -gnatRj and -gnatRs. - * usage.adb (Usage): Adjust description of -gnatRj. - -2018-05-29 Pascal Obry <obry@adacore.com> - - * libgnat/s-os_lib.adb (Normalize_Pathname): Fix handling of ".." in - the root directory. - -2018-05-29 Pascal Obry <obry@adacore.com> - - * libgnat/s-os_lib.adb: Minor reformatting. - -2018-05-29 Doug Rupp <rupp@adacore.com> - - * libgnat/a-calend.adb (Epoch_Offset): Move from body to ... - * libgnat/a-calend.ads (Epoch_Offset): to private part of spec - * libgnat/a-calcon.ads (To_Unix_Nano_Time): New function spec. - * libgnat/a-calcon.adb (To_Unix_Nano_Time): New function body. - -2018-05-29 Eric Botcazou <ebotcazou@adacore.com> - - * repinfo.ads (JSON format): Document new pair for components. - * repinfo.adb (Derived_Discriminant): New function. - (List_Structural_Record_Layout): Add Outer_Ent parameter and pass it - in recursive calls. If the record type is the parent of an extension, - find and list the derived discriminant from the extension, if any. - (List_Component_Layout): List the Discriminant_Number in JSON mode. - (List_Record_Info): Adjust call to List_Structural_Record_Layout. - -2018-05-29 Eric Botcazou <ebotcazou@adacore.com> - - * doc/gnat_ugn/building_executable_programs_with_gnat.rst (Alphabetical - List of All Switches): Document -gnatRj. - (Debugging Control): Likewise. - * gnat_ugn.texi: Regenerate. - * opt.ads (List_Representation_Info_To_JSON): New boolean variable. - * osint-c.adb (Create_Repinfo_File): Use the .json instead of .rep - extension if List_Representation_Info_To_JSON is true. - * repinfo.ads: Document the JSON output format. - * repinfo.adb (List_Location): New procedure. - (List_Array_Info): Add support for JSON output. - (List_Entities): Likewise. - (Unop): Likewise. - (Binop): Likewise. - (Print_Expr): Likewise. - (List_Linker_Section): Likewise. - (List_Mechanisms): Likewise. - (List_Name): Likewise. - (List_Object_Info): Likewise. - (List_Record_Info): Likewise. - (List_Component_Layout): Likewise. Add Indent parameter. - (List_Structural_Record_Layout): New procedure. - (List_Attr): Add support for JSON output. - (List_Type_Info): Likewise. - (Write_Unknown_Val): Likewise. - * switch-c.adb (Scan_Front_End_Switches) <R>: Deal with 'j'. - * usage.adb (Usage): List -gnatRj. - -2018-05-29 Eric Botcazou <ebotcazou@adacore.com> - - * repinfo.adb (List_Component_Layout): New procedure extracted from... - (List_Record_Layout): ...here. Invoke it. - -2018-05-29 Eric Botcazou <ebotcazou@adacore.com> - - * repinfo.adb (Write_Unknown_Val): New procedure. - (List_GCC_Expression): Call it. - (List_Record_Layout): Likewise. - (Write_Val): Likewise. - -2018-05-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * exp_ch4.adb (Expand_N_Op_Abs): Clear Do_Overflow_Check when inserting - code to do check. - -2018-05-29 Arnaud Charlet <charlet@adacore.com> - - * lib-writ.adb (Write_ALI): Do not use new function from s-casuti yet. - This breaks build of cross compilers with older versions of GNAT, so - better avoid it. - -2018-05-29 Doug Rupp <rupp@adacore.com> - - * libgnarl/s-taprop.ads (Monotonic_Clock): Refine documentation to - reflect reality. - -2018-05-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * exp_ch4.adb (Expand_N_Op_Abs): Always do range check against 'First. - -2018-05-29 Eric Botcazou <ebotcazou@adacore.com> - - * repinfo.adb (List_Entities): Do not list the Linker_Section for - subprograms here... - (List_Mechanisms): ...but here instead. Use consistent name output - and formatting conventions. - -2018-05-29 Bob Duff <duff@adacore.com> - - * lib-writ.adb (Write_ALI): Cleanup: avoid use of global var; call new - To_Lower function. - * libgnat/s-casuti.ads, libgnat/s-casuti.adb (To_Upper, To_Lower, - To_Mixed): New functions. - * osint.adb: Cleanup: use Is_Directory_Separator, which correctly - allows both '\' and '/' on Windows. - -2018-05-28 Eric Botcazou <ebotcazou@adacore.com> - - * repinfo.ads: Minor fixes and tweaks in comments. - -2018-05-28 Eric Botcazou <ebotcazou@adacore.com> - - * repinfo.adb (List_GCC_Expression): Remove Valop and replace calls to - it with calls to Unop. - -2018-05-28 Eric Botcazou <ebotcazou@adacore.com> - - * repinfo.ads (TCode): Adjust range. - (Truth_Andif_Expr): Remove. - (Truth_Orif_Expr): Likewise. - (Truth_And_Expr .. Dynamic_Val): Adjust value. - * repinfo.adb (Print_Expr): Remove handling of Truth_{And,Or}if_Expr. - (Rep_Value): Likewise. - * repinfo.h (Truth_Andif_Expr): Remove. - (Truth_Orif_Expr): Likewise. - (Truth_And_Expr .. Dynamic_Val): Adjust value. - * gcc-interface/decl.c (annotate_value) <TRUTH_ANDIF_EXPR>: Fall - through to TRUTH_AND_EXPR case. - <TRUTH_ORIF_EXPR>: Fall through to TRUTH_OR_EXPR case. - -2018-05-28 Ed Schonberg <schonberg@adacore.com> - - * exp_unst.adb (Visit_Node): For indexed components and attribute - references, examine index expressions or associated expressions as well - to record uplevel references. - (Vist_Node): For function and procedure calls, if a formal is an - unconstrained array and the actual is constrained, check whether bounds - of actual have uplevel references. - -2018-05-28 Ed Schonberg <schonberg@adacore.com> - - * einfo.ads, einfo.adb: Exceptions can be uplevel references, and thus - they can appear as components of activation records. - * exp_unst.adb (Visit_Node): A reference to an exception may be an - uplevel reference. - -2018-05-28 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch4.adb (Expand_Composite_Equality): Compute whether the size - depends on a discriminant manually instead of using the predicate - Size_Depends_On_Discriminant in the array type case. - -2018-05-28 Ed Schonberg <schonberg@adacore.com> - - * exp_unst.adb (Check_Static_Type): For a record subtype, check - discriminant constraints as well. - (Visit_Node): For a selected component, check type of prefix, as is - done for indexed components and slices. - -2018-05-28 Javier Miranda <miranda@adacore.com> - - * exp_ch4.adb (Real_Range_Check): Add a temporary to store the integer - value when converting a float value to a fixed-point value. This is - required for CCG because it handles fixed-point types by means of - unsigned integer type variables. The range check is now performed using - the integer value stored in this temporary. - -2018-05-28 Yannick Moy <moy@adacore.com> - - * sem_util.adb (Is_OK_Volatile_Context): Add attributes First, Last and - Length as valid non-interfering contexts for SPARK. - -2018-05-28 Claire Dross <dross@adacore.com> - - * sem_disp.ads, sem_disp.adb (Inheritance_Utilities): Package for - generic inheritance utilities. - (Generic_Inherited_Subprograms): Generic version of - Inherited_Subprograms, generic in Find_Dispatching_Type function. - (Generic_Is_Overriding_Subprogram): Generic version of - Is_Overriding_Subprogram, generic in Find_Dispatching_Type function. - (Inherited_Subprograms): Instance of Generic_Inherited_Subprograms with - Sem_Disp.Find_Dispatching_Type. - (Is_Overriding_Subprogram): Instance of - Generic_Is_Overriding_Subprogram with Sem_Disp.Find_Dispatching_Type. - (Inheritance_Utilities_Inst): Instance of Inheritance_Utilities - with Sem_Disp.Find_Dispatching_Type. - -2018-05-28 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch4.adb (Expand_Composite_Equality): For a composite (or FP) - component type, do not expand array equality using the unconstrained - base type, except for the case where the bounds of the type depend on a - discriminant. - -2018-05-28 Ed Schonberg <schonberg@adacore.com> - - * einfo.ads, einfo.adb (Needs_Activation_Record): New flag on - access-to-subprogram types, to indicate that an indirect call through - such a type requires an activation record when compiling for LLVM. - * sem_ch3.adb (Access_Subprogram_Declaration): Set new flag as needed. - -2018-05-28 Ed Schonberg <schonberg@adacore.com> - - * exp_ch4.adb (Real_Range_Check): Specialize float-to-fixed conversions - when bounds of fixed type are static, to remove some spuerfluous - implicit conversions and provide an accurate result when converting - back and forth between the fixed point type and a floating point type. - -2018-05-28 Ed Schonberg <schonberg@adacore.com> - - * exp_unst.adb (Unnest_Subprogram): Prevent creation of empty - activation records. - -2018-05-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * exp_unst.adb (Check_Static_Type): Add argument to indicate node to be - replaced, if any; all callers changed. - (Note_Uplevel_Ref): Likewise. Also replace reference to deferred - constant with private view so we take the address of that entity. - (Note_Uplevel_Bound): Add argument to indicate node to be replaced, if - any; all callers changed. Handle N_Indexed_Component like - N_Attribute_Reference. Add N_Type_Conversion case. - (Visit_Node): Indexed references can be uplevel if the type isn't - static. - (Unnest_Subprograms): Don't rewrite if no reference given. If call has - been relocated, set first_named pointer in original node as well. - -2018-05-28 Ed Schonberg <schonberg@adacore.com> - - * exp_aggr.adb (Flatten): Copy tree of expression in a component - association with a range or a set of discrete choices, rather than - relocating the node. This avoids inconsistencies in the tree when - handling nested subprograms with uplevel references for LLVM. - -2018-05-28 Arnaud Charlet <charlet@adacore.com> - - * exp_util.adb (Possible_Bit_Aligned_Component): Always return False in - codepeer mode. - -2018-05-28 Arnaud Charlet <charlet@adacore.com> - - * exp_unst.adb: Fix typo. - -2018-05-28 Bob Duff <duff@adacore.com> - - * libgnat/a-convec.adb (Query_Element): Minor cleanup: remove an - unnecessary use of 'Unrestricted_Access. - -2018-05-28 Hristian Kirtchev <kirtchev@adacore.com> - - * repinfo.adb (Expr_Value_S): New routine. - (List_Linker_Section): Properly extract the value of the section - argument. - -2018-05-28 Patrick Bernardi <bernardi@adacore.com> - - * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Update the - description of the -D binder switch to reflect current usage. - * gnat_ugn.texi: Regenerate. - -2018-05-28 Gary Dismukes <dismukes@adacore.com> - - * exp_ch3.adb: Minor reformatting - -2018-05-28 Justin Squirek <squirek@adacore.com> - - * exp_ch3.adb - (Build_Initialization_Call): Add logic to pass the appropriate actual to match - new formal. - (Init_Formals): Add new formal *_skip_null_excluding_check - * exp_util.adb, exp_util.ads - (Enclosing_Init_Proc): Added to fetch the enclosing Init_Proc from the current - scope. - (Inside_Init_Proc): Refactored to use Enclosing_Init_Proc - (Needs_Conditional_Null_Excluding_Check): Added to factorize the predicate - used to determine how to generate an Init_Proc for a given type. - (Needs_Constant_Address): Minor reformatting - * sem_res.adb - (Resolve_Null): Add logic to generate a conditional check in certain cases - -2018-05-28 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_aggr.adb, gnatlink.adb, sem_ch6.adb, sem_res.adb, sem_util.adb: - Minor reformatting. - -2018-05-28 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_prag.adb (Process_Atomic_Independent_Shared_Volatile): Include - the declarations of single concurrent types because they fall in the - category of full type and object declarations. - -2018-05-28 Eric Botcazou <ebotcazou@adacore.com> - - * repinfo.adb (Compute_Max_Length): Skip _Parent component. - (List_Record_Layout): Likewise. - -2018-05-28 Ed Schonberg <schonberg@adacore.com> - - * sem_util.adb (Is_Function_Result): Add a warning if a postcondition - includes a call to function to which it applies. This may mean an - omission of an attribute reference 'Result, in particular if the - function is pqrameterless. - -2018-05-28 Justin Squirek <squirek@adacore.com> - - * sem_ch8.adb (Find_Expanded_Name): Add extra guard to make sure the - misresolved package name is not a case of mistaken identity. - -2018-05-28 Yannick Moy <moy@adacore.com> - - * sem_res.adb (Resolve_Range): Re-resolve the low bound of a range in - GNATprove mode, as the order of resolution (low then high) means that - all the information is not available when resolving the low bound the - first time. - -2018-05-28 Eric Botcazou <ebotcazou@adacore.com> - - * repinfo.adb (List_Array_Info): Start with an explicit blank line and - end with the linker section, if any. - (List_Entities): Do not output the linker section for record types, - array types and variables. - (Print_Expr): Factor out common processing for unary operators and - special values. Adjust and reorder the various cases. - (List_Object_Info): End with the linker section, if any. - (List_Record_Info): Likewise. - (List_Type_Info): Do not start with a blank line. - -2018-05-25 Nicolas Roche <roche@adacore.com> - - * libgnat/s-valrea.adb (Scan_Real): Abort computation once it is sure - that the result will be either -infinite or +infinite. - -2018-05-25 Patrick Bernardi <bernardi@adacore.com> - - * libgnat/s-parame.ads, libgnat/s-parame__vxworks.ads, - libgnat/s-parame__ae653.ads, libgnat/s-parame__hpux.ads (Size_Type): - Expand range of type to match the address space of the target. - (Task_Storage_Size): Remove unused type. - -2018-05-25 Ed Schonberg <schonberg@adacore.com> - - * sem_res.adb (Set_Mixed_Mode_Operand): If the operand is an expression - of a fixed point type and the parent is a multiplying operation, - resolve the operand with its own type because the context will impose a - resulting type on the result of the multiplication by means of - approriate conversion. - -2018-05-25 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch3.adb (Default_Initialize_Object): Ensure that the analysis of - the in-place initialization aggregate created for pragmas - Initialize_Scalars or Normalize_Scalars is performed with checks - suppressed. - -2018-05-25 Arnaud Charlet <charlet@adacore.com> - - * exp_aggr.adb (Convert_To_Positional): Bump default for - Max_Others_Replicate to 32. Update comments. - * osint.ads (Unknown_Attributes): No longer pretend this is a constant. - (No_File_Info_Cache): Initialize separately. - * osint.adb (No_File_Info_Cache): Update initializer. - -2018-05-25 Javier Miranda <miranda@adacore.com> - - * sem_res.adb (Resolve_Membership_Op): Allow the use of the membership - test when the left operand is a class-wide interface and the right - operand is not a class-wide type. - * exp_ch4.adb (Tagged_Membership): Adding support for interface as the - left operand. - -2018-05-25 Ed Schonberg <schonberg@adacore.com> - - * exp_aggr.adb (Flatten): A quantified expression cannot be duplicated - in an others clause to prevent visibility issues with the generated - loop variable. - (Component_OK_For_Backend): Return false for a quantified expression. - (Check_Static_Component): Ditto. - -2018-05-25 Hristian Kirtchev <kirtchev@adacore.com> - - * libgnat/s-secsta.adb (SS_Allocate): Reimplemented. - (SS_Allocate_Dynamic): New routine. The allocation logic is now split - into three distring cases rather than in one loop which attempts to - handle all three cases. This rewrite eliminates an issue where the last - frame of the stack cannot be freed, thus causing the memory range of a - new frame to approach the overflow point of the memory index type. - Since the overflow is logically treated as a - too-much-memory-on-the-stack scenario, it causes a bogus Storage_Error. - (SS_Allocate_Static): New routine. The routine factorizes the static - secondary stack-related code from the former SS_Allocate. - -2018-05-25 Sergey Rybin <rybin@adacore.com> - - * doc/gnat_ugn/gnat_and_program_execution.rst: Add description of '-U' - option for gnatelim. - -2018-05-25 Ed Schonberg <schonberg@adacore.com> - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not create - Class_Wide_Clone_Body when analyzing a subprogram_body_stub: the clone - is created when the proper body of the stub is analyzed. - * sem_util.adb (ZBuild_Class_Wide_Clone_Body): If the subprogram body - is the proper body of a subunit, the cloned body must be inserted in - the declarative list that contains the stub. - -2018-05-25 Justin Squirek <squirek@adacore.com> - - * exp_ch6.adb (Expand_Simple_Function_Return): Add guard in check to - generate code for 6.5(8-10) so that we don't get an assertion error - when dealing with an incomplete return type. - -2018-05-25 Arnaud Charlet <charlet@adacore.com> - - * pprint.adb (Expression_Name): Strip too long expressions to avoid - carrying very large strings. - -2018-05-25 Patrick Bernardi <bernardi@adacore.com> - - * switch-b.adb (Scan_Binder_Switches): binder switch -Q accepts Natural - numbers. - -2018-05-25 Doug Rupp <rupp@adacore.com> - - * tracebak.c (aarch64-linux): Implement. - -2018-05-25 Justin Squirek <squirek@adacore.com> - - * sem_ch8.adb: Minor reformatting. - -2018-05-25 Piotr Trojanek <trojanek@adacore.com> - - * sem_util.adb (Iterate_Call_Parameters): Fix code convention and - assertions. - -2018-05-25 Hristian Kirtchev <kirtchev@adacore.com> - - * einfo.adb, einfo.ads, exp_ch3.adb, exp_ch8.adb, exp_unst.adb, - pprint.adb, sem_ch12.adb, sem_ch3.adb, sem_prag.adb, sem_util.adb: - Minor reformatting. - -2018-05-25 Ed Schonberg <schonberg@adacore.com> - - * sem_ch12.adb (Instance_Exists): New function, subsidiary of - Validate_Derived_Type_Instance, to verify that all interfaces - implemented by the formal type are also implemented by the actual. The - verification is complicated when an interface of the formal is declared - in a generic unit and the actual is declared in an instance of it. - There is currently no mechanism to relate an interface declared within - a generic to the corresponding interface in an instance, so we must - traverse the list of interfaces of the actual, looking for a name - match, and verifying that that interface is declared in an instance. - -2018-05-25 Piotr Trojanek <trojanek@adacore.com> - - * sem_util.adb (Iterate_Call_Parameters): Rewrite with extra - assertions; replace function versions of Next_Formal/Next_Actual with - their procedural versions (which are more concise). - -2018-05-25 Doug Rupp <rupp@adacore.com> - - * libgnarl/s-osinte__aix.ads, libgnarl/s-osinte__android.ads, - libgnarl/s-osinte__darwin.ads, libgnarl/s-osinte__freebsd.ads, - libgnarl/s-osinte__hpux.ads, libgnarl/s-osinte__kfreebsd-gnu.ads, - libgnarl/s-osinte__linux.ads, libgnarl/s-osinte__lynxos178e.ads, - libgnarl/s-osinte__qnx.ads, libgnarl/s-osinte__rtems.ads - (Relative_Timed_Wait): Remove. - * libgnarl/s-tpopmo.adb (Timed_Sleep, Timed_Delay): Rewrite to allow - for incremental looping. Remove references to Rel_Time and - Relative_Timed_Wait. - * libgnat/s-osprim__posix.adb, libgnat/s-osprim__posix2008.adb - (Timed_Delay): Make separate. - * libgnat/s-optide.adb: New separate procedure. - * libgnat/s-osprim.ads (Max_System_Delay): New constant. - * libgnat/s-osprim__lynxos.ads (Max_Sensible_Delay): Set to 6 months. - (Max_System_Delay): New constant. - -2018-05-25 Ed Schonberg <schonberg@adacore.com> - - * sem_ch12.adb (Validate_Derived_Type_Instance): Verify that the actual - for a formal derived type implements all the interfaces declared for - the formal. - -2018-05-25 Yannick Moy <moy@adacore.com> - - * sem_prag.adb (Check_Applicable_Policy): Deal specially with CodePeer - and GNATprove modes when applicable policy is Ignore. - -2018-05-25 Eric Botcazou <ebotcazou@adacore.com> - - * freeze.adb (Freeze_Enumeration_Type): Do not give integer size to a - boolean type with convention C. - * libgnat/i-cexten.ads (bool): Change to boolean with convention C. - * gcc-interface/decl.c (gnat_to_gnu_entity): Add new local variable - FOREIGN and use it throughout the function. - <E_Enumeration_Type>: Set precision 1 on boolean types with foreign - convention. - <E_Enumeration_Subtype>: Likewise for subtypes. - <E_Record_Type>: Force the size of a storage unit on empty classes. - * gcc-interface/utils.c (make_type_from_size) <BOOLEAN_TYPE>: Skip - boolean types with precision 1 if the size is the expected one. - -2018-05-25 Arnaud Charlet <charlet@adacore.com> - - * pprint.adb (Expression_Name): Do not print non ASCII characters. - -2018-05-25 Bob Duff <duff@adacore.com> - - * libgnat/a-strunb__shared.ads, libgnat/a-stwiun__shared.ads, - libgnat/a-stzunb__shared.ads: (Initialize, Adjust): Add pragma Inline. - -2018-05-25 Bob Duff <duff@adacore.com> - - * sem_util.ads: Minor comment fix. - -2018-05-25 Ed Schonberg <schonberg@adacore.com> - - * exp_unst.adb (Visit_Node): Restrict check for uplevel references in - prefixes of array attributes, to prefixes that are entity names whose - type is constrained. - (Note_Uplevel_Bound): Verify that the bound is declared in an enclosing - subprogram, as itype created for loops in pre/postcondition may appear - in loops at the library level. - -2018-05-25 Ed Schonberg <schonberg@adacore.com> - - * sem_ch13.adb (Build_Predicate_Functions): The predicate function - declaration is inserted into the tree and analyzed at that point, so - should not be reinserted when the body is constructed. Inside a - generic, ensure that the body is not inserted twice in the tree. - -2018-05-25 Yannick Moy <moy@adacore.com> - - * sem_prag.adb (Check_Grouping): Modify test to ignore statements and - declarations not coming from source. - -2018-05-25 Fedor Rybin <frybin@adacore.com> - - * doc/gnat_ugn/gnat_utility_programs.rst: Document new switch - --copy-environment for gnattest. - -2018-05-24 Piotr Trojanek <trojanek@adacore.com> - - * sem_elab.adb (Non_Private_View): Simplify by removing a local Result - variable. - * sem_prag.adb (Get_Base_Subprogram): Same as above. - -2018-05-24 Eric Botcazou <ebotcazou@adacore.com> - - * fe.h (Set_Normalized_First_Bit): Declare. - (Set_Normalized_Position): Likewise. - * repinfo.adb (List_Record_Layout): Do not use irregular output for a - variable position. Fix minor spacing issue. - * gcc-interface/decl.c (annotate_rep): If a field has a variable - offset, compute the normalized position and annotate it in addition to - the bit offset. - -2018-05-24 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): - Constify and rename variables. Fix formatting. - (gnat_to_gnu) <N_Exception_Handler>: Minor tweak. - <N_Raise_Statement>: Likewise. - -2018-05-24 Javier Miranda <miranda@adacore.com> - - * exp_ch8.adb (Build_Body_For_Renaming): Adding support to build the - body of a variant record equality renaming. - (Expand_N_Subprogram_Renaming_Declaration): Adapt the code to the new - implementation of Build_Body_For_Renaming. - * exp_ch3.ads (Build_Variant_Record_Equality): New library level - function that factorizes the functionality needed by - Build_Body_For_Renaming and Expand_Freeze_Record_Type to build the body - of a variant record equality subprogram. - * exp_ch3.adb (Build_Variant_Record_Equality): New subprogram. - (Build_Variant_Record_Equality): New local procedure of - Expand_Freeze_Record_Type containing all the code specific for freezing - the record type that cannot be place in the new library level function. - -2018-05-24 Ed Schonberg <schonberg@adacore.com> - - * einfo.ads, einfo.adb (Is_Activation_Record): New flag on - in_parameters, used when unesting subprograms for LLVM, to indicate - that a generated parameter carries the activation record from the - enclosing subprogram. - * exp_unst.adb (Check_Static_Type): Handle array attributes of types - whose bounds may contain up-level references that need to be added to - an activation recoord. - (Add_Extra_Formal): Set Is_Activation_Record on new formal. - -2018-05-24 Yannick Moy <moy@adacore.com> - - * pprint.adb (Expression_Image): Improve the printing of expressions, - by taking more cases into account, in particular qualified expressions - and aggregates. Also count more the number of parentheses to close - after the expression. - -2018-05-24 Javier Miranda <miranda@adacore.com> - - * sem_ch3.adb (Is_Visible_Component): For untagged types add missing - check for renamed discriminants. - * sem_ch4.adb (Analyze_Overloaded_Selected_Component, - Analyze_Selected_Component, Check_Misspelled_Selector): For calls to - Is_Visible_Component pass the associated selector node to allow - checking renamed discriminants on untagged types. - -2018-05-24 Ed Schonberg <schonberg@adacore.com> - - * sem_ch8.adb (Analyze_Use_Type): Do not assign the Prev_Use_Clause - link to a use_type clause if this would cause an infinite loop in the - machinery that detects redundant use clauses. This may happen when the - redundant clauses appear in the context of a child unit and the context - of its parent. - -2018-05-24 Piotr Trojanek <trojanek@adacore.com> - - * sinfo.ads: Fix grammar in comment. - -2018-05-24 Justin Squirek <squirek@adacore.com> - - * einfo.ads, einfo.adb (Append_Entity): Modified to use Link_Entities - and manage doubly-linked entity chain. - (Nested_Scenarios): Removed entity field used for optimization during - elaboration to make room for the new field Prev_Entity. - (Link_Entities): Added to replace redundant calls to Set_Next_Entity - and Set_Prev_Entity as well as centralize changes to the entity chain. - (Predicated_Parent): Modified to use Node38. - (Prev_Entity): Added to fetch new node field Prev_Entity in all entity - types. - (Remove_Entity): Moved from sem_util. - (Set_Nested_Scenarios): Deleted. - (Set_Predicated_Parent): Modified to use Node38. - (Set_Prev_Entity): Added to set Prev_Entity field. - (Set_Validated_Object): Modified to use Node38. - (Unlink_Next_Entity): Added to process Prev_Entity when an unlinking - action is required. - (Validated_Object): Modified to use Node38. - (Write_Field36_Name): Remove Nested_Scenarios, Validated_Object, and - predicated parent cases. - (Write_Field38_Name): Add predicated parent and Validated_Object cases. - * sem_ch3.adb (Process_Subtype): Add guard to protect against - inappropriate marking of Predicated_Parent to non-itype subtypes. - (Make_Class_Wide_Type): Preserve Prev_Entity field and set in new type. - (Copy_And_Swap): Add setting of Prev_Entity. - (Build_derived_Record_Type): Replace Set_Next_Entity w/ Link_Entities. - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Replace Set_Next_Entity - w/ Link_Entities. - (New_Overloaded_Entity): Remove block created to search for previous - entities in the entity chain with relevant calls to Prev_Entity as well - as replace duplicated code from Remove_Entity_And_Homonym with a call - to that subprogram. - * sem_ch7.adb (Exchange_Declarations): Replace Set_Next_Entity w/ - Link_Entities. - * sem_elab.adb (Find_And_Process_Nested_Scenarios): Remove global and - initial subprogram declarations related to Nested_Scenarios. - (Process_Nested_Scenarios): Deleted. - (Save_Scenario): Deleted. - (Traverse_Body): Remove optimization for Nested_Scenarios so as to free - node space in the entity tree. - * sem_util.adb, sem_util.ads (Remove_Entity): Moved to einfo. - (Remove_Entity_And_Homonym): Added to separate functionality of - Remove_Entity from the homonym chain directly. - * exp_attr.adb (Expand_N_Attribute_Reference): Replace Set_Next_Entity - w/ Link_Entities and Unlink_Next_Entity. - * exp_ch3.adb (Expand_N_Object_Declaration): Replace Set_Next_Entity w/ - Link_Entities. - * exp_ch6.adb (Replace_Renaming_Declaration_Id): Replace - Set_Next_Entity w/ Link_Entities. - * exp_disp.adb (Expand_Dispatching_Call): Replace Set_Next_Entity w/ - Link_Entities and Unlink_Next_Entity. - * exp_spark.adb (Expand_SPARK_N_Object_Renaming_Declaration): Replace - call to Remove_Entity with its new incarnation. - * exp_util.adb (New_Class_Wide_Subtype): Add setting of Prev_Entity. - * freeze.adb (Freeze_Record_Type): Replace Set_Next_Entity w/ - Link_Entities. - -2018-05-24 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch10.adb (Expand_Limited_With_Clause): Update the call to - Install_Limited_Withed_Unit. - (Expand_With_Clause): Update the call to Install_Withed_Unit. - (Implicit_With_On_Parent): Update the call to Install_Withed_Unit. - (Install_Context_Clauses): Update the call to Install_Withed_Unit. - (Install_Limited_Context_Clauses): Update the calls to - Install_Limited_Withed_Unit. - (Install_Limited_Withed_Unit): Renamed to better illustrate its - purpose. - (Install_Private_With_Clauses): Update the calls to Install_Withed_Unit - and Install_Limited_Withed_Unit. - (Install_With_Clause): Uninstall a limited with clause if a [private] - with clause is given for the same package. - (Install_Withed_Unit): Renamed to better illustrate its purpose. - (Remove_Limited_With_Unit): New routine. - -2018-05-24 Eric Botcazou <ebotcazou@adacore.com> - - * raise-gcc.c (__gnat_SEH_error_handler): Remove prototype. - (__gnat_personality_seh0): Adjust and beef up comments, and - fix formatting throughout. - (__gnat_adjust_context): Deal minimally with version 2. - * seh_init.c (__gnat_map_SEH): Fix formatting. - (_gnat_SEH_error_handler): Adjust comments. - (__gnat_install_SEH_handler): Fix formatting. - -2018-05-24 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch7.adb, sem_ch3.adb, sem_res.adb: Minor reformatting. - -2018-05-24 Ed Schonberg <schonberg@adacore.com> - - * exp_aggr.adb (Flatten): Add a warning on an others clause in an array - aggregate with static bounds when named associations cover all index - positions and the others clause is redundant. - -2018-05-24 Raphael Amiard <amiard@adacore.com> - - * libgnat/a-cohama.ads: Add documentation. - -2018-05-24 Raphael Amiard <amiard@adacore.com> - - * libgnat/a-convec.ads: Add documentation. - -2018-05-24 Justin Squirek <squirek@adacore.com> - - * exp_ch3.adb (Expand_N_Object_Declaration): Ignore raising an error in - expansion for limited tagged types when the node to be expanded is a - raise expression due to it not representing a valid object. - * exp_ch5.adb (Expand_N_Assignment_Statement): Add exception to error - message regarding assignments to limited types to ignore genereated - code. - -2018-05-24 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_util.adb (New_Class_Wide_Subtype): Capture and restore relevant - Ghost-related attributes of the class-wide subtype because the copy - clobbers them. - -2018-05-24 Justin Squirek <squirek@adacore.com> - - * sem_res.adb (Resolve_Entity_Name): Add guard to protect against - marking use clauses as effective when the reference appears within - generated code. - -2018-05-24 Cyrille Comar <comar@adacore.com> - - * doc/gnat_rm/the_gnat_library.rst: Fix typos. - * gnat_rm.texi: Regenerate. - -2018-05-24 Bob Duff <duff@adacore.com> - - * exp_ch7.adb (Expand_Cleanup_Actions): Create a mark unconditionally - for build-in-place functions with a caller-unknown-size result. - (Create_Finalizer): For build-in-place functions with a - caller-unknown-size result, check at run time whether we need to - release the secondary stack. - -2018-05-24 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_prag.adb (Analyze_Pragma): Use the full view of an internally - generated incomplete type. - -2018-05-24 Hristian Kirtchev <kirtchev@adacore.com> - - * expander.adb (Expand): Update the save and restore of the Ghost - region. - * exp_ch3.adb (Freeze_Type): Likewise. - * exp_disp.adb (Make_DT): Likewise. - * exp_util.adb (Build_DIC_Procedure_Body): Likewise. - (Build_DIC_Procedure_Declaration): Likewise. - (Build_Invariant_Procedure_Body): Likewise. - (Build_Invariant_Procedure_Declaration): Likewise. - (Make_Predicate_Call): Likewise. - * freeze.adb (Add_To_Result): Insert the freeze action of a living - entity prior to the start of the enclosing ignored Ghost region. - (Freeze_Entity): Update the save and restore of the Ghost region. - * ghost.adb (Install_Ghost_Mode): Reimplemented. - (Install_Ghost_Region): New routine. - (Mark_And_Set_Ghost_Assignment): Install a region rather than a mode. - (Mark_And_Set_Ghost_Body): Likewise. - (Mark_And_Set_Ghost_Completion): Likewise. - (Mark_And_Set_Ghost_Declaration): Likewise. - (Mark_And_Set_Ghost_Instantiation): Likewise. - (Mark_And_Set_Ghost_Procedure_Call): Likewise. - (Name_To_Ghost_Mode): New routine. - (Restore_Ghost_Region): New routine. - * ghost.ads (Install_Ghost_Region): New routine. - (Restore_Ghost_Region): New routine. - * opt.ads: Add new global variable Ignored_Ghost_Region. - * rtsfind.adb (Load_RTU): Update the save and restore of the Ghost - region. Install a clean region. - * sem.adb (Analyze): Likewise. - (Do_Analyze): Likewise. - * sem_ch3.adb (Analyze_Object_Declaration): Likewise - (Derive_Progenitor_Subprograms): Use local variable Iface_Alias to - capture the ultimate alias of the current primitive. - (Process_Full_View): Update the save and restore of the Ghost region. - Do not inherit DIC and invariant procedures. - * sem_ch5.adb (Analyze_Assignment): Update the save and restore of the - Ghost region. - * sem_ch6.adb (Analyze_Procedure_Call): Likewise. - (Analyze_Subprogram_Body_Helper): Likewise. - * sem_ch7.adb (Analyze_Package_Body_Helper): Likewise. - * sem_ch12.adb (Analyze_Package_Instantiation): Likewise. - (Analyze_Subprogram_Instantiation): Likewise. - (Instantiate_Package_Body): Likewise. - (Instantiate_Subprogram_Body): Likewise. - * sem_ch13.adb (Build_Predicate_Functions): Likewise. - (Build_Predicate_Function_Declaration): Likewise. - * sem_disp.adb - (Add_Dispatching_Operation): Do not consider DIC and invariant - procedures. - (Check_Dispatching_Operation): Use Add_Dispatching_Operation to collect - a dispatching subprogram. - (Check_Operation_From_Private_View): Likewise. - (Override_Dispatching_Operation): Likewise. - * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): Update the save - and restore of the Ghost region. - (Analyze_Initial_Condition_In_Decl_Part): Likewise. - (Analyze_Pragma): Update the save and restore of the Ghost region. - (Analyze_Pre_Post_Condition_In_Decl_Part): Likewise. - * sem_util.adb (Is_Suitable_Primitive): New routine. - * sem_util.ads (Is_Suitable_Primitive): New routine. - * sinfo.ads: Update the section of Ghost regions. - -2018-05-24 Piotr Trojanek <trojanek@adacore.com> - - * doc/gnat_rm/implementation_defined_pragmas.rst (Contract_Cases): - Change "condition" to "case guard" after renaming in the contract - grammar. - * gnat_rm.texi: Regenerate. - -2018-05-24 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_util.adb (Expand_Static_Predicates_In_Choices): Indicate that the - construct with discrete choices no longer contains a subtype with - predicates since the expansion already handled this case. - -2018-05-24 Hristian Kirtchev <kirtchev@adacore.com> - - * freeze.adb (Wrap_Imported_Subprogram): Generate an unchecked - conversion to the return type to avoid a side effect where an imported - relocated function generates a new anonymous access type, whose - accessibility level does not agree with with that of the wrapper. - -2018-05-24 Javier Miranda <miranda@adacore.com> - - * sem_util.adb (Abstract_Interface_List): Add missing support for - private types whose full view is a synchronized type. - * sem_ch3.adb (Build_Derived_Private_Type): Skip building the full - derivation of a private type parent type is a task type with - discriminants as gigi does not use such type directly. - -2018-05-24 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_elab.adb (Build_Variable_Reference_Marker): Do not create a - variable marker when the reference appears in the formal part of a - compilation unit instance because there is no place to insert it. - (In_Compilation_Instance_Formal_Part): New routine. - -2018-05-24 Piotr Trojanek <trojanek@adacore.com> - - * layout.ads, repinfo.ads: Fix references to renamed Backend_Layout - configuration parameter. - -2018-05-24 Doug Rupp <rupp@adacore.com> - - * argv-lynxos178-raven-cert.c: New file. - * libgnat/system-lynxos178-x86.ads: New file. - -2018-05-23 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_disp.adb, freeze.adb, gnat1drv.adb, sem_ch5.adb, sem_spark.adb: - Minor reformattings. - -2018-05-23 Pascal Obry <obry@adacore.com> - - * adaint.c (win32_wait): Properly free the handle/pid lists when - WaitForMultipleObjects fails (return WAIT_FAILED). - -2018-05-23 Pascal Obry <obry@adacore.com> - - * adaint.c (win32_wait): Add missing parentheses. - -2018-05-23 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch3.adb (Check_Large_Modular_Array): Moved to Freeze. - (Expand_N_Object_Declaration): Do not check for a large modular array - here. - * freeze.adb (Check_Large_Modular_Array): Moved from Exp_Ch3. - (Freeze_Object_Declaration): Code cleanup. Check for a large modular - array. - * sem_ch3.adb: Minor reformatting. - -2018-05-23 Ed Schonberg <schonberg@adacore.com> - - * einfo.ads: New attribute on types: Predicated_Parent, to simplify the - retrieval of the applicable predicate function to an itype created for - a constrained array component. - * einfo.adb: Subprograms for Predicated_Parent. - (Predicate_Function): Use new attribute. - * exp_util.adb (Make_Predicate_Call): If the predicate function is not - available for a subtype, retrieve it from the base type, which may have - been frozen after the subtype declaration and not captured by the - subtype declaration. - * sem_aggr.adb (Resolve_Array_Aggregate): An Others association is - legal within a generated initiqlization procedure, as may happen with a - predicate check on a component, when the predicate function applies to - the base type of the component. - * sem_ch3.adb (Analyze_Subtype_Declaration): Clean up inheritance of - predicates for subtype declarations and for subtype indications in - other contexts. - (Process_Subtype): Likewise. Handle properly the case of a private type - with unknown discriminants whose full view is an unconstrained array. - Use Predicated_Parent to indicate source of predicate function on an - itype whose parent is itself an itype. - (Complete_Private_Subtype): If the private view has unknown - discriminants and the full view is an unconstrained array, set base - type of completion to the full view of parent. - (Inherit_Predicate_Flags): Prevent double assignment of predicate - function and flags. - (Build_Subtype): For a constrained array component, propagate predicate - information from original component type declaration. - -2018-05-23 Boris Yakobowski <yakobowski@adacore.com> - - * libgnat/a-ngelfu.ads (Arctanh, Arccoth): Fix faulty preconditions. - -2018-05-23 Arnaud Charlet <charlet@adacore.com> - - * checks.adb (Minimize_Eliminate_Overflows): Default initialize Lo and - Hi. - * sem_elab.adb: Make "out" parameters instead of "in out" when - relevant. - -2018-05-23 Bob Duff <duff@adacore.com> - - * gnatbind.adb (List_Applicable_Restrictions): Add - No_Implementation_Restrictions to the list of restrictions not to list. - Remove double negative "not No_Restriction_List". Comment the - commentary that is output, so it won't cause errors if used directly in - a gnat.adc. - -2018-05-23 Ed Schonberg <schonberg@adacore.com> - - * sem_prag.adb (Inherit_Class_Wide_Pre): Refine legality check on - class-wide precondition on a type extension when ancestor does not have - a class-wide precondition. Previously the compiler accepted such a - precondition when the ancestor had a class-wide postcondition. - -2018-05-23 Javier Miranda <miranda@adacore.com> - - * sem_attr.adb (Valid_Scalars): Do not invoke Error_Attr_P to report - the warning on occurrences of this attribute whose evaluation is always - true (since that subprogram aborts processing the attribute). In - addition, replace the node by its boolean result 'True' (required - because the backend has no knowledge of this attribute). - -2018-05-23 Bob Duff <duff@adacore.com> - - * libgnat/a-convec.adb: (Insert, Insert_Space): Suppress warnings. The - code in question is not reachable in the case where Count_Type'Last is - out of range. - -2018-05-23 Yannick Moy <moy@adacore.com> - - * doc/gnat_rm/implementation_defined_pragmas.rst: Clarify meaning of - local pragma Warnings Off without On. - * gnat_rm.texi: Regenerate. - -2018-05-23 Olivier Hainque <hainque@adacore.com> - - * libgnat/g-excact.ads (Is_Foreign_Exception): New predicate. - * libgnat/g-excact.adb: Implement. - -2018-05-23 Ed Schonberg <schonberg@adacore.com> - - * sem_ch5.adb (Analyze_Iterator_Specification): If a subtype indication - is present, verify its legality when the domain of iteration is a - GNAT-specific formal container, as is already done for arrays and - predefined containers. - -2018-05-23 Yannick Moy <moy@adacore.com> - - * sem_util.adb (Enclosing_Declaration): Fix the case of a named number - declaration, which was not taken into account. - -2018-05-23 Hristian Kirtchev <kirtchev@adacore.com> - - * debug.adb: Switch -gnatd_s is now used to stop elaboration checks on - synchronized suspension. - * rtsfind.ads: Add entries for units Ada.Synchronous_Barriers and - Ada.Synchronous_Task_Control and routines Suspend_Until_True and - Wait_For_Release. - * sem_elab.adb: Document switch -gnatd_s. - (In_Task_Body): New routine. - (Is_Potential_Scenario): Code cleanup. Stop the traversal of a task - body when the current construct denotes a synchronous suspension call, - and restriction No_Entry_Calls_In_Elaboration_Code or switch -gnatd_s - is in effect. - (Is_Synchronous_Suspension_Call): New routine. - * switch-c.adb (Scan_Front_End_Switches): Switch -gnatJ now sets switch - -gnatd_s. - -2018-05-23 Javier Miranda <miranda@adacore.com> - - * exp_disp.adb (Make_DT): Restrict the initialization of - External_Tag and Expanded_Name to an empty string to the case where - both pragmas apply (i.e. No_Tagged_Streams and Discard_Names), since - restricted runtimes are compiled with pragma Discard_Names. - * doc/gnat_rm/implementation_defined_pragmas.rst, - doc/gnat_rm/implementation_defined_characteristics.rst: Add - documentation. - * gnat_rm.texi: Regenerate. - -2018-05-23 Maroua Maalej <maalej@adacore.com> - - * sem_spark.adb: Fix of some permission rules of pointers in SPARK. - -2018-05-23 Ed Schonberg <schonberg@adacore.com> - - * sem_ch5.adb (Preanalyze_Range): The pre-analysis of the domain of - iteration of an Ada2012 loop is performed to determine the type of the - domain, but full analysis is performed once the loop is rewritten as a - while-loop during expansion. The pre-analysis suppresses expansion; it - must also suppress the generation of freeze nodes, which may otherwise - appear in the wrong scope before rewritting. - -2018-05-23 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_elab.adb: Update the section on suppressing elaboration warnings. - -2018-05-23 Hristian Kirtchev <kirtchev@adacore.com> - - * einfo.adb (Is_Elaboration_Checks_OK_Id): Use predicate - Is_Elaboration_Target. - (Is_Elaboration_Target): New routine. - (Is_Elaboration_Warnings_OK_Id): Use predicate Is_Elaboration_Target. - (Set_Is_Elaboration_Checks_OK_Id): Use predicate Is_Elaboration_Target. - (Set_Is_Elaboration_Warnings_OK_Id): Use predicate - Is_Elaboration_Target. - * einfo.ads: Add new synthesized attribute Is_Elaboration_Target along - with occurrences in nodes. - (Is_Elaboration_Target): New routine. - * sem_prag.adb (Analyze_Pragma): Suppress elaboration warnings when an - elaboration target is subject to pragma Warnings (Off, ...). - -2018-05-23 Eric Botcazou <ebotcazou@adacore.com> - - * repinfo.adb (List_Type_Info): Remove obsolete stuff. - -2018-05-23 Hristian Kirtchev <kirtchev@adacore.com> - - * einfo.adb: Flag304 is now Is_Elaboration_Warnings_OK_Id. - (Is_Elaboration_Warnings_OK_Id): New routine. - (Set_Is_Elaboration_Warnings_OK_Id): New routine. - (Write_Entity_Flags): Output Flag304. - * einfo.ads: Add new attribute Is_Elaboration_Warnings_OK_Id along with - occurrences in entities. - (Is_Elaboration_Warnings_OK_Id): New routine along with pragma Inline. - (Set_Is_Elaboration_Warnings_OK_Id): New routine along with pragma - Inline. - * sem_attr.adb (Analyze_Access_Attribute): Capture the state of - elaboration warnings. - * sem_ch3.adb (Analyze_Object_Declaration): Capture the state of - elaboration warnings. - * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Capture the - state of elaboration warnings. - (Analyze_Subprogram_Body_Helper): Capture the state of elaboration - warnings. - (Analyze_Subprogram_Declaration): Capture the state of elaboration - warnings. - * sem_ch9.adb (Analyze_Entry_Declaration): Capture the state of - elaboration warnings. - (Analyze_Single_Task_Declaration): Capture the state of elaboration - warnings. - (Analyze_Task_Type_Declaration): Capture the state of elaboration - warnings. - * sem_ch12.adb (Analyze_Generic_Package_Declaration): Capture the state - of elaboration warnings. - (Analyze_Generic_Subprogram_Declaration): Capture the state of - elaboration warnings. - * sem_elab.adb: Add a section on suppressing elaboration warnings. - Type Processing_Attributes includes component Suppress_Warnings - intended to suppress any elaboration warnings along a path in the - graph. Update Initial_State to include a value for this component. - Types Target_Attributes and Task_Attriutes include component - Elab_Warnings_OK to indicate whether the target or task has elaboration - warnings enabled. component Elab_Warnings_OK. - (Build_Access_Marker): Propagate attribute - Is_Elaboration_Warnings_OK_Node from the attribute to the generated - call marker. - (Extract_Instantiation_Attributes): Set the value for Elab_Warnings_OK. - (Extract_Target_Attributes): Set the value for Elab_Warnings_OK. - (Extract_Task_Attributes): Set the value for Elab_Warnings_OK. - (Process_Conditional_ABE_Access): Suppress futher elaboration warnings - when already in this mode or when the attribute or target have warnings - suppressed. - (Process_Conditional_ABE_Activation_Impl): Do not emit any diagnostics - if warnings are suppressed. - (Process_Conditional_ABE_Call): Suppress further elaboration warnings - when already in this mode, or the target or call have warnings - suppressed. - (Process_Conditional_ABE_Call_Ada): Do not emit any diagnostics if - warnings are suppressed. - (Process_Conditional_ABE_Call_SPARK): Do not emit any diagnostics if - warnings are suppressed. - (Process_Conditional_ABE_Instantiation): Suppress further elaboration - warnings when already in this mode or when the instantiation has - warnings suppressed. - (Process_Conditional_ABE_Instantiation_Ada): Do not emit any - diagnostics if warnings are suppressed. - (Process_Conditional_ABE_Variable_Assignment_Ada): Use the more - specific Is_Elaboration_Warnings_OK_Id rather than Warnings_Off. - (Process_Conditional_ABE_Variable_Assignment_SPARK): Use the more - specific Is_Elaboration_Warnings_OK_Id rather than Warnings_Off. - (Process_Task_Object): Suppress further elaboration warnings when - already in this mode, or when the object, activation call, or task type - have warnings suppressed. Update the processing state to indicate that - the path goes through a task body. - * sinfo.adb (Is_Elaboration_Warnings_OK_Node): Accept attribute - references. - (Set_Is_Elaboration_Warnings_OK_Node): Accept attribute references. - * sinfo.ads: Attribute Is_Elaboration_Warnings_OK_Node now applies to - attribute references. - -2018-05-23 Piotr Trojanek <trojanek@adacore.com> - - * einfo.ads: Minor reformatting. - -2018-05-23 Ed Schonberg <schonberg@adacore.com> - - * sem_ch3.adb (Analyze_Object_Declaration): If expression is an - anonymous_access_to_ subprogram formal, apply a conversion to force an - accsssibility check that will fail statically, enforcing 3.10.2 (13). - -2018-05-23 Daniel Mercier <mercier@adacore.com> - - * gnat1drv.adb: Turn off length expansion in CodePeer mode. - -2018-05-23 Bob Duff <duff@adacore.com> - - * freeze.adb: (Check_Address_Clause): Deal with build-in-place - aggregates in addition to build-in-place calls. - -2018-05-23 Bob Duff <duff@adacore.com> - - * einfo.ads: Minor reformatting. - * sem_ch3.adb: Likewise. - * sinfo.ads: Likewise. - -2018-05-23 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch3.adb (Default_Initialize_Object): Do not optimize scalar array - initialization when the component type has predicates. - * exp_ch4.adb (Expand_N_Allocator): Do not optimize scalar array - allocation when the component type has predicates. - -2018-05-23 Hristian Kirtchev <kirtchev@adacore.com> - - * einfo.adb, exp_disp.adb, sem_ch3.adb, sem_ch6.adb, sem_prag.adb: - Minor reformatting. - -2018-05-22 Justin Squirek <squirek@adacore.com> - - * sem_ch6.adb (Analyze_Expression_Function): Propagate flags from the - original function spec into the generated function spec due to - expansion of expression functions during analysis. - (Analyze_Subprogram_Body_Helper): Modify check on formal parameter - references from the body to the subprogram spec in the case of - expression functions because of inconsistances related to having a - generated body. - * libgnarl/s-osinte__android.ads: Flag parameters as unused. - * libgnarl/s-osinte__lynxos178e.ads: Likewise. - * libgnarl/s-osinte__qnx.adb: Likewise. - * libgnarl/s-osinte__qnx.ads: Likewise. - -2018-05-22 Doug Rupp <rupp@adacore.com> - - * init.c (HAVE_ADJUST_CONTEXT_FOR_RAISE): Don't define on VxWorks7 for - AArch64. - -2018-05-22 Olivier Hainque <hainque@adacore.com> - - * libgnat/a-except.adb (Exception_Propagation.Propagate_Exception): - Expect an Exception_Occurence object, not an Access. - (Complete_And_Propagate_Occurrence): Adjust accordingly. - (Raise_From_Signal_Handler): Likewise. - (Reraise_Occurrence_No_Defer): If we have a Machine_Occurrence - available in the provided occurrence object, just re-propagate the - latter as a bare "raise;" would do. - * libgnat/a-exexpr.adb (Propagate_Exception): Adjust to spec change. - * libgnat/a-exstat.adb (String_To_EO): Initialize X.Machine_Occurrence - to null, to mark that the occurrence we're crafting from the stream - contents is not being propagated (yet). - -2018-05-22 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_aggr.adb (Initialize_Ctrl_Record_Component): Insert the generated - code for a transient component in line with the rest of the - initialization code, rather than before the aggregate. This ensures - that the component has proper visibility of the discriminants. - -2018-05-22 Jerome Lambourg <lambourg@adacore.com> - - * adaint.c: Reorganize QNX-specific macros, use syspage to retreive the - number of CPUs. - -2018-05-22 Jerome Lambourg <lambourg@adacore.com> - - * sigtramp-qnx.c: Properly restore link register in signal trampoline. - -2018-05-22 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Strip away any - conversions before extracting the value of the expression. - * exp_ch3.adb (Default_Initialize_Object): Optimize the default - initialization of an array of scalars. - (Get_Simple_Init_Val): Add processing for array types. Remove the - processing of strings because this case is already handled by the array - case. - (Needs_Simple_Initialization): Moved to Sem_Util. - (Simple_Init_Array_Type): New routine. - (Simple_Init_Initialize_Scalars_Type): Reimplemented to use the new - facilities from Sem_Util. - (Simple_Initialization_OK): New routine. - * exp_ch3.ads (Needs_Simple_Initialization): Moved to Sem_Util. - * exp_ch4.adb (Expand_N_Allocator): Optimize the default allocation of - an array of scalars. - * sem_prag.adb (Analyze_Float_Value): New routine. - (Analyze_Integer_Value): New routine. - (Analyze_Pragma): Reimplement the analysis of pragma Initialize_Scalars - to handled the extended form of the pragma. - (Analyze_Type_Value_Pair): New routine. - * sem_util.adb: Add invalid value-related data structures. - (Examine_Array_Bounds): New routine. - (Has_Static_Array_Bounds): Reimplemented. - (Has_Static_Non_Empty_Array_Bounds): New routine. - (Invalid_Scalar_Value): New routine. - (Needs_Simple_Initialization): Moved from Exp_Ch3. - (Set_Invalid_Scalar_Value): New routines. - * sem_util.ads (Has_Static_Non_Empty_Array_Bounds): New routine. - (Invalid_Scalar_Value): New routine. - (Needs_Simple_Initialization): Moved from Exp_Ch3. - (Set_Invalid_Scalar_Value): New routines. - * snames.ads-tmpl: Add names for the salar type families used by pragma - Initialize_Scalars. - -2018-05-22 Javier Miranda <miranda@adacore.com> - - * exp_disp.adb (Make_DT): Initialize the External_Tag with an empty - string when pragma No_Tagged_Streams is applicable to the tagged type, - and initialize the Expanded_Name with an empty string when pragma - Discard_Names is applicable to the tagged type. - -2018-05-22 Ed Schonberg <schonberg@adacore.com> - - * sem_ch6.adb (Check_Conformance): Add RM reference for rule that a - formal subprogram is never subtype conformqnt, and thus cannot be the - prefix of 'Access. Reject as well the attribute when applied to a - renaming of a formal subprogram. - -2018-05-22 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch3.adb (Build_Array_Init_Proc): Update the call to - Needs_Simple_Initialization. - (Build_Init_Statements): Update the call to Get_Simple_Init_Val. - (Check_Subtype_Bounds): Renamed to Extract_Subtype_Bounds. Update the - profile and comment on usage. - (Default_Initialize_Object): Do not use New_Copy_Tree to set the proper - Sloc of a value obtained from aspect Default_Value because this could - potentially replicate large trees. The proper Sloc is now set in - Get_Simple_Init_Val. - (Get_Simple_Init_Val): Reorganized by breaking the various cases into - separate routines. Eliminate the use of global variables. - (Init_Component): Update the call to Get_Simple_Init_Val. - (Needs_Simple_Initialization): Update the parameter profile and all - uses of T. - (Simple_Init_Defaulted_Type): Copy the value of aspect Default_Value - and set the proper Sloc. - * exp_ch3.ads (Get_Simple_Init_Val): Update the parameter profile and - comment on usage. - (Needs_Simple_Initialization): Update the parameter profile. - -2018-05-22 Patrick Bernardi <bernardi@adacore.com> - - * sem_ch3.adb (Build_Discriminant_Constraints): Raise an error if the - user tries to use a subtype indication as a discriminant constraint. - -2018-05-22 Ed Schonberg <schonberg@adacore.com> - - * exp_ch4.ads, exp_ch4.adb, exp_util.adb, expander.adb: Remove mention - of N_Reduction_Expression and N_Reduction_Expression_Parameter. - * par-ch4.adb: Remove parsing routines for reduction expressions. - * sem.adb, sinfo.ads, sinfo.adb, sem_ch4.ads, sem_ch4.adb, sem_res.adb, - sem_spark.adb, sprint.adb: Remove analysis routines for reduction - expressions. - -2018-05-22 Arnaud Charlet <charlet@adacore.com> - - * sem_ch8.adb (Check_Frozen_Renaming): Do not emit error in - Relaxed_RM_Semantics mode. - -2018-05-22 Arnaud Charlet <charlet@adacore.com> - - * comperr.adb (Delete_SCIL_Files): Take into account - N_Generic_Package_Renaming_Declaration. - -2018-05-22 Ed Schonberg <schonberg@adacore.com> - - * sem_ch3.adb (Search_Derivation_Levels): Whenever a parent type is - private, use the full view if available, because it may include renamed - discriminants whose values are stored in the corresponding - Stored_Constraint. - -2018-05-22 Ed Schonberg <schonberg@adacore.com> - - * einfo.ads, einfo.adb: New attribute Hidden_In_Formal_Instance, - defined on packages that are actuals for formal packages, in order to - set/reset the visibility of the formals of a formal package with given - actuals, when there are subsequent uses of those formals in the - enclosing generic, as required by RN 12.7 (10). - * atree.ads, atree.adb: Add operations for Elist30. - * atree.h: Add Elist30. - * sem_ch12.adb (Analyze_Formal_Package_Instantiation): Collect formals - that are not defaulted and are thus not visible within the current - instance. - (Check_Formal_Packages): Reset visibility of formals of a formal - package that are not defaulted, on exit from current instance. - -2018-05-22 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_prag.adb (Analyze_Input_Output): Emit an error when a non-null, - non-'Result output appears in the output list of a function. - -2018-05-22 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_attr.adb (Build_Array_VS_Func): Reimplemented. - (Build_Record_VS_Func): Reimplemented. - (Expand_N_Attribute): Reimplement the handling of attribute - 'Valid_Scalars. - * sem_attr.adb (Analyze_Attribute): Reimplement the handling of - attribute 'Valid_Scalars. - * sem_util.adb (Scalar_Part_Present): Reimplemented. - (Validated_View): New routine. - * sem_util.ads (Scalar_Part_Present): Update the parameter profile and - comment on usage. - (Validated_View): New routine. - * doc/gnat_rm/implementation_defined_attributes.rst: Update the - documentation of attribute 'Valid_Scalars. - * gnat_rm.texi: Regenerate. - -2018-05-22 Bob Duff <duff@adacore.com> - - * binde.adb: (Choose): Ignore a pragma Elaborate_Body that appears in - the spec of a SAL_Interface package. - -2018-05-22 Ed Schonberg <schonberg@adacore.com> - - * freeze.adb (Freeze_Entity): When analyzing delayed aspects of an - entity E within a generic unit, indicate that there are no remaining - delayed aspects after invoking Analyze_Aspects_At_Freeze_Point. The - entity E is not frozen yet but the aspects should not be reanalyzed at - the freeze point, which may be outside of the generic and may not have - the proper visibility. - -2018-05-22 Bob Duff <duff@adacore.com> - - * doc/gnat_ugn/gnat_utility_programs.rst: Add documentation for - the new --split-line-before-record, --indent-named-statements and - --no-align-modes gnatpp switches. - -2018-05-22 Ed Schonberg <schonberg@adacore.com> - - * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Handle properly - a second argument that is a constant of a given string value. - -2018-05-22 Doug Rupp <rupp@adacore.com> - - * sigtramp-vxworks-target.inc: Align stack to 128bits on AArch64. - -2018-05-22 Jerome Lambourg <lambourg@adacore.com> - - * sigtramp-qnx.c: Fix stack alignment issue in the signal trampoline. - -2018-05-22 Ed Schonberg <schonberg@adacore.com> - - * freeze.adb (Freeze_Fixed_Point_Type): If the first subtype has - delayed aspects, analyze them now, os that the representation of the - type (size, bounds) can be computed and validated. - -2018-05-22 Olivier Hainque <hainque@adacore.com> - - * libgnat/s-dwalin.adb (Enable_Cache): Skip symbols outside of the - executable code section boundaries. - -2018-05-22 Javier Miranda <miranda@adacore.com> - - * locales.c: New implementation for the Ada.Locales package. - * libgnat/a-locale.ads: Remove comment indicating that this is not - implemented. - * doc/gnat_rm/standard_library_routines.rst: Remove comment indicating - that this is not implemented. - * gnat_rm.texi: Regenerate. - -2018-05-22 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch5.adb, freeze.adb, pprint.adb, sem_ch4.adb, sem_res.adb: Minor - reformattings. - -2018-05-22 Justin Squirek <squirek@adacore.com> - - * sem_ch12.adb (In_Same_Declarative_Part): Moved to sem_util. - (Freeze_Subprogram_Body, Install_Body): Modify calls to - In_Same_Declarative_Part. - * sem_prag.adb (Analyze_Pragma-Pragma_Pure_Function): Add check to - verify pragma declaration is within the same declarative list with - corresponding error message. - * sem_util.adb, sem_util.ads (In_Same_Declarative_Part): Moved from - sem_ch12.adb and generalized to be useful outside the scope of - freezing. - -2018-05-22 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch6.adb (Analyze_Subprogram_Declaration): Set the proper - categorization of the unit after processing the aspects in case one of - its aspects is converted into a categorization pragma. - -2018-05-21 Ed Schonberg <schonberg@adacore.com> - - * freeze.adb (Warn_Overlay): Do not emit a wawrning on an object - declaration with an explicit address clause and a type with default - initialization, if the declaration carries an aspect - Suppress_Initialization. - -2018-05-21 Daniel Mercier <mercier@adacore.com> - - * pprint.adb: Use mixed case for attribute names. - -2018-05-21 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Rename the call to - Analyze_Aspect_Specifications_On_Body_Or_Stub. - (Analyze_Subprogram_Body_Helper): Rename the calls to - Analyze_Aspect_Specifications_On_Body_Or_Stub. - * sem_ch9.adb (Analyze_Entry_Body): Rename the call to - Analyze_Aspect_Specifications_On_Body_Or_Stub. - * sem_ch10.adb: Add with and use clause for Sem_Ch13. - (Analyze_Package_Body_Stub): Add constant Id. Decorate the package stub - prior to analyzing its aspects. - (Analyze_Protected_Body_Stub): Add constant Id. Decorate the package - stub prior to analyzing its aspects. Save and restore the configuration - switches. - (Analyze_Task_Body_Stub): Add constant Id. Decorate the package stub - prior to analyzing its aspects. - * sem_ch13.adb (Analyze_Aspect_Specifications_On_Body_Or_Stub): Renamed - to Analyze_Aspects_On_Subprogram_Body_Or_Stub. - * sem_ch13.ads (Analyze_Aspect_Specifications_On_Body_Or_Stub): Renamed - to Analyze_Aspects_On_Subprogram_Body_Or_Stub. - * sem_prag.adb: Code reformatting. - (Analyze_Refined_Depends_Global_Post): Consider task body stubs. - -2018-05-21 Jerome Lambourg <lambourg@adacore.com> - - * gcc-interface/Makefile.in: Add g-soliop__qnx.ads to the runtime build - for QNX. - -2018-05-21 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_cg.adb: Remove with and use clause for Exp_Disp. - * exp_ch9.adb: Remove with and use clause for Exp_Disp. - * exp_disp.adb (Is_Predefined_Dispatching_Operation): Moved to Sem_Util. - (Is_Predefined_Interface_Primitive): Moved to Sem_Util. - (Is_Predefined_Internal_Operation): Moved to Sem_Util. - * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved to Sem_Util. - (Is_Predefined_Interface_Primitive): Moved to Sem_Util. - (Is_Predefined_Internal_Operation): Moved to Sem_Util. - * exp_dist.adb: Remove with and use clause for Exp_Disp. - * freeze.adb: Remove with and use clause for Exp_Disp. - * sem_cat.adb: Remove with and use clause for Exp_Disp. - * sem_ch6.adb: Remove with and use clause for Exp_Disp. - * sem_ch12.adb: Remove with and use clause for Exp_Disp. - * sem_elab.adb (Check_Overriding_Primitive): Do not process predefined - primitives. - * sem_util.adb: Remove with and use clause for Exp_Disp. - (Is_Predefined_Dispatching_Operation): Moved from Exp_Disp. - (Is_Predefined_Interface_Primitive): Moved from Exp_Disp. - (Is_Predefined_Internal_Operation): Moved from Exp_Disp. - * sem_util.ads (Is_Predefined_Dispatching_Operation): Moved from - Exp_Disp. - (Is_Predefined_Interface_Primitive): Moved from Exp_Disp. - (Is_Predefined_Internal_Operation): Moved from Exp_Disp. - -2018-05-21 Ed Schonberg <schonberg@adacore.com> - - * sem_res.adb (Valid_Conversion): Improve error message on an illegal - type conversion whose expression has a limited view of a type. - -2018-05-21 Ed Schonberg <schonberg@adacore.com> - - * exp_ch5.adb (Build_Formal_Container_Iteration): If source has - explicit name for iterator loop, preserve that name in expanded - construct, for possible use in exit statements. - -2018-05-21 Javier Miranda <miranda@adacore.com> - - * sem_ch4.adb (Analyze_Membership_Op): Avoid compiler crash when the - spec of a unit has Ada 2012 membership tests with multiple choices and - the unit body is not compiled under Ada 2012 mode. - -2018-05-21 Doug Rupp <rupp@adacore.com> - - * sigtramp-vxworks-target.inc: Set cfa_reg properly from sigcontext - pregs. - (CFI_COMMON_REGS): Restore LR jic probed from prologue. - (REGNO_PC_OFFSET): Change to correct value for Aarch64. - -2018-05-21 Jose Ruiz <ruiz@adacore.com> - - * doc/gnat_ugn/gnat_utility_programs.rst, exp_attr.adb, - libgnarl/s-tassta.adb: Minor typo fixes - -2018-05-21 Ed Schonberg <schonberg@adacore.com> - - * sem_ch4.adb (Analyze_One_Call): Recognize complex cases where an - indexed call originally in prefix forn is itself the prefix of a - further call. - -2018-05-21 Piotr Trojanek <trojanek@adacore.com> - - * sem_eval.adb (Is_Null_Range): Clarify access to the full view of a - type. - (Not_Null_Range): Same as above. - -2018-05-21 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch3.adb: Minor reformatting. - * exp_ch6.adb: Likewise. - * freeze.adb: Likewise. - * inline.adb: Likewise. - * sem_util.adb: Likewise. - -2018-05-21 Yannick Moy <moy@adacore.com> - - * inline.adb (Expand_Inlined_Call.Process_Formals): Use a type - conversion instead of an unchecked type conversion when inlining a - return statement, unless type qualification is required (for character - and string literal) or no check can result from the conversion (for - access types). - * opt.ads: Update comment. - -2018-05-21 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Install the elaboration - model of the compilation unit spec, if any. - * sem_ch7.adb (Analyze_Package_Body_Helper): Install the elaboration - model of the compilation unit spec, if any. - * sem_ch10.adb (Analyze_Subunit): Install the elaboration model of the - parent compilation unit spec, if any. - * sem_elab.adb (Check_Elaboration_Scenarios): Restore the elaboration - model of the main unit. - (Is_Same_Unit): The routine now uses Unit_Entity. - (Is_Subunit): Removed. - (Normalize_Unit): Removed. - (Unit_Entity): New routine. - * sem_prag.adb (Analyze_Pragma): Reimplement the handling of pragma - Elaboration_Checks. The analysis now ensures that the pragma appears at - the configuration level, and on the initial declaration of a unit. - Other placements are either flagged as illegal, or ignored. - (Check_Duplicate_Elaboration_Checks_Pragma): New routine. - (Ignore_Elaboration_Checks_Pragma): New routine. - * sem_util.adb (Install_Elaboration_Model): New routine. - * sem_util.ads (Install_Elaboration_Model): New routine. - * doc/gnat_rm/implementation_defined_pragmas.rst: Update the - documentation of pragma Elaboration_Checks. - * gnat_rm.texi: Regenerate. - -2018-05-21 Olivier Hainque <hainque@adacore.com> - - * libgnat/s-trasym__dwarf.adb (Executable_Name): Return argv[0] instead - of empty string when argv[0] couldn't be found on PATH. - (Enable_Cache): Raise Program_Error instead of attempting a null - pointer dereference when the Exec_Module initialization failed. - -2018-05-21 Piotr Trojanek <trojanek@adacore.com> - - * libgnarl/a-reatim.ads (Clock_Time): Remove External aspect. - * libgnarl/a-taside.ads (Tasking_State): Likewise. - * libgnat/a-calend.ads (Clock_Time): Likewise. - -2018-05-21 Yannick Moy <moy@adacore.com> - - * sem_ch6.adb (Analyze_Procedure_Call): Refine test to recognize prefix - call notation in inlined call in GNATprove mode. - -2018-05-21 Hristian Kirtchev <kirtchev@adacore.com> - - * einfo.adb (Is_External_State): An abstract state is also external - when it is declared with option "synchronous". - * einfo.ads: Update the documentation of synthesized attribute - Is_External_State. - * sem_util.adb (Find_Simple_Properties): New routine. - (Is_Enabled_External_Property): New routine. - (State_Has_Enabled_Property): Reimplemented. The two flavors of option - External have precedence over option Synchronous when determining - whether a property is in effect. - -2018-05-21 Yannick Moy <moy@adacore.com> - - * sem_eval.adb (Static_Length): Take into account case of variable of - subtype string literal. - -2018-05-21 Olivier Hainque <hainque@adacore.com> - - * libgnat/s-objrea.ads (Get_Memory_Bounds): Rename as Get_Xcode_Bounds. - (Object_Section): Rename Flag_Alloc component as Flag_Xcode. - * libgnat/s-objrea.adb (Get_Xcode_Bounds): Adjust to new subprogram and - component name. - (Get_Section, ELF case): Set Flag_Xcode from SHF_EXECINSTR. - * libgnat/s-dwalin.adb (Open): Adjust to the Get_Memory_Bounds name - change. - -2018-05-21 Olivier Hainque <hainque@adacore.com> - - * libgnat/s-dwalin.ads (Dwarf_Context): Change type of Load_Address to - Address, and type of Low, High to Storage_Offset. - (Low): Rename as Low_Address and convey that the return value is a - runtime reference accounting for a load address. - * libgnat/s-dwalin.adb (Read_Aranges_Entry): Adjust to the - address/offset type changes. - (Aranges_Lookup): Likewise. - (Symbolic_Address): Likewise. - (Symbolic_Traceback): Likewise. - (Dump_Cache): Likewise. - (Is_Inside): Likewise. - (Open): Likewise. - (Set_Load_Address): Likewise. - (Low_Address): Likewise, and account for C.Load_Address. - * libgnat/s-trasym__dwarf.adb (Lt): Use Low_Address instead of Low. - (Multi_Module_Symbolic_Traceback): Compare address in traceback - with module Low_Address instead of Low. - -2018-05-21 Olivier Hainque <hainque@adacore.com> - - * libgnat/s-dwalin.ads (Dwarf_Context): Rename Load_Slide as - Load_Address. - * libgnat/s-dwalin.adb (Is_Inside): Adjust accordingly. - (Set_Load_Address): Likewise. - (Symbolic_Traceback): Likewise. - -2018-05-21 Olivier Hainque <hainque@adacore.com> - - * libgnat/s-trasym__dwarf.adb (Add_Module_To_Cache): Expect a - Load_Address argument and pass it down to Init_Module. - * libgnat/s-tsmona__linux.adb (Build_Cache_For_All_Modules): Pass - lm.l_addr as the Load_Address to Add_Module_To_Cache. - -2018-05-21 Piotr Trojanek <trojanek@adacore.com> - - * einfo.adb (Has_Discriminants): Stronger assertion. - (Set_Has_Discriminants): Stronger assertion. - * sem_ch13.adb (Push_Scope_And_Install_Discriminants): Adapt to respect - the stronger assertion on Has_Discriminant. - (Uninstall_Discriminants_And_Pop_Scope): Same as above. - * sem_util.adb (New_Copy_Tree): Same as above. - * sem_ch7.adb (Generate_Parent_References): Prevent calls to - Has_Discriminant on non-type entities that might happen when the - compiled code has errors. - * sem_ch3.adb (Derived_Type_Declaration): Only call - Set_Has_Discriminant on type entities. - -2018-05-21 Arnaud Charlet <charlet@adacore.com> - - * exp_unst.adb (Unnest_Subprogram): Unnest all subprograms relevant for - code generation. - -2018-05-21 Piotr Trojanek <trojanek@adacore.com> - - * lib.ads: Fix typo in enumeration in comment. - -2018-05-21 Ed Schonberg <schonberg@adacore.com> - - * sem_attr.adb (Analyze_Attribute, case Scalar_Storage_Order): The - attribute reference is legal within a generic unit when the prefix is a - formal private type. - -2018-05-21 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch7.adb (Establish_Transient_Scope): Code cleanup. Do not - delegate the secondary stack management when there is no suitable - transient context, and the transient scope was intended to manage the - secondary stack because this causes premature reclamation. Change the - transient scope creation logic by special casing assignment statements - of controlled components for type initialization procedures. - (Find_Node_To_Be_Wrapped): Renamed to Find_Transient_Context. Update - the comment on usage. - (Find_Transient_Context): Change the initinte loop into a while loop. - Iterations schemes and iterator specifications are not valid transient - contexts because they rely on special processing. Assignment statements - are now treated as a normal transient context, special cases are - handled by the caller. Add special processing for pragma Check. - (Is_OK_Construct): Removed. Its functionality has been merged in - routine Find_Transient_Context. - * sem_ch5.adb (Check_Call): Reimplemented. Add code to properly - retrieve the subprogram being invoked. Use a more accurate predicate - (Requires_Transient_Scope) to determine that the function will emply - the secondary stack. - -2018-05-21 Piotr Trojanek <trojanek@adacore.com> - - * ada_get_targ.adb: Fix subprogram body headers. - * adabkend.adb: Likewise. - * checks.adb: Likewise. - * exp_ch3.adb: Likewise. - * exp_ch5.adb: Likewise. - * exp_ch9.adb: Likewise. - * exp_dist.adb: Likewise. - * exp_tss.adb: Likewise. - * inline.adb: Likewise. - * lib-writ.adb: Likewise. - * lib-xref-spark_specific.adb: Likewise. - * libgnarl/s-osinte__darwin.adb: Likewise. - * libgnarl/s-stusta.adb: Likewise. - * libgnarl/s-taprop__solaris.adb: Likewise. - * libgnarl/s-tposen.adb: Likewise. - * libgnarl/s-vxwext__kernel-smp.adb: Likewise. - * libgnarl/s-vxwext__kernel.adb: Likewise. - * libgnat/a-btgbso.adb: Likewise. - * libgnat/a-cfdlli.adb: Likewise. - * libgnat/a-cfhama.adb: Likewise. - * libgnat/a-cfinve.adb: Likewise. - * libgnat/a-cimutr.adb: Likewise. - * libgnat/a-coboho.adb: Likewise. - * libgnat/a-cofove.adb: Likewise. - * libgnat/a-cofuve.adb: Likewise. - * libgnat/a-comutr.adb: Likewise. - * libgnat/a-exexda.adb: Likewise. - * libgnat/a-tags.adb: Likewise. - * libgnat/a-tideau.adb: Likewise. - * libgnat/a-wtdeau.adb: Likewise. - * libgnat/a-ztdeau.adb: Likewise. - * libgnat/g-alleve.adb: Likewise. - * libgnat/s-excdeb.adb: Likewise. - * libgnat/s-parint.adb: Likewise. - * libgnat/s-shasto.adb: Likewise. - * libgnat/s-traceb__hpux.adb: Likewise. - * prepcomp.adb: Likewise. - * sem_ch4.adb: Likewise. - * sem_ch6.adb: Likewise. - * sem_dist.adb: Likewise. - * sem_prag.adb: Likewise. - * sem_util.adb: Likewise. - * sinfo.adb: Likewise. - * switch.adb: Likewise. - -2018-05-04 John Marino <gnugcc@marino.st> - - PR ada/85635 - * link.c (BSD platforms): Add missing backslash. - -2018-04-27 Eric Botcazou <ebotcazou@adacore.com> - - PR ada/85540 - * init.c (__gnat_handle_vms_condition): Add missing parentheses. - -2018-04-25 Eric Botcazou <ebotcazou@adacore.com> - - PR ada/85007 - * gnat_ugn.texi: Regenerate. - -2018-03-23 Eric Botcazou <ebotcazou@adacore.com> - - PR ada/85007 - * gnatlink.adb (Gnatlink): Remove handling of -b switch. - * doc/gnat_ugn/building_executable_programs_with_gnat.rst (gnatlink): - Remove documentation of -b switch. - -2018-03-23 Eric Botcazou <ebotcazou@adacore.com> - - PR ada/85036 - * gnatlink.adb (Process_Args): Drop existing link switches if multiple - switches are passed for --LINK. - -2018-03-12 Eric Botcazou <ebotcazou@adacore.com> - - PR ada/82813 - * gcc-interface/misc.c (gnat_post_options): Disable string overflow - warnings. - -2018-03-10 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.c (node_has_volatile_full_access) <N_Identifier>: - Consider only entities for objects. - -2018-03-07 Sebastian Huber <sebastian.huber@embedded-brains.de> - - * gcc-interface/Makefile.in (OSCONS_CPP): Remove redundant - $(GNATLIBCFLAGS). - (OSCONS_EXTRACT): Add $(GNATLIBCFLAGS_FOR_C). - -2018-03-06 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.c (convert_with_check): Fix typo in the condition - guarding the overflow check emitted for the upper bound of a floating- - point conversion. - -2018-03-06 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/utils.c (def_builtin_1): Bail out on error_mark_node. - -2018-02-28 Eric Botcazou <ebotcazou@adacore.com> - - * libgnat/i-cexten.ads (Float_128): New type. - -2018-02-02 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (array_type_has_nonaliased_component): Return - false if the component type is a pointer. - -2018-01-11 Gary Dismukes <dismukes@adacore.com> - - * exp_ch3.adb (Default_Initialize_Object): Call New_Copy_Tree on the - result of Get_Simple_Init_Value and pass the source location of the - object declaration's object_definition. - -2018-01-11 Ed Schonberg <schonberg@adacore.com> - - * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Handle - properly object declarations with initializations that are - build-in-place function calls, when there is an address specification, - either as an aspect specification or an explicit attribute - specification clause, for the initialized object. - * freeze.adb (Check_Address_Clause): Do not remove side-effects from - initial expressions in the case of a build-in-place call. - -2018-01-11 Piotr Trojanek <trojanek@adacore.com> - - * sem_eval.adb (Is_Null_Range): Retrieve the full view when called on a - private (sub)type; refactor to avoid early return statement. - (Not_Null_Range): Same as above. - -2018-01-11 Hristian Kirtchev <kirtchev@adacore.com> - - * freeze.adb (Freeze_Entity): Ensure that a Ghost type is not - concurrent, nor effectively volatile. - * ghost.adb (Check_Ghost_Type): New routine. - * ghost.ads (Check_Ghost_Type): New routine. - * sem_util.adb (Is_Declaration): Reimplemented. The routine can now - consider specific subsets of declarations. - (Is_Declaration_Other_Than_Renaming): Removed. Its functionality is - replicated by Is_Declaration. - * sem_util.ads (Is_Declaration): New parameter profile. Update the - comment on usage. - (Is_Declaration_Other_Than_Renaming): Removed. - -2018-01-11 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch5.adb (Analyze_Assignment): Assignments to variables that act - as Part_Of consituents of single protected types are illegal when they - take place inside a protected function. - (Diagnose_Non_Variable_Lhs): Use Within_Function to check for an - enclosing function. - (Is_Protected_Part_Of_Constituent): New routine. - (Within_Function): New routine. - -2018-01-11 Arnaud Charlet <charlet@adacore.com> - - Bump copyright notices to 2018. - -2018-01-11 Hristian Kirtchev <kirtchev@adacore.com> - - * binde.adb, par-ch6.adb, par-ch9.adb, sem_ch12.adb, sem_ch13.adb: - Minor reformatting. - -2018-01-11 Justin Squirek <squirek@adacore.com> - - * par-ch6.adb (Scan_Body_Or_Expression_Function): Add additional check - to make sure a given expression function is properly parenthesized. - -2018-01-11 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Check the - categorization of a subprogram body which does not complete a previous - declaration. - -2018-01-11 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch10.adb (Check_Private_Child_Unit): Ensure that the enclosing - scope of package Ada is Standard. - -2018-01-11 Ed Schonberg <schonberg@adacore.com> - - * sem_ch13.adb (Replace_Type_Ref): Handle properly reference to a - subcomponent of the current entity when building the body for a dynamic - predicate function for a record with composite subcomponents. - -2018-01-11 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_aggr.adb (Convert_Aggr_In_Object_Decl): Update the call to - Establish_Transient_Scope. - (Convert_To_Assignments): Update the call to Establish_Transient_Scope. - (Expand_Array_Aggregate): Update the call to Establish_Transient_Scope. - * exp_ch6.adb (Expand_Call_Helper): Update the call to - Establish_Transient_Scope. - (Make_Build_In_Place_Call_In_Object_Declaration): Update the call to - Establish_Transient_Scope. - * exp_ch7.adb (Establish_Transient_Scope): Restructured. Delegate the - management of the secondary stack to an enclosing scope if there is no - suitable construct to wrap, and the transient scope was intended to - manage the secondary stack. - (Find_Node_To_Be_Wrapped): Restructured. A case_statement_alternative - is a valid boundary for a transient expression which comes from the - statements of the alternative, otherwise alternatives cannot be - wrapped. Assignments of controlled objects which have controlled - actions suppressed now stop the traversal as there is no point in - looking for an enclosing construct. Add several N_xxx_Body choices to - the termination conditions for completeness. - * exp_ch7.ads (Establish_Transient_Scope): Update the parameter profile - and the associated comment on usage. - * exp_smem.adb (Add_Shared_Var_Lock_Procs): Update the call to - Establish_Transient_Scope. - (Add_Write_After): Update the call to Establish_Transient_Scope. - * sem_res.adb (Check_Initialization_Call): Removed. - (Resolve_Actuals): Account for additional cases where finalization - actions are required by utilizing predicate Needs_Finalization rather - than Is_Controlled. - (Resolve_Call): Type initialization procedures can now utilize - transient scopes to manage the secondary stack, thus preventing leaks - during initialization. Remove the previous kludgy algorithm which - attempts to manage the secondary stack at the object creation site. - -2018-01-11 Jerome Lambourg <lambourg@adacore.com> - - * libgnat/g-soliop__qnx.ads: New. - * adaint.c, adaint.h, cstreams.c, s-oscons-tmplt.c, sysdep.c: Update - for QNX. - -2018-01-11 Bob Duff <duff@adacore.com> - - * par-ch9.adb (P_Protected_Operation_Declaration_Opt): Give an error if - a null procedure occurs in a protected definition. - -2018-01-11 Bob Duff <duff@adacore.com> - - * binderr.ads, namet.ads: Minor reformatting. - -2018-01-11 Bob Duff <duff@adacore.com> - - * doc/gnat_ugn/gnat_utility_programs.rst: Improve documentation of - xml2gnat. - -2018-01-11 Bob Duff <duff@adacore.com> - - * binde.adb (Force_Elab_Order): Give an error if there are duplicate - unit names. - -2018-01-11 Ed Schonberg <schonberg@adacore.com> - - * sem_ch6.adb (Freeze_Expr_Types): If an access value is the - controlling argument of a dispatching call. freeze the corresponding - designated type. - -2018-01-11 Ben Brosgol <brosgol@adacore.com> - - * doc/Makefile: Add Sphinx option -W to treat warnings as errors. - -2018-01-11 Ben Brosgol <brosgol@adacore.com> - - * doc/gnat_rm/implementation_defined_aspects.rst: Minor type/wording - corrections. - * gnat_rm.texi: Regenerate. - -2018-01-11 Ed Schonberg <schonberg@adacore.com> - - * sem_ch12.adb (Check_Fixed_Point_Type): Do not apply check if the - formsl type corresponding to the actual fixed point type is private, - because in this case there can be no suspicious arithmetic operations - in the generic unless they reference a formal subprogram. Clarify - warning. - -2018-01-11 Javier Miranda <miranda@adacore.com> - - * exp_util.adb (Remove_Side_Effects): No action done for functions - returning class-wide types since it requires generating code using - 'reference and the CCG target has no secondary stack. - * gnat1drv.adb: Disable building static dispatch tables when generating - C code. - -2018-01-11 Piotr Trojanek <trojanek@adacore.com> - - * libgnat/a-direio.ads, libgnat/a-sequio.ads, libgnat/a-ststio.ads, - libgnat/a-textio.ads, libgnat/a-witeio.ads, libgnat/a-ztexio.ads - (File_Type): Add Default_Initial_Condition aspect. - -2018-01-11 Pascal Obry <obry@adacore.com> - - * libgnat/s-os_lib.adb (Normalize_Pathname): New implementation. - -2018-01-11 Bob Duff <duff@adacore.com> - - * doc/gnat_ugn/gnat_utility_programs.rst: Rewrite gnatpp documentation - to match what the Libadalang-based version does. - * doc/gnat_ugn/about_this_guide.rst: Update reference. - -2018-01-11 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_res.adb (Uses_SS): A controlled type requires the secondary stack - if it contains at least one component declaration employing a function - call returning on the secondary stack. - -2018-01-11 Yannick Moy <moy@adacore.com> - - * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst: - Update description of restriction SPARK_05 with SPARK 2014. - * gnat_rm.texi: Regenerate. - -2018-01-11 Vasiliy Fofanov <fofanov@adacore.com> - - * doc/gnat_ugn/gnat_utility_programs.rst: Fix layout. - -2018-01-11 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_aggr.adb, exp_ch9.adb, exp_util.adb, sem_aggr.adb, sem_ch3.adb, - sem_res.adb, sem_util.adb: Minor reformatting. - -2018-01-11 Ed Schonberg <schonberg@adacore.com> - - * sem_prag.adb (Analyze_Pragma, case Predicate): Indicate that the type - has a delayed aspect which must be processed at the point the type is - frozen. This mimics what is done when the predicate is provided by a - source aspect. - -2018-01-11 Doug Rupp <rupp@adacore.com> - - * init.c (vxworks): Add macro checks for __aarch64__. - -2018-01-11 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_util.adb (Add_Failure_Expression): New routine. - (Make_Predicate_Check): Reimplement the handling of Predicate_Failure. - * sem_util.adb (Is_Current_Instance): Code cleanup. - -2018-01-11 Patrick Bernardi <bernardi@adacore.com> - - * libgnat/s-parame*.adb, libgnat/s-parame*.ads: Remove unneeded - Default_Sec_Stack_Size. - * libgnat/s-secsta.adb (SS_Allocate): Handle the fixed secondary stack - limit check so that the integer index does not overflow. Check the - dynamic stack allocation does not cause the secondary stack pointer to - overflow. - (SS_Info): Align colons. - (SS_Init): Cover the case when bootstraping with an old compiler that - does not set Default_SS_Size. - -2018-01-11 Ed Schonberg <schonberg@adacore.com> - - * sem_ch3.adb (Add_Internal_Interface_Entities): When checking the - legality of an inherited operation that may require overriding, ignore - primitive_wrappers that correspond to explicit operations that override - an interface primitive. - * exp_util.adb (Build_Class_Wide_Expression, Replace_Entity): If the - operation to which the class-wide expression applies is a protected op. - with a primitive_wrapper, verify that the updated inherited expression - does not contain an internal call to a protected function. This - completes the implementation of AI12-0166. - -2018-01-11 Hristian Kirtchev <kirtchev@adacore.com> - - * ali.adb: Document the remaining letters available for ALI lines. - (Scan_ALI): A with clause is internal when it is encoded on a 'Z' line. - * ali.ads: Update type With_Record. Field - Implicit_With_From_Instantiation is no longer in use. Add field - Implicit_With. - * csinfo.adb (CSinfo): Remove the setup for attribute - Implicit_With_From_Instantiation. - * lib-writ.adb (Collect_Withs): Correct the logic which marks a unit as - either implicitly or explicitly withed. - (Is_Implicit_With_Clause): New routine. - (Write_ALI): Rename array Implicit_With to Has_Implicit_With to avoid - confusion with the with clause attribute by the same name. - (Write_With_Lines): Update the emission of 'W', 'Y', and 'Z' headers. - * rtsfind.adb (Maybe_Add_With): Code cleanup. - * sem_ch8.adb (Present_System_Aux): Code cleanup. - * sem_ch10.adb (Expand_With_Clause): Mark the with clause as generated - for a parent unit. - (Implicit_With_On_Parent): Mark the with clause as generated for a - parent unit. - * sem_ch12.adb (Inherit_Context): With clauses inherited by an - instantiation are no longer marked as Implicit_With_From_Instantiation - because they are already marked as implicit. - * sem_elab.adb (Ensure_Prior_Elaboration_Static): Remove the kludge - which marks implicit with clauses as related to an instantiation. - * sinfo.adb (Implicit_With_From_Instantiation): Removed. - (Parent_With): New routine. - (Set_Implicit_With_From_Instantiation): Removed. - (Set_Parent_With): New routine. - * sinfo.ads: Update the documentation of attribute Implicit_With. - Remove attribute Implicit_With_From_Instantiation along with - occurrences in nodes. Add attribute Parent_With along with occurrences - in nodes. - (Implicit_With_From_Instantiation): Removed along with pragma Inline. - (Parent_With): New routine along with pragma Inline. - (Set_Implicit_With_From_Instantiation): Removed along with pragma Inline. - (Set_Parent_With): New routine along with pragma Inline. - -2018-01-11 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_util.adb (Find_Enclosing_Scope): Return the unique defining - entity when the enclosing construct is a body. - -2018-01-11 Patrick Bernardi <bernardi@adacore.com> - - * exp_ch9.adb (Expand_N_Task_Type_Declaration): Simplified - Secondary_Stack_Size handling as a pragma is now generated for the - corresponding aspect instead of an attribute. Pragma expression is - relocated instead of evaluated. Discriminant of the corresponding - record type is referenced rather than the type discriminant. - (Create_Secondary_Stack_For_Task, Make_Task_Create_Call): Update - Secondary_Stack_Size rep item checks to only look for the pragma rep. - * sem_ch13.adb (Analyze_One_Aspect): Transform - Aspect_Secondary_Stack_Size into a pragma instead of an attribute - because the attribute does not have visibility on a task type's - discriminants when the type's definition is expanded. - (Analyze_Attribute_Definition_Clause): Remove handling of - Attribute_Secondary_Stack_Size. - * snames.adb-tmpl, snames.ads-tmpl: Remove - Attribute_Secondary_Stack_Size, no longer used. - -2018-01-11 Justin Squirek <squirek@adacore.com> - - * sem_ch8.adb: Minor comment fix. - -2018-01-11 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch4.adb (Process_Action): Do not abandon the inspection of an - individual action because the action may denote a complex expression, - such as a case statement, which in turn may contain additional - transient objects. - -2018-01-11 Ed Schonberg <schonberg@adacore.com> - - * sem_aggr.adb (Resolve_Iterated_Component_Association): Perform - analysis on a copy of the expression with a copy of the index variable, - because full expansion will rewrite construct into a loop with the - original loop variable. - * exp_aggr.adb (Gen_Assign): Defer analysis and resolution if the - expression is an iterated component association. Full analysis takes - place when construct is rewritten as a loop. - (In_Place_Assign_OK, Safe_Component): An iterated_component_association - is not safe for in-place assignment. - * sem_util.adb (Remove_Entity): Handle properly the case of an isolated - entity with no homonym and no other entity in the scope. - -2018-01-11 Justin Squirek <squirek@adacore.com> - - * sem_prag.adb (Analyze_Pragma:Pragma_Loop_Variant): Modify error - message to be printed on the pragma argument identifier. - -2018-01-11 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_util.adb (Build_Invariant_Procedure_Declaration): Set the last - entity of the generated invariant procedure in order to construct a - proper entity chain. - -2018-01-11 Piotr Trojanek <trojanek@adacore.com> - - * sem_ch13.adb (Build_Predicate_Functions): Fix minor issues in - comment. - -2018-01-11 Arnaud Charlet <charlet@adacore.com> - - * einfo.ads, einfo.adb (Activation_Record_Component, - Set_Activation_Record_Component, Set_Is_Uplevel_Referenced_Entity): - Allow E_Discriminant. - -2018-01-10 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (gnat_to_gnu_component_type): Apply the check - for atomic access once the component size is taken into account and - also do it if the component type is Atomic or Volatile_Full_Access. - -2018-01-04 Eric Botcazou <ebotcazou@adacore.com> - - * gnatvsn.ads: Bump copyright year. - -2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> - Alan Hayward <alan.hayward@arm.com> - David Sherwood <david.sherwood@arm.com> - - * gcc-interface/misc.c (enumerate_modes): Treat GET_MODE_BITSIZE - as polynomial. - -2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> - Alan Hayward <alan.hayward@arm.com> - David Sherwood <david.sherwood@arm.com> - - * gcc-interface/misc.c (enumerate_modes): Treat GET_MODE_PRECISION - as polynomial. - -2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> - Alan Hayward <alan.hayward@arm.com> - David Sherwood <david.sherwood@arm.com> - - * gcc-interface/utils.c (gnat_types_compatible_p): Handle - polynomial TYPE_VECTOR_SUBPARTS. - -2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> - Alan Hayward <alan.hayward@arm.com> - David Sherwood <david.sherwood@arm.com> - - * gcc-interface/misc.c (enumerate_modes): Handle polynomial - GET_MODE_NUNITS. - -2018-01-03 Jakub Jelinek <jakub@redhat.com> - - Update copyright years. +2019-01-01 Jakub Jelinek <jakub@redhat.com> * gnat_ugn.texi: Bump @copying's copyright year. * gnat_rm.texi: Likewise. -Copyright (C) 2018 Free Software Foundation, Inc. +Copyright (C) 2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright |