| 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> |
<
|