Mercurial > hg > CbC > CbC_gcc
diff gcc/ada/ChangeLog @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children | 1830386684a0 |
line wrap: on
line diff
--- a/gcc/ada/ChangeLog Fri Oct 27 22:46:09 2017 +0900 +++ b/gcc/ada/ChangeLog Thu Oct 25 07:37:49 2018 +0900 @@ -1,10915 +1,4763 @@ -2017-10-21 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/Makefile.in: Remove bogus settings for VxWorks. - -2017-10-21 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/utils.c (pad_type_hash): Use hashval_t for hash value. - (convert): Do not use an unchecked conversion for converting from a - type to another type padding it. - -2017-10-20 Doug Rupp <rupp@adacore.com> - - * libgnarl/s-osinte__linux.ads (Relative_Timed_Wait): Add variable - needed for using monotonic clock. - * libgnarl/s-taprop__linux.adb: Revert previous monotonic clock - changes. - * libgnarl/s-taprop__linux.adb, s-taprop__posix.adb: Unify and factor - out monotonic clock related functions body. - (Timed_Sleep, Timed_Delay, Montonic_Clock, RT_Resolution, - Compute_Deadline): Move to... - * libgnarl/s-tpopmo.adb: ... here. New separate package body. - -2017-10-20 Ed Schonberg <schonberg@adacore.com> - - * sem_util.adb (Is_Controlling_Limited_Procedure): Handle properly the - case where the controlling formal is an anonymous access to interface - type. - * exp_ch9.adb (Extract_Dispatching_Call): If controlling actual is an - access type, handle properly the the constructed dereference that - designates the object used in the rewritten synchronized call. - (Parameter_Block_Pack): If the type of the actual is by-copy, its - generated declaration in the parameter block does not need an - initialization even if the type is a null-excluding access type, - because it will be initialized with the value of the actual later on. - (Parameter_Block_Pack): Do not add controlling actual to parameter - block when its type is by-copy. - -2017-10-20 Justin Squirek <squirek@adacore.com> - - * sem_ch8.adb (Update_Use_Clause_Chain): Add sanity check to verify - scope stack traversal into the context clause. - -2017-10-20 Bob Duff <duff@adacore.com> - - * sinfo.ads: Fix a comment typo. - -2017-10-20 Eric Botcazou <ebotcazou@adacore.com> - - * doc/gnat_ugn/building_executable_programs_with_gnat.rst (-flto): Add - warning against usage in conjunction with -gnatn. - (-fdump-xref): Delete entry. - * doc/gnat_ugn/gnat_utility_programs.rst (--ext): Remove mention of - -fdump-xref switch. - * gnat_ugn.texi: Regenerate. - -2017-10-20 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_type.adb, exp_util.adb, sem_util.adb, sem_dim.adb, sem_elab.adb: - Minor reformatting. - -2017-10-20 Yannick Moy <moy@adacore.com> - - * sem_dim.adb (Analyze_Dimension_Binary_Op): Accept with a warning to - compare a dimensioned expression with a literal. - (Dim_Warning_For_Numeric_Literal): Do not issue a warning for the - special value zero. - * doc/gnat_ugn/gnat_and_program_execution.rst: Update description of - dimensionality system in GNAT. - * gnat_ugn.texi: Regenerate. - -2017-10-20 Yannick Moy <moy@adacore.com> - - * sem_ch6.adb (Analyze_Expression_Function.Freeze_Expr_Types): Remove - inadequate silencing of errors. - * sem_util.adb (Check_Part_Of_Reference): Do not issue an error when - checking the subprogram body generated from an expression function, - when this is done as part of the preanalysis done on expression - functions, as the subprogram body may not yet be attached in the AST. - The error if any will be issued later during the analysis of the body. - (Is_Aliased_View): Trivial rewrite with Is_Formal_Object. - -2017-10-20 Arnaud Charlet <charlet@adacore.com> - - * sem_ch8.adb (Update_Chain_In_Scope): Add missing [-gnatwu] marker for - warning on ineffective use clause. - -2017-10-20 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch11.ads (Warn_If_No_Local_Raise): Declare. - * exp_ch11.adb (Expand_Exception_Handlers): Use Warn_If_No_Local_Raise - to issue the warning on the absence of local raise. - (Possible_Local_Raise): Do not issue the warning for Call_Markers. - (Warn_If_No_Local_Raise): New procedure to issue the warning on the - absence of local raise. - * sem_elab.adb: Add with and use clauses for Exp_Ch11. - (Record_Elaboration_Scenario): Call Possible_Local_Raise in the cases - where a scenario could give rise to raising Program_Error. - * sem_elab.adb: Typo fixes. - * fe.h (Warn_If_No_Local_Raise): Declare. - * gcc-interface/gigi.h (get_exception_label): Change return type. - * gcc-interface/trans.c (gnu_constraint_error_label_stack): Change to - simple vector of Entity_Id. - (gnu_storage_error_label_stack): Likewise. - (gnu_program_error_label_stack): Likewise. - (gigi): Adjust to above changes. - (Raise_Error_to_gnu): Likewise. - (gnat_to_gnu) <N_Goto_Statement>: Set TREE_USED on the label. - (N_Push_Constraint_Error_Label): Push the label onto the stack. - (N_Push_Storage_Error_Label): Likewise. - (N_Push_Program_Error_Label): Likewise. - (N_Pop_Constraint_Error_Label): Pop the label from the stack and issue - a warning on the absence of local raise. - (N_Pop_Storage_Error_Label): Likewise. - (N_Pop_Program_Error_Label): Likewise. - (push_exception_label_stack): Delete. - (get_exception_label): Change return type to Entity_Id and adjust. - * gcc-interface/utils2.c (build_goto_raise): Change type of first - parameter to Entity_Id and adjust. Set TREE_USED on the label. - (build_call_raise): Adjust calls to get_exception_label and also - build_goto_raise. - (build_call_raise_column): Likewise. - (build_call_raise_range): Likewise. - * doc/gnat_ugn/building_executable_programs_with_gnat.rst (-gnatw.x): - Document actual default behavior. - -2017-10-20 Piotr Trojanek <trojanek@adacore.com> - - * einfo.ads: Minor consistent punctuation in comment. All numbered - items in the comment of Is_Internal are now terminated with a period. - -2017-10-20 Piotr Trojanek <trojanek@adacore.com> - - * exp_util.adb (Build_Temporary): Mark created temporary entity as - internal. - -2017-10-20 Piotr Trojanek <trojanek@adacore.com> - - * sem_type.adb (In_Generic_Actual): Simplified. - -2017-10-20 Justin Squirek <squirek@adacore.com> - - * sem_ch12.adb (Check_Formal_Package_Instance): Add sanity check to - verify a renaming exists for a generic formal before comparing it to - the actual as defaulted formals will not have a renamed_object. - -2017-10-20 Javier Miranda <miranda@adacore.com> - - * exp_ch6.adb (Replace_Returns): Fix wrong management of - N_Block_Statement nodes. - -2017-10-20 Bob Duff <duff@adacore.com> - - * exp_aggr.adb (Initialize_Array_Component): Avoid adjusting a - component of an array aggregate if it is initialized by a - build-in-place function call. - * exp_ch6.adb (Is_Build_In_Place_Result_Type): Use -gnatd.9 to disable - bip for nonlimited types. - * debug.adb: Document -gnatd.9. - -2017-10-20 Bob Duff <duff@adacore.com> - - * sem_ch12.adb: Remove redundant setting of Parent. - -2017-10-20 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch4.adb (Find_Concatenation_Types): Filter out operators if one - of the operands is a string literal. - -2017-10-20 Bob Duff <duff@adacore.com> - - * einfo.ads: Comment fix. - -2017-10-20 Clement Fumex <fumex@adacore.com> - - * switch-c.adb: Remove -gnatwm from the switches triggered by -gnateC. - -2017-10-20 Ed Schonberg <schonberg@adacore.com> - - * sem_dim.adb (Extract_Power): Accept dimension values that are not - non-negative integers when the dimensioned base type is an Integer - type. - -2017-10-20 Bob Duff <duff@adacore.com> - - * sinfo.ads, sinfo.adb (Alloc_For_BIP_Return): New flag to indicate - that an allocator came from a b-i-p return statement. - * exp_ch4.adb (Expand_Allocator_Expression): Avoid adjusting the return - object of a nonlimited build-in-place function call. - * exp_ch6.adb (Expand_N_Extended_Return_Statement): Set the - Alloc_For_BIP_Return flag on generated allocators. - * sem_ch5.adb (Analyze_Assignment): Move Assert to where it can't fail. - If the N_Assignment_Statement has been transformed into something else, - then Should_Transform_BIP_Assignment won't work. - * exp_ch3.adb (Expand_N_Object_Declaration): A previous revision said, - "Remove Adjust if we're building the return object of an extended - return statement in place." Back out that part of the change, because - the Alloc_For_BIP_Return flag is now used for that. - -2017-10-19 Bob Duff <duff@adacore.com> - - * exp_ch6.adb (Is_Build_In_Place_Result_Type): Fix silly bug -- "Typ" - should be "T". Handle case of a subtype of a class-wide type. - -2017-10-19 Bob Duff <duff@adacore.com> - - * exp_util.adb: (Process_Statements_For_Controlled_Objects): Clarify - which node kinds can legitimately be ignored, and raise Program_Error - for others. - -2017-10-19 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_elab.adb (Compilation_Unit): Handle the case of a subprogram - instantiation that acts as a compilation unit. - (Find_Code_Unit): Reimplemented. - (Find_Top_Unit): Reimplemented. - (Find_Unit_Entity): New routine. - (Process_Instantiation_SPARK): Correct the elaboration requirement a - package instantiation imposes on a unit. - -2017-10-19 Bob Duff <duff@adacore.com> - - * exp_ch6.adb (Is_Build_In_Place_Result_Type): Enable build-in-place - for a narrow set of controlled types. - -2017-10-19 Eric Botcazou <ebotcazou@adacore.com> - - * sinput.ads (Line_Start): Add pragma Inline. - * widechar.ads (Is_Start_Of_Wide_Char): Likewise. - -2017-10-19 Bob Duff <duff@adacore.com> - - * exp_attr.adb (Expand_N_Attribute_Reference): Disable - Make_Build_In_Place_Call_... for F(...)'Old, where F(...) is a - build-in-place function call so that the temp is declared in the right - place. - -2017-10-18 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/misc.c (gnat_tree_size): Move around. - - * gcc-interface/utils.c (max_size): Deal with SSA names. - -2017-10-17 Jakub Jelinek <jakub@redhat.com> - - * gcc-interface/misc.c (gnat_tree_size): New function. - (LANG_HOOKS_TREE_SIZE): Redefine. - -2017-10-14 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_elab.adb (In_Preelaborated_Context): A generic package subject to - Remote_Call_Interface is not a suitable preelaboratd context when the - call appears in the package body. - -2017-10-14 Eric Botcazou <ebotcazou@adacore.com> - - * layout.ads (Set_Elem_Alignment): Add Align parameter defaulted to 0. - * layout.adb (Set_Elem_Alignment): Likewise. Use M name as maximum - alignment for consistency. If Align is non-zero, use the minimum of - Align and M for the alignment. - * cstand.adb (Build_Float_Type): Use Set_Elem_Alignment instead of - setting the alignment directly. - -2017-10-14 Ed Schonberg <schonberg@adacore.com> - - * sem_prag.adb (Analyze_Pragma, case Check): Defer evaluation of the - optional string in an Assert pragma until the expansion of the pragma - has rewritten it as a conditional statement, so that the string - argument is only evaluaed if the assertion fails. This is mandated by - RM 11.4.2. - -2017-10-14 Hristian Kirtchev <kirtchev@adacore.com> - - * debug.adb: Switch -gnatd.v and associated flag are now used to - enforce the SPARK rules for elaboration in SPARK code. - * sem_elab.adb: Describe switch -gnatd.v. - (Process_Call): Verify the SPARK rules only when -gnatd.v is in effect. - (Process_Instantiation): Verify the SPARK rules only when -gnatd.v is - in effect. - (Process_Variable_Assignment): Clarify why variable assignments are - processed reglardless of whether -gnatd.v is in effect. - * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update the - sections on elaboration code and compilation switches. - * gnat_ugn.texi: Regenerate. - -2017-10-14 Gary Dismukes <dismukes@adacore.com> - - * exp_util.adb, freeze.adb, sem_aggr.adb, sem_util.ads, sem_util.adb, - sem_warn.adb: Minor reformattings. - -2017-10-14 Ed Schonberg <schonberg@adacore.com> - - * doc/gnat_rm/implementation_defined_aspects.rst: Add documentation - for reverse iteration over formal containers. +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. -2017-10-14 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_elab.adb (Ensure_Dynamic_Prior_Elaboration): Renamed to - Ensure_Prior_Elaboration_Dynamic for consistency reasons. - (Ensure_Static_Prior_Elaboration): Renamed to - Ensure_Prior_Elaboration_Static for consistency reasons. - (Info_Variable_Reference): Renamed to Info_Variable_Read in order to - reflect its new purpose. - (Is_Initialized): New routine. - (Is_Suitable_Variable_Reference): Renamed to Is_Suitable_Variable_Read - in order to reflect its new purpose. - (Is_Variable_Read): New routine. - (Output_Variable_Reference): Renamed to Output_Variable_Read in order - to reflect its new purpose. - (Process_Variable_Assignment): This routine now acts as a top level - dispatcher for variable assignments. - (Process_Variable_Assignment_Ada): New routine. - (Process_Variable_Assignment_SPARK): New routine. - (Process_Variable_Reference): Renamed to Process_Variable_Read in order - to reflects its new purpose. A reference to a variable is now suitable - for ABE processing only when it is a read. The logic in the routine now - reflects the latest SPARK elaboration rules. - -2017-10-14 Justin Squirek <squirek@adacore.com> - - * sem_ch8.adb (Analyze_Subprogram_Renaming): Modify condition that - triggers marking on formal subprograms. - -2017-10-14 Javier Miranda <miranda@adacore.com> - - * checks.adb (Ensure_Valid): Do not skip adding the validity check on - renamings of objects that come from the sources. - -2017-10-14 Eric Botcazou <ebotcazou@adacore.com> - - * cstand.adb (Build_Float_Type): Move down Siz parameter, add Align - parameter and set the alignment of the type to Align. - (Copy_Float_Type): Adjust call to Build_Float_Type. - (Register_Float_Type): Add pragma Unreferenced for Precision. Adjust - call to Build_Float_Type and do not set RM_Size and Alignment. - -2017-10-14 Patrick Bernardi <bernardi@adacore.com> - - * Makefile.rtl (GNATRTL_NONTASKING_OBJ): Add s-soliin to - GNATRTL_NONTASKING_OBJ. - -2017-10-14 Bob Duff <duff@adacore.com> - - * exp_ch6.adb (Is_Build_In_Place_Result_Type): Include code for - enabling b-i-p for nonlimited controlled types (but disabled). - -2017-10-14 Justin Squirek <squirek@adacore.com> - - * sem_elab.adb (Is_Suitable_Variable_Assignment): Replace call to - Has_Warnings_Off with Warnings_Off. - -2017-10-14 Piotr Trojanek <trojanek@adacore.com> - - * sinfo.ads (Generic_Parent): Remove wrong (possibly obsolete) comment. - -2017-10-14 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch3.adb (Analyze_Declarations): Analyze the contract of an - enclosing package at the end of the visible declarations. - * sem_prag.adb (Analyze_Initialization_Item): Suppress the analysis of - an initialization item which is undefined due to some illegality. - -2017-10-14 Patrick Bernardi <bernardi@adacore.com> - - * ali.adb: Add new ALI line 'T' to read the number of tasks contain - within each unit that require a default-sized primary and secondary - stack to be generated by the binder. - (Scan_ALI): Scan new 'T' lines. - * ali.ads: Add Primary_Stack_Count and Sec_Stack_Count to Unit_Record. - * bindgen.adb (Gen_Output_File): Count the number of default-sized - stacks within the closure that are to be created by the binder. - (Gen_Adainit, Gen_Output_File_Ada): Generate default-sized secondary - stacks and record these in System.Secodnary_Stack. - (Resolve_Binder_Options): Check if System.Secondary_Stack is in the - closure of the program being bound. - * bindusg.adb (Display): Add "-Q" switch. Remove rouge "--RTS" comment. - * exp_ch3.adb (Count_Default_Sized_Task_Stacks): New routine. - (Expand_N_Object_Declaration): Count the number of default-sized stacks - used by task objects contained within the object whose declaration is - being expanded. Only performed when either the restrictions - No_Implicit_Heap_Allocations or No_Implicit_Task_Allocations are in - effect. - * exp_ch9.adb (Create_Secondary_Stack_For_Task): New routine. - (Expand_N_Task_Type_Declaration): Create a secondary stack as part of - the expansion of a task type if the size of the stack is known at - run-time and the restrictions No_Implicit_Heap_Allocations or - No_Implicit_Task_Allocations are in effect. - (Make_Task_Create_Call): If using a restricted profile provide - secondary stack parameter: either the statically created stack or null. - * lib-load.adb (Create_Dummy_Package_Unit, Load_Unit, - Load_Main_Source): Include Primary_Stack_Count and Sec_Stack_Count in - Unit_Record initialization expressions. - * lib-writ.adb (Add_Preprocessing_Dependency, - Ensure_System_Dependency): Include Primary_Stack_Count and - Sec_Stack_Count in Unit_Record initialization expression. - (Write_ALI): Write T lines. - (Write_Unit_Information): Do not output 'T' lines if there are no - stacks for the binder to generate. - * lib-writ.ads: Updated library information documentation to include - new T line entry. - * lib.adb (Increment_Primary_Stack_Count): New routine. - (Increment_Sec_Stack_Count): New routine. - (Primary_Stack_Count): New routine. - (Sec_Stack_Count): New routine. - * lib.ads: Add Primary_Stack_Count and Sec_Stack_Count components to - Unit_Record and updated documentation. - (Increment_Primary_Stack_Count): New routine along with pragma Inline. - (Increment_Sec_Stack_Count): New routine along with pragma Inline. - (Primary_Stack_Count): New routine along with pragma Inline. - (Sec_Stack_Count): New routine along with pragma Inline. - * opt.ads: New constant No_Stack_Size. Flag Default_Stack_Size - redefined. New flag Default_Sec_Stack_Size and - Quantity_Of_Default_Size_Sec_Stacks. - * rtfinal.c Fixed erroneous comment. - * rtsfind.ads: Moved RE_Default_Secondary_Stack_Size from - System.Secondary_Stack to System.Parameters. Add RE_SS_Stack. - * sem_util.adb (Number_Of_Elements_In_Array): New routine. - * sem_util.ads (Number_Of_Elements_In_Array): New routine. - * switch-b.adb (Scan_Binder_Switches): Scan "-Q" switch. - * libgnarl/s-solita.adb (Get_Sec_Stack_Addr): Removed routine. - (Set_Sec_Stack_Addr): Removed routine. - (Get_Sec_Stack): New routine. - (Set_Sec_Stack): New routine. - (Init_Tasking_Soft_Links): Update System.Soft_Links reference to - reflect new procedure and global names. - * libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb, - libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__solaris.adb, - libgnarl/s-taprop__vxworks.adb (Register_Foreign_Thread): Update - parameter profile to allow the secondary stack size to be specified. - * libgnarl/s-tarest.adb (Create_Restricted_Task): Update the parameter - profile to include Sec_Stack_Address. Update Tasking.Initialize_ATCB - call to remove Secondary_Stack_Size reference. Add secondary stack - address and size to SSL.Create_TSD call. - (Task_Wrapper): Remove secondary stack creation. - * libgnarl/s-tarest.ads (Create_Restricted_Task, - Create_Restricted_Task_Sequential): Update parameter profile to include - Sec_Stack_Address and clarify the Size parameter. - * libgnarl/s-taskin.adb (Initialize_ATCB): Remove Secondary_Stack_Size - from profile and body. - (Initialize): Remove Secondary_Stack_Size from Initialize_ATCB call. - * libgnarl/s-taskin.ads: Removed component Secondary_Stack_Size from - Common_ATCB. - (Initialize_ATCB): Update the parameter profile to remove - Secondary_Stack_Size. - * libgnarl/s-tassta.adb (Create_Task): Updated parameter profile and - call to Initialize_ATCB. Add secondary stack address and size to - SSL.Create_TSD call, and catch any storage exception from the call. - (Finalize_Global_Tasks): Update System.Soft_Links references to reflect - new subprogram and component names. - (Task_Wrapper): Remove secondary stack creation. - (Vulnerable_Complete_Master): Update to reflect TSD changes. - * libgnarl/s-tassta.ads: Reformat comments. - (Create_Task): Update parameter profile. - * libgnarl/s-tporft.adb (Register_Foreign_Thread): Update parameter - profile to include secondary stack size. Remove secondary size - parameter from Initialize_ATCB call and add it to Create_TSD call. - * libgnat/s-parame.adb, libgnat/s-parame__rtems.adb, - libgnat/s-parame__vxworks.adb (Default_Sec_Stack_Size): New routine. - * libgnat/s-parame.ads, libgnat/s-parame__ae653.ads, - libgnat/s-parame__hpux.ads, libgnat/s-parame__vxworks.ads: Remove type - Percentage. Remove constants Dynamic, Sec_Stack_Percentage and - Sec_Stack_Dynamic. Add constant Runtime_Default_Sec_Stack_Size and - Sec_Stack_Dynamic. - (Default_Sec_Stack_Size): New routine. - * libgnat/s-secsta.adb, libgnat/s-secsta.ads: New implementation. Is - now Preelaborate. - * libgnat/s-soflin.adb: Removed unused with-clauses. With - System.Soft_Links.Initialize to initialize non-tasking TSD. - (Create_TSD): Update parameter profile. Initialize the TSD and - unconditionally call SS_Init. - (Destroy_TSD): Update SST.SS_Free call. - (Get_Sec_Stack_Addr_NT, Get_Sec_Stack_Addr_Soft, Set_Sec_Stack_Addr_NT, - Set_Sec_Stack_Addr_Soft): Remove routines. - (Get_Sec_Stack_NT, Get_Sec_Stack_Soft, Set_Sec_Stack_NT, - Set_Sec_Stack_Soft): Add routines. - (NT_TSD): Move to private part of package specification. - * libgnat/s-soflin.ads: New types Get_Stack_Call and Set_Stack_Call - with suppressed access checks. Renamed *_Sec_Stack_Addr_* routines and - objects to *_Sec_Stack_*. TSD: removed warning suppression and - component intialization. Changed Sec_Stack_Addr to Sec_Stack_Ptr. - (Create_TSD): Update parameter profile. - (NT_TSD): Move to private section from body. - * libgnat/s-soliin.adb, libgnat/s-soliin.ads: New files. - * libgnat/s-thread.ads (Thread_Body_Enter): Update parameter profile. - * libgnat/s-thread__ae653.adb (Get_Sec_Stack_Addr, Set_Sec_Stack_Addr): - Remove routine. - (Get_Sec_Stack, Set_Sec_Stack): Add routine. - (Thread_Body_Enter): Update parameter profile and body to adapt to new - System.Secondary_Stack. - (Init_RTS): Update body for new System.Soft_Links names. - * gcc-interface/Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add - s-soliin.o. - -2017-10-10 Richard Sandiford <richard.sandiford@linaro.org> - - * gcc-interface/decl.c (annotate_value): Use wi::to_wide when - operating on trees as wide_ints. - -2017-10-09 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_unit.adb (Find_Enclosing_Scope): Do not treat a block statement - as a scoping construct when it is byproduct of exception handling. - -2017-10-09 Hristian Kirtchev <kirtchev@adacore.com> - - * sinfo.ads: Update table Is_Syntactic_Field to reflect the nature of - semantic field Target of node N_Call_Marker. - -2017-10-09 Ed Schonberg <schonberg@adacore.com> - - * sem_res.adb (Resolve_Allocator): Reject properly an allocator that - attempts to copy a limited value, when the allocator is the expression - in an expression function. - -2017-10-09 Joel Brobecker <brobecker@adacore.com> - - * doc/share/conf.py: Tell the style checker that this is a Python - fragment, and therefore that pyflakes should not be run to validate - this file. - -2017-10-09 Eric Botcazou <ebotcazou@adacore.com> - - * einfo.ads (Is_Boolean_Type): Add pragma Inline. - (Is_Entity_Name): Likewise. - (Is_String_Type): Likewise. - * sem_type.adb (Full_View_Covers): Do not test Is_Private_Type here - and remove useless comparisons on the base types. - (Covers): Use simple tests for Standard_Void_Type. Move up cheap tests - on T2. Always test Is_Private_Type before Full_View_Covers. - -2017-10-09 Bob Duff <duff@adacore.com> - - * exp_ch4.adb: Minor refactoring. - -2017-10-09 Javier Miranda <miranda@adacore.com> - - * sem_ch3.adb (Replace_Components): Browse the list of discriminants, - not components. - -2017-10-09 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_elab.adb (Static_Elaboration_Checks): Elaboration requirements - are verified only in the static model. - -2017-10-09 Ed Schonberg <schonberg@adacore.com> - - * sem_ch5.adb (Analyze_Iterator_Specification, - Check_Reverse_Iteration): Check that the domain of iteration supports - reverse iteration when it is a formal container. This requires the - presence of a Previous primitive in the Iterable aspect. - * sem_ch13.adb (Resolve_Iterable_Operation): Verify legality of - primitives Last and Previous to support reverse iteration over formal - containers. - (Validate_Iterable_Aspect): Add check for reverse iteration operations. - * exp_ch5.adb (Build_Formal_Container_Iteration): Add proper expansion - for reverse iteration using primitives Last and Previous in generated - loop. - -2017-10-09 Ed Schonberg <schonberg@adacore.com> - - * sem_util.adb (Subprogram_Name): If this is a child unit, use the name - of the Defining_Program_Unit_Name, which is an identifier, in order to - construct the string for the fully qualified name. - -2017-10-09 Justin Squirek <squirek@adacore.com> - - * sem_ch3.adb: Rename Uses_Unseen_Priv into - Contains_Lib_Incomplete_Type. - -2017-10-09 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_aggr.adb, sem_spark.adb, adabkend.adb, exp_ch5.adb, frontend.adb, - sem_ch12.adb, fmap.adb, exp_ch6.adb, exp_spark.adb, lib-load.adb, - exp_ch9.adb, osint.adb, exp_disp.adb, sem_ch8.adb, sem_ch8.ads, - prepcomp.adb, gnat1drv.adb, atree.adb, sinput-l.adb, targparm.adb, - sem_ch10.adb, par-ch8.adb: Minor reformatting. - -2017-10-09 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_elab.adb (Is_Suitable_Access): This scenario is now only relevant - in the static model. - (Is_Suitable_Variable_Assignment): This scenario is now only relevant - in the static model. - (Is_Suitable_Variable_Reference): This scenario is now only relevant in - the static model. - -2017-10-09 Ed Schonberg <schonberg@adacore.com> - - * sem_ch3.adb (Analyze_Declarations): In ASIS mode, resolve aspect - expressions when the enclosing scope is a subprogram body and the next - declaration is a body that freezes entities previously declared in the - scope. - -2017-10-09 Justin Squirek <squirek@adacore.com> - - * sem_ch8.adb (Analyze_Use_Package): Remove checking of mixture between - ghost packages and living packages in use clauses. - (Use_One_Type, Note_Redundant_Use): Correct warning messages - -2017-10-09 Justin Squirek <squirek@adacore.com> - - * osint.ads: Document new parameter FD for Read_Source_File. - -2017-10-09 Ed Schonberg <schonberg@adacore.com> - - * exp_util.adb (Make_Predicate_Call): If the type of the expression to - which the predicate check applies is tagged, convert the expression to - that type. This is in most cases a no-op, but is relevant if the - expression is clas-swide, because the predicate function being invoked - is not a primitive of the type and cannot take a class-wide actual. - -2017-10-09 Gary Dismukes <dismukes@adacore.com> - - * exp_disp.adb: Minor reformatting. - -2017-10-09 Arnaud Charlet <charlet@adacore.com> - - * sem_warn.adb (Warn_On_Unreferenced_Entity): Fix typo. - -2017-10-09 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_elab.adb (Install_ABE_Check): Do not generate an ABE check for - GNATprove. - (Install_ABE_Failure): Do not generate an ABE failure for GNATprove. - -2017-10-09 Bob Duff <duff@adacore.com> - - * exp_ch6.adb: (Make_Build_In_Place_Call_In_Object_Declaration): Return - immediately if the call has already been processed (by a previous call - to Make_Build_In_Place_Call_In_Anonymous_Context). - * sem_elab.adb: Minor typo fixes. - -2017-10-09 Ed Schonberg <schonberg@adacore.com> - - * sem_ch13.adb (Replace_Type_Ref): In the expression for a dynamic - predicate, do not replace an identifier that matches the type if the - identifier is a selector in a selected component, because this - indicates a reference to some homograph of the type itself, and not to - the current occurence in the predicate. - -2017-10-09 Eric Botcazou <ebotcazou@adacore.com> - - * repinfo.adb (List_Record_Layout): Tweak formatting. - (Write_Val): Remove superfluous spaces in back-end layout mode. - -2017-10-09 Piotr Trojanek <trojanek@adacore.com> - - * sem_res.adb (Property_Error): Remove. - (Resolve_Actuals): check for SPARK RM 7.1.3(10) rewritten to match the - current wording of the rule. - -2017-10-09 Justin Squirek <squirek@adacore.com> - - * sem_ch3.adb (Analyze_Declarations): Add check for ghost packages - before analyzing a given scope due to an expression function. - (Uses_Unseen_Lib_Unit_Priv): Rename to Uses_Unseen_Priv. - -2017-10-09 Bob Duff <duff@adacore.com> - - * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use - Defining_Identifier (Obj_Decl) in two places, because it might have - changed. - * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Deal with cases - involving 'Input on (not visibly) derived types. - -2017-10-09 Hristian Kirtchev <kirtchev@adacore.com> - - * atree.adb: Add new soft link Rewriting_Proc. - (Rewrite): Invoke the subprogram attached to the rewriting soft link. - (Set_Rewriting_Proc): New routine. - * attree.ads: Add new access-to-subprogram type Rewrite_Proc. - (Set_Rewriting_Proc): New routine. - * checks.adb (Install_Primitive_Elaboration_Check): Use 'E' character - for *E*laboration flag to maintain consistency with other elaboration - flag generating subprograms. - * debug.adb: Document the new usage of flag -gnatdL. - * einfo.adb: Node19 is now used as Receiving_Entry. Node39 is now used - as Protected_Subprogram. Flag148 is now used as - Is_Elaboration_Checks_OK_Id. Flag302 is now used as - Is_Initial_Condition_Procedure. - (Is_Elaboration_Checks_OK_Id): New routine. - (Is_Initial_Condition_Procedure): New routine. - (Protected_Subprogram): New routine. - (Receiving_Entry): New routine. - (SPARK_Pragma): Update assertion. - (SPARK_Pragma_Inherited): Update assertion. - (Suppress_Elaboration_Warnings): Removed. - (Set_Is_Elaboration_Checks_OK_Id): New routine. - (Set_Is_Initial_Condition_Procedure): New routine. - (Set_Protected_Subprogram): New routine. - (Set_Receiving_Entry): New routine. - (Set_SPARK_Pragma): Update assertion. - (Set_SPARK_Pragma_Inherited): Update assertion. - (Write_Entity_Flags): Update the output for Flag148 and Flag302. - (Write_Field19_Name): Add output for Receiving_Entry. - (Write_Field39_Name): Add output for Protected_Subprogram. - (Write_Field40_Name): Update the output for SPARK_Pragma. - * einfo.ads: New attributes Is_Elaboration_Checks_OK_Id, - Is_Initial_Condition_Procedure, Protected_Subprogram, Receiving_Entry. - Remove attribute Suppress_Elaboration_Warnings. Update the stricture - of various entities. - (Is_Elaboration_Checks_OK_Id): New routine along with pragma Inline. - (Is_Initial_Condition_Procedure): New routine along with pragma Inline. - (Protected_Subprogram): New routine along with pragma Inline. - (Receiving_Entry): New routine along with pragma Inline. - (Suppress_Elaboration_Warnings): Removed. - (Set_Is_Elaboration_Checks_OK_Id): New routine along with pragma - Inline. - (Set_Is_Initial_Condition_Procedure): New routine along with pragma - Inline. - (Set_Protected_Subprogram): New routine along with pragma Inline. - (Set_Receiving_Entry): New routine along with pragma Inline. - (Set_Suppress_Elaboration_Warnings): Removed. - * exp_ch3.adb (Build_Init_Procedure): Use name _Finalizer to maintain - consistency with other finalizer generating subprograms. - (Default_Initialize_Object): Mark the block which wraps the call to - finalize as being part of initialization. - * exp_ch7.adb (Expand_N_Package_Declaration): Directly expand pragma - Initial_Condition. - (Expand_N_Package_Body): Directly expand pragma Initial_Condition. - (Next_Suitable_Statement): Update the comment on usage. Skip over call - markers generated by the ABE mechanism. - * exp_ch9.adb (Activation_Call_Loc): New routine. - (Add_Accept): Link the accept procedure to the original entry. - (Build_Protected_Sub_Specification): Link the protected or unprotected - version to the original subprogram. - (Build_Task_Activation_Call): Code cleanup. Use a source location which - is very close to the "begin" or "end" keywords when generating the - activation call. - * exp_prag.adb (Expand_Pragma_Initial_Condition): Reimplemented. - * exp_spark.adb (Expand_SPARK): Use Expand_SPARK_N_Loop_Statement to - process loops. - (Expand_SPARK_N_Loop_Statement): New routine. - (Expand_SPARK_N_Object_Declaration): Code cleanup. Partially insert the - call to the Default_Initial_Condition procedure. - (Expand_SPARK_Op_Ne): Renamed to Expand_SPARK_N_Op_Ne. - * exp_util.adb (Build_DIC_Procedure_Body): Capture the SPARK_Mode in - effect. - (Build_DIC_Procedure_Declaration): Capture the SPARK_Mode in effect. - (Insert_Actions): Add processing for N_Call_Marker. - (Kill_Dead_Code): Explicitly kill an elaboration scenario. - * exp_util.ads (Make_Invariant_Call): Update the comment on usage. - * frontend.adb: Initialize Sem_Elab. Process all saved top level - elaboration scenarios for ABE issues. - * gcc-interface/trans.c (gnat_to_gnu): Add processing for N_Call_Marker - nodes. - * lib.adb (Earlier_In_Extended_Unit): New variant. - * sem.adb (Analyze): Ignore N_Call_Marker nodes. - (Preanalysis_Active): New routine. - * sem.ads (Preanalysis_Active): New routine. - * sem_attr.adb (Analyze_Access_Attribute): Save certain - elaboration-related attributes. Save the scenario for ABE processing. - * sem_ch3.adb (Analyze_Object_Declaration): Save the SPARK mode in - effect. Save certain elaboration-related attributes. - * sem_ch5.adb (Analyze_Assignment): Save certain elaboration-related - attributes. Save the scenario for ABE processing. - * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Save the SPARK - mode in effect. Save certain elaboration-related attributes. - (Analyze_Subprogram_Body_Helper): Skip N_Call_Marker nodes when - locating the first real statement. - (Analyze_Subprogram_Declaration): Save the SPARK mode in effect. Save - certain elaboration-related attributes. - * sem_ch7.adb (Analyze_Package_Declaration): Do not suppress - elaboration warnings. - * sem_ch8.adb (Attribute_Renaming): Mark a subprogram body which was - generated for purposes of wrapping an attribute used as a generic - actual. - (Find_Direct_Name): Save certain elaboration-related attributes. Save - the scenario for ABE processing. - (Find_Expanded_Name): Save certain elaboration-related attributes. Save - the scenario for ABE processing. - * sem_ch9.adb (Analyze_Entry_Declaration): Save certain - elaboration-related attributes. - (Analyze_Requeue): Save certain elaboration-related attributes. Save - the scenario for ABE processing. - (Analyze_Single_Task_Declaration): Save certain elaboration-related +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. - (Analyze_Task_Type_Declaration): Save certain elaboration-related + (Instantiate_Subprogram_Body): Update the restoration of context + attributes. + (Load_Parent_Of_Generic): Update the capture of pending instantiation attributes. - * sem_ch12.adb (Analyze_Generic_Package_Declaration): Save certain - elaboration-related attributes. - (Analyze_Generic_Subprogram_Declaration): Save the SPARK mode in - effect. Save certain elaboration-related attributes. - (Analyze_Package_Instantiation): Save certain elaboration-related - attributes. Save the scenario for ABE processing. Create completing - bodies in case the instantiation results in a guaranteed ABE. - (Analyze_Subprogram_Instantiation): Save certain elaboration-related - attributes Save the scenario for ABE processing. Create a completing - body in case the instantiation results in a guaranteed ABE. - (Provide_Completing_Bodies): New routine. - * sem_elab.ads: Brand new implementation. - * sem_prag.adb (Analyze_Pragma, cases Elaborate, Elaborate_All, - Elaborate_Body): Do not suppress elaboration warnings. - * sem_res.adb (Make_Call_Into_Operator): Set the parent field of the - operator. - (Resolve_Call): Save certain elaboration-related attributes. Save the - scenario for ABE processing. - (Resolve_Entity_Name): Do not perform any ABE processing here. - (Resolve_Entry_Call): Inherit certain attributes from the original call. - * sem_util.adb (Begin_Keyword_Location): New routine. - (Defining_Entity): Update the parameter profile. Add processing for - concurrent subunits that are rewritten as null statements. - (End_Keyword_Location): New routine. - (Find_Enclosing_Scope): New routine. - (In_Instance_Visible_Part): Code cleanup. - (In_Subtree): Update the parameter profile. Add new version. - (Is_Preelaborable_Aggregate): New routine. - (Is_Preelaborable_Construct): New routine. - (Mark_Elaboration_Attributes): New routine. - (Scope_Within): Update the parameter profile. - (Scope_Within_Or_Same): Update the parameter profile. - * sem_util.ads (Begin_Keyword_Location): New routine. - (Defining_Entity): Update the parameter profile and the comment on - usage. - (End_Keyword_Location): New routine. - (Find_Enclosing_Scope): New routine. - (In_Instance_Visible_Part): Update the parameter profile. - (In_Subtree): Update the parameter profile. Add new version. - (Is_Preelaborable_Aggregate): New routine. - (Is_Preelaborable_Construct): New routine. - (Mark_Elaboration_Attributes): New routine. - (Scope_Within): Update the parameter profile and the comment on usage. - (Scope_Within_Or_Same): Update the parameter profile and the comment on + (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_warn.adb (Check_Infinite_Loop_Warning): Use Has_Condition_Actions - to determine whether a loop has meaningful condition actions. - (Has_Condition_Actions): New routine. - * sinfo.adb (ABE_Is_Certain): Removed. - (Is_Declaration_Level_Node): New routine. - (Is_Dispatching_Call): New routine. - (Is_Elaboration_Checks_OK_Node): New routine. - (Is_Initialization_Block): New routine. - (Is_Known_Guaranteed_ABE): New routine. - (Is_Recorded_Scenario): New routine. - (Is_Source_Call): New routine. - (Is_SPARK_Mode_On_Node): New routine. - (No_Elaboration_Check): Removed. - (Target): New routine. - (Was_Attribute_Reference): New routine. - (Set_ABE_Is_Certain): Removed. - (Set_Is_Declaration_Level_Node): New routine. - (Set_Is_Dispatching_Call): New routine. - (Set_Is_Elaboration_Checks_OK_Node): New routine. - (Set_Is_Initialization_Block): New routine. - (Set_Is_Known_Guaranteed_ABE): New routine. - (Set_Is_Recorded_Scenario): New routine. - (Set_Is_Source_Call): New routine. - (Set_Is_SPARK_Mode_On_Node): New routine. - (Set_No_Elaboration_Check): Removed. - (Set_Target): New routine. - (Set_Was_Attribute_Reference): New routine. - * sinfo.ads: Remove attribute ABE_Is_Certain. Attribute - Do_Discriminant_Check now utilizes Flag3. Attribute - No_Side_Effect_Removal now utilizes Flag17. Add new node - N_Call_Marker. Update the structure of various nodes. - (ABE_Is_Certain): Removed along with pragma Inline. - (Is_Declaration_Level_Node): New routine along with pragma Inline. - (Is_Dispatching_Call): New routine along with pragma Inline. - (Is_Elaboration_Checks_OK_Node): New routine along with pragma Inline. - (Is_Initialization_Block): New routine along with pragma Inline. - (Is_Known_Guaranteed_ABE): New routine along with pragma Inline. - (Is_Recorded_Scenario): New routine along with pragma Inline. - (Is_Source_Call): New routine along with pragma Inline. - (Is_SPARK_Mode_On_Node): New routine along with pragma Inline. - (No_Elaboration_Check): Removed along with pragma Inline. - (Target): New routine along with pragma Inline. - (Was_Attribute_Reference): New routine along with pragma Inline. - (Set_ABE_Is_Certain): Removed along with pragma Inline. - (Set_Is_Declaration_Level_Node): New routine along with pragma Inline. - (Set_Is_Dispatching_Call): New routine along with pragma Inline. - (Set_Is_Elaboration_Checks_OK_Node): New routine along with pragma - Inline. - (Set_Is_Initialization_Block): New routine along with pragma Inline. - (Set_Is_Known_Guaranteed_ABE): New routine along with pragma Inline. - (Set_Is_Recorded_Scenario): New routine along with pragma Inline. - (Set_Is_Source_Call): New routine along with pragma Inline. - (Set_Is_SPARK_Mode_On_Node): New routine along with pragma Inline. - (Set_No_Elaboration_Check): Removed along with pragma Inline. - (Set_Target): New routine along with pragma Inline. - (Set_Was_Attribute_Reference): New routine along with pragma Inline. - * sprint.adb (Sprint_Node_Actual): Add an entry for N_Call_Marker. - -2017-10-09 Bob Duff <duff@adacore.com> - - * exp_ch7.adb (Create_Finalizer): Suppress checks within the finalizer. - -2017-10-09 Bob Duff <duff@adacore.com> - - * freeze.ads: Minor comment fixed. - -2017-10-09 Bob Duff <duff@adacore.com> - - * exp_ch6.adb: (Make_Build_In_Place_Call_In_Object_Declaration): Take - care of unchecked conversions in addition to regular conversions. This - takes care of a case where a type is derived from a private untagged - type that is completed by a tagged controlled type. - -2017-10-09 Ed Schonberg <schonberg@adacore.com> - - * exp_disp.adb (Build_Class_Wide_Check, Replace_Formals): When - rewriting a class-wide condition, handle properly the case where the - controlling argument of the operation to which the condition applies is - an access to a tagged type, and the condition includes a dispatching - call with an implicit dereference. - -2017-10-09 Bob Duff <duff@adacore.com> - - * exp_ch6.adb: (Make_Build_In_Place_Call_In_Object_Declaration): Remove - the code at the end of this procedure that was setting the type of a - class-wide object to the specific type returned by a function call. - Treat this case as indefinite instead. - -2017-10-09 Ed Schonberg <schonberg@adacore.com> - - * sem_ch4.adb (Try_Class_Wide_Operation, Traverse_Homonyms): - Suppress spurious ambiguity error when two traversals of the homonym - chain (first directly, and then through an examination of relevant - interfaces) retrieve the same operation, when other irrelevant homonyms - of the operatioh are also present. - -2017-10-09 Ed Schonberg <schonberg@adacore.com> - - * sem_util.adb (Object_Access_Level): If the object is the return - statement of an expression function, return the level of the function. - This is relevant when the object involves an implicit conversion - between access types and the expression function is a completion, which - forces the analysis of the expression before rewriting it as a body, so - that freeze nodes can appear in the proper scope. - -2017-10-09 Bob Duff <duff@adacore.com> - - * atree.adb: Make nnd apply to everything "interesting", including - Rewrite. Remove rrd. - -2017-10-09 Javier Miranda <miranda@adacore.com> - - * exp_ch3.adb (Expand_N_Object_Declaration): Avoid never-ending loop - processing the declaration of the dummy object internally created by - Make_DT to compute the offset to the top of components referencing - secondary dispatch tables. - (Initialize_Tag): Do not initialize the offset-to-top field if it has - been initialized initialized. - * exp_disp.ads (Building_Static_Secondary_DT): New subprogram. - * exp_disp.adb (Building_Static_Secondary_DT): New subprogram. - (Make_DT): Create a dummy constant object if we can statically build - secondary dispatch tables. - (Make_Secondary_DT): For statically allocated secondary dispatch tables - use the dummy object to compute the offset-to-top field value by means - of the attribute 'Position. - -2017-10-09 Bob Duff <duff@adacore.com> - - * exp_ch6.adb (Expand_N_Extended_Return_Statement): Add self-checking - code so if BIPAlloc is not passed in, it will likely raise - Program_Error instead of cause miscellaneous chaos. - (Is_Build_In_Place_Result_Type): Return False if not Expander_Active, - as for the other Is_B-I-P... functions. - * sem_aggr.adb (Resolve_Extension_Aggregate): For an extension - aggregate whose ancestor part is a build-in-place call returning a - nonlimited type, transform the assignment to the ancestor part to use a - temp. - * sem_ch3.adb (Build_Itype_Reference): Handle the case where we're - creating an Itype for a library unit entity. - (Check_Initialization): Avoid spurious error message on - internally-generated call. - * sem_ch5.adb (Analyze_Assignment): Handle the case where the - right-hand side is a build-in-place call. This didn't happen when b-i-p - was only for limited types. - * sem_ch6.adb (Create_Extra_Formals): Remove assumption that b-i-p - implies >= Ada 2005. - * sem_ch7.adb (Scan_Subprogram_Refs): Avoid traversing the same nodes - repeatedly. - * sem_util.adb (Next_Actual): Handle case of build-in-place call. - -2017-10-09 Arnaud Charlet <charlet@adacore.com> - - * doc/gnat_ugn/gnat_and_program_execution.rst: Minor edit. - -2017-10-09 Piotr Trojanek <trojanek@adacore.com> - - * libgnarl/s-taprob.adb: Minor whitespace fix. - -2017-10-09 Bob Duff <duff@adacore.com> - - * namet.ads: Minor comment fix. - -2017-10-09 Piotr Trojanek <trojanek@adacore.com> - - * sem_aux.adb (Unit_Declaration_Node): Detect protected declarations, - just like other program units listed in Ada RM 10.1(1). - -2017-10-09 Justin Squirek <squirek@adacore.com> - - * sem_ch8.adb (Update_Chain_In_Scope): Modify warning messages. - -2017-10-09 Ed Schonberg <schonberg@adacore.com> - - * sem_ch12.adb (Analyze_Associations, Check_Generic_Parent): If an - actual for a formal package is an instantiation of a child unit, create - a freeze node for the instance of the parent if it appears in the same - scope and is not frozen yet. - -2017-10-09 Pierre-Marie de Rodat <derodat@adacore.com> - - * exp_atag.ads, libgnat/a-tags.adb, libgnat/a-tags.ads: Enhance - in-source documentation for tagged types's Offset_To_Top. - -2017-10-09 Bob Duff <duff@adacore.com> - - * exp_ch3.adb (Build_Assignment): Parameter name N was somewhat - confusing. Same for N_Loc. Remove assumption that b-i-p implies - limited. This is for the case of a function call that occurs as the - default for a record component. - (Expand_N_Object_Declaration): Deal with the case where expansion has - created an object declaration initialized with something like - F(...)'Reference. - * exp_ch3.adb: Minor reformatting. - -2017-10-09 Ed Schonberg <schonberg@adacore.com> - - * exp_attr.adb (Expand_Attribute_Reference, case 'Valid): The prefix of - the attribute is an object, but it may appear within a conversion. The - object itself must be retrieved when generating the range test that - implements the validity check on a scalar type. - -2017-10-05 Eric Botcazou <ebotcazou@adacore.com> - - PR ada/82393 - * mingw32.h (_O_U8TEXT, _O_U16TEXT, _O_WTEXT): Delete. - * sysdep.c (__gnat_set_mode ): Use DJGPP version for Cygwin. - -2017-10-02 Eric Botcazou <ebotcazou@adacore.com> - Pierre-Marie de Rodat <derodat@adacore.com> - - PR ada/82384 - * libgnarl/s-linux__x32.ads (suseconds_t): New subtype. - (time_t): Change from derived type to subtype. - (timeval): Use suseconds_t for tv_usec. - * libgnarl/s-osinte__x32.adb (To_Timespec): Remove use type clause. - -2017-10-02 Richard Sandiford <richard.sandiford@linaro.org> - - * gcc-interface/decl.c (annotate_value): Use wi::to_widest when - handling the form (plus/mult (convert @0) @1). - -2017-09-29 Bob Duff <duff@adacore.com> - - * exp_ch6.adb (Expand_Call_Helper): Replace with code more similar to - what we had before. - (Make_Build_In_Place_Call_In_Object_Declaration): Back out previous - change. Set the Etype in the class-wide case. This fixes a regression - in the libadalang test suite. - -2017-09-29 Joel Brobecker <brobecker@adacore.com> - - * doc/gnat_ugn/building_executable_programs_with_gnat.rst, - doc/gnat_ugn/the_gnat_compilation_model.rst: Avoid use of single colon - in comment markup. + * 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. -2017-09-29 Justin Squirek <squirek@adacore.com> - - * ali-util.adb, comperr.adb, cprint.adb, errout.adb, fmap.adb, - fname-sf.adb, frontend.adb, lib-xref-spark_specific.adb, gnat1drv.adb, - gnatls.adb, lib.adb, lib-load.adb, lib-writ.adb, prepcomp.adb, - sinput-d.adb, sinput-l.adb, sprint.adb, targparm.adb: Update comparison - for checking source file status and error message and/or call to - Read_Source_File. - * libgnat/s-os_lib.ads: Add new potential value constant for - uninitialized file descriptors. - * osint.adb, osint.ads (Read_Source_File): Add extra parameter to - return result of IO to encompass a read access failure in addition to a - file-not-found error. - -2017-09-29 Bob Duff <duff@adacore.com> - - * exp_ch6.adb (Expand_Call_Helper): Handle case of build-in-place - functions returning nonlimited types. Allow for qualified expressions - and type conversions. - (Expand_N_Extended_Return_Statement): Correct the computation of - Func_Bod to allow for child units. - (Expand_Simple_Function_Return): Remove assumption that b-i-p implies - limited (initialization of In_Place_Expansion), and implies >= Ada - 2005. - (Is_Build_In_Place_Result_Type): New function to accompany - Is_Build_In_Place_Function and Is_Build_In_Place_Function_Call, because - sometimes we just have the type on our hands, not the function. For - now, does the same thing as the old version, so build-in-place is - disabled for nonlimited types, except that you can use -gnatd.9 to - enable it. - * exp_ch6.ads (Is_Build_In_Place_Result_Type): New function to - accompany Is_Build_In_Place_Function and - Is_Build_In_Place_Function_Call, because sometimes we just have the - type on our hands, not the function. - (Make_Build_In_Place_Call_In_...): Handle nonlimited build-in-place - cases. - (Make_Build_In_Place_Call_In_Object_Declaration): Remove the - questionable code at the end that was setting the Etype. - * exp_aggr.adb (Is_Build_In_Place_Aggregate_Return): New function to - determine whether "return (...agg...);" is returning from a - build-in-place function. - (Initialize_Ctrl_Array_Component, Initialize_Ctrl_Record_Component): - Remove assumption that b-i-p implies limited (initialization of - In_Place_Expansion). - (Build_Record_Aggr_Code): AI-287: fix comment; it can't be wrapped in - an unchecked conversion. Add assertions. - (Convert_Aggr_In_Object_Decl): Establish_Transient_Scope -- no need for - secondary stack here, just because the type needs finalization. That - code is obsolete. - (Convert_To_Assignments): Only set Unc_Decl if Nkind (N) = N_Aggregate. - For "return (...agg...);" don't assume b-i-p implies limited. - Needs_Finalization does not imply secondary stack. - (Expand_Array_Aggregate): Named notation. Reverse the sense of - Component_OK_For_Backend -- more readability with fewer double - negatives. - * exp_attr.adb (Expand_N_Attribute_Reference): Remove assumptions that - b-i-p implies >= Ada 2005. - * exp_ch3.adb (Expand_N_Object_Declaration): Remove assumptions that - b-i-p implies >= Ada 2005. Remove Adjust if we're building the return - object of an extended return statement in place. - * exp_ch4.adb (Expand_Allocator_Expression, Expand_N_Indexed_Component, - Expand_N_Selected_Component, Expand_N_Slice): Remove assumptions that - b-i-p implies >= Ada 2005. - * exp_ch5.adb (Expand_N_Assignment_Statement): Remove assumption that - b-i-p implies >= Ada 2005. - * exp_ch7.adb: Comment fix. - * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Remove - assumptions that b-i-p implies >= Ada 2005. - * exp_disp.adb (Expand_Interface_Actuals): Remove assumptions that - b-i-p implies >= Ada 2005. - * exp_util.adb (Build_Allocate_Deallocate_Proc): Look at Storage_Pool - (Expr), in case Pool_Id is not set. - (Initialized_By_Aliased_BIP_Func_Call): Handle case where the call is - qualified or converted. - (Is_Secondary_Stack_BIP_Func_Call): Don't check if Nkind (Selector_Name - (Param)) = N_Identifier; that's all it could be. - * sinfo.ads: Comment fixes. - * snames.ads-tmpl: Comment fixes. - * debug.adb: Add flag gnatd.9, to enable the build-in-place machinery. - -2017-09-29 Justin Squirek <squirek@adacore.com> - - * sem_ch8.adb (Mark_Use_Clauses): Add recursive call to properly handle - all cases related to marking entity identifiers. - -2017-09-29 Vasiliy Fofanov <fofanov@adacore.com> - - * adaint.c (win32_wait): Properly handle error and take into account - the WIN32 limitation on the number of simultaneous wait objects. - -2017-09-29 Vasiliy Fofanov <fofanov@adacore.com> - - * cal.c: Minor proofreading. - -2017-09-29 Vasiliy Fofanov <fofanov@adacore.com> - - * doc/gnat_ugn/gnat_utility_programs.rst: Minor formatting fix. - * gnat_ugn.texi: Regenerate. - -2017-09-29 Bob Duff <duff@adacore.com> - - * lib-xref.ads: Comment fix. - -2017-09-29 Bob Duff <duff@adacore.com> - - * exp_aggr.adb: Remove calls to Set_No_Ctrl_Actions for discriminants. - Discriminants can't need finalization. - -2017-09-29 Ed Schonberg <schonberg@adacore.com> - - * sem_ch6.adb (Analyze_Expression_Function): Do not emit freeze nodes - for types in expression if the function is within a generic unit. - * sem_res.adb (Resolve): In a generic context do not freeze an - expression, unless it is an entity. This exception is solely for the - purpose of detecting illegal uses of deferred constants in generic - units. - * sem_res.adb: Minor reformatting. - -2017-09-29 Justin Squirek <squirek@adacore.com> - - * sem_ch8.adb (Note_Redundant_Use): Add guard to protect against false - redundant warnings. - -2017-09-29 Yannick Moy <moy@adacore.com> - - * sinput-c.adb: Remove unused with-clause on Ada.Unchecked_Conversion. - -2017-09-29 Eric Botcazou <ebotcazou@adacore.com> - - * doc/gnat_rm/representation_clauses_and_pragmas.rst: Minor rewording. - * doc/gnat_rm/implementation_defined_pragmas.rst (Optimize_Alignment): - Document the effect of pragma Optimize_Alignment (Space) on non-packed - record types. +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. -2017-09-25 Justin Squirek <squirek@adacore.com> - - * aspects.adb, bindgen.adb, clean.adb, erroutc.adb, exp_ch13.adb, - exp_dbug.adb, exp_unst.adb, exp_util.adb, frontend.adb, gnat1drv.adb, - gnatdll.adb, gnatlink.adb, gnatls.adb, gnatname.adb, gnatxref.adb, - gnatfind.adb, libgnat/a-cfhama.ads, libgnat/a-exetim__mingw.adb, - libgnat/a-strmap.adb, libgnat/a-teioed.adb, libgnat/g-alvety.ads, - libgnat/g-expect.adb, libgnat/g-regist.adb, libgnat/g-socket.adb, - libgnat/g-socthi__mingw.ads, libgnat/s-stausa.adb, - libgnat/s-tsmona__linux.adb, libgnat/s-tsmona__mingw.adb, - libgnarl/s-taenca.adb, libgnarl/s-tassta.adb, libgnarl/s-tarest.adb, - libgnarl/s-tpobop.adb, make.adb, makeusg.adb, namet.adb, output.ads, - put_scos.adb, repinfo.adb, rtsfind.adb, scn.ads, sem_attr.adb, - sem_aux.ads, sem_warn.ads, targparm.adb, xr_tabls.adb, xref_lib.adb: - Removal of ineffective use-clauses. - * exp_ch9.adb (Is_Simple_Barrier_Name): Check for false positives with - constant folded barriers. - * ghost.adb, sprint.adb, sem_ch10.adb, sem_warn.adb: Change access to - Subtype_Marks and Names list in use-clause nodes to their new singular - counterparts (e.g. Subtype_Mark, Name). - * par.adb, par-ch8.adb (Append_Use_Clause): Created to set - Prev_Ids and More_Ids in use-clause nodes. - (P_Use_Clause): Modify to take a list as a parameter. - (P_Use_Package_Clause, P_Use_Type_Clause): Divide names and - subtype_marks within an aggregate use-clauses into individual clauses. - * par-ch3.adb, par-ch10.adb, par-ch12.adb: Trivally modify call to - P_Use_Clause to match its new behavior. - * sem.adb (Analyze): Mark use clauses for non-overloaded entities. - * sem_ch4.adb (Try_One_Interp): Add sanity check to handle previous - errors. - * sem_ch6.adb (Analyze_Generic_Subprogram_Body, - Analyze_Subprogram_Body_Helper): Update use clause chain at the end of - the declarative region. - * sem_ch7.adb (Analyze_Package_Body_Helper): Update use clause chain - after analysis (Analyze_Package_Specification): Update use clause chain - when there is no body. - * sem_ch8.ads, sem_ch8.adb (Analyze_Use_Package, Analyze_Use_Type): Add - parameter to determine weither the installation of scopes should also - propagate on the use-clause "chain". - (Mark_Use_Clauses): Created to traverse use-clause chains and determine - what constitutes a valid "use" of a clause. - (Update_Use_Clause_Chain): Created to aggregate common machinary used - to clean up use-clause chains (and warn on ineffectiveness) at the end - of declaritive regions. - * sem_ch8.adb (Analyze_Package_Name): Created to perform analysis on a - package name from a use-package clause. - (Analyze_Package_Name_List): Created to perform analysis on a list of - package names (similar to Analyze_Package_Name). - (Find_Most_Prev): Created to traverse to the beginning of a given - use-clause chain. - (Most_Decendant_Use_Clause): Create to identify which clause from a - given set is highest in scope (not always the most prev). - (Use_One_Package, Use_One_Type): Major cleanup and reorganization to - handle the new chaining algorithm, also many changes related to - redundant clauses. A new parameter has also been added to force - installation to handle certain cases. - * sem_ch9.adb (Analyze_Entry_Body, Analyze_Protected_Body, - Analyze_Task_Body): Mark use clauses on relevant entities. - * sem_ch10.adb, sem_ch10.ads (Install_Context_Clauses, - Install_Parents): Add parameter to determine weither the installation - of scopes should also propagate on the use-clause "chain". - * sem_ch12.adb (Inline_Instance_Body): Add flag in call to - Install_Context to avoid redundant chaining of use-clauses. - * sem_ch13.adb: Minor reformatting. - * sem_res.adb (Resolve): Mark use clauses on operators. - (Resolve_Call, Resolve_Entity_Name): Mark use clauses on relevant - entities. - * sinfo.adb, sinfo.ads (Is_Effective_Use_Clause, - Set_Is_Effective_Use_Clause): Add new flag to N_Use_Clause nodes to - represent any given clause's usage/reference/necessity. - (Prev_Use_Clause, Set_Prev_Use_Clause): Add new field to N_Use_Clause - nodes to allow loose chaining of redundant clauses. - (Set_Used_Operations, Set_Subtype_Mark, Set_Prev_Ids, Set_Names, - Set_More_Ids, Set_Name): Modify set procedure calls to reflect - reorganization in node fields. - * types.ads (Source_File_Index): Adjust index bounds. - (No_Access_To_Source_File): New constant. - -2017-09-25 Ed Schonberg <schonberg@adacore.com> - - * sem_ch13.adb (Analyze_One_Aspect): In ASIS mode make a full copy of - the expression to be used in the generated attribute specification - (rather than relocating it) to avoid resolving a potentially malformed - tree when the expression is resolved through an ASIS-specific call to - Resolve_Aspect_Expressions. This manifests itself as a crash on a - function with parameter associations. - -2017-09-25 Yannick Moy <moy@adacore.com> - - * exp_spark.adb (Expand_SPARK_Indexed_Component, - Expand_SPARK_Selected_Component): New procedures to insert explicit - dereference if required. - (Expand_SPARK): Call the new procedures. - -2017-09-25 Patrick Bernardi <bernardi@adacore.com> - - * libgnat/a-stwiun.adb, libgnat/s-stchop__vxworks.adb, - libgnat/g-socthi__vxworks.ads, libgnat/a-stzunb.adb, - libgnat/a-strunb.adb, libgnarl/s-osinte__lynxos178.adb, - libgnarl/s-intman__vxworks.adb, libgnarl/s-osinte__darwin.adb, - libgnarl/a-exetim__darwin.adb: Removed ineffective use-clauses. - -2017-09-25 Vasiliy Fofanov <fofanov@adacore.com> - - * adaint.c (win32_wait): Properly handle error and take into account - the WIN32 limitation on the number of simultaneous wait objects. - -2017-09-25 Yannick Moy <moy@adacore.com> - - * sem_ch3.adb (Constant_Redeclaration): Do not insert a call to the - invariant procedure in GNATprove mode. - * sem_ch5.adb (Analyze_Assignment): Likewise. - -2017-09-25 Piotr Trojanek <trojanek@adacore.com> - - * adabkend.adb (Call_Back_End): Fix wording of "front-end" and - "back-end" in comments. - -2017-09-25 Ed Schonberg <schonberg@adacore.com> - - * exp_ch6.adb (Expand_Call_Helper): The extra accessibility check in a - call that appears in a classwide precondition and that mentions an - access formal of the subprogram, must use the accessibility level of - the actual in the call. This is one case in which a reference to a - formal parameter appears outside of the body of the subprogram. - -2017-09-25 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_res.adb (Replace_Actual_Discriminants): Replace a discriminant - for GNATprove. - (Resolve_Entry): Clean up predicate - -2017-09-25 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_prag.adb (Analyze_Constituent): Raise Unrecoverable_Error rather - than Program_Error because U_E is more in line with respect to the - intended behavior. - -2017-09-25 Ed Schonberg <schonberg@adacore.com> - - * sem_ch13.adb (Resolve_Aspect_Expressions): The expression for aspect - Storage_Size does not freeze, and thus can include references to - deferred constants. - -2017-09-25 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_spark.adb (Expand_SPARK_Potential_Renaming): Do not process a - reference when it appears within a pragma of no significance to SPARK. - (In_Insignificant_Pragma): New routine. - * sem_prag.ads: Add new table Pragma_Significant_In_SPARK. - -2017-09-25 Ed Schonberg <schonberg@adacore.com> - - * sem_ch12.adb (Analyze_Associations, case N_Formal_Package): If the - actual is a renaming, indicate that it is the renamed package that must - be frozen before the instantiation. - -2017-09-25 Yannick Moy <moy@adacore.com> - - * doc/gnat_ugn/gnat_and_program_execution.rst: Fix typo in description - of dimensionality system in GNAT UG. +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. - -2017-09-25 Yannick Moy <moy@adacore.com> - - * gnat1drv.adb: Call Check_Safe_Pointers from the frontend in - GNATprove_Mode when switch -gnatdF used. - -2017-09-25 Piotr Trojanek <trojanek@adacore.com> - - * adabkend.adb (Call_Back_End): Reset Current_Error_Node when starting - the backend. - -2017-09-25 Javier Miranda <miranda@adacore.com> - - * exp_imgv.adb (Expand_Image_Attribute): Disable the optimized - expansion of user-defined enumeration types when the generation of - names for enumeration literals is suppressed. - -2017-09-25 Gary Dismukes <dismukes@adacore.com> - - * libgnarl/s-taprop__linux.adb: Minor reformatting. - -2017-09-25 Ed Schonberg <schonberg@adacore.com> - - * sem_ch13.adb (Resolve_Aspect_Expressions): Do not resolve identifiers - that appear as selector names of parameter associations, as these are - never resolved by visibility. - -2017-09-25 Justin Squirek <squirek@adacore.com> - - * sem_res.adb (Resolve_Entry): Generate reference for index entities. - -2017-09-25 Doug Rupp <rupp@adacore.com> - - * libgnarl/s-taprop__linux.adb (Compute_Base_Monotonic_Clock): Refine. - -2017-09-25 Javier Miranda <miranda@adacore.com> - - * exp_imgv.adb (Is_User_Defined_Enumeration_Type): New subprogram. - (Expand_User_Defined_Enumeration_Image): New subprogram. - (Expand_Image_Attribute): Enable speed-optimized expansion of - user-defined enumeration types when we are compiling with optimizations - enabled. - -2017-09-25 Piotr Trojanek <trojanek@adacore.com> - - * sem_util.adb (Has_Null_Abstract_State): Remove, as an exactly same - routine is already provided by Einfo. - * einfo.adb (Has_Null_Abstract_State): Replace with the body from - Sem_Util, which had better comments and avoided double calls to - Abstract_State. - -2017-09-25 Bob Duff <duff@adacore.com> - - * exp_ch3.adb: Rename Comp_Type_Simple to be Comp_Simple_Init. - -2017-09-25 Doug Rupp <rupp@adacore.com> - - * libgnarl/s-taprop__linux.adb (Base_Monotonic_Clock): New variable. - (Compute_Base_Monotonic_Clock): New function. - (Timed_Sleep): Adjust to use Base_Monotonic_Clock. - (Timed_Delay): Likewise. - (Monotonic_Clock): Likewise. - * s-oscons-tmplt.c (CLOCK_MONOTONIC): Use on Linux. - -2017-09-25 Ed Schonberg <schonberg@adacore.com> - - * sem_ch12.adb (Save_References_In_Aggregate): Small correction to - previous change. - -2017-09-25 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch5.adb, sem_ch4.adb, sem_ch13.adb, sem_attr.adb, exp_ch3.adb: - Minor reformatting. - -2017-09-20 Alexandre Oliva <aoliva@redhat.com> - - * gcc-interface/lang.opt (gant, gnatO, gnat): Add RejectNegative. - -2017-09-18 Bob Duff <duff@adacore.com> - - * sem_ch4.adb (Complete_Object_Operation): Do not insert 'Access for - reference types in the access-to-access case. - -2017-09-18 Eric Botcazou <ebotcazou@adacore.com> - - * sem_attr.adb (Analyze_Access_Attribute): Move check for the presence - of the "aliased" keyword on the prefix from here to... - (Resolve_Attribute) <Attribute_Access>: ...here. Remove useless call - to Check_No_Implicit_Aliasing. - * sinfo.ads (Non_Aliased_Prefix): Delete. - (Set_Non_Aliased_Prefix): Likewise. - * sinfo.adb (Non_Aliased_Prefix): Delete. - (Set_Non_Aliased_Prefix): Likewise. - -2017-09-18 Bob Duff <duff@adacore.com> - - * exp_ch5.adb (Build_Formal_Container_Iteration, - Expand_Formal_Container_Element_Loop): Convert the container to the - root type before passing it to the iteration operations, so it will be - of the right type. - -2017-09-18 Bob Duff <duff@adacore.com> - - * einfo.ads, validsw.ads, treepr.ads, sem_util.ads: Comment fixes. - -2017-09-18 Bob Duff <duff@adacore.com> - - * exp_ch3.adb (Build_Array_Init_Proc): If validity checking is enabled, - and it's a bit-packed array, pass False to the Consider_IS parameter of - Needs_Simple_Initialization. - -2017-09-18 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch6.adb (Check_Inline_Pragma): Link the newly generated spec to - the preexisting body. - * sem_prag.adb (Check_Inline_Always_Placement): New routine. - (Process_Inline): Verify the placement of pragma Inline_Always. The - pragma must now appear on the initial declaration of the related + * 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. - -2017-09-18 Ed Schonberg <schonberg@adacore.com> - - * sem_ch3.adb (Analyze_Declarations): In ASIS mode, At the end of the - declarative list in a subprogram body, analyze aspext specifications to - provide basic semantic information, because otherwise the aspect - specifications might only be snalyzed during expansion, when related - subprograms are generated. - -2017-09-18 Bob Duff <duff@adacore.com> - - * exp_ch9.adb (Is_Simple_Barrier_Name): Follow Original_Node, in case - validity checks have rewritten the tree. - -2017-09-18 Bob Duff <duff@adacore.com> - - * sem_util.adb: Comment fixes, and remove redundant Is_Itype check. - -2017-09-18 Ed Schonberg <schonberg@adacore.com> - - * sem_ch12.adb (Save_References_In_Aggregate): When constructing a - qualified exxpression for an aggregate in a generic unit, verify that - the scope of the type is itself visible and not hidden, so that the - qualified expression is correctly resolved in any instance. - -2017-09-18 Bob Duff <duff@adacore.com> - - * sem_ch4.adb (Analyze_Qualified_Expression): Give an error if the type - mark refers to the current instance. Set the type to Any_Type in that - case, to avoid later crashes. - -2017-09-18 Ed Schonberg <schonberg@adacore.com> - - * exp_ch3.adb (Replace_Discriminant_References): New procedure, - subsidiary of Build_Assignment, used to handle the initialization code - for a mutable record component whose default value is an aggregate that - sets the values of the discriminants of the components. - -2017-09-18 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch13.adb (Analyze_Attribute_Definition_Clause) <Address>: Mark - the entity as being volatile for an overlay that toggles the scalar - storage order. - -2017-09-18 Fedor Rybin <frybin@adacore.com> - - * doc/gnat_ugn/gnat_utility_programs.rst: Document that gnattest - options -U main and --harness-only are not compatible. - -2017-09-18 Hristian Kirtchev <kirtchev@adacore.com> - - * freeze.adb, sem_ch6.adb, sem_res.adb: Minor reformatting. - -2017-09-18 Piotr Trojanek <trojanek@adacore.com> - - * einfo.ads (Is_Imported): Update comment, as this - routine also applies to constants. - -2017-09-18 Yannick Moy <moy@adacore.com> - - * sem_util.adb (Find_Placement_In_State_Space): Allow generic package - holding state. - -2017-09-18 Justin Squirek <squirek@adacore.com> - - * sem_prag.adb (Is_Non_Significant_Pragma_Reference): Change the - constant indication for Pragma_Linker_Section. - -2017-09-18 Bob Duff <duff@adacore.com> - - Alternate fix for PR ada/71358 - * libgnat/g-comlin.adb (Getopt): Remove manual null access checks. - Instead, make a local copy of Config, and if it's null, allocate an - empty Command_Line_Configuration_Record, so we won't crash on null - pointer dereference. - -2017-09-16 Eric Botcazou <ebotcazou@adacore.com> - - * libgnarl/a-intnam__rtems.ads: Update copyright date. - * libgnarl/s-interr__hwint.adb: Likewise. - * libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise. - * libgnarl/s-osinte__rtems.adb: Likewise. - * libgnarl/s-osinte__rtems.ads: Likewise. - -2017-09-13 Nicolas Roche <roche@adacore.com> - - * Make-lang.in: In the fallback mechanim, parse the associated .ali - file and try to guess the locations of dependencies. - -2017-09-13 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch13.adb (Register_Address_Clause_Check): New procedure to save - the suppression status of Alignment_Check on the current scope. - (Alignment_Checks_Suppressed): New function to use the saved instead of - the current suppression status of Alignment_Check. - (Address_Clause_Check_Record): Add Alignment_Checks_Suppressed field. - (Analyze_Attribute_Definition_Clause): Instead of manually appending to - the table, call Register_Address_Clause_Check. - (Validate_Address_Clauses): Call Alignment_Checks_Suppressed on the - recorded address clause instead of its entity. - -2017-09-13 Jerome Guitton <guitton@adacore.com> - - * libgnarl/s-tpopsp__vxworks-tls.adb, - libgnarl/s-tpopsp__vxworks-rtp.adb, libgnarl/s-tpopsp__vxworks.adb - (Self): Register thread if task id is null. - -2017-09-13 Arnaud Charlet <charlet@adacore.com> - - * libgnat/s-htable.adb, libgnat/s-htable.ads: Minor style tuning. - -2017-09-13 Arnaud Charlet <charlet@adacore.com> - - * lib-xref-spark_specific.adb (Scopes): simplify hash map; now it maps - from an entity to only scope index, as a mapping from an entity to the - same entity was useless. - (Get_Scope_Num): refactor as a simple renaming; rename parameter from N - to E. - (Set_Scope_Num): refactor as a simple renaming; rename parameter from N - to E. - (Is_Constant_Object_Without_Variable_Input): remove local "Result" - variable, just use return statements. - -2017-09-13 Arnaud Charlet <charlet@adacore.com> - - * libgnarl/s-vxwext__kernel-smp.adb, - libgnarl/s-tpopsp__vxworks-rtp.adb, libgnarl/s-vxwext__noints.adb: - New file. - -2017-09-13 Hristian Kirtchev <kirtchev@adacore.com> - - * einfo.adb: Flag42 is now Is_Controlled_Active. - (Is_Controlled): This attribute is now synthesized. - (Is_Controlled_Active): This attribute is now an explicit flag rather - than a synthesized attribute. (Set_Is_Controlled): Removed. - (Set_Is_Controlled_Active): New routine. - (Write_Entity_Flags): Update the output for Flag42. - * einfo.ads: Update the documentation of the following attributes: - Disable_Controlled, Is_Controlled, Is_Controlled_Active, Is_Controlled - and Is_Controlled_Active have swapped their functionality. - (Is_Controlled): Renamed to Is_Controlled_Active. - (Is_Controlled_Active): Renamed to Is_Controlled. - (Set_Is_Controlled): Renamed to Set_Is_Controlled_Active. - * exp_ch3.adb (Expand_Freeze_Record_Type): Restore the original use of - Is_Controlled. - * exp_util.adb (Has_Some_Controlled_Component): Code clean up. - (Needs_Finalization): Code clean up. Remove the tests for - Disable_Controlled because a) they were incorrect as they would reject - a type which is sublect to the aspect, but may contain controlled - components, and b) they are no longer necessary. - * exp_util.ads (Needs_Finalization): Update comment on documentation. - * freeze.adb (Freeze_Array_Type): Restore the original use of - Is_Controlled. - (Freeze_Record_Type): Restore the original use of Is_Controlled. - * sem_ch3.adb (Analyze_Object_Declaration): Restore the original use of - Is_Controlled. - (Array_Type_Declaration): Restore the original use of Is_Controlled. - (Build_Derived_Private_Type): Restore the original use of - Is_Controlled. - (Build_Derived_Record_Type): Set the Is_Controlled_Active flag of a - type derived from Ada.Finalization.[Limited_]Controlled. - (Build_Derived_Type): Restore the original use of Is_Controlled. - (Record_Type_Definition): Restore the original use of Is_Controlled. - * sem_ch7.adb (Preserve_Full_Attributes): Restore the original use of - Is_Controlled. - * sem_ch13.adb (Analyze_Aspect_Disable_Controlled): New routine. - (Analyze_Aspect_Specifications): Use routine - Analyze_Aspect_Disable_Controlled to process aspect Disable_Controlled. - -2017-09-13 Vincent Celier <celier@adacore.com> - - * clean.adb (Gnatclean): Fix error when looking for target - of <target>-gnatclean - -2017-09-13 Javier Miranda <miranda@adacore.com> - Ed Schonberg <schonberg@adacore.com> - - * sem_ch8.adb (Find_Expanded_Name): Complete code that identifies an - expanded name that designates the current instance of a child unit in - its own body and appears as the prefix of a reference to an entity - local to the child unit. - -2017-09-12 Bob Duff <duff@adacore.com> - - * sem_warn.adb: Minor comment. - -2017-09-12 Bob Duff <duff@adacore.com> - - * libgnat/a-cbdlli.adb, libgnat/a-cbhama.adb, - libgnat/a-cbmutr.adb, libgnat/a-cborma.adb: Rename New_Item to - be Default_Initialized_Item, and apply pragma Unmodified to it, - to suppress the warning. - -2017-09-12 Eric Botcazou <ebotcazou@adacore.com> - - * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Add early return - for access types. - -2017-09-12 Yannick Moy <moy@adacore.com> - - * gnat1drv.adb (Adjust_Global_Switches): Consider Refined_Global - together with Global when ignoring one in CodePeer mode. - -2017-09-12 Javier Miranda <miranda@adacore.com> - - * sem_ch3.adb (Analyze_Declarations): In nested - package declarations that have a private part enable missing check - of the RM rule 13.1.1(11/3): usage names in aspect definitions are - resolved at the end of the immediately enclosing declaration list. - -2017-09-12 Bob Duff <duff@adacore.com> - - * sem_ch6.adb (Analyze_Expression_Function): Initialize Def_Id to - Empty. - -2017-09-12 Georges-Axel Jaloyan <jaloyan@adacore.com> - - * debug.adb: Reserving flag -gnatdF for safe pointer checking. - * gnat1drv.adb (gnat1drv): Adding the call to the analysis on - dF flag. - * sem_spark.adb, sem_spark.ads: Implementation of the analysis, - in preparation for the evolution of the SPARK language that - includes a pointer analysis for checking non-aliasing of access - types. The Check_Safe_Pointers function is the entry point, and - will traverse the AST and raise compile-time errors everytime - it detects non-begign aliasing. Detailed comments are present - in the sem_spark.ads file. - * sem_util.adb, sem_util.ads (First_Global, Next_Global): New - functions to iterate over the list of globals of a subprogram. - * libgnat/system.ads: Add restriction No_Finalization. - * gcc-interface/Make-lang.in: Add new file sem_spark.adb and - dependency on g-dynhta.adb. - -2017-09-12 Bob Duff <duff@adacore.com> - - * sem_ch6.adb (Analyze_Expression_Function): Call - Check_Dynamically_Tagged_Expression. - * sem_util.adb (Check_Dynamically_Tagged_Expression): Remove - "and then Is_Tagged_Type (Typ)" because there is an earlier - "Assert (Is_Tagged_Type (Typ))". - -2017-09-12 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/Makefile.in (SPARC/Solaris): Remove obsolete stuff. - -2017-09-11 Arnaud Charlet <charlet@adacore.com> - - * doc/gnat_ugn/the_gnat_compilation_model.rst: Fix sphinx warning. - * doc/gnat_ugn/platform_specific_information.rst: Remove doc - for no longer supported platforms. - * doc/gnat_ugn/gnat_and_program_execution.rst: Added detailed - description of the semantics for dimensionality analysis. - * gnat_ugn.texi: Regenerated. - -2017-09-11 Eric Botcazou <ebotcazou@adacore.com> - - * freeze.adb (Has_Incomplete_Compoent): Delete. - (Freeze_Profile): - Do not inhibit the freezing of the profile of an expression - function here. - (Freeze_Subprogram): Do not re-create extra formals. - * sem_ch6.adb (Analyze_Expression_Function): Always - pre-analyze the expression if the function is not a completion. - (Analyze_Subprogram_Body_Helper): For the body generated - from an expression function that is not a completion, do - not freeze the profile and temporary mask the types declared - outside the expression that are not yet frozen. - * sem_res.adb (Rewrite_Renamed_Operator): Also bail out if invoked - during the pre-analysis of an expression function. - -2017-09-11 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/gigi.h (enum standard_datatypes): Minor tweak. - (gigi): Likewise. - -2017-09-11 Yannick Moy <moy@adacore.com> - - * lib-xref-spark_specific.adb: Minor rewrite. - -2017-09-11 Jerome Lambourg <lambourg@adacore.com> - - * libgnat: Rename ?-[a-z]*-* into ?-[a-z]*__* - * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Take this - renaming into account. - -2017-09-11 Jerome Lambourg <lambourg@adacore.com> - - * libgnarl: Rename ?-[a-z]*-* into ?-[a-z]*__* - * gcc-interface/Makefile.in: Take this renaming into account. - -2017-09-11 Arnaud Charlet <charlet@adacore.com> - - * s-auxdec-empty.ads, s-auxdec-empty.adb, 9drpc.adb: Removed, no - longer used. - -2017-09-11 Yannick Moy <moy@adacore.com> - - * sem_util.adb (Check_Result_And_Post_State): - Do not issue a warning about missing reference to an outcome if - the subprogram is ghost and has no outputs. - * lib-xref-spark_specific.adb, sem_aggr.adb, sem_aux.ads: Minor - reformatting. - -2017-09-11 Yannick Moy <moy@adacore.com> - - * gnat1drv.adb (Adjust_Global_Switches): Set - Check_Validity_Of_Parameters to False in GNATprove mode. - * opt.ads (Check_Validity_Of_Parameters): Document switch to - set option. - -2017-09-09 Pierre-Marie de Rodat <derodat@adacore.com> - - * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Don't - generate debug info for inner record types if -fgnat-encodings=minimal. - (gnat_to_gnu_entity) <E_Record_Subtype>: Use the ultimate base record - type as the debug type. - -2017-09-09 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (components_to_record): Do not reorder in non- - packed record types if pragma Optimize_Alignment (Space) is enabled. - -2017-09-09 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.c (Subprogram_Body_to_gnu): Disregard inlining - limits for expression functions. - (gnat_to_gnu) <N_Object_Declaration>: Fix formatting. - -2017-09-09 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Copy the - layout of the record from the parent type only if both are or are not - unchecked unions. - (is_stored_discriminant): Return false for an unchecked union. - -2017-09-09 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/utils2.c (build_allocator): In type_annotate_only mode - return NULL_EXPR. - -2017-09-09 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (promote_object_alignment): New function taken - from... - (gnat_to_gnu_entity) <E_Variable>: ...here. Invoke it. - (gnat_to_gnu_field): If the field is Atomic or VFA, invoke it and - create a padding type on success before doing the atomic check. - -2017-09-09 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Apply the - promotion to static memory earlier in the processing. - -2017-09-09 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (gnat_to_gnu_entity): Only set the TYPE_ALIGN_OK - and TYPE_BY_REFERENCE_P flags on types after various promotions. - * gcc-interface/trans.c (node_has_volatile_full_access) <N_Identifier>: - Consider all kinds of entities. - -2017-09-09 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/utils.c (convert): When converting to a padding type, - reuse an existing CONSTRUCTOR if it has got the right size. - -2017-09-08 Nicolas Roche <roche@adacore.com> - - * gcc-interface/Make-lang.in, gcc-interface/Makefile.in: Find runtime - source in libgnat/ - * a-lfztio.ads, g-timsta.ads, g-sercom-linux.adb, s-osprim-solaris.adb, - a-inteio.ads, s-stchop-rtems.adb, s-casuti.adb, s-pack39.adb, - i-vxwork-x86.ads, a-strbou.adb, a-stzmap.adb, s-assert.adb, - a-sfecin.ads, a-cohama.adb, s-casuti.ads, a-suenco.adb, s-pack39.ads, - a-stzmap.ads, a-strbou.ads, s-stalib.adb, s-trasym.adb, g-comver.adb, - s-assert.ads, s-vector.ads, g-cgi.adb, a-cohama.ads, s-wchcnv.adb, - a-titest.adb, s-pack48.adb, a-suenco.ads, a-strunb.adb, s-stalib.ads, - s-trasym.ads, a-nudira.adb, g-comver.ads, a-nuflra.adb, g-cgi.ads, - a-chacon.adb, s-wchcnv.ads, a-excach.adb, s-pack48.ads, a-titest.ads, - a-strunb.ads, s-dwalin.adb, a-nudira.ads, a-chtgbo.adb, s-resfil.adb, - a-scteio.ads, a-nuflra.ads, g-soliop-mingw.ads, s-pack57.adb, - a-chacon.ads, s-bytswa.ads, s-pooloc.adb, g-os_lib.adb, s-dwalin.ads, - a-szuzha.adb, s-resfil.ads, a-chtgbo.ads, s-spsufi.adb, s-pack57.ads, - s-pooloc.ads, g-os_lib.ads, a-stfiha.ads, a-lcteio.ads, a-wtcoau.adb, - a-szuzha.ads, s-mmosin-unix.adb, a-stmaco.ads, s-spsufi.ads, - s-stchop-limit.ads, a-wtcoau.ads, a-exctra.adb, s-mmosin-unix.ads, - s-sequio.adb, s-conca2.adb, g-table.adb, s-imglli.adb, - a-numaux-x86.adb, a-strsea.adb, s-wchstw.adb, a-clrefi.adb, - a-wwboio.adb, a-exctra.ads, s-sequio.ads, s-conca2.ads, a-wwunio.ads, - system-linux-hppa.ads, g-table.ads, s-dimkio.ads, s-imglli.ads, - a-cofove.adb, a-numaux-x86.ads, s-wchstw.ads, a-strsea.ads, - a-clrefi.ads, a-wwboio.ads, s-stratt-xdr.adb, s-crc32.adb, - s-excmac-arm.adb, g-busora.adb, a-cofove.ads, s-osprim-unix.adb, - g-io.adb, s-pack49.adb, s-crc32.ads, s-excmac-arm.ads, a-fzteio.ads, - g-busora.ads, s-stausa.adb, system-linux-mips.ads, sequenio.ads, - g-exctra.adb, g-rewdat.adb, a-cgaaso.adb, g-io.ads, s-pack49.ads, - a-wtflau.adb, a-undesu.adb, s-stausa.ads, a-ztenau.adb, g-enutst.ads, - calendar.ads, s-pack58.adb, g-rewdat.ads, g-exctra.ads, s-ststop.adb, - a-cgaaso.ads, a-strfix.adb, a-comlin.adb, a-strunb-shared.adb, - a-wtflau.ads, a-undesu.ads, a-cbhase.adb, a-ztenau.ads, s-os_lib.adb, - a-coorse.adb, a-chlat1.ads, s-pack58.ads, s-ststop.ads, a-strfix.ads, - a-comlin.ads, a-strunb-shared.ads, a-nscefu.ads, s-valboo.adb, - directio.ads, a-chtgke.adb, a-cbhase.ads, a-wtinau.adb, - system-linux-alpha.ads, s-os_lib.ads, a-coorse.ads, - system-linux-s390.ads, s-imgwiu.adb, a-chtgop.adb, s-valboo.ads, - a-chtgke.ads, a-tienio.adb, s-conca3.adb, a-wtinau.ads, - system-darwin-ppc.ads, i-c.adb, s-expllu.adb, g-expect.adb, - g-sha256.ads, s-vallld.adb, s-imgwiu.ads, a-chtgop.ads, a-strmap.adb, - a-tienio.ads, s-conca3.ads, s-imgint.adb, i-c.ads, s-expllu.ads, - s-osprim-darwin.adb, a-cogeso.adb, g-expect.ads, a-iwteio.ads, - s-vallld.ads, a-coinho-shared.adb, g-shsh64.adb, a-strmap.ads, - g-comlin.adb, a-excpol.adb, s-imgint.ads, a-ztdeau.adb, a-cogeso.ads, - a-coinho-shared.ads, g-shsh64.ads, g-comlin.ads, a-stzsup.adb, - a-rbtgbk.adb, a-wtmoau.adb, a-ztdeau.ads, s-exnlli.adb, g-tty.adb, - g-heasor.adb, g-socthi-dummy.adb, s-llflex.ads, a-zchara.ads, - a-stzsup.ads, a-ztcstr.adb, a-rbtgbk.ads, a-sfwtio.ads, a-wtmoau.ads, - a-sulcin.adb, s-exnlli.ads, system-freebsd.ads, a-stunha.adb, - a-charac.ads, g-tty.ads, g-heasor.ads, s-exctra.adb, - g-socthi-dummy.ads, a-coboho.adb, a-ztcstr.ads, a-tideio.adb, - a-sulcin.ads, a-wrstfi.adb, g-alleve.adb, s-pack59.adb, a-ngrear.adb, - a-stboha.adb, a-stunau-shared.adb, a-stunha.ads, a-lfwtio.ads, - s-fileio.adb, s-exctra.ads, a-coboho.ads, a-ioexce.ads, a-tideio.ads, - a-ngrear.ads, a-wrstfi.ads, s-pack59.ads, g-alleve.ads, a-stboha.ads, - s-poosiz.adb, g-traceb.adb, g-rannum.adb, machcode.ads, s-purexc.ads, - s-fileio.ads, a-cfinve.adb, a-crbtgk.adb, system-solaris-x86.ads, - s-poosiz.ads, g-rannum.ads, g-traceb.ads, a-except.adb, s-conca4.adb, - a-stream.adb, a-cfinve.ads, a-crbtgk.ads, s-wchwts.adb, - system-mingw.ads, a-except.ads, s-conca4.ads, a-chzla9.ads, - s-valenu.adb, s-soflin.adb, a-stream.ads, a-cgarso.adb, s-valllu.adb, - g-crc32.adb, s-wchwts.ads, s-fatflt.ads, s-imguns.adb, s-strcom.adb, - g-decstr.adb, s-valenu.ads, s-soflin.ads, a-cgarso.ads, a-cwila1.ads, - s-valllu.ads, g-crc32.ads, s-imguns.ads, g-spipat.adb, s-valwch.adb, - s-strcom.ads, g-decstr.ads, text_io.ads, g-debuti.adb, s-stchop.adb, - g-spipat.ads, s-valwch.ads, a-string.ads, s-exnint.adb, g-awk.adb, - g-tasloc.adb, s-wwdenu.adb, s-boustr.adb, a-zchuni.adb, s-stchop.ads, - g-debuti.ads, s-stopoo.adb, system-dragonfly-x86_64.ads, - system-linux-x86.ads, s-exnint.ads, g-awk.ads, a-stzhas.adb, - g-tasloc.ads, s-wwdenu.ads, g-debpoo.adb, g-except.ads, - g-sse.ads, s-boustr.ads, a-zchuni.ads, s-bitops.adb, s-wwdwch.adb, - s-stopoo.ads, a-catizo.adb, a-stzhas.ads, a-nlcefu.ads, g-debpoo.ads, - i-vxwoio.adb, s-bitops.ads, g-io-put-vxworks.adb, s-wwdwch.ads, - g-sehamd.adb, a-ssicst.adb, a-catizo.ads, s-mmap.adb, g-string.adb, - s-traceb.adb, a-swunau.adb, s-rannum.adb, a-ticoau.adb, i-vxwoio.ads, - g-sehamd.ads, a-stwiun.adb, a-ssicst.ads, s-conca5.adb, a-ssitio.ads, - s-mmap.ads, a-zttest.adb, g-string.ads, g-sercom.adb, a-cdlili.adb, - a-swunau.ads, s-traceb.ads, s-rannum.ads, a-ticoau.ads, system-aix.ads, - a-cforma.adb, a-stwiun.ads, s-conca5.ads, s-carsi8.adb, a-zttest.ads, - g-sercom.ads, a-cdlili.ads, a-cihama.adb, g-sptain.ads, a-cforma.ads, - s-maccod.ads, s-carsi8.ads, a-strsup.adb, g-sha1.adb, a-cihama.ads, - g-stseme.adb, s-traent.adb, s-valcha.adb, g-curexc.ads, a-strsup.ads, - g-sha1.ads, a-sflcin.ads, s-traent.ads, s-pack10.adb, s-valcha.ads, - a-coteio.ads, s-tasloc.adb, g-utf_32.adb, a-suteio.adb, s-except.adb, - a-direct.adb, g-stsifd-sockets.adb, a-numaux-vxworks.ads, s-winext.ads, - s-pack10.ads, a-ztexio.adb, a-tiflau.adb, system-vxworks-arm.ads, - s-tasloc.ads, a-suteio.ads, g-utf_32.ads, s-except.ads, - a-direct.ads, a-swbwha.adb, g-hesorg.adb, s-wwdcha.adb, a-wtedit.adb, - a-ztexio.ads, a-wtcoio.adb, a-tiflau.ads, a-ssizti.ads, s-casi32.adb, - a-swbwha.ads, s-veboop.adb, g-hesorg.ads, s-parame-rtems.adb, - s-wwdcha.ads, a-wtedit.ads, a-stuten.adb, a-coinve.adb, a-wtcoio.ads, - s-casi32.ads, s-string.adb, a-tiinau.adb, a-cusyqu.adb, s-conca6.adb, - s-veboop.ads, a-cgcaso.adb, a-numaux-darwin.adb, a-envvar.adb, - a-stuten.ads, s-secsta.adb, a-coinve.ads, s-string.ads, a-cusyqu.ads, - a-tiinau.ads, s-osprim-vxworks.adb, s-conca6.ads, g-spchge.adb, - s-parint.adb, a-cuprqu.adb, a-cgcaso.ads, a-numaux-darwin.ads, - a-envvar.ads, s-secsta.ads, g-spchge.ads, s-parint.ads, a-cuprqu.ads, - a-swuwti.adb, a-flteio.ads, a-sbhcin.adb, a-coprnu.adb, g-u3spch.adb, - s-atocou.adb, g-ctrl_c.adb, a-swuwti.ads, a-calend.adb, a-sbhcin.ads, - a-coprnu.ads, g-dirope.adb, g-sha512.ads, g-u3spch.ads, s-atocou.ads, - g-ctrl_c.ads, a-timoau.adb, a-witeio.adb, s-pack11.adb, a-strhas.adb, - a-wtflio.adb, g-spitbo.adb, a-calend.ads, a-ztenio.adb, g-dirope.ads, - a-slcain.adb, g-sechas.adb, a-timoau.ads, a-witeio.ads, s-pack11.ads, - s-shasto.adb, s-traceb-mastop.adb, a-ciorse.adb, s-utf_32.adb, - a-strhas.ads, a-wtflio.ads, g-spitbo.ads, a-ztenio.ads, a-slcain.ads, - g-sechas.ads, s-gearop.adb, a-siztio.ads, s-pack20.adb, s-shasto.ads, - a-ciorse.ads, s-utf_32.ads, s-crtl.ads, a-wtinio.adb, s-elaall.adb, - s-explli.adb, s-chepoo.ads, s-gearop.ads, a-einuoc.adb, s-pack20.ads, - system-linux-ia64.ads, a-swunau-shared.adb, a-wtinio.ads, g-alvety.ads, - a-liztio.ads, g-calend.adb, s-conca7.adb, s-elaall.ads, s-explli.ads, - a-einuoc.ads, s-widboo.adb, s-imgdec.adb, a-cbhama.adb, g-calend.ads, - s-conca7.ads, a-llitio.ads, i-cexten.ads, a-coorma.adb, s-widboo.ads, - s-diflio.adb, g-souinf.ads, s-imgdec.ads, g-strhas.ads, a-cbhama.ads, - g-shshco.adb, a-ztdeio.adb, s-gloloc.adb, a-coorma.ads, g-wispch.adb, - s-pack03.adb, g-eacodu.adb, s-casi16.adb, s-diflio.ads, a-colien.adb, - g-shshco.ads, a-wtmoio.adb, a-rbtgbo.adb, a-ztdeio.ads, - system-rtems.ads, s-gloloc.ads, a-csquin.ads, a-cofuse.adb, - g-wispch.ads, s-pack03.ads, s-casi16.ads, s-io.adb, a-colien.ads, - g-alveop.adb, gnat.ads, s-diinio.adb, a-cfdlli.adb, g-pehage.adb, - a-wtmoio.ads, a-stwiha.adb, a-locale.adb, a-tirsfi.adb, a-nscoty.ads, - a-rbtgbo.ads, s-pack12.adb, a-cofuse.ads, a-sfteio.ads, s-io.ads, - g-alveop.ads, a-cfdlli.ads, s-diinio.ads, a-stwiha.ads, g-pehage.ads, - a-locale.ads, a-tirsfi.ads, s-pack12.ads, s-valuti.adb, g-cppexc.adb, - system-vxworks-ppc.ads, g-memdum.adb, a-lfteio.ads, s-pack21.adb, - s-unstyp.ads, s-valuti.ads, g-cppexc.ads, system-hpux-ia64.ads, - g-memdum.ads, g-soccon.ads, g-altive.ads, a-crbtgo.adb, s-pack21.ads, - a-llizti.ads, a-numaux-libc-x86.ads, s-expint.adb, s-conca8.adb, - a-crbtgo.ads, s-pack30.adb, s-vallli.adb, s-geveop.adb, s-expint.ads, - a-direio.adb, s-conca8.ads, a-widcha.ads, s-pack30.ads, s-vallli.ads, - s-strhas.adb, s-geveop.ads, g-md5.adb, a-direio.ads, a-numaux.ads, - s-ransee.adb, a-szbzha.adb, i-cobol.adb, g-busorg.adb, s-strhas.ads, - g-md5.ads, s-widenu.adb, s-ransee.ads, s-widllu.adb, a-szbzha.ads, - a-ststio.adb, i-cobol.ads, g-busorg.ads, g-regpat.adb, s-widenu.ads, - a-secain.adb, s-widllu.ads, s-pack13.adb, g-encstr.adb, a-ztcoau.adb, - a-ststio.ads, s-widwch.adb, g-regpat.ads, s-atacco.adb, a-cborse.adb, - a-secain.ads, s-pack13.ads, g-encstr.ads, a-ztcoau.ads, s-widwch.ads, - g-io_aux.adb, s-atacco.ads, a-ncelfu.ads, interfac.ads, a-cborse.ads, - g-regexp.adb, s-pack22.adb, a-szuzti.adb, g-io_aux.ads, s-caun32.adb, - a-nselfu.ads, g-regexp.ads, s-pack22.ads, a-ticoio.adb, a-szuzti.ads, - g-diopit.adb, s-caun32.ads, s-conca9.adb, a-tags.adb, a-swmwco.ads, - a-sbecin.adb, s-pack31.adb, s-expuns.adb, a-ticoio.ads, s-valint.adb, - s-conca9.ads, g-diopit.ads, a-tags.ads, a-nllcef.ads, a-izteio.ads, - a-sbecin.ads, s-expuns.ads, s-pack31.ads, g-dyntab.adb, s-powtab.ads, - s-flocon-none.adb, s-valint.ads, a-ssiwti.ads, s-mmosin-mingw.adb, - s-pack40.adb, s-pack05.adb, a-ztflau.adb, g-dyntab.ads, - a-szuzti-shared.adb, g-alvevi.ads, a-stwise.adb, s-mmosin-mingw.ads, - s-pack40.ads, a-diocst.adb, a-ztflau.ads, s-pack05.ads, a-nlcoty.ads, - a-contai.ads, a-stwisu.adb, g-byorma.adb, a-siwtio.ads, a-stwise.ads, - s-regpat.adb, g-mbdira.adb, s-pack14.adb, a-diocst.ads, g-flocon.ads, - g-mbflra.adb, a-ztinau.adb, s-dim.ads, s-mantis.adb, a-stwisu.ads, - g-byorma.ads, s-atopri.adb, g-wistsp.ads, a-uncdea.ads, s-widcha.adb, - a-caldel.adb, s-regpat.ads, g-mbdira.ads, a-tiflio.adb, s-pack14.ads, - s-parame.adb, a-liwtio.ads, s-memory.adb, g-mbflra.ads, a-ztinau.ads, - a-wtgeau.adb, s-direio.adb, s-mantis.ads, s-atopri.ads, s-widcha.ads, - a-caldel.ads, s-pack23.adb, a-unccon.ads, a-tiflio.ads, s-parame.ads, - a-llftio.ads, s-memory.ads, s-regexp.adb, a-wtgeau.ads, a-exexda.adb, - s-direio.ads, s-pack23.ads, g-stheme.adb, a-tiinio.adb, g-sestin.ads, - s-regexp.ads, a-wtfiio.adb, a-comutr.adb, a-exexpr.adb, a-tiinio.ads, - a-ztmoau.adb, a-cohata.ads, a-wtfiio.ads, s-imgrea.adb, ada.ads, - a-szunau-shared.adb, a-comutr.ads, s-valuns.adb, a-ztmoau.ads, - system-linux-arm.ads, s-osprim-x32.adb, s-pack41.adb, s-pack06.adb, - s-imgrea.ads, s-valuns.ads, s-finroo.adb, s-caun16.adb, s-pooglo.adb, - a-zrstfi.adb, a-suenst.adb, s-pack41.ads, g-binenv.adb, s-pack06.ads, - a-calari.adb, a-nlcoar.ads, s-finroo.ads, a-timoio.adb, s-caun16.ads, - s-flocon.adb, a-suenst.ads, a-zrstfi.ads, s-pooglo.ads, s-wchcon.adb, - s-traceb-hpux.adb, s-pack50.adb, i-fortra.adb, s-pack15.adb, - a-ngcefu.adb, g-sptavs.ads, g-binenv.ads, s-wchjis.adb, a-calari.ads, - a-timoio.ads, a-decima.adb, s-flocon.ads, s-wchcon.ads, a-llfzti.ads, - i-fortra.ads, s-pack50.ads, s-pack15.ads, a-ngcefu.ads, a-cfhase.adb, - s-wchjis.ads, g-soliop.ads, a-decima.ads, a-chlat9.ads, s-pack24.adb, - a-nlelfu.ads, a-cfhase.ads, g-locfil.adb, s-atocou-builtin.adb, - s-memcop.ads, a-szunau.adb, s-pack24.ads, s-imgllb.adb, s-auxdec.adb, - g-locfil.ads, s-pack33.adb, a-szunau.ads, s-parame-vxworks.adb, - s-imgllb.ads, a-ciorma.adb, s-auxdec.ads, a-cobove.adb, s-dsaser.ads, - a-elchha.adb, s-pack33.ads, a-cofuve.adb, s-parame-vxworks.ads, - a-ciorma.ads, system-darwin-x86.ads, s-multip.adb, a-stwiun-shared.adb, - a-wichun.adb, a-cobove.ads, s-imgbiu.adb, s-tsmona-mingw.adb, - a-coormu.adb, a-siocst.adb, s-win32.ads, a-elchha.ads, s-pack42.adb, - s-pack07.adb, a-cofuve.ads, system-hpux.ads, a-teioed.adb, - a-convec.adb, g-speche.adb, s-multip.ads, a-stwiun-shared.ads, - a-wichun.ads, s-imgbiu.ads, a-numeri.ads, a-siocst.ads, a-coormu.ads, - a-lliwti.ads, s-pack42.ads, s-pack07.ads, a-teioed.ads, a-convec.ads, - g-speche.ads, g-socthi.adb, a-nucoty.ads, a-szmzco.ads, s-pack51.adb, - s-osprim-mingw.adb, s-casi64.adb, g-strspl.ads, g-socthi.ads, - g-socket-dummy.adb, s-pack51.ads, s-dimmks.ads, s-casi64.ads, - a-wtenau.adb, s-stchop-vxworks.adb, s-pack60.adb, - system-solaris-sparc.ads, s-pack25.adb, g-socket-dummy.ads, - a-exstat.adb, a-cofuma.adb, s-tsmona-linux.adb, a-wtenau.ads, - s-pack60.ads, s-pack25.ads, i-cstrea.adb, a-cofuma.ads, g-exptty.adb, - a-chzla1.ads, s-pack34.adb, i-cstrea.ads, s-excdeb.adb, a-iteint.ads, - g-exptty.ads, i-pacdec.adb, s-pack34.ads, s-rident.ads, s-sopco3.adb, - i-vxwork.ads, s-excdeb.ads, system-linux-ppc.ads, a-swuwti-shared.adb, - s-widlli.adb, s-pack43.adb, i-pacdec.ads, a-cwila9.ads, s-sopco3.ads, - a-fwteio.ads, s-widlli.ads, s-pack43.ads, a-suhcin.adb, a-wtdeau.adb, - g-allein.ads, a-suezst.adb, a-dirval-mingw.adb, g-zspche.adb, - s-bignum.adb, a-ztedit.adb, g-regist.adb, a-nllefu.ads, a-ztcoio.adb, - s-pack52.adb, a-llctio.ads, a-nucoar.ads, s-pack17.adb, a-suhcin.ads, - a-wtdeau.ads, a-suezst.ads, a-dirval.adb, g-zspche.ads, g-regist.ads, - a-ztedit.ads, s-bignum.ads, a-wtcstr.adb, system.ads, s-pack52.ads, - a-ztcoio.ads, s-pack17.ads, s-imgboo.adb, a-rbtgso.adb, a-dirval.ads, - a-cohase.adb, s-pack61.adb, a-wtcstr.ads, s-pack26.adb, s-osprim.ads, - a-tigeau.adb, s-imgboo.ads, a-nuelfu.ads, a-swfwha.ads, s-commun.adb, - g-socthi-vxworks.adb, a-rbtgso.ads, a-cohase.ads, g-zstspl.ads, - s-pack61.ads, s-pack26.ads, a-intnam-dragonfly.ads, s-imglld.adb, - a-tigeau.ads, s-commun.ads, g-socthi-vxworks.ads, a-cborma.adb, - a-stwifi.adb, g-moreex.adb, s-pack35.adb, s-imglld.ads, s-valdec.adb, - a-tifiio.adb, a-cborma.ads, g-moreex.ads, a-stwifi.ads, s-pack35.ads, - s-sopco4.adb, g-sha224.ads, g-socket.adb, a-intnam-rtems.ads, - s-finmas.adb, s-valdec.ads, s-addima.adb, a-finali.adb, a-tifiio.ads, - s-rpc.adb, a-ztflio.adb, s-pack44.adb, s-pack09.adb, a-sblcin.adb, - s-sopco4.ads, a-textio.adb, g-socket.ads, g-sptabo.ads, s-finmas.ads, - g-shsh32.adb, s-addima.ads, a-finali.ads, s-mmauni-long.ads, s-rpc.ads, - a-ztflio.ads, system-djgpp.ads, s-stache.adb, s-pack44.ads, - s-pack09.ads, a-sblcin.ads, a-textio.ads, a-cidlli.adb, g-shsh32.ads, - a-chtgbk.adb, a-tiocst.adb, s-pack53.adb, s-pack18.adb, s-stache.ads, - a-zchhan.adb, s-fatlfl.ads, a-ztinio.adb, s-strops.adb, a-siteio.ads, - a-cidlli.ads, a-chtgbk.ads, g-ssvety.ads, a-tiocst.ads, s-pack53.ads, - s-parame-hpux.ads, s-pack18.ads, a-zchhan.ads, s-strops.ads, - a-ztinio.ads, a-wichha.adb, a-stwima.adb, a-nlrear.ads, a-liteio.ads, - s-pack62.adb, s-pack27.adb, s-fore.adb, s-vercon.adb, a-wichha.ads, - a-stwima.ads, s-pack62.ads, system-linux-sparc.ads, s-pack27.ads, - g-dynhta.adb, s-fore.ads, s-vercon.ads, a-cofuba.adb, a-cimutr.adb, - i-cpoint.adb, s-imgenu.adb, a-stwibo.adb, s-pack36.adb, i-cstrin.adb, - s-imgllu.adb, a-suteio-shared.adb, g-excact.adb, s-stoele.adb, - s-addope.adb, g-dynhta.ads, a-cofuba.ads, a-ztmoio.adb, a-llfwti.ads, - a-cimutr.ads, i-cpoint.ads, s-imgenu.ads, a-stwibo.ads, a-wttest.adb, - s-pack36.ads, a-tgdico.ads, s-sopco5.adb, s-scaval.adb, i-cstrin.ads, - s-imgllu.ads, g-excact.ads, s-stoele.ads, g-deutst.ads, s-addope.ads, - s-imgwch.adb, g-sha384.ads, a-ztmoio.ads, s-pack45.adb, a-wttest.ads, - s-sopco5.ads, s-excmac-gcc.adb, s-scaval.ads, a-storio.adb, - a-coinho.adb, a-btgbso.adb, s-imgwch.ads, s-carun8.adb, memtrack.adb, - s-pack45.ads, a-sfhcin.ads, s-excmac-gcc.ads, a-storio.ads, - a-coinho.ads, a-btgbso.ads, s-stratt.adb, s-carun8.ads, a-shcain.adb, - s-pack54.adb, s-pack19.adb, a-colire.adb, a-tigeli.adb, s-caun64.adb, - s-stratt.ads, s-fatgen.adb, a-shcain.ads, a-stzunb-shared.adb, - s-pack54.ads, s-pack19.ads, a-colire.ads, a-calcon.adb, s-caun64.ads, - s-fatgen.ads, s-pack63.adb, g-arrspl.adb, a-stzunb-shared.ads, - s-pack28.adb, a-nllrar.ads, a-zzboio.adb, a-zzunio.ads, a-stunau.adb, - a-calcon.ads, g-cgideb.adb, s-objrea.adb, s-mastop.adb, a-tienau.adb, - g-altcon.adb, g-arrspl.ads, s-pack63.ads, s-restri.adb, s-pack28.ads, - a-zzboio.ads, a-stunau.ads, g-cgideb.ads, g-htable.adb, g-sothco.adb, - s-objrea.ads, g-soliop-solaris.ads, s-mastop.ads, a-tienau.ads, - system-linux-m68k.ads, g-altcon.ads, s-dmotpr.ads, s-memory-mingw.adb, - g-cgicoo.adb, s-pack37.adb, s-restri.ads, s-fatllf.ads, s-expmod.adb, - a-swuwha.adb, a-exextr.adb, a-cfhama.adb, s-gloloc-mingw.adb, - a-tiboio.adb, g-forstr.adb, g-sothco.ads, a-stzbou.adb, a-nllcty.ads, - a-suecin.adb, g-htable.ads, s-exctab.adb, a-tiunio.ads, g-cgicoo.ads, - s-osprim-posix.adb, s-pack37.ads, a-ciormu.adb, s-atocou-x86.adb, - a-swuwha.ads, s-expmod.ads, a-cfhama.ads, s-ficobl.ads, a-ngcoty.adb, - g-forstr.ads, a-tiboio.ads, a-calfor.adb, a-stzbou.ads, a-suecin.ads, - a-conhel.adb, a-crbltr.ads, s-exctab.ads, a-dhfina.ads, s-imgcha.adb, - s-pack46.adb, a-ciormu.ads, system-linux-sh4.ads, a-chahan.adb, - a-ngcoty.ads, a-stzunb.adb, a-szfzha.ads, a-calfor.ads, a-cbdlli.adb, - a-conhel.ads, s-imgcha.ads, s-pack46.ads, a-assert.adb, a-chahan.ads, - a-stzunb.ads, a-crdlli.adb, s-pack55.adb, a-cbdlli.ads, a-tideau.adb, - a-assert.ads, ioexcept.ads, s-boarop.ads, g-hesora.adb, a-crdlli.ads, - s-pack55.ads, a-tideau.ads, g-bubsor.adb, a-wtenio.adb, a-cbsyqu.adb, - g-hesora.ads, s-pack29.adb, a-nurear.ads, g-catiio.adb, s-stposu.adb, - g-bubsor.ads, a-wtenio.ads, a-cbsyqu.ads, a-suewst.adb, - system-vxworks-x86.ads, s-pack29.ads, a-cbmutr.adb, a-cbprqu.adb, - s-imenne.adb, g-sothco-dummy.adb, g-casuti.adb, g-catiio.ads, - s-stposu.ads, a-stzsea.adb, s-pack38.adb, a-suewst.ads, s-imgllw.adb, - a-cbprqu.ads, a-cbmutr.ads, s-imenne.ads, g-sothco-dummy.ads, - g-casuti.ads, s-htable.adb, s-fatsfl.ads, g-trasym.adb, unchconv.ads, - a-stzsea.ads, s-arit64.adb, s-pack38.ads, a-nllcar.ads, s-valrea.adb, - s-imgllw.ads, s-htable.ads, a-sequio.adb, g-trasym.ads, a-ngcoar.adb, - s-exnllf.adb, s-pack47.adb, s-arit64.ads, g-sercom-mingw.adb, - s-valrea.ads, g-socthi-mingw.adb, g-bytswa.adb, g-sehash.adb, - unchdeal.ads, a-sequio.ads, a-ngcoar.ads, s-exnllf.ads, a-wtdeio.adb, - s-pack47.ads, g-socthi-mingw.ads, a-excpol-abort.adb, a-ztgeau.adb, - g-bytswa.ads, g-sehash.ads, s-pack56.adb, a-wtdeio.ads, a-ngelfu.adb, - a-ztgeau.ads, a-cforse.adb, s-filatt.ads, a-stzfix.adb, a-cihase.adb, - s-pack56.ads, a-sfztio.ads, a-ngelfu.ads, s-trasym-dwarf.adb, - a-cforse.ads, a-ztfiio.adb, g-timsta.adb, a-stzfix.ads, a-cihase.ads, - a-ztfiio.ads, system-darwin-arm.ads: Move non-tasking runtime sources - to libgnat subdirectory. - -2017-09-08 Yannick Moy <moy@adacore.com> - - * sem_aux.adb, sem_aux.ads (Get_Called_Entity): New function to - return the entity associated with the call. - * sem_util.adb, sem_util.ads (Check_Function_Writable_Actuals): - Replace the internal Get_Function_Id with the new - Sem_Aux.Get_Called_Entity. - (Iterate_Call_Parameters): New - procedure to iterate on formals and actuals at the same time. - * sem_ch12.adb (Analyze_Subprogram_Instantiation): - Set SPARK_Mode from spec when set, for analysis - of instance. Restore after analysis of instance. - (Instantiate_Subprogram_Body): Set SPARK_Mode from body when - set, for analysis of body instance. Restored automatically at - the end of the subprogram. - * gnat1drv.adb (Adjust_Global_Switches): Set - Check_Validity_Of_Parameters to False in GNATprove mode. - * opt.ads (Check_Validity_Of_Parameters): Document switch to - set option. - -2017-09-08 Eric Botcazou <ebotcazou@adacore.com> - - * sem_util.adb (NCT_Tables_In_Use): Move to library level from... - (New_Copy_Tree): ...there. Reset the hash tables only if they - were used in the previous invocation. - * s-htable.adb: Fix typo. - -2017-09-08 Bob Duff <duff@adacore.com> - - * a-ssicst.adb (Open): Set File.Last_Op to the appropriate value. - -2017-09-08 Arnaud Charlet <charlet@adacore.com> - - * sem_aggr.adb: minor style fix. - -2017-09-08 Bob Duff <duff@adacore.com> - - * sprint.adb (Write_Corresponding_Source): Ignore if there is - no current source file. - (Write_Name_With_Col_Check, Write_Name_With_Col_Check_Sloc): - Print something helpful in case N is invalid. - * sprint.ads: Minor comment fix. - -2017-09-08 Eric Botcazou <ebotcazou@adacore.com> - - * exp_aggr.adb: (Aggr_Assignment_OK_For_Backend): Add early return for - access types. - -2017-09-08 Bob Duff <duff@adacore.com> - - * par-prag.adb, sem_prag.adb, snames.ads-tmpl: Implement pragma - Ada_2020, along the same lines as the other Ada version pragmas. - -2017-09-08 Gary Dismukes <dismukes@adacore.com> - - * sem_ch12.adb: Minor typo fixes and reformatting. - -2017-09-08 Yannick Moy <moy@adacore.com> - - * sem_aggr.adb (Resolve_Record_Aggregate): - Rewrite bounds of aggregate subexpressions which may depend on - discriminants of the enclosing aggregate. - -2017-09-08 Yannick Moy <moy@adacore.com> - - * sem_ch5.adb: Prevent assertion failure on illegal code. - -2017-09-08 Yannick Moy <moy@adacore.com> - - * lib-xref-spark_specific.adb (Add_SPARK_Xrefs.Is_SPARK_Scope): Avoid - calling Renamed_Entity on an entity which cannot be a renaming. - -2017-09-08 Eric Botcazou <ebotcazou@adacore.com> - - * exp_aggr.adb: Add with & use clause for Urealp. - (Aggr_Assignment_OK_For_Backend): Accept (almost all) - elementary types instead of just discrete types. - * sem_eval.adb (Expr_Value): Deal with N_Null for access types. - * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: - Be prepared for the FP zero value in the memset case. Add small - guard. - -2017-09-08 Eric Botcazou <ebotcazou@adacore.com> - - * s-htable.adb (Static_HTable.Reset): Use aggregate instead - of loop. - -2017-09-08 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_aggr.adb (Expand_Array_Aggregate): Use New_Copy_Tree instead - of New_Copy because the latter leaves the syntactic structure of - the tree inconsistent (a child is accessible through two parents) - and prevents proper replication of itypes by subsequent calls - to New_Copy_Tree. - * exp_ch4.adb (Expand_Concatenate): Use New_Copy_Tree instead of - New_Copy because the latter leaves the syntactic structure of the - tree inconsistent (a child is accessible through two parents) - and prevents proper replication of itypes by subsequent calls - to New_Copy_Tree. - * sem_util.adb (In_Subtree): New routine. - (New_Copy_Tree): Reimplemented. - * sem_util.ads (In_Subtree): New routine. - (New_Copy_Tree): Reimplemented. - -2017-09-08 Ed Schonberg <schonberg@adacore.com> - - * sem_ch13.adb (Resolve_Aspect_Expressions): The expression - for aspect Default_Value is a static scalar value, but it does - not freeze the type. Yhis allows for subsequent representation - clauses for the type. - -2017-09-08 Javier Miranda <miranda@adacore.com> - - * sem_ch8.adb (Find_Direct_Name.Undefined): Do - not add entries into the undefined reference table when we are - compiling with errors ignored. - -2017-09-08 Ed Schonberg <schonberg@adacore.com> - - * sem_ch12.adb (Check_Formal_Packages): Do not apply conformance - check if the instance is within an enclosing instance body. The - formal package was legal in the enclosing generic, and is - legal in the enclosing instantiation. This optimisation may be - applicable elsewhere, and it also removes spurious errors that - may arise with on-the-fly processing of instantiations that - contain Inline_Always subprograms. - -2017-09-08 Vincent Celier <celier@adacore.com> - - * gnatcmd.adb: Disregard empty argument of GNAT driver. - -2017-09-08 Justin Squirek <squirek@adacore.com> - - * checks.adb (Insert_Valid_Check): Manually decorate - the generated temporary for range valdity checks. - -2017-09-08 Eric Botcazou <ebotcazou@adacore.com> - - * usage.adb (Usage): Document new -gnatw.q/-gnatw.Q switches. - -2017-09-08 Justin Squirek <squirek@adacore.com> - - * switch-c.adb (Scan_Front_End_Switches): Add new warning switch - case to handle underscore flags. - * warnsw.adb, warnsw.ads (Set_Underscore_Warning_Switch): Create - new procedure to handle underscores. - -2017-09-08 Javier Miranda <miranda@adacore.com> - - * exp_ch4.adb (Expand_N_Op_Divide): Reordering code that handles - divisions with fixed point results to avoid generating twice - the runtime check on divide by zero. - * checks.adb (Apply_Divide_Checks): Ensure that operands are - not evaluated twice (once for their runtime checks and once for - their regular computation). - -2017-09-08 Yannick Moy <moy@adacore.com> - - * sem_prag.adb (Analyze_Part_Of): Add missing - return statements after issuing errors. Add detection of - out-of-order item and single concurrent type. - -2017-09-08 Nicolas Roche <roche@adacore.com> - - * gcc-interface/Makefile.in, a-extiti.ads, s-taprop-linux.adb, - s-osinte-solaris.adb, a-intnam.ads, s-osinte-solaris.ads, - s-tpobop.adb, s-intman-android.adb, s-tasinf.adb, s-tpobop.ads, - s-tasinf.ads, i-vxinco.adb, a-exetim-posix.adb, i-vxinco.ads, - a-astaco.adb, a-astaco.ads, s-tporft.adb, s-tpoaal.adb, a-taside.adb, - a-taside.ads, s-tpopsp-posix.adb, s-tasdeb.adb, s-tasdeb.ads, - s-tpoben.adb, a-dinopr.ads, s-inmaop-vxworks.adb, s-tpoben.ads, - s-interr-vxworks.adb, s-interr-dummy.adb, s-tassta.adb, - a-intnam-mingw.ads, s-tassta.ads, s-taasde.adb, a-stcoed.ads, - s-taasde.ads, s-osinte-darwin.adb, s-proinf.adb, s-taprop-dummy.adb, - s-osinte-darwin.ads, s-proinf.ads, s-linux.ads, a-intnam-linux.ads, - s-tasren.adb, s-tasren.ads, s-mudido.adb, g-semaph.adb, s-mudido.ads, - s-taprop-posix.adb, g-semaph.ads, s-osinte-mingw.ads, s-vxwork-x86.ads, - s-tposen.adb, s-linux-sparc.ads, s-taprop-vxworks.adb, s-tasini.adb, - s-tposen.ads, s-tasini.ads, a-etgrbu.ads, s-interr-hwint.adb, - s-osinte-linux.ads, s-taprop.ads, s-tasque.adb, s-tasque.ads, - s-taenca.adb, s-taspri-vxworks.ads, s-taenca.ads, a-dynpri.adb, - s-tpopsp-solaris.adb, a-dynpri.ads, s-taprop-hpux-dce.adb, - a-interr.adb, a-intnam-freebsd.ads, s-tarest.adb, a-interr.ads, - s-intman-susv3.adb, a-synbar.adb, a-intnam-dummy.ads, s-tadeca.adb, - s-osinte-vxworks.adb, s-tarest.ads, s-taskin.adb, a-synbar.ads, - s-taspri-hpux-dce.ads, s-tadeca.ads, s-osinte-vxworks.ads, - s-taskin.ads, s-intman-solaris.adb, a-sytaco.adb, s-vxwext-kernel.adb, - s-mudido-affinity.adb, a-sytaco.ads, s-vxwext-kernel.ads, s-taprob.adb, - s-intman-mingw.adb, s-taprob.ads, s-osinte-kfreebsd-gnu.ads, - s-osinte-dummy.ads, s-osinte-gnu.adb, s-osinte-rtems.adb, s-interr.adb, - s-inmaop.ads, s-vxwext-rtp.adb, s-osinte-gnu.ads, s-osinte-rtems.ads, - a-synbar-posix.adb, s-interr.ads, s-taspri-posix-noaltstack.ads, - s-vxwext-rtp.ads, a-synbar-posix.ads, a-extiin.ads, s-osinte-posix.adb, - s-tpinop.adb, s-tasres.ads, s-tpinop.ads, a-disedf.ads, a-diroro.ads, - s-linux-alpha.ads, a-tasatt.adb, s-solita.adb, a-intnam-solaris.ads, - a-tasatt.ads, s-solita.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads, - s-vxwork-arm.ads, s-tpopsp-posix-foreign.adb, s-intman-dummy.adb, - s-intman.ads, s-stusta.adb, s-stusta.ads, s-intman-posix.adb, - s-tpopsp-vxworks.adb, s-inmaop-dummy.adb, s-taspri-mingw.ads, - a-intnam-darwin.ads, s-osinte-aix.adb, s-osinte-dragonfly.adb, - s-osinte-aix.ads, s-tasinf-mingw.adb, s-osinte-dragonfly.ads, - s-linux-hppa.ads, s-osinte-x32.adb, s-inmaop-posix.adb, - s-tasinf-mingw.ads, s-intman-vxworks.adb, s-linux-mips.ads, - s-intman-vxworks.ads, s-osinte-android.adb, s-tasinf-linux.adb, - s-osinte-android.ads, s-vxwork-ppc.ads, s-tasinf-linux.ads, - a-dispat.adb, a-dispat.ads, s-tadert.adb, g-thread.adb, s-tadert.ads, - g-thread.ads, a-intnam-hpux.ads, s-linux-android.ads, s-tataat.adb, - a-exetim.ads, s-tataat.ads, a-reatim.adb, a-reatim.ads, thread.c, - g-boubuf.adb, s-osinte-freebsd.adb, g-boubuf.ads, s-osinte-freebsd.ads, - s-tasuti.adb, s-taspri-dummy.ads, a-exetim-mingw.adb, s-linux-x32.ads, - s-tasuti.ads, g-signal.adb, a-exetim-mingw.ads, s-interr-sigaction.adb, - g-signal.ads, s-osinte-hpux.ads, a-intnam-vxworks.ads, - s-osinte-hpux-dce.adb, s-taspri-posix.ads, s-osinte-hpux-dce.ads, - s-tasinf-vxworks.ads, g-tastus.ads, s-tpopsp-tls.adb, - s-taprop-solaris.adb, a-retide.adb, a-exetim-darwin.adb, a-retide.ads, - s-vxwext.adb, s-vxwext.ads, a-rttiev.adb, a-rttiev.ads, g-boumai.ads, - a-exetim-default.ads, s-taprop-mingw.adb, s-taspri-solaris.ads, - a-intnam-aix.ads: Move libgnarl sources to libgnarl subdir. - -2017-09-08 Arnaud Charlet <charlet@adacore.com> - - * doc/share/conf.py, doc/share/latex_elements.py, - doc/share/ada_pygments.py, doc/Makefile: Improve support for Ada - highlighting. - -2017-09-08 Arnaud Charlet <charlet@adacore.com> - - * gnat_rm.texi, gnat_ugn.texi, - doc/gnat_ugn/the_gnat_compilation_model.rst, - doc/gnat_ugn/getting_started_with_gnat.rst, - doc/gnat_ugn/inline_assembler.rst, - doc/gnat_ugn/building_executable_programs_with_gnat.rst, - doc/gnat_ugn/elaboration_order_handling_in_gnat.rst, - doc/gnat_ugn/about_this_guide.rst, - doc/gnat_ugn/platform_specific_information.rst, - doc/gnat_ugn/example_of_binder_output.rst, - doc/gnat_ugn/gnat_and_program_execution.rst, - doc/gnat_ugn/gnat_utility_programs.rst, - doc/gnat_rm/implementation_of_specific_ada_features.rst, - doc/gnat_rm/interfacing_to_other_languages.rst, - doc/gnat_rm/implementation_defined_aspects.rst, - doc/gnat_rm/intrinsic_subprograms.rst, - doc/gnat_rm/implementation_defined_characteristics.rst, - doc/gnat_rm/implementation_advice.rst, - doc/gnat_rm/implementation_defined_attributes.rst, - doc/gnat_rm/compatibility_and_porting_guide.rst, - doc/gnat_rm/standard_library_routines.rst, - doc/gnat_rm/the_gnat_library.rst, - doc/gnat_rm/implementation_defined_pragmas.rst, - doc/gnat_rm/representation_clauses_and_pragmas.rst, - doc/gnat_rm/standard_and_implementation_defined_restrictions.rst, - doc/gnat_rm/obsolescent_features.rst, - doc/gnat_rm/about_this_guide.rst, - doc/gnat_rm/the_implementation_of_standard_i_o.rst, - doc/gnat_rm/implementation_of_ada_2012_features.rst, - doc/gnat_ugn.rst, - doc/gnat_rm.rst: Update documentation. - -2017-09-08 Arnaud Charlet <charlet@adacore.com> - - * s-dwalin.ads, s-dwalin.adb, s-trasym-dwarf.adb, s-objrea.ads, - s-objrea.adb, s-tsmona-linux.adb, s-tsmona-mingw.adb: New. - * gcc-interface/Makefile.in: Enable s-trasym-dwarf.adb on x86*linux. - -2017-09-08 Bob Duff <duff@adacore.com> - - * s-ststop.ads, s-ststop.adb, rtsfind.ads (String_Input_Tag): - New routine to read the Tag robustly. - * exp_attr.adb (Input): Change the expansion of 'Input, - in the class-wide case, to call String_Input_Tag instead of - String_Input_Blk_IO. - -2017-09-08 Arnaud Charlet <charlet@adacore.com> - - * s-rident.ads (Restriction_Id): reorder enum - literals, so that Pure_Barriers is no longer in range of the - Cunit_Boolean_Restrictions subtype. - -2017-09-08 Nicolas Roche <roche@adacore.com> - - * a-taster.ads, a-taster.adb: Move to libgnarl - * gcc-interface/Makefile.in: Remove obsolete targets. Code cleanups. - Add support for files in libgnarl. - -2017-09-08 Ed Schonberg <schonberg@adacore.com> - - * exp_ch4.adb (Expand_N_Type_Conversion): Do not apply - accessibility check to an interface conversion, whose purpose - is to perform a pointer adjustment in a dispatching call. - * exp_ch6.adb (Expand_Call_JHelper): Add accessibility checks - when the actual is a construct that involves a dereference of an - expression that includes a formal of the enclosing subprogram, - In such cases, the accessibility level of the actual is that of - the corresponding formal, which is passed in as an additional - actual in the outer call. - -2017-09-08 Bob Duff <duff@adacore.com> - - * exp_intr.adb (Add_Source_Info): Do not decode - file names; they were not encoded in the first place. - -2017-09-08 Bob Duff <duff@adacore.com> - - * a-tags.adb (Internal_Tag): Unsuppress checks, so we get - exceptions instead of crashes. Check for absurdly long strings - and empty strings. Empty strings cause trouble because they can - have super-null ranges (e.g. 100..10), which causes Ext_Copy to - be empty, which causes an array index out of bounds. - * s-ststop.adb (Input): Unsuppress checks, so we get exceptions - instead of crashes. - -2017-09-08 Arnaud Charlet <charlet@adacore.com> - - * sem_util.adb (Is_CCT_Instance): allow use in - the context of protected types. - -2017-09-08 Arnaud Charlet <charlet@adacore.com> - - * a-tigeli.adb: minor remove extra whitespace. - -2017-09-08 Gary Dismukes <dismukes@adacore.com> - - * par-ch4.adb: Reformatting of an error message. - -2017-09-08 Javier Miranda <miranda@adacore.com> - - * sem_ch3.adb (Resolve_Name): Under ASIS mode analyze overloaded - identifiers to ensure their correct decoration of names on - aspect expressions. - -2017-09-08 Yannick Moy <moy@adacore.com> - - * exp_attr.adb (Expand_Loop_Entry_Attribute): Do - not skip a loop coming from source which is rewritten into a loop. - -2017-09-08 Ed Schonberg <schonberg@adacore.com> - - * freeze.adb (Wrap_Imported_Subprogram): Indicate that the - wrapper has convention Ada, to prevent spurious warnings on - unconstrained array parameters. - -2017-09-08 Eric Botcazou <ebotcazou@adacore.com> - - * sem_prag.adb (Check_Variant): Use First_Non_Pragma/Next_Non_Pragma. - (Analyze_Pragma) <Pragma_Unchecked_Union>: Likewise. - -2017-09-08 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch6.adb (Freeze_Expr_Types): Rename Spec_Id into Def_Id. - -2017-09-08 Arnaud Charlet <charlet@adacore.com> - - * exp_intr.adb (Append_Entity_Name): Move to ... - * sem_util.ads, sem_util.adb: ... here to share it. - (Subprogram_Name): New subprogram, to compute the name of the enclosing - subprogram/entity. - * errutil.adb (Error_Msg): Fill new field Node. - * erroutc.ads (Subprogram_Name_Ptr): New. - (Error_Msg_Object): New field Node. - * erroutc.adb (dmsg, Output_Msg_Text): Take new field Node into account. - * errout.adb (Error_Msg): New variant with node id parameter. - Fill new parameter Node when emitting messages. Revert previous - changes for Include_Subprogram_In_Messages. - * sem_ch5.adb (Check_Unreachable_Code): Supply Node parameter when - generating warning message. - -2017-09-08 Ed Schonberg <schonberg@adacore.com> - - * par-ch4.adb (P_Iterated_Component_Association): Place construct - under -gnat2020 flag, given that it is a future feature of - the language. - * sem_aggr.adb (Resolve_Iterated_Component_Association): Mark - defining identifier as referenced to prevent spurious warnings: - corresponding loop is expanded into one or more loops whose - variable has the same name, and the expression uses those names - and not the original one. - -2017-09-08 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_elab.adb (Check_A_Call): Do not consider - references to internal variables for SPARK semantics. - -2017-09-08 Arnaud Charlet <charlet@adacore.com> - - * inline.adb (In_Package_Spec): refine type of - the parameter from Node_Id to Entity_Id. - -2017-09-08 Justin Squirek <squirek@adacore.com> - - * exp_ch5.adb (Expand_Formal_Container_Loop): - Reset the scope of the loop parameter after it is reanalyzed. - -2017-09-08 Eric Botcazou <ebotcazou@adacore.com> - - * sem_util.ads (Set_Rep_Info): New inline procedure. - * sem_util.adb (Set_Rep_Info): Implement it. - * sem_ch3.adb (Process_Subtype): If the case of a constraint present, - always copy the representation aspects onto the subtype. - -2017-09-08 Georges-Alex Jaloyan <jaloyan@adacore.com> - - * g-dynhta.adb, g-dynhta.ads (Get_First_Key, Get_Next_key): - Correction of the return type from access type to option type. - (Simple_HTable): Moving the Instance_Data to ads file. - -2017-09-08 Yannick Moy <moy@adacore.com> - - * sem_prag.adb: Use System.Case_Util.To_Lower to simplify code. - -2017-09-08 Arnaud Charlet <charlet@adacore.com> - - * opt.ads (Include_Subprogram_In_Messages): New variable. - * errout.ads (Current_Subprogram_Ptr): New variable. - * errout.adb (Error_Msg): Prepend current subprogram info - in messages if Include_Subprogram_In_Messages is set. - * sem_util.adb (elab code): Initialize Current_Subprogram_Ptr to - Current_Subprogram. - * gnat1drv.adb (Adjust_Global_Switches): Set - Include_Subprogram_In_Messages when -gnatdJ is set. - * debug.adb: Document and reserve -gnatdJ. - -2017-09-08 Georges-Axel Jaloyan <jaloyan@adacore.com> - - * g-dynhta.adb, g-dynhta.ads (Get_First_Key, Get_Next_Key): New - functions to iterate over simple hastables. - (Load_Factor_HTable): Remove obsolete and inefficient implementation. - -2017-09-08 Javier Miranda <miranda@adacore.com> - - * exp_ch6.adb (Unqual_BIP_Function_Call): Adding - missing checks on the presence of Entity() before checking the - entity attributes. - -2017-09-08 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch6.adb (Analyze_Expression_Function): Reorder some - statements, use local variable and remove unnecessary processing. - -2017-09-08 Javier Miranda <miranda@adacore.com> - - * exp_ch6.ads (Make_Build_In_Place_Iface_Call_In_Allocator): New - subprogram. - (Make_Build_In_Place_Iface_Call_In_Anonymous_Context): New subprogram. - (Make_Build_In_Place_Iface_Call_In_Object_Declaration): New - subprogram. - (Unqual_BIP_Iface_Function_Call): New subprogram. - * exp_ch6.adb (Replace_Renaming_Declaration_Id): New - subprogram containing code that was previously inside - Make_Build_In_Place_Call_In_Object_Declaration since it is also - required for one of the new subprograms. - (Expand_Actuals): - Invoke Make_Build_In_Place_Iface_Call_In_Anonymous_Context - (Expand_N_Extended_Return_Statement): Extend the - cases covered by an assertion on expected BIP object - declarations. - (Make_Build_In_Place_Call_In_Assignment): - Removing unused code; found working on this ticket. - (Make_Build_In_Place_Call_In_Object_Declaration): Move the code - that replaces the internal name of the renaming declaration - into the new subprogram Replace_Renaming_Declaration_Id. - (Make_Build_In_Place_Iface_Call_In_Allocator): New subprogram. - (Make_Build_In_Place_Iface_Call_In_Anonymous_Context): - New subprogram. - (Make_Build_In_Place_Iface_Call_In_Object_Declaration): New - subprogram. - (Unqual_BIP_Iface_Function_Call): New subprogram. - * exp_ch3.adb (Expand_N_Object_Declaration): Invoke the new - subprogram Make_Build_In_Place_Iface_Call_In_Object_Declaration. - * exp_attr.adb (Expand_N_Attribute_Reference): Invoke the new - subprogram Make_Build_In_Place_Iface_Call_In_Anonymous_Context. - * exp_ch4.adb (Expand_Allocator_Expression): Invoke the new - subprogram Make_Build_In_Place_Iface_Call_In_Allocator. - (Expand_N_Indexed_Component): Invoke the new subprogram - Make_Build_In_Place_Iface_Call_In_Anonymous_Context. - (Expand_N_Selected_Component): Invoke the new subprogram - Make_Build_In_Place_Iface_Call_In_Anonymous_Context. - (Expand_N_Slice): Invoke the new subprogram - Make_Build_In_Place_Iface_Call_In_Anonymous_Context. - * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): - Invoke the new subprogram - Make_Build_In_Place_Iface_Call_In_Anonymous_Context. - -2017-09-08 Javier Miranda <miranda@adacore.com> - - * exp_disp.adb (Expand_Interface_Conversion): Fix handling of - access to interface types. Remove also the accessibility check. - -2017-09-08 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch6.adb (Freeze_Expr_Types): Really freeze - all the types that are referenced by the expression. - (Analyze_Expression_Function): Call Freeze_Expr_Types for - a completion instead of manually freezing the type of the - expression. - (Analyze_Subprogram_Body_Helper): Do not call Freeze_Expr_Types here. - -2017-09-08 Ed Schonberg <schonberg@adacore.com> - - * exp_prag.adb (Replace_Discriminals_Of_Protected_Op): - New procedure, auxiliary to Expand_Pragma_Check, to handle - references to the discriminants of a protected type within a - precondition of a protected operation. This is needed because - the original precondition has been analyzed in the context of - the protected declaration, but in the body of the operation - references to the discriminants have been replaved by references - to the discriminants of the target object, and these references - are only created when expanding the protected body. - -2017-09-08 Yannick Moy <moy@adacore.com> - - * sem_prag.adb (Analyze_Pragma): Issue more precise error messages on - Loop_Variant. - -2017-09-08 Ed Schonberg <schonberg@adacore.com> - - * exp_attr.adb (Build_Record_VS_Func): If the record is an - unchecked union, do not emit checks for its (non-existent) - discriminants, or for variant parts that depend on them. - -2017-09-08 Justin Squirek <squirek@adacore.com> - - * sem_ch4.adb (Find_Equality_Types.Try_One_Interp, - Find_Comparison_Type.Try_One_Interp): Add check for generic - instances. - -2017-09-08 Arnaud Charlet <charlet@adacore.com> - - * sem_ch3.adb, layout.adb, layout.ads, exp_attr.adb, debug.adb, - exp_pakd.adb, sem_prag.adb, gnat1drv.adb, targparm.adb, targparm.ads, - repinfo.adb, exp_ch6.adb, exp_aggr.adb, sem_eval.adb, sem_ch13.adb, - exp_ch3.adb: Remove references to Frontend_Layout_On_Target and - remaining references to AAMP_On_Target. - -2017-09-08 Ed Schonberg <schonberg@adacore.com> - - * style.adb: Fix typo. - -2017-09-08 Javier Miranda <miranda@adacore.com> - - * einfo.adb (Underlying_Type): Add missing support for class-wide - types that come from the limited view. - * exp_attr.adb (Attribute_Address): Check class-wide type - interfaces using the underlying type to handle limited-withed - types. - (Attribute_Tag): Check class-wide type interfaces using - the underlying type to handle limited-withed types. - -2017-09-08 Ed Schonberg <schonberg@adacore.com> - - * exp_ch5.adb (Expand_Predicated_Loop): Handle properly a loop - over a subtype of a type with a static predicate, taking into - account the predicate function of the parent type and the bounds - given in the loop specification. - * sem_ch3.adb (Inherit_Predicate_Flags): For qn Itype created for - a loop specification that is a subtype indication whose type mark - is a type with a static predicate, inherit predicate function, - used to build case statement for rewritten loop. - -2017-09-08 Justin Squirek <squirek@adacore.com> - - * lib-load.adb: Modify printing of error message to exclude file - line number. - -2017-09-08 Arnaud Charlet <charlet@adacore.com> - - * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): - don't inline subprograms declared in both visible and private - parts of a package. - (In_Package_Spec): previously In_Package_Visible_Spec; now - detects subprograms declared both in visible and private parts - of a package spec. - -2017-09-08 Ed Schonberg <schonberg@adacore.com> - - * exp_util.adb (Build_Invariant_Procedure_Declaration): If - the type is an anonymous array in an object declaration, whose - component type has an invariant, use the object declaration - as the insertion point for the invariant procedure, given that - there is no explicit type declaration for an anonymous array type. - -2017-09-08 Bob Duff <duff@adacore.com> - - * a-cbprqu.ads, a-cbdlli.adb: Suppress warnings. - -2017-09-08 Bob Duff <duff@adacore.com> - - * a-strfix.adb (Trim): Compute Low and High only if needed. - -2017-09-08 Justin Squirek <squirek@adacore.com> - - * lib-load.adb (Load_Main_Source): Add error output in the case a - source file is missing. - -2017-09-08 Bob Duff <duff@adacore.com> - -PR ada/80888 - * a-textio.adb, a-witeio.adb, a-ztexio.adb (Set_WCEM): Use - Default_WCEM by default (i.e. if the encoding is not specified - by the Form string). - -2017-09-08 Bob Duff <duff@adacore.com> - - * s-trasym.ads (Hexa_Traceback): If - Suppress_Hex is True, print "..." instead of a hexadecimal - address. - * s-trasym.adb: Ignore No_Hex in this version. - Misc cleanup. - -2017-09-08 Bob Duff <duff@adacore.com> - - * debug.adb: Minor reformatting. - -2017-09-08 Bob Duff <duff@adacore.com> - - * a-cbdlli.adb, a-cohama.adb, a-cohase.adb (Copy): Rewrite the - code so it doesn't trigger an "uninit var" warning. - -2017-09-08 Nicolas Roche <roche@adacore.com> - - * s-hibaen.ads: Remove obsolete file. - -2017-09-08 Arnaud Charlet <charlet@adacore.com> - - * a-locale.ads: Add comment explaining the state of this package. - -2017-09-08 Arnaud Charlet <charlet@adacore.com> - - * sem_util.adb (Is_CCT_Instance): Allow calls in the context - of packages. - * sem_prag.ads, sem_prag.adb (Find_Related_Declaration_Or_Body): - allow calls in the context of package spec (for pragma - Initializes) and bodies (for pragma Refined_State). - -2017-09-08 Bob Duff <duff@adacore.com> - - * checks.adb (Insert_Valid_Check): Copy the Do_Range_Check flag to the - new Exp. - -2017-09-08 Eric Botcazou <ebotcazou@adacore.com> - - * debug.adb (dA): Adjust comment. - * gnat1drv.adb (Gnat1drv): Likewise. - * opt.ads (List_Representation_Info_Extended): New variable. - * repinfo.adb (List_Record_Info): Split implementation into... - (Compute_Max_Length): ...this. Recurse on records if requested. + (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. - * switch-c.adb (Scan_Front_End_Switches) <'R'>: Use case - statement, accept '0' and set List_Representation_Info_Extended - on 'e'. - * usage.adb (Usage): Document new -gnatRe variant. - -2017-09-08 Ed Schonberg <schonberg@adacore.com> - - * sem_prag.adb (Analyze_Pragma, case Default_Storage_Pool): - Do not save the given entity in the global variable Default_Pool - if the pragma appears within a generic unit. - -2017-09-08 Bob Duff <duff@adacore.com> - - * errout.adb (Delete_Warning): Do not - decrement Warnings_Treated_As_Errors. This is called before - Warnings_Treated_As_Errors has been incremented to account for - this warning. Decrementing it here can lead to negative values - of Warnings_Treated_As_Errors, raising Constraint_Error in - checks-on builds, and causing the compiler to return an error - code in checks-off builds. - -2017-09-08 Arnaud Charlet <charlet@adacore.com> - - * sem_util.ads, sem_util.adb (Is_CCT_Instance): Only expect - entities of named concurrent types as Ref_Id and not of anonymous - concurrent objects (because callers already know when a conversion - is necessary and can easily do it); also, do not expect protected - types or protected objects as Context_Id (because no flow-related - SPARK pragmas are attached there); reflect these changes in a - more precise comment. - -2017-09-08 Olivier Hainque <hainque@adacore.com> - - * g-altive.ads: Add documentation. - -2017-09-08 Bob Duff <duff@adacore.com> - - * sem_util.ads, debug.adb: Minor comment fix. - * erroutc.ads: Comment fix. - -2017-09-08 Ed Schonberg <schonberg@adacore.com> - - * sem_ch12.adb (Validate_Array_Type_Instance): Suppress check - for compatibility of component types of formal and actual in an - instantiation of a child unit, when the component type of the - formal is itself a formal of an enclosing generic. - -2017-09-08 Arnaud Charlet <charlet@adacore.com> - - * sem_util.ads, sem_util.adb (Is_CCT_Instance): moved from - sem_prag.adb to make it available for GNATprove; for concurrent - types replace custom scope climbing with Scope_Same_Or_Within; for - single concurrent objects add scope climbing (with Scope_Within), - which was not there (that's the primary semantic change of this - commit); also, when comparing a single concurrent object with - its corresponding concurrent type rely on equality of types, - not of objects (because that's simpler to code). - * sem_prag.adb (Is_CCT_Instance): lifted to sem_util.ads. - (Analyze_Global_Item): adjust special-casing of references to the - current instance of a concurrent unit in the Global contracts - of task types and single tasks objects; similar for references - in the protected operations and entries of protected types and - single protected objects (in all these cases the current instance - behaves as an implicit parameter and must not be mentioned in - the Global contract). - -2017-09-08 Arnaud Charlet <charlet@adacore.com> - - * exp_ch6.adb (Expand_Call_Helper): Introduce temporary for - function calls returning a record within a subprogram call, - for C generation. - -2017-09-08 Ed Schonberg <schonberg@adacore.com> - - * sem_ch8.adb (Find_Expanded_Name): Handle properly an expanded - name that designates the current instance of a child unit in its - own body and appears as the prefix of a reference to an entity - local to the child unit. - * exp_ch6.adb, freeze.adb, sem_ch3.adb, sem_prag.adb, sem_util.adb: - Minor reformatting. - -2017-09-08 Yannick Moy <moy@adacore.com> - - * sem_res.adb (Resolve_Equality_Op): Do not warn on comparisons that - may be intentional. - -2017-09-08 Tristan Gingold <gingold@adacore.com> - - * sem_warn.adb (Check_Unused_Withs): Remove test that disabled - warnings on internal units in configurable run time mode. - -2017-09-08 Bob Duff <duff@adacore.com> - - * sem_ch3.adb (Build_Derived_Private_Type): Inherit - representation items from interfaces that the derived type - implements, not just from the parent type. - * sem_util.ads, sem_util.adb (Abstract_Interface_List): Change - this to return an empty list when there are no interfaces. - * einfo.ads, sem_ch13.adb: Minor comment fixes. - * sem_attr.adb: Minor comment fix. - -2017-09-08 Doug Rupp <rupp@adacore.com> - - * sigtramp-vxworks.c [i386]: Adjust the kernel context for - x86-vx7. - -2017-09-08 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch4.adb (Expand_N_Allocator): Generate a - call to Allocate_Any_Controlled when the allocation does not - require any initialization. - -2017-09-08 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_util.adb (Copy_Node_With_Replacement): - Update the Renamed_Object field of a replicated object renaming - declaration. - -2017-09-08 Patrick Bernardi <bernardi@adacore.com> - - * exp_ch9.adb (Is_Pure_Barrier): Allow type - conversions and components of objects. Simplified the detection - of the Count attribute by identifying the corresponding run-time - calls. - -2017-09-08 Yannick Moy <moy@adacore.com> - - * exp_ch9.adb, exp_disp.adb, repinfo.adb, sem_ch12.adb, sem_dim.adb, - sem_type.adb, sinfo.ads: Minor reformatting. - -2017-09-08 Ed Schonberg <schonberg@adacore.com> - - * freeze.adb (Has_Incomplete_Compoent): New predicate, subsidiary - of Freeze_Profile, used to inhibit the freezing of the profile - of an expression function declared within a nested package, when - some type in the profile depends on a private type declared in - an enclosing package. - -2017-09-08 Bob Duff <duff@adacore.com> - - * gnat1drv.adb (Gnat1drv): Do not set the Force_ALI_Tree_File flag in - the subunit case. It's still OK to set it in the "missing subunits" - case, because that won't cause the obsolete .ali files that cause - confusion. - -2017-09-08 Bob Duff <duff@adacore.com> - - * sinput-l.adb: Remove unused "with Unchecked_Conversion;". It's - unclear why this didn't cause a warning. - * a-uncdea.ads, a-unccon.ads: Add "Ada." to names in the - pragmas. It's unclear why this didn't cause an error. - -2017-09-08 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_spark.adb (Expand_SPARK_N_Object_Renaming_Declaration): - Reimplemented. - (Expand_SPARK_Potential_Renaming): Code clean up. - * sem_prag.adb (Analyze_Initialization_Item): Add a guard in case - the item does not have a proper entity. - (Analyze_Input_Item): Add a guard in case the item does not have a - proper entity. - (Collect_States_And_Objects): Include object renamings in the - items being collected. - (Resolve_State): Update the documentation of this routine. - * sem_util.adb (Entity_Of): Add circuitry to handle - renamings of function results. - (Remove_Entity): New routine. - (Remove_Overloaded_Entity): Take advantage of factorization. - * sem_util.ads (Entity_Of): Update the documentation - of this routine. - (Remove_Entity): New routine. - (Remove_Overloaded_Entity): Update the documentation of this - routine. - -2017-09-08 Eric Botcazou <ebotcazou@adacore.com> - - * repinfo.adb (List_Record_Info): During first loop, - do not override the normalized position and first bit - if they have already been set. Move fallback code - for the packed case to the case where it belongs. - * sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): - Also adjust the normalized position of components. - (Adjust_Record_For_Reverse_Bit_Order_Ada_95): Likewise. - -2017-09-08 Ed Schonberg <schonberg@adacore.com> - - * exp_disp.adb (Make_DT, Set_All_DT_Position): Handle properly - the placement of a primitive operation O that renames an operation - R declared in an inner package, and which is thus not a primitive - of the dispatching type of O. In this case O is a new primitive - and does not inherit its dispatch table position from R (which - has none). - -2017-09-08 Ed Schonberg <schonberg@adacore.com> - - * sem_dim.adb (Analyze_Dimension_If_Expression, - Analyze_Dimension_Case_Expression): new subprograms to verify - the dimensional correctness of Ada2012 conditional expressions, - and set properly the dimensions of the construct. - * sem_res.adb (Resolve_If_Expression, Resolve_Case_Expression)): - call Analyze_Dimension. - -2017-09-08 Ed Schonberg <schonberg@adacore.com> - - * sem_type.adb (Expand_Interface_Conversion): Prevent an infinite - loop on an interface declared as a private extension of another - synchronized interface. - -2017-09-08 Ed Schonberg <schonberg@adacore.com> - - * sem_ch12.adb (Check_Generic_Parent): New procedure within - Analyze_Associations, to handle actual packages that depend on - previous instances. If a package IAP that is an instantiation is - used as an actual in a subsequent instantiation SI in the same - scope, and IAP has a body, IAP must be frozen before SI. If - the generic parent of IAP is itself declared in a previous - instantiation in the same scope, that instantiation must also - be frozen before SI. - (Install_Body): Prevent double insertion of freeze node for - instance. - -2017-09-08 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_prag.adb (Resolve_State): Update the - comment on documentation. Generate a reference to the state once - resolution takes place. - -2017-09-08 Ed Schonberg <schonberg@adacore.com> - - * sem_ch13.adb (Analyze_Aspect_Specifications, case - Linker_Section): If the aspect applies to an object declaration - with explicit initialization, do not delay the freezing of the - object, to prevent access-before-elaboration in the generated - initialization code. - -2017-09-08 Ed Schonberg <schonberg@adacore.com> - - * a-wtdeio.adb (Put, all versions): Use Long_Long_Integer - (Integer_Value (Item)) when the size of the fixed decimal type - is larger than Integer. - -2017-09-07 Eric Botcazou <ebotcazou@adacore.com> - - PR ada/82127 - * gcc-interface/decl.c (copy_and_substitute_in_layout): Put the fields - in order of increasing position in more cases. - -2017-09-07 Yannick Moy <moy@adacore.com> - - * a-exetim-mingw.ads: Add contract Global=>null - on all operations that are modeled as having no read or write - of global variables in SPARK. - -2017-09-07 Raphael Amiard <amiard@adacore.com> - - * a-chtgop.adb, a-chtgop.ads (Generic_Iteration_With_Position): Added - to Hmaps.Generic_Ops. - * a-cohama.adb (Ada.Containers.Hmaps.Iterate): Pass proper position in - cursors. - * a-cihama.adb (Ada.Containers.Indefinite_Hmaps.Iterate): Pass pos in - cursors. - * a-cohase.adb (Ada.Containers.Hashed_Sets.Iterate): Pass proper - position in cursors. - -2017-09-07 Javier Miranda <miranda@adacore.com> - - * sem_elab.adb (Check_Task_Activation): Adding switch -gnatd.y to - allow disabling the generation of implicit pragma Elaborate_All - on task bodies. - -2017-09-07 Javier Miranda <miranda@adacore.com> - - * exp_disp.adb (Make_Tags): Avoid suffix counter - in the external name of the elaboration flag. Required to fix - the regressions introduced by the initial version of this patch. - -2017-09-07 Bob Duff <duff@adacore.com> - - * sem_ch6.adb (Analyze_Function_Return): Do not - insert an explicit conversion to force the displacement of the - "this" pointer to reference the secondary dispatch table in the - case where the return statement is returning a raise expression, - as in "return raise ...". - -2017-09-07 Arnaud Charlet <charlet@adacore.com> - - * sem_disp.adb (Is_User_Defined_Equality): Removed procedure. - * sem_util.ads, sem_util.adb (Is_User_Defined_Equality): Copied - procedure from sem_disp.adb. - * sem_ch12.ads (Get_Unit_Instantiation_Node): rename Package - with Unit. - * sem_ch12.adb (Get_Unit_Instantiation_Node): function extended to - return the instantiation node for subprograms. Update references - to Get_Unit_Instantiation_Node. - * sem_ch7.adb (Install_Parent_Private_Declarations): update - reference to Get_Unit_Instantiation_Node. - * exp_dist.adb (Build_Package_Stubs): update reference to - Get_Unit_Instantiation_Node. - * sem_ch9.adb: minor typo in comment. - * lib-xref-spark_specific.adb - (Traverse_Declaration_Or_Statement): traverse into task type - definition. - -2017-09-07 Ed Schonberg <schonberg@adacore.com> - - * sem_dim.adb (Analyze_Dimension_Type_Conversion): New procedure - to handle properly various cases of type conversions where the - target type and/or the expression carry dimension information. - (Dimension_System_Root); If a subtype carries dimension - information, obtain the source parent type that carries the - Dimension aspect. - -2017-09-07 Dmitriy Anisimkov <anisimko@adacore.com> - - * g-socket.adb, g-socket.ads (GNAT.Sockets.To_Ada): New routine. - -2017-09-07 Ed Schonberg <schonberg@adacore.com> - - * exp_attr.adb (Expand_N_Attribute_Reference, case 'Constrained): - If the prefix is a reference to an object, rewrite it as an - explicit dereference, as required by 3.7.2 (2) and as is done - with most other attributes whose prefix is an access value. - -2017-09-07 Bob Duff <duff@adacore.com> - - * par-ch13.adb: Set the Inside_Depends flag if we are inside a - Refined_Depends aspect. - * par-ch2.adb: Set the Inside_Depends flag if we are inside a - Refined_Depends pragma. - * scans.ads: Fix documentation of Inside_Depends flag. - * styleg.adb, styleg.ads: Minor reformatting and comment fixes. - -2017-09-07 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch7.adb (Insert_Actions_In_Scope_Around): - Account for the case where the are no lists to insert, but the - secondary stack still requires management. - * a-chtgop.adb, a-cihama.adb, a-cohama.adb, a-cohase.adb, a-tags.adb, - comperr.adb, einfo.adb, exp_aggr.adb, exp_ch3.adb, exp_disp.adb, - lib-xref.adb, lib-xref-spark_specific.adb, sem_ch12.adb, sem_ch13.adb, - sem_ch6.adb, sem_dim.adb, sem_dim.ads, sem_elab.adb, sem_prag.adb: + (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. -2017-09-07 Vincent Celier <celier@adacore.com> - - * clean.adb: Do not get the target parameters before calling - gprclean. - -2017-09-07 Nicolas Roche <roche@adacore.com> - - * s-osinte-solaris-posix.ads: Removed. - -2017-09-07 Arnaud Charlet <charlet@adacore.com> - - * sem_prag.adb (Collect_States_And_Objects): Detect also instances of - single concurrent objects. - -2017-09-07 Javier Miranda <miranda@adacore.com> - - * s-regexp.ads: Fix documentation of the globbing grammar. - -2017-09-07 Gary Dismukes <dismukes@adacore.com> - - * a-tags.ads, einfo.ads, exp_disp.ads: Minor reformatting. - -2017-09-07 Arnaud Charlet <charlet@adacore.com> - - * gnat1drv.adb (Gnat1drv): Enable pragma Ignore_Pragma (Global) - in CodePeer mode, to support more legacy code automatically. - -2017-09-07 Ed Schonberg <schonberg@adacore.com> - - * exp_disp.adb (Replace_Formals): If thr formal is classwide, - and thus not a controlling argument, preserve its type after - rewriting because it may appear in an nested call with a classwide - parameter. - -2017-09-07 Arnaud Charlet <charlet@adacore.com> - - * comperr.adb (Delete_SCIL_Files): Handle case of - N_Package_Instantiation. - -2017-09-07 Ed Schonberg <schonberg@adacore.com> - - * sem_ch10.adb (Remove_Private_With_Clause): If a private with - clause for a unit U appears in a context that includes a regular - with_clause on U, rewrite the redundant private clause into a null - statement, rather than removing it altogether from the context, - so that ASIS tools can reconstruct the original source. - -2017-09-07 Ed Schonberg <schonberg@adacore.com> - - * sem_ch13.adb (Check_Aspect_At_Freeze_Point): The expression - for aspect Small can be of any real type (not only a universal - real literal) as long as it is a static constant. - -2017-09-07 Thomas Quinot <quinot@adacore.com> - - * par_sco.adb: Minor reformatting. - -2017-09-07 Arnaud Charlet <charlet@adacore.com> - - * s-parame-ae653.ads: Removed. - -2017-09-07 Nicolas Roche <roche@adacore.com> - - * s-traces-default.adb, s-trafor-default.adb, s-trafor-default.ads, - s-traces.adb, s-traces.ads, s-tratas-default.adb, s-tfsetr-default.adb, - s-tfsetr-vxworks.adb, s-tratas.adb, s-tratas.ads, s-tasuti.adb, - s-parame-hpux.ads, s-tassta.adb, s-taasde.adb, s-tasren.adb, - s-taprob.adb, a-caldel.adb, s-parame.ads, Makefile.rtl, s-tpobop.adb, - s-taenca.adb, s-parame-vxworks.ads: Remove support for System.Traces. - -2017-09-07 Yannick Moy <moy@adacore.com> - - * a-ngelfu.ads Add preconditions to all functions - listed in Ada RM A.5.1(19-33) as having constraints on inputs. - -2017-09-07 Arnaud Charlet <charlet@adacore.com> - - * lib-xref.adb (Generate_Reference): ignore - references to entities which are Part_Of single concurrent - objects. - -2017-09-07 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch7.adb (Hide_Public_Entities): Add paragraph to main - comment. - -2017-09-07 Arnaud Charlet <charlet@adacore.com> - - * a-taside.adb (Activation_Is_Complete): Raise Program_Error if - Null_Task_Id is passed. - -2017-09-07 Javier Miranda <miranda@adacore.com> - - * einfo.ads, einfo.adb (Access_Disp_Table_Elab_Flag): New - attribute. Defined for record types and subtypes. - * exp_ch3.ads (Init_Secondary_Tags): Adding new formal - (Init_Tags_List) to facilitate generating separate code in the - IP routine to initialize the object components and for completing - the elaboration of dispatch tables. - * exp_ch3.adb (Build_Init_Procedure): Improve the code - generated in the IP routines by means of keeping separate - the initialization of the object components from the - initialization of its dispatch tables. (Init_Secondary_Tags): - Adding new formal (Init_Tags_List) and adjusting calls to - Ada.Tags.Set_Dynamic_Offset_To_Top since it has a new formal; - adjusting also calls to Ada.Tags.Register_Interface_Offset - because the type of one of its formals has been changed. - * a-tags.ads, a-tags.adb (Register_Interface_Offset): Profile - modified. Instead of receiving a pointer to an object this - routine receives now a primary tag. - (Set_Dyanic_Offset_To_Top): Profile modified. This routine receives an - additional formal: the tag of the primary dispatch table. - * exp_disp.ads (Elab_Flag_Needed): New subprogram. - * exp_disp.adb (Elab_Flag_Needed): New subprogram. - (Make_Tags): Adding the declaration of the elaboration flag (if needed). - * exp_aggr.adb (Build_Record_Aggr_Code): Adding actual of new - formal in calls to Init_Secondary_Tags. - -2017-09-07 Javier Miranda <miranda@adacore.com> - - * ghost.adb (Mark_And_Set_Ghost_Instantiation.Check_Ghost_Actuals): New - subprogram. - * sem_prag.adb (Pragma_Ghost): Add missing support for ghost - applied to generic subprograms. - -2017-09-07 Arnaud Charlet <charlet@adacore.com> - - * sem_util.adb (Check_Part_Of_Reference): rename Conc_Typ to Conc_Obj - (because it refers to the anonymous concurrent object, not its type); - fix condition for emitting error message about task/protected type, - -2017-09-07 Bob Duff <duff@adacore.com> - - * binde.adb (Debug_Flag_Old): If both -do and -dp - are specified, behave as if just -do was specified, rather than - using a mixture. - -2017-09-07 Nicolas Roche <roche@adacore.com> - - * system-vxworks-sparcv9.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads, - system-vxworks-m68k.ads, system-vxworks-mips.ads: Removed. - -2017-09-07 Arnaud Charlet <charlet@adacore.com> - - * sem_prag.adb (Find_Role): The Global_Seen flag - is now consulted not only for abstract states and variables, - but for all kinds of items. - (Collect_Subprogram_Inputs_Outputs): Do not process formal - generic parameters, because unlike ordinary formal parameters, - generic formals only act as input/ outputs if they are explicitly - mentioned in a Global contract. - -2017-09-07 Yannick Moy <moy@adacore.com> - - * ghost.adb (Check_Ghost_Context): Do not err on ghost code inside - predicate procedure. Check predicate pragma/aspect with Ghost entity. - * exp_ch6.adb, par-ch6.adb, sem_ch13.adb, sem_prag.adb; Minor - reformatting. - -2017-09-07 Ed Schonberg <schonberg@adacore.com> - - * sem_aggr.adb: Move New_Copy_Tree_And_Dimensions to sem_dim - (code cleanup); - * sem_ch3.adb (Build_Derived_Record_Type):i Call - Copy_Dimensions_Of_Components after creating the copy of the - record declaration. - * sem_dim.ads, sem_dim.adb (Copy_Dimensions_Of_Components): For a - derived recor type, copy the dikensions if any of each component - of the parent record to the corresponding component declarations - of the derived record. These expressions are used among other - things as default values in aggregates with box associations. - * a-dirval-mingw.adb, g-cgi.adb, gnatcmd.adb, lib-xref.adb, - repinfo.adb, sem_attr.adb, sem_ch10.adb, sem_ch6.adb, sem_prag.adb: +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. -2017-09-07 Arnaud Charlet <charlet@adacore.com> - - * sem_util.adb: Remove extra space after THEN. - -2017-09-07 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch7.adb (Has_Referencer): For a subprogram renaming, - also mark the renamed subprogram as referenced. - -2017-09-07 Ed Schonberg <schonberg@adacore.com> - - * par-ch6.adb (P_Subprogram): Improve error message on null - procedure with misplaced aspect specification, which the parser - first attempts to interpret as a malformed expression function. - -2017-09-07 Gary Dismukes <dismukes@adacore.com> - - * sem_attr.adb (Analyze_Attribute_Old_Result): - Allow attributes Result and Old in the case of an expression - function. - -2017-09-07 Justin Squirek <squirek@adacore.com> - - * sem_prag.adb (Process_Atomic_Independent_Shared_Volatile): Propagate - Volatile to subcomponents. - -2017-09-07 Bob Duff <duff@adacore.com> - - * exp_ch7.adb (Find_Last_Init): Check for the - case where a build-in-place function call has been replaced by a - 'Reference attribute reference. - -2017-09-07 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch7.adb (Has_Referencer): Recurse on Actions of freeze - nodes. - -2017-09-07 Bob Duff <duff@adacore.com> - - * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration, - Make_Build_In_Place_Call_In_Anonymous_Context): Do not use the - secondary stack for all functions that return limited tagged - types -- just do it for dispatching calls. Misc cleanup. - * sem_util.ads, sem_util.adb (Unqual_Conv): New function to - remove qualifications and type conversions. Fix various bugs - where only a single level of qualification or conversion was - removed, so e.g. "T1'(T2'(X))" would incorrectly return "T2'(X)" - instead of "X". - * checks.adb, exp_util.ads, exp_util.adb, sem_res.adb: Misc related - cleanup. - -2017-09-07 Ed Schonberg <schonberg@adacore.com> - - * sem_ch6.adb (setr_Actual_Subtypes): Within a predicate function - do not create actual subtypes that may generate further predicate - functions. - * sem_ch13.adb (Build_Predicate_Functions): Indicate that entity - of body is a predicate function as well. - (Resolve_Aspect_Expressions, Resolve_Name): For a component - association, only the expression needs resolution, not the name. - (Resolve_Aspect_Expressions, case Predicates): Construct and - analyze the predicate function declaration in the scope of the - type, before making the type and its discriminants visible. - -2017-09-06 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (warn_on_field_placement): Issue the warning - only if the record type itself comes from source. - -2017-09-06 Gary Dismukes <dismukes@adacore.com> - - * sem_ch5.adb: Minor reformatting and a typo fix - -2017-09-06 Arnaud Charlet <charlet@adacore.com> - - * sinput-l.ads: minor remove extra period at the end of comment - -2017-09-06 Arnaud Charlet <charlet@adacore.com> - - * sem_prag.adb (Add_Item_To_Name_Buffer): remove support for - E_Discriminant. - (Find_Role): remove support for E_Discriminant. - -2017-09-06 Javier Miranda <miranda@adacore.com> - - * exp_ch6.adb (Expand_Simple_Function_Return): - Add missing implicit type conversion to force displacement of the - "this" pointer. - -2017-09-06 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch3.adb, sem_aux.adb, sem_res.adb: Minor reformatting. - -2017-09-06 Yannick Moy <moy@adacore.com> - - * sem_ch12.adb (Analyze_Instance_And_Renamings): Refactor to set - global variable Ignore_SPARK_Mode_Pragmas_In_Instance only once. - -2017-09-06 Bob Duff <duff@adacore.com> - - * sem_ch8.adb: Change Assert to be consistent with - other similar ones. - -2017-09-06 Bob Duff <duff@adacore.com> - - * binde.adb (Find_Elab_Order): Do not run Elab_Old unless - requested. Previously, the -do switch meant "run Elab_New and - Elab_Old and use the order chosen by Elab_Old, possibly with - debugging printouts comparing the two orders." Now it means - "do not run Elab_New." This is of use if there are bugs that - cause Elab_New to crash. - (Elab_Position, Num_Chosen): Change type to Nat, to avoid various - type conversions. - * ali.ads (Elab_Position): Change type to Nat, to avoid various - type conversions. - -2017-09-06 Arnaud Charlet <charlet@adacore.com> - - * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context): Fix - reference to SPARK RM. - -2017-09-06 Eric Botcazou <ebotcazou@adacore.com> - - * layout.adb: Use SSU short hand consistently throughout the file. - -2017-09-06 Eric Botcazou <ebotcazou@adacore.com> - - * freeze.adb (Freeze_Record_Type) - <Sized_Component_Total_Round_RM_Size>: New local variable to - accumulate the rounded RM_Size of components. Update it for - every component whose RM_Size is statically known. Add missing - guard to check that bit packing is really required before issuing - the error about packing. Swap condition for clarity's sake. - * sem_prag.adb (Usage_Error): Fix reference to SPARK RM in comment. - -2017-09-06 Fedor Rybin <frybin@adacore.com> - - * makeutl.adb, makeutl.ads, mlib.adb, mlib.ads, mlib-fil.adb, - mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb, mlib-tgt.ads, - mlib-tgt-specific.adb, mlib-tgt-specific.ads, - mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb, - mlib-tgt-specific-hpux.adb, mlib-tgt-specific-linux.adb, - mlib-tgt-specific-mingw.adb, mlib-tgt-specific-solaris.adb, - mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb, mlib-utl.adb, - mlib-utl.ads, prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, - prj-attr-pm.adb, prj-attr-pm.ads, prj-com.ads, prj-conf.adb, - prj-conf.ads, prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads, - prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads, prj-makr.adb, - prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads, - prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads, prj-proc.adb, - prj-proc.ads, prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads, - prj-util.adb, prj-util.ads, sinput-p.adb, sinput-p.ads: Remove obsolete - project manager sources. - -2017-09-06 Ed Schonberg <schonberg@adacore.com> - - * sem_ch5.adb (Analyze_Assigment): If the left-hand side is an - entity of a mutable type and the right-hand side is a conditional - expression, resolve the alternatives of the conditional using - the base type of the target entity, because the alternatives - may have distinct subtypes. This is particularly relevant if - the alternatives are aggregates. - -2017-09-06 Ed Schonberg <schonberg@adacore.com> - - * checks.adb (Apply_Predicate_Check): If the expression is an - aggregate that is the RHS of an assignment, apply the check to - the LHS after the assignment, rather than to the aggregate. This - is more efficient than creating a temporary for the aggregate, - and prevents back-end crashes when the aggregate includes a - dynamic "others' association. - -2017-09-06 Yannick Moy <moy@adacore.com> - - * sem_ch12.adb (Analyze_Instance_And_Renamings): - Set variable to ignore SPARK_Mode in instance before the analysis - of the generated package declaration. - -2017-09-06 Yannick Moy <moy@adacore.com> - - * sem_res.adb (Resolve_Call): Do not issue a - message for calls inside expression function, unless body was - seen and is candidate for inlining. - -2017-09-06 Ed Schonberg <schonberg@adacore.com> - - * sem_aux.adb (Is_Generic_Formal): Handle properly formal packages. - * sem_ch3.adb (Analyze_Declarations): In a generic subprogram - body. do not freeze the formals of the generic unit. - -2017-09-06 Gary Dismukes <dismukes@adacore.com> - - * errout.adb (Error_Msg): Separate the - treatment for warning vs. style messages in inlinings and - instantiations. Prevents blowups on calls to Warn_Insertion for - style messages, which should not be called in that case because - Warning_Msg_Char is not set. - -2017-09-06 Justin Squirek <squirek@adacore.com> - - * sem_prag.adb (Check_VFA_Conflicts): Created - to group all Volatile_Full_Access checks relating to other - representation pragmas (Mark_Component_Or_Object): Created - to centeralize the flagging of attributes for the record type - component case, a pragma applied individually to a component, and - the object case. - (Process_Atomic_Independent_Shared_Volatile): - Add propagation of certain pragmas to record components and move - evaluation of VFA checks - -2017-09-06 Ed Schonberg <schonberg@adacore.com> - - * sem_prag.adb (Check_Postcondition_Use_In_Inlined_Subprogram): - Do not warn on conditions that are not obeyed for Inline_Always - subprograms, when assertions are not enabled. - -2017-09-06 Arnaud Charlet <charlet@adacore.com> - - * sem_util.adb (Unique_Entity): For abstract states return their - non-limited view. - -2017-09-06 Bob Duff <duff@adacore.com> - - * sem_ch12.adb (Copy_Generic_Node): When we copy a node - that is a proper body corresponding to a stub, we defer the - adjustment of the sloc until after the correct adjustment has - been computed. Otherwise, Adjust_Instantiation_Sloc will ignore - the adjustment, because it will be outside the range in (the old, - incorrect) S_Adjustment. - * inline.adb: Use named notation for readability and uniformity. - * sinput-l.adb: Minor improvements to debugging output printed - for Debug_Flag_L. - * sinput-l.ads (Create_Instantiation_Source): Minor comment - correction. - -2017-09-06 Vincent Celier <celier@adacore.com> - - * make.adb: Do not invoke gprbuild for -bargs -P. - -2017-09-06 Sylvain Dailler <dailler@adacore.com> - - * sem_eval.adb (Compile_Time_Known_Value_Or_Aggr): Adding a - case when Op is of kind N_Qualified_Expression. In this case, - the function is called recursively on the subexpression like in - other cases. - * make.adb: Minor reformatting - -2017-09-06 Justin Squirek <squirek@adacore.com> - - * einfo.adb (Set_Linker_Section_Pragma): Modify - Set_Linker_Section_Pragma to be consistant with the "getter" - Linker_Section_Pragma. - * exp_ch5.adb (Expand_Formal_Container_Loop): Add proper error - checking for container loops so that the index cursor is not - directly changable by the user with the use of E_Loop_Parameter. - * sem_ch5.adb (Analyze_Block_Statement): Revert previous change. - * sem_warn.adb (Check_References): Revert previous change. - -2017-09-06 Bob Duff <duff@adacore.com> - - * exp_util.adb (Is_Displace_Call): Make sure it works for indirect - calls and the like. - -2017-09-06 Yannick Moy <moy@adacore.com> - - * sem_prag.adb (Analyze_Depends_Global): Reinforce test on object - declarations to only consider valid uses of Global/Depends those on - single concurrent objects. - -2017-09-06 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch13.adb (Check_Record_Representation_Clause): Give an - error as soon as one of the specified components overlaps the - parent field. - -2017-09-06 Arnaud Charlet <charlet@adacore.com> - - * sem_prag.ads: minor fix typo in comment. - -2017-09-06 Justin Squirek <squirek@adacore.com> - - * sem_ch5.adb (Analyze_Block_Statement): Verify a block comes - from source before checking source references. - * sem_warn.adb (Check_References): Add check for internal block - before recursing. - -2017-09-06 Vincent Celier <celier@adacore.com> - - * make.adb, makeusg.adb, switch-m.adb, switch-m.ads, make_util.adb, - make_util.ads, sinput.adb, sinput.ads, clean.adb, gnatls.adb, - gnatname.adb: Remove the Project Manager from the GNAT tools. - * gcc-interface/Makefile.in: ditto. - -2017-09-06 Bob Duff <duff@adacore.com> +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. -2017-09-06 Ed Schonberg <schonberg@adacore.com> - - * sem_ch12.adb (Analyze_Associations, case of Formal_Package): - Generate a freeze node for the actual of a formal package, if - the actual is declared in the same unit and has a corresponding - body, to prevent the current instance from being frozen before - the actual is. - -2017-09-06 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch7.adb (Entity_Table_Size): Change to nearest prime number. - -2017-09-06 Yannick Moy <moy@adacore.com> - - * sem_warn.adb: Minor refactoring. - -2017-09-06 Ed Schonberg <schonberg@adacore.com> - - * einfo.ads, einfo.adb (Get_Classwwide_Pragma): New utility, - to retrieve the inherited classwide precondition/postcondition - of a subprogram. - * freeze.adb (Freeze_Entity): Use Get_Classwide_Pragma when - freezing a subprogram, to complete the generation of the - corresponding checking code. - -2017-09-06 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_util.adb (Is_Controlled_Indexing): New routine. - (Is_Displace_Call): Use routine Strip to remove indirections. - (Is_Displacement_Of_Object_Or_Function_Result): Code clean up. Add a - missing case of controlled generalized indexing. - (Is_Source_Object): Use routine Strip to remove indirections. - (Strip): New routine. - -2017-09-06 Bob Duff <duff@adacore.com> - - * sysdep.c (__gnat_has_cap_sys_nice): If HAVE_CAPABILITY is defined, - we include the proper header. Otherwise, we just declare the necessary - things from the capabilities library. This is so we can build on - machines without that library, while still enabling that library. - At run time, we're using weak symbols, so __gnat_has_cap_sys_nice will - simply return 0 if the library is not present, or not included - in the link. - -2017-09-06 Pierre-Marie de Rodat <derodat@adacore.com> - - * exp_dbug.adb (Debug_Renaming_Declaration): Do not create an encoding - for renamings that involve function calls in prefix form. - -2017-09-06 Bob Duff <duff@adacore.com> - - * sem_ch3.adb (Analyze_Subtype_Declaration): - Set Has_Delayed_Freeze on a subtype of an incomplete type. - -2017-09-06 Pierre-Marie de Rodat <derodat@adacore.com> - - * par_sco.adb (Extend_Statement_Sequence): When the accept statement - has no parameter specification and no entry index, use the entry name - as the end of the generated SCO statement. - -2017-09-06 Steve Baird <baird@adacore.com> - - * exp_util.adb (Side_Effect_Free): For CodePeer (only) treat - uses of 'Image and related attributes as having side effects in - order to avoid replicating such uses. - * pprint.ads (Expression_Image) Add new generic formal flag - Hide_Temp_Derefs. The flag defaults to False; CodePeer will - (eventually) override the default. - * pprint.adb (Expression_Image) If the new flag is set, then - suppress the ".all" suffix when displaying a dereference whose - prefix is a use of a value-capturing compiler temp of the sort - generated by Expr_Util.Remove_Side_Effects . - * exp_attr.adb, g-catiio.adb, inline.adb, sem_attr.adb, sem_ch13.adb, - sem_ch7.adb, sem_dim.adb, sem_util.adb, sem_util.ads, sem_warn.adb: - Minor reformatting. - * inline.adb: Minor wording change. - -2017-09-06 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch7.adb: Update comment. - -2017-09-06 Yannick Moy <moy@adacore.com> - - * einfo.adb, einfo.ads (Is_Subprogram_Or_Entry): New predicate. - * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Use new function. - * sem_util.adb, sem_util.ads (Within_Protected_Type): Renaming - with slight modification from Is_Subp_Or_Entry_Inside_Protected, - so that applies to any entity. - -2017-09-06 Yannick Moy <moy@adacore.com> - - * sem_ch3.adb (Derived_Type_Declaration): Use - Incomplete_Or_Partial_View rather than local Find_Partial_View. - -2017-09-06 Javier Miranda <miranda@adacore.com> - - * g-catiio.ads, g-catiio.adb (Value): Extended to parse an UTC time - following ISO-8861. - -2017-09-06 Ed Schonberg <schonberg@adacore.com> - - * sem_dim.adb (Analyze_Dimension): In an instance, a type - conversion takes its dimensions from the expression, not from - the context type. - (Dimensions_Of_Operand): Ditto. - -2017-09-06 Ed Schonberg <schonberg@adacore.com> - - * exp_ch6.adb (Expand_Call_Helper): Do not optimize calls to - null procedures when GNAT coverage is used, so that their (empty) - bodies are properly covered. - -2017-09-06 Bob Duff <duff@adacore.com> - - * sem_ch13.adb (Resolve_Aspect_Expressions): If - the entity is a type with discriminants, make the discriminants - directly visible in aspect clauses. - -2017-09-06 Ed Schonberg <schonberg@adacore.com> - - * sem_res.adb (Resolve_Arithmentic_Op): If both operands are - Universal_Real and the context is a floating-point type, resolve - both operands to the target type. - -2017-09-06 Hristian Kirtchev <kirtchev@adacore.com> - - * a-comlin.adb, exp_aggr.adb, exp_ch6.adb, frontend.adb, gnatbind.adb, - sem_ch3.adb, sem_util.adb: Minor reformatting. - -2017-09-06 Yannick Moy <moy@adacore.com> - - * freeze.adb (Check_Inherited_Conditions): Rewriting - of inherited preconditions and postconditions should only occur - in GNATprove mode, that is, when GNATprove_Mode is True, not to - be confused with SPARK_Mode being On. - -2017-09-06 Yannick Moy <moy@adacore.com> - - * sem_warn.adb (Check_References): Take into - account possibility of attribute reference as original node. - -2017-09-06 Yannick Moy <moy@adacore.com> - - * exp_attr.adb (Expand_N_Attribute_Reference): Protect against invalid - use of attribute. - -2017-09-06 Eric Botcazou <ebotcazou@adacore.com> - - * inline.adb (Split_Unconstrained_Function): Also set Is_Inlined - on the procedure created to encapsulate the body. - * sem_ch7.adb: Add with clause for GNAT.HTable. - (Entity_Table_Size): New constant. - (Entity_Hash): New function. - (Subprogram_Table): New instantiation of GNAT.Htable.Simple_HTable. - (Is_Subprogram_Ref): Rename into... - (Scan_Subprogram_Ref): ...this. Record references to subprograms in - the table instead of bailing out on them. Scan the value of constants - if it is not known at compile time. - (Contains_Subprograms_Refs): Rename into... - (Scan_Subprogram_Refs): ...this. - (Has_Referencer): Scan the body of all inlined subprograms. Reset the - Is_Public flag on subprograms if they are not actually referenced. - (Hide_Public_Entities): Beef up comment on the algorithm. - Reset the table of subprograms on entry. - -2017-09-06 Yannick Moy <moy@adacore.com> - - * inline.adb: Add comments to Can_Be_Inlined_In_GNATprove_Mode. - -2017-09-06 Javier Miranda <miranda@adacore.com> - - * exp_aggr.adb (Component_Not_OK_For_Backend): The C backend - cannot handle a type conversion of an array as an aggregate - component. - -2017-09-06 Bob Duff <duff@adacore.com> - - * g-comlin.adb (Try_Help): Remove ".exe" so we - get the same results on windows and unix. - -2017-09-06 Justin Squirek <squirek@adacore.com> - - * exp_imgv.adb (Expand_Image_Attribute), - (Expand_Wide_Image_Attribute), (Expand_Wide_Wide_Image_Attribute): - Added case to handle new-style 'Image expansion - (Rewrite_Object_Image): Moved from exp_attr.adb - * exp_attr.adb (Expand_N_Attribute_Reference): Modified Image - attribute cases so that the relevant subprograms in exp_imgv.adb - handle all expansion. - (Rewrite_Object_Reference_Image): Moved to exp_imgv.adb - * sem_attr.adb (Analyze_Attribute): Modified Image attribute - cases to call common function Analyze_Image_Attribute. - (Analyze_Image_Attribute): Created as a common path for all - image attributes (Check_Object_Reference_Image): Removed - * sem_util.ads, sem_util.adb (Is_Image_Applied_To_Object): - Removed and refactored into Is_Object_Image (Is_Object_Image): - Created as a replacement for Is_Image_Applied_To_Object - -2017-09-06 Yannick Moy <moy@adacore.com> - - * sem_prag.adb (Analyze_Depends_In_Decl_Part): Add continuation - message for missing input. - -2017-09-06 Yannick Moy <moy@adacore.com> - - * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Prevent inlining - of protected subprograms and entries. - * sem_util.adb, sem_util.ads (Is_Subp_Or_Entry_Inside_Protected): - New function to detect when a subprogram of entry is defined - inside a protected object. - -2017-09-06 Bob Duff <duff@adacore.com> - - * sysdep.c (__gnat_has_cap_sys_nice): New function to determine - whether the current process has the CAP_SYS_NICE capability. - * s-taprop-linux.adb (Get_Ceiling_Support): Update this to allow - ceiling priorities if the current process has the CAP_SYS_NICE - capability. - -2017-09-06 Bob Duff <duff@adacore.com> - - * a-comlin.ads, a-comlin.adb (Argument): Move the constraint - check back to the body, because SPARK is not yet ready for - "or else raise Constraint_Error". - -2017-09-06 Ed Schonberg <schonberg@adacore.com> - - * exp_ch6.adb (Expand_Call_Helper): Replace call to null - procedure by a single null statement, after evaluating the - actuals that require it. - -2017-09-06 Javier Miranda <miranda@adacore.com> - - * exp_aggr.adb (Backend_Processing_Possible.Component_Check): - Generating C code improve the code that checks the use of nested - aggregates to initialize object declarations. - -2017-09-06 Yannick Moy <moy@adacore.com> - - * sem_ch3.adb (Derived_Type_Declaration): Detect - violations of new rule SPARK RM 3.4(1). Also refactor existing - check to use the new function Find_Partial_View. - -2017-09-06 Vincent Celier <celier@adacore.com> - - * gnatcmd.adb: gnat ls -V -P... invokes gprls -V -P... The code - from the Prj hierarchy has been removed from the GNAT driver. - -2017-09-06 Ed Schonberg <schonberg@adacore.com> - - * sem_type.adb (Interface_Present_In_Ancestor): Within an - expression function, or within a spec expression (default value, - etc) a reference to an incomplete type is legal: legality of - the operation will be checked when some related entity (type, - object or subprogram) is frozen. - -2017-09-06 Gary Dismukes <dismukes@adacore.com> - - * exp_ch5.adb, s-diinio.ads, sem_ch4.adb, s-diflio.ads: Minor spelling - adjustments and a typo fix. - -2017-09-06 Yannick Moy <moy@adacore.com> - - * sem_res.adb (Resolve_Call): Do not issue info - message about inlining of calls to functions in assertions, - for functions whose body has not been seen yet. - -2017-09-06 Bob Duff <duff@adacore.com> - - * a-comlin.ads, a-comlin.adb (Argument): Simplify the code, now that - we can use modern Ada in this package. - * s-resfil.ads, s-resfil.adb, a-clrefi.ads, a-clrefi.adb: - Move Ada.Command_Line.Response_File to System.Response_File, - and make Ada.Command_Line.Response_File into a rename of - System.Response_File. This is to avoid having gnatbind depend - Ada.Command_Line, which would damage the bootstrap process now - that Ada.Command_Line contains modern Ada (the raise expression). - * gnatbind.adb: Avoid dependence on - Ada.Command_Line. Depend on System.Response_File instead - of Ada.Command_Line.Response_File. Change one call to - Ada.Command_Line.Command_Name to use Fill_Arg. Change one call - to Ada.Command_Line.Argument_Count to use Arg_Count. - * gcc-interface/Make-lang.in, Makefile.rtl: Take note of the new files. - -2017-09-06 Bob Duff <duff@adacore.com> - - * frontend.adb (Frontend): Skip -gnatec=gnat.adc - switch, because we've already read gnat.adc by default. - -2017-09-06 Bob Duff <duff@adacore.com> - - * exp_ch5.adb (Get_Default_Iterator): Replace - "Assert(False)" with "return Iter", because if an iterable - type is derived from a noniterable one, then we won't find an - overriding or inherited default iterator. - -2017-09-06 Yannick Moy <moy@adacore.com> - - * sem_warn.adb (Warn_On_Suspicious_Index): Improve warning when the - literal index used to access a string is null or negative. - -2017-09-06 Hristian Kirtchev <kirtchev@adacore.com> - - * einfo.adb (Status_Flag_Or_Transient_Decl): The attribute is now - allowed on loop parameters. - (Set_Status_Flag_Or_Transient_Decl): The attribute is now allowed - on loop parameters. - (Write_Field15_Name): Update the output for - Status_Flag_Or_Transient_Decl. - * einfo.ads: Attribute Status_Flag_Or_Transient_Decl now applies - to loop parameters. Update the documentation of the attribute - and the E_Loop_Parameter entity. - * exp_ch7.adb (Process_Declarations): Remove the bogus guard - which assumes that cursors can never be controlled. - * exp_util.adb (Requires_Cleanup_Actions): Remove the bogus - guard which assumes that cursors can never be controlled. - -2017-09-06 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_attr.adb, sem_util.adb, sem_attr.adb, sem_ch6.adb, sem_ch8.adb, - sem_warn.adb: Minor reformatting. - -2017-09-06 Ed Schonberg <schonberg@adacore.com> - - * sem_warn.adb (Warn_On_Overlapping_Actuals): Refine previous - fix and preserve older GNAT warning on overlapping actuals that - are not elementary types. - -2017-09-06 Justin Squirek <squirek@adacore.com> - - * sem_attr.adb: Comment correction. - -2017-09-06 Gary Dismukes <dismukes@adacore.com> - - * sem_util.adb: Minor reformatting. - -2017-09-06 Yannick Moy <moy@adacore.com> - - * a-comlin.ads (Argument): Add precondition for analysis. - -2017-09-06 Yannick Moy <moy@adacore.com> - - * sem_res.adb (Resolve): Update message for function call as statement. - -2017-09-06 Ed Schonberg <schonberg@adacore.com> - - * sem_ch6.adb (Check_Returns): Clean up warnings coming from - generated bodies for renamings that are completions, when renamed - procedure is No_Return. - * sem_ch8.adb (Analyze_Subprogram_Renaming): Implement legality - rule in 6.5.1 (7/2): if a renaming is a completion of a subprogram - with No_Return, the renamed entity must be No_Return as well. - -2017-09-06 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch5.adb, freeze.adb, exp_ch4.adb, exp_ch6.adb, lib-xref.adb: +2018-05-25 Ed Schonberg <schonberg@adacore.com> + + * exp_unst.adb (Visit_Node): Restrict check for uplevel references in + prefixes of array attributes, to prefixes that are entity names whose + type is constrained. + (Note_Uplevel_Bound): Verify that the bound is declared in an enclosing + subprogram, as itype created for loops in pre/postcondition may appear + in loops at the library level. + +2018-05-25 Ed Schonberg <schonberg@adacore.com> + + * sem_ch13.adb (Build_Predicate_Functions): The predicate function + declaration is inserted into the tree and analyzed at that point, so + should not be reinserted when the body is constructed. Inside a + generic, ensure that the body is not inserted twice in the tree. + +2018-05-25 Yannick Moy <moy@adacore.com> + + * sem_prag.adb (Check_Grouping): Modify test to ignore statements and + declarations not coming from source. + +2018-05-25 Fedor Rybin <frybin@adacore.com> + + * doc/gnat_ugn/gnat_utility_programs.rst: Document new switch + --copy-environment for gnattest. + +2018-05-24 Piotr Trojanek <trojanek@adacore.com> + + * sem_elab.adb (Non_Private_View): Simplify by removing a local Result + variable. + * sem_prag.adb (Get_Base_Subprogram): Same as above. + +2018-05-24 Eric Botcazou <ebotcazou@adacore.com> + + * fe.h (Set_Normalized_First_Bit): Declare. + (Set_Normalized_Position): Likewise. + * repinfo.adb (List_Record_Layout): Do not use irregular output for a + variable position. Fix minor spacing issue. + * gcc-interface/decl.c (annotate_rep): If a field has a variable + offset, compute the normalized position and annotate it in addition to + the bit offset. + +2018-05-24 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): + Constify and rename variables. Fix formatting. + (gnat_to_gnu) <N_Exception_Handler>: Minor tweak. + <N_Raise_Statement>: Likewise. + +2018-05-24 Javier Miranda <miranda@adacore.com> + + * exp_ch8.adb (Build_Body_For_Renaming): Adding support to build the + body of a variant record equality renaming. + (Expand_N_Subprogram_Renaming_Declaration): Adapt the code to the new + implementation of Build_Body_For_Renaming. + * exp_ch3.ads (Build_Variant_Record_Equality): New library level + function that factorizes the functionality needed by + Build_Body_For_Renaming and Expand_Freeze_Record_Type to build the body + of a variant record equality subprogram. + * exp_ch3.adb (Build_Variant_Record_Equality): New subprogram. + (Build_Variant_Record_Equality): New local procedure of + Expand_Freeze_Record_Type containing all the code specific for freezing + the record type that cannot be place in the new library level function. + +2018-05-24 Ed Schonberg <schonberg@adacore.com> + + * einfo.ads, einfo.adb (Is_Activation_Record): New flag on + in_parameters, used when unesting subprograms for LLVM, to indicate + that a generated parameter carries the activation record from the + enclosing subprogram. + * exp_unst.adb (Check_Static_Type): Handle array attributes of types + whose bounds may contain up-level references that need to be added to + an activation recoord. + (Add_Extra_Formal): Set Is_Activation_Record on new formal. + +2018-05-24 Yannick Moy <moy@adacore.com> + + * pprint.adb (Expression_Image): Improve the printing of expressions, + by taking more cases into account, in particular qualified expressions + and aggregates. Also count more the number of parentheses to close + after the expression. + +2018-05-24 Javier Miranda <miranda@adacore.com> + + * sem_ch3.adb (Is_Visible_Component): For untagged types add missing + check for renamed discriminants. + * sem_ch4.adb (Analyze_Overloaded_Selected_Component, + Analyze_Selected_Component, Check_Misspelled_Selector): For calls to + Is_Visible_Component pass the associated selector node to allow + checking renamed discriminants on untagged types. + +2018-05-24 Ed Schonberg <schonberg@adacore.com> + + * sem_ch8.adb (Analyze_Use_Type): Do not assign the Prev_Use_Clause + link to a use_type clause if this would cause an infinite loop in the + machinery that detects redundant use clauses. This may happen when the + redundant clauses appear in the context of a child unit and the context + of its parent. + +2018-05-24 Piotr Trojanek <trojanek@adacore.com> + + * sinfo.ads: Fix grammar in comment. + +2018-05-24 Justin Squirek <squirek@adacore.com> + + * einfo.ads, einfo.adb (Append_Entity): Modified to use Link_Entities + and manage doubly-linked entity chain. + (Nested_Scenarios): Removed entity field used for optimization during + elaboration to make room for the new field Prev_Entity. + (Link_Entities): Added to replace redundant calls to Set_Next_Entity + and Set_Prev_Entity as well as centralize changes to the entity chain. + (Predicated_Parent): Modified to use Node38. + (Prev_Entity): Added to fetch new node field Prev_Entity in all entity + types. + (Remove_Entity): Moved from sem_util. + (Set_Nested_Scenarios): Deleted. + (Set_Predicated_Parent): Modified to use Node38. + (Set_Prev_Entity): Added to set Prev_Entity field. + (Set_Validated_Object): Modified to use Node38. + (Unlink_Next_Entity): Added to process Prev_Entity when an unlinking + action is required. + (Validated_Object): Modified to use Node38. + (Write_Field36_Name): Remove Nested_Scenarios, Validated_Object, and + predicated parent cases. + (Write_Field38_Name): Add predicated parent and Validated_Object cases. + * sem_ch3.adb (Process_Subtype): Add guard to protect against + inappropriate marking of Predicated_Parent to non-itype subtypes. + (Make_Class_Wide_Type): Preserve Prev_Entity field and set in new type. + (Copy_And_Swap): Add setting of Prev_Entity. + (Build_derived_Record_Type): Replace Set_Next_Entity w/ Link_Entities. + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Replace Set_Next_Entity + w/ Link_Entities. + (New_Overloaded_Entity): Remove block created to search for previous + entities in the entity chain with relevant calls to Prev_Entity as well + as replace duplicated code from Remove_Entity_And_Homonym with a call + to that subprogram. + * sem_ch7.adb (Exchange_Declarations): Replace Set_Next_Entity w/ + Link_Entities. + * sem_elab.adb (Find_And_Process_Nested_Scenarios): Remove global and + initial subprogram declarations related to Nested_Scenarios. + (Process_Nested_Scenarios): Deleted. + (Save_Scenario): Deleted. + (Traverse_Body): Remove optimization for Nested_Scenarios so as to free + node space in the entity tree. + * sem_util.adb, sem_util.ads (Remove_Entity): Moved to einfo. + (Remove_Entity_And_Homonym): Added to separate functionality of + Remove_Entity from the homonym chain directly. + * exp_attr.adb (Expand_N_Attribute_Reference): Replace Set_Next_Entity + w/ Link_Entities and Unlink_Next_Entity. + * exp_ch3.adb (Expand_N_Object_Declaration): Replace Set_Next_Entity w/ + Link_Entities. + * exp_ch6.adb (Replace_Renaming_Declaration_Id): Replace + Set_Next_Entity w/ Link_Entities. + * exp_disp.adb (Expand_Dispatching_Call): Replace Set_Next_Entity w/ + Link_Entities and Unlink_Next_Entity. + * exp_spark.adb (Expand_SPARK_N_Object_Renaming_Declaration): Replace + call to Remove_Entity with its new incarnation. + * exp_util.adb (New_Class_Wide_Subtype): Add setting of Prev_Entity. + * freeze.adb (Freeze_Record_Type): Replace Set_Next_Entity w/ + Link_Entities. + +2018-05-24 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch10.adb (Expand_Limited_With_Clause): Update the call to + Install_Limited_Withed_Unit. + (Expand_With_Clause): Update the call to Install_Withed_Unit. + (Implicit_With_On_Parent): Update the call to Install_Withed_Unit. + (Install_Context_Clauses): Update the call to Install_Withed_Unit. + (Install_Limited_Context_Clauses): Update the calls to + Install_Limited_Withed_Unit. + (Install_Limited_Withed_Unit): Renamed to better illustrate its + purpose. + (Install_Private_With_Clauses): Update the calls to Install_Withed_Unit + and Install_Limited_Withed_Unit. + (Install_With_Clause): Uninstall a limited with clause if a [private] + with clause is given for the same package. + (Install_Withed_Unit): Renamed to better illustrate its purpose. + (Remove_Limited_With_Unit): New routine. + +2018-05-24 Eric Botcazou <ebotcazou@adacore.com> + + * raise-gcc.c (__gnat_SEH_error_handler): Remove prototype. + (__gnat_personality_seh0): Adjust and beef up comments, and + fix formatting throughout. + (__gnat_adjust_context): Deal minimally with version 2. + * seh_init.c (__gnat_map_SEH): Fix formatting. + (_gnat_SEH_error_handler): Adjust comments. + (__gnat_install_SEH_handler): Fix formatting. + +2018-05-24 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch7.adb, sem_ch3.adb, sem_res.adb: Minor reformatting. + +2018-05-24 Ed Schonberg <schonberg@adacore.com> + + * exp_aggr.adb (Flatten): Add a warning on an others clause in an array + aggregate with static bounds when named associations cover all index + positions and the others clause is redundant. + +2018-05-24 Raphael Amiard <amiard@adacore.com> + + * libgnat/a-cohama.ads: Add documentation. + +2018-05-24 Raphael Amiard <amiard@adacore.com> + + * libgnat/a-convec.ads: Add documentation. + +2018-05-24 Justin Squirek <squirek@adacore.com> + + * exp_ch3.adb (Expand_N_Object_Declaration): Ignore raising an error in + expansion for limited tagged types when the node to be expanded is a + raise expression due to it not representing a valid object. + * exp_ch5.adb (Expand_N_Assignment_Statement): Add exception to error + message regarding assignments to limited types to ignore genereated + code. + +2018-05-24 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_util.adb (New_Class_Wide_Subtype): Capture and restore relevant + Ghost-related attributes of the class-wide subtype because the copy + clobbers them. + +2018-05-24 Justin Squirek <squirek@adacore.com> + + * sem_res.adb (Resolve_Entity_Name): Add guard to protect against + marking use clauses as effective when the reference appears within + generated code. + +2018-05-24 Cyrille Comar <comar@adacore.com> + + * doc/gnat_rm/the_gnat_library.rst: Fix typos. + * gnat_rm.texi: Regenerate. + +2018-05-24 Bob Duff <duff@adacore.com> + + * exp_ch7.adb (Expand_Cleanup_Actions): Create a mark unconditionally + for build-in-place functions with a caller-unknown-size result. + (Create_Finalizer): For build-in-place functions with a + caller-unknown-size result, check at run time whether we need to + release the secondary stack. + +2018-05-24 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Analyze_Pragma): Use the full view of an internally + generated incomplete type. + +2018-05-24 Hristian Kirtchev <kirtchev@adacore.com> + + * expander.adb (Expand): Update the save and restore of the Ghost + region. + * exp_ch3.adb (Freeze_Type): Likewise. + * exp_disp.adb (Make_DT): Likewise. + * exp_util.adb (Build_DIC_Procedure_Body): Likewise. + (Build_DIC_Procedure_Declaration): Likewise. + (Build_Invariant_Procedure_Body): Likewise. + (Build_Invariant_Procedure_Declaration): Likewise. + (Make_Predicate_Call): Likewise. + * freeze.adb (Add_To_Result): Insert the freeze action of a living + entity prior to the start of the enclosing ignored Ghost region. + (Freeze_Entity): Update the save and restore of the Ghost region. + * ghost.adb (Install_Ghost_Mode): Reimplemented. + (Install_Ghost_Region): New routine. + (Mark_And_Set_Ghost_Assignment): Install a region rather than a mode. + (Mark_And_Set_Ghost_Body): Likewise. + (Mark_And_Set_Ghost_Completion): Likewise. + (Mark_And_Set_Ghost_Declaration): Likewise. + (Mark_And_Set_Ghost_Instantiation): Likewise. + (Mark_And_Set_Ghost_Procedure_Call): Likewise. + (Name_To_Ghost_Mode): New routine. + (Restore_Ghost_Region): New routine. + * ghost.ads (Install_Ghost_Region): New routine. + (Restore_Ghost_Region): New routine. + * opt.ads: Add new global variable Ignored_Ghost_Region. + * rtsfind.adb (Load_RTU): Update the save and restore of the Ghost + region. Install a clean region. + * sem.adb (Analyze): Likewise. + (Do_Analyze): Likewise. + * sem_ch3.adb (Analyze_Object_Declaration): Likewise + (Derive_Progenitor_Subprograms): Use local variable Iface_Alias to + capture the ultimate alias of the current primitive. + (Process_Full_View): Update the save and restore of the Ghost region. + Do not inherit DIC and invariant procedures. + * sem_ch5.adb (Analyze_Assignment): Update the save and restore of the + Ghost region. + * sem_ch6.adb (Analyze_Procedure_Call): Likewise. + (Analyze_Subprogram_Body_Helper): Likewise. + * sem_ch7.adb (Analyze_Package_Body_Helper): Likewise. + * sem_ch12.adb (Analyze_Package_Instantiation): Likewise. + (Analyze_Subprogram_Instantiation): Likewise. + (Instantiate_Package_Body): Likewise. + (Instantiate_Subprogram_Body): Likewise. + * sem_ch13.adb (Build_Predicate_Functions): Likewise. + (Build_Predicate_Function_Declaration): Likewise. + * sem_disp.adb + (Add_Dispatching_Operation): Do not consider DIC and invariant + procedures. + (Check_Dispatching_Operation): Use Add_Dispatching_Operation to collect + a dispatching subprogram. + (Check_Operation_From_Private_View): Likewise. + (Override_Dispatching_Operation): Likewise. + * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): Update the save + and restore of the Ghost region. + (Analyze_Initial_Condition_In_Decl_Part): Likewise. + (Analyze_Pragma): Update the save and restore of the Ghost region. + (Analyze_Pre_Post_Condition_In_Decl_Part): Likewise. + * sem_util.adb (Is_Suitable_Primitive): New routine. + * sem_util.ads (Is_Suitable_Primitive): New routine. + * sinfo.ads: Update the section of Ghost regions. + +2018-05-24 Piotr Trojanek <trojanek@adacore.com> + + * doc/gnat_rm/implementation_defined_pragmas.rst (Contract_Cases): + Change "condition" to "case guard" after renaming in the contract + grammar. + * gnat_rm.texi: Regenerate. + +2018-05-24 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_util.adb (Expand_Static_Predicates_In_Choices): Indicate that the + construct with discrete choices no longer contains a subtype with + predicates since the expansion already handled this case. + +2018-05-24 Hristian Kirtchev <kirtchev@adacore.com> + + * freeze.adb (Wrap_Imported_Subprogram): Generate an unchecked + conversion to the return type to avoid a side effect where an imported + relocated function generates a new anonymous access type, whose + accessibility level does not agree with with that of the wrapper. + +2018-05-24 Javier Miranda <miranda@adacore.com> + + * sem_util.adb (Abstract_Interface_List): Add missing support for + private types whose full view is a synchronized type. + * sem_ch3.adb (Build_Derived_Private_Type): Skip building the full + derivation of a private type parent type is a task type with + discriminants as gigi does not use such type directly. + +2018-05-24 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_elab.adb (Build_Variable_Reference_Marker): Do not create a + variable marker when the reference appears in the formal part of a + compilation unit instance because there is no place to insert it. + (In_Compilation_Instance_Formal_Part): New routine. + +2018-05-24 Piotr Trojanek <trojanek@adacore.com> + + * layout.ads, repinfo.ads: Fix references to renamed Backend_Layout + configuration parameter. + +2018-05-24 Doug Rupp <rupp@adacore.com> + + * argv-lynxos178-raven-cert.c: New file. + * libgnat/system-lynxos178-x86.ads: New file. + +2018-05-23 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_disp.adb, freeze.adb, gnat1drv.adb, sem_ch5.adb, sem_spark.adb: + Minor reformattings. + +2018-05-23 Pascal Obry <obry@adacore.com> + + * adaint.c (win32_wait): Properly free the handle/pid lists when + WaitForMultipleObjects fails (return WAIT_FAILED). + +2018-05-23 Pascal Obry <obry@adacore.com> + + * adaint.c (win32_wait): Add missing parentheses. + +2018-05-23 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch3.adb (Check_Large_Modular_Array): Moved to Freeze. + (Expand_N_Object_Declaration): Do not check for a large modular array + here. + * freeze.adb (Check_Large_Modular_Array): Moved from Exp_Ch3. + (Freeze_Object_Declaration): Code cleanup. Check for a large modular + array. + * sem_ch3.adb: Minor reformatting. + +2018-05-23 Ed Schonberg <schonberg@adacore.com> + + * einfo.ads: New attribute on types: Predicated_Parent, to simplify the + retrieval of the applicable predicate function to an itype created for + a constrained array component. + * einfo.adb: Subprograms for Predicated_Parent. + (Predicate_Function): Use new attribute. + * exp_util.adb (Make_Predicate_Call): If the predicate function is not + available for a subtype, retrieve it from the base type, which may have + been frozen after the subtype declaration and not captured by the + subtype declaration. + * sem_aggr.adb (Resolve_Array_Aggregate): An Others association is + legal within a generated initiqlization procedure, as may happen with a + predicate check on a component, when the predicate function applies to + the base type of the component. + * sem_ch3.adb (Analyze_Subtype_Declaration): Clean up inheritance of + predicates for subtype declarations and for subtype indications in + other contexts. + (Process_Subtype): Likewise. Handle properly the case of a private type + with unknown discriminants whose full view is an unconstrained array. + Use Predicated_Parent to indicate source of predicate function on an + itype whose parent is itself an itype. + (Complete_Private_Subtype): If the private view has unknown + discriminants and the full view is an unconstrained array, set base + type of completion to the full view of parent. + (Inherit_Predicate_Flags): Prevent double assignment of predicate + function and flags. + (Build_Subtype): For a constrained array component, propagate predicate + information from original component type declaration. + +2018-05-23 Boris Yakobowski <yakobowski@adacore.com> + + * libgnat/a-ngelfu.ads (Arctanh, Arccoth): Fix faulty preconditions. + +2018-05-23 Arnaud Charlet <charlet@adacore.com> + + * checks.adb (Minimize_Eliminate_Overflows): Default initialize Lo and + Hi. + * sem_elab.adb: Make "out" parameters instead of "in out" when + relevant. + +2018-05-23 Bob Duff <duff@adacore.com> + + * gnatbind.adb (List_Applicable_Restrictions): Add + No_Implementation_Restrictions to the list of restrictions not to list. + Remove double negative "not No_Restriction_List". Comment the + commentary that is output, so it won't cause errors if used directly in + a gnat.adc. + +2018-05-23 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb (Inherit_Class_Wide_Pre): Refine legality check on + class-wide precondition on a type extension when ancestor does not have + a class-wide precondition. Previously the compiler accepted such a + precondition when the ancestor had a class-wide postcondition. + +2018-05-23 Javier Miranda <miranda@adacore.com> + + * sem_attr.adb (Valid_Scalars): Do not invoke Error_Attr_P to report + the warning on occurrences of this attribute whose evaluation is always + true (since that subprogram aborts processing the attribute). In + addition, replace the node by its boolean result 'True' (required + because the backend has no knowledge of this attribute). + +2018-05-23 Bob Duff <duff@adacore.com> + + * libgnat/a-convec.adb: (Insert, Insert_Space): Suppress warnings. The + code in question is not reachable in the case where Count_Type'Last is + out of range. + +2018-05-23 Yannick Moy <moy@adacore.com> + + * doc/gnat_rm/implementation_defined_pragmas.rst: Clarify meaning of + local pragma Warnings Off without On. + * gnat_rm.texi: Regenerate. + +2018-05-23 Olivier Hainque <hainque@adacore.com> + + * libgnat/g-excact.ads (Is_Foreign_Exception): New predicate. + * libgnat/g-excact.adb: Implement. + +2018-05-23 Ed Schonberg <schonberg@adacore.com> + + * sem_ch5.adb (Analyze_Iterator_Specification): If a subtype indication + is present, verify its legality when the domain of iteration is a + GNAT-specific formal container, as is already done for arrays and + predefined containers. + +2018-05-23 Yannick Moy <moy@adacore.com> + + * sem_util.adb (Enclosing_Declaration): Fix the case of a named number + declaration, which was not taken into account. + +2018-05-23 Hristian Kirtchev <kirtchev@adacore.com> + + * debug.adb: Switch -gnatd_s is now used to stop elaboration checks on + synchronized suspension. + * rtsfind.ads: Add entries for units Ada.Synchronous_Barriers and + Ada.Synchronous_Task_Control and routines Suspend_Until_True and + Wait_For_Release. + * sem_elab.adb: Document switch -gnatd_s. + (In_Task_Body): New routine. + (Is_Potential_Scenario): Code cleanup. Stop the traversal of a task + body when the current construct denotes a synchronous suspension call, + and restriction No_Entry_Calls_In_Elaboration_Code or switch -gnatd_s + is in effect. + (Is_Synchronous_Suspension_Call): New routine. + * switch-c.adb (Scan_Front_End_Switches): Switch -gnatJ now sets switch + -gnatd_s. + +2018-05-23 Javier Miranda <miranda@adacore.com> + + * exp_disp.adb (Make_DT): Restrict the initialization of + External_Tag and Expanded_Name to an empty string to the case where + both pragmas apply (i.e. No_Tagged_Streams and Discard_Names), since + restricted runtimes are compiled with pragma Discard_Names. + * doc/gnat_rm/implementation_defined_pragmas.rst, + doc/gnat_rm/implementation_defined_characteristics.rst: Add + documentation. + * gnat_rm.texi: Regenerate. + +2018-05-23 Maroua Maalej <maalej@adacore.com> + + * sem_spark.adb: Fix of some permission rules of pointers in SPARK. + +2018-05-23 Ed Schonberg <schonberg@adacore.com> + + * sem_ch5.adb (Preanalyze_Range): The pre-analysis of the domain of + iteration of an Ada2012 loop is performed to determine the type of the + domain, but full analysis is performed once the loop is rewritten as a + while-loop during expansion. The pre-analysis suppresses expansion; it + must also suppress the generation of freeze nodes, which may otherwise + appear in the wrong scope before rewritting. + +2018-05-23 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_elab.adb: Update the section on suppressing elaboration warnings. + +2018-05-23 Hristian Kirtchev <kirtchev@adacore.com> + + * einfo.adb (Is_Elaboration_Checks_OK_Id): Use predicate + Is_Elaboration_Target. + (Is_Elaboration_Target): New routine. + (Is_Elaboration_Warnings_OK_Id): Use predicate Is_Elaboration_Target. + (Set_Is_Elaboration_Checks_OK_Id): Use predicate Is_Elaboration_Target. + (Set_Is_Elaboration_Warnings_OK_Id): Use predicate + Is_Elaboration_Target. + * einfo.ads: Add new synthesized attribute Is_Elaboration_Target along + with occurrences in nodes. + (Is_Elaboration_Target): New routine. + * sem_prag.adb (Analyze_Pragma): Suppress elaboration warnings when an + elaboration target is subject to pragma Warnings (Off, ...). + +2018-05-23 Eric Botcazou <ebotcazou@adacore.com> + + * repinfo.adb (List_Type_Info): Remove obsolete stuff. + +2018-05-23 Hristian Kirtchev <kirtchev@adacore.com> + + * einfo.adb: Flag304 is now Is_Elaboration_Warnings_OK_Id. + (Is_Elaboration_Warnings_OK_Id): New routine. + (Set_Is_Elaboration_Warnings_OK_Id): New routine. + (Write_Entity_Flags): Output Flag304. + * einfo.ads: Add new attribute Is_Elaboration_Warnings_OK_Id along with + occurrences in entities. + (Is_Elaboration_Warnings_OK_Id): New routine along with pragma Inline. + (Set_Is_Elaboration_Warnings_OK_Id): New routine along with pragma + Inline. + * sem_attr.adb (Analyze_Access_Attribute): Capture the state of + elaboration warnings. + * sem_ch3.adb (Analyze_Object_Declaration): Capture the state of + elaboration warnings. + * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Capture the + state of elaboration warnings. + (Analyze_Subprogram_Body_Helper): Capture the state of elaboration + warnings. + (Analyze_Subprogram_Declaration): Capture the state of elaboration + warnings. + * sem_ch9.adb (Analyze_Entry_Declaration): Capture the state of + elaboration warnings. + (Analyze_Single_Task_Declaration): Capture the state of elaboration + warnings. + (Analyze_Task_Type_Declaration): Capture the state of elaboration + warnings. + * sem_ch12.adb (Analyze_Generic_Package_Declaration): Capture the state + of elaboration warnings. + (Analyze_Generic_Subprogram_Declaration): Capture the state of + elaboration warnings. + * sem_elab.adb: Add a section on suppressing elaboration warnings. + Type Processing_Attributes includes component Suppress_Warnings + intended to suppress any elaboration warnings along a path in the + graph. Update Initial_State to include a value for this component. + Types Target_Attributes and Task_Attriutes include component + Elab_Warnings_OK to indicate whether the target or task has elaboration + warnings enabled. component Elab_Warnings_OK. + (Build_Access_Marker): Propagate attribute + Is_Elaboration_Warnings_OK_Node from the attribute to the generated + call marker. + (Extract_Instantiation_Attributes): Set the value for Elab_Warnings_OK. + (Extract_Target_Attributes): Set the value for Elab_Warnings_OK. + (Extract_Task_Attributes): Set the value for Elab_Warnings_OK. + (Process_Conditional_ABE_Access): Suppress futher elaboration warnings + when already in this mode or when the attribute or target have warnings + suppressed. + (Process_Conditional_ABE_Activation_Impl): Do not emit any diagnostics + if warnings are suppressed. + (Process_Conditional_ABE_Call): Suppress further elaboration warnings + when already in this mode, or the target or call have warnings + suppressed. + (Process_Conditional_ABE_Call_Ada): Do not emit any diagnostics if + warnings are suppressed. + (Process_Conditional_ABE_Call_SPARK): Do not emit any diagnostics if + warnings are suppressed. + (Process_Conditional_ABE_Instantiation): Suppress further elaboration + warnings when already in this mode or when the instantiation has + warnings suppressed. + (Process_Conditional_ABE_Instantiation_Ada): Do not emit any + diagnostics if warnings are suppressed. + (Process_Conditional_ABE_Variable_Assignment_Ada): Use the more + specific Is_Elaboration_Warnings_OK_Id rather than Warnings_Off. + (Process_Conditional_ABE_Variable_Assignment_SPARK): Use the more + specific Is_Elaboration_Warnings_OK_Id rather than Warnings_Off. + (Process_Task_Object): Suppress further elaboration warnings when + already in this mode, or when the object, activation call, or task type + have warnings suppressed. Update the processing state to indicate that + the path goes through a task body. + * sinfo.adb (Is_Elaboration_Warnings_OK_Node): Accept attribute + references. + (Set_Is_Elaboration_Warnings_OK_Node): Accept attribute references. + * sinfo.ads: Attribute Is_Elaboration_Warnings_OK_Node now applies to + attribute references. + +2018-05-23 Piotr Trojanek <trojanek@adacore.com> + + * einfo.ads: Minor reformatting. + +2018-05-23 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Analyze_Object_Declaration): If expression is an + anonymous_access_to_ subprogram formal, apply a conversion to force an + accsssibility check that will fail statically, enforcing 3.10.2 (13). + +2018-05-23 Daniel Mercier <mercier@adacore.com> + + * gnat1drv.adb: Turn off length expansion in CodePeer mode. + +2018-05-23 Bob Duff <duff@adacore.com> + + * freeze.adb: (Check_Address_Clause): Deal with build-in-place + aggregates in addition to build-in-place calls. + +2018-05-23 Bob Duff <duff@adacore.com> + + * einfo.ads: Minor reformatting. + * sem_ch3.adb: Likewise. + * sinfo.ads: Likewise. + +2018-05-23 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch3.adb (Default_Initialize_Object): Do not optimize scalar array + initialization when the component type has predicates. + * exp_ch4.adb (Expand_N_Allocator): Do not optimize scalar array + allocation when the component type has predicates. + +2018-05-23 Hristian Kirtchev <kirtchev@adacore.com> + + * einfo.adb, exp_disp.adb, sem_ch3.adb, sem_ch6.adb, sem_prag.adb: Minor reformatting. -2017-09-06 Justin Squirek <squirek@adacore.com> - - * exp_attr.adb (Expand_N_Attribute_Reference): Modified Image - attribute cases (Rewrite_Object_Reference_Image): Created to - aid the rewriting of new-style 'Image attributes. - * sem_attr.adb (Analyze_Attribute): Modified Image attribute cases - (Check_Object_Reference_Image): Created to handle verification of - 'Image with object-references as prefixes. - * sem_util.ads, sem_util.adb (Is_Image_Applied_To_Object): - Create predicate to identify cases where an 'Image attribute's - prefix applies to an object reference. - -2017-09-06 Ed Schonberg <schonberg@adacore.com> - - * freeze.adb (Freeze_Entity): Do not generate a freeze - node for a generic unit, even if it includes delayed aspect - specifications. Freeze nodes for generic entities must never - appear in the tree that reaches the back-end of the compiler. - -2017-09-06 Yannick Moy <moy@adacore.com> - - * treepr.adb (Print_Entity_Info): Do not print empty Elist. - -2017-09-06 Yannick Moy <moy@adacore.com> - - * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Do not consider calls - to subprograms in other units as possibly inlined. - -2017-09-06 Ed Schonberg <schonberg@adacore.com> - - * freeze.adb (Freeze_Entity): For a derived type that has no - explicit delayed aspects but may inherit delayed aspects from its - parent type, analyze aspect at freeze point for proper capture - of an inherited aspect. - -2017-09-06 Arnaud Charlet <charlet@adacore.com> - - * lib-xref.adb (Get_Through_Renamings): Get through subprogram - renamings; also, avoid repeated calls to Renamed_Object when getting - through object renamings. - -2017-09-06 Ed Schonberg <schonberg@adacore.com> - - * sem_ch3.adb (Array_Type_Declaration): Handle properly an - array type declaration in a private part, when an index is a - subtype indication of a discrete type with a private partial view. - -2017-09-06 Javier Miranda <miranda@adacore.com> - - * exp_ch4.adb (Expand_Modular_Op): Force generating - temporary to improve the generated code. - -2017-09-06 Tristan Gingold <gingold@adacore.com> - - * s-fatgen.adb: Minor typo fix in comment. - -2017-09-06 Ed Schonberg <schonberg@adacore.com> - - * exp_ch5.adb (Make_Field_Assign): If the type - of the right-hand side has stored constraint, use its values - (except for those that are renamings of parent discriminants) - to produce additional assignments for the discriminants of the - left-hand side, which are invisible in the righ-hand side and - not retrievable as selected components. - -2017-09-06 Ed Schonberg <schonberg@adacore.com> - - * sem_util.adb (Needs_One_Formal): The first formal of such a - function must be a controlling formal, so that Obj.F (X, Y) - can have the interpretation F(Obj)(X, Y). - * sem_util.ads: Clarify documentation. - -2017-09-06 Eric Botcazou <ebotcazou@adacore.com> - - * table.ads, table.adb: Restore original implementation. - * namet.h (Names_Ptr): Adjust back. - (Name_Chars_Ptr): Likewise. - * uintp.h (Uints_Ptr): Likewise. - (Udigits_Ptr): Likewise. - * g-table.ads: Remove pragma Compiler_Unit_Warning. - * par_sco.adb: Do not with GNAT.Table and use Table consistently. - * scos.ads: Replace GNAT.Table with Table and adjust instantiations. - * spark_xrefs.ads: Likewise. - * scos.h: Undo latest changes. - -2017-09-06 Ed Schonberg <schonberg@adacore.com> - - * sem_ch12.adb (Analyze_Subprogram_Instantiation): Propagate - No_Return flag to instance if pragma applies to generic unit. This - must be done explicitly because the pragma does not appear - directly in the generic declaration (unlike the corresponding - aspect specification). - -2017-09-06 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch7.adb (Has_Referencer): Move up and expand comment - explaining the test used to detect inlining. Use same test - in second occurrence. - (Analyze_Package_Body_Helper): Minor formatting fixes. - -2017-09-06 Ed Schonberg <schonberg@adacore.com> - - * exp_ch4.adb (Handle_Changed_Representation): For an untagged - derived type with a mixture of renamed and constrained parent - discriminants, the constraint for the target must obtain the - discriminant values from both the operand and from the stored - constraint for it, given that the constrained discriminants are - not visible in the object. - * exp_ch5.adb (Make_Field_Assign): The type of the right-hand - side may be derived from that of the left-hand side (as in the - case of an assignment with a change of representation) so the - discriminant to be used in the retrieval of the value of the - component must be the entity in the type of the right-hand side. - -2017-09-06 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch3.adb, sem_ch7.adb, sem_util.adb, g-debpoo.adb, sem_ch4.adb, - sem_ch6.adb, sem_ch8.adb: Minor reformatting. - * exp_util.adb (Is_Source_Object): Account for - the cases where the source object may appear as a dereference - or within a type conversion. - * exp_ch6.adb: Fix missing space in error message. - -2017-09-06 Ed Schonberg <schonberg@adacore.com> - - * sem_prag.adb: Update description of Eliminate. - -2017-09-06 Ed Schonberg <schonberg@adacore.com> - - * sem_attr.adb (Analyze_Attribute, case 'Loop_Entry): Handle - properly an attribute reference 'Loop_Entry that appears in the - list of indices of an indexed expression, to prevent an infinite - loop in the compiler. - -2017-09-06 Bob Duff <duff@adacore.com> - - * s-fileio.adb (Name): Do not raise Use_Error for temp files. - -2017-09-06 Ed Schonberg <schonberg@adacore.com> - - * sem_ch4.adb (Analyze_Set_Membership): If an alternative - in a set membership is an overloaded enumeration literal, and - the type of the alternative is resolved from a previous one, - replace the entity of the alternative as well as the type, - to prevent inconsistencies between the entity and the type. - -2017-09-06 Eric Botcazou <ebotcazou@adacore.com> - - * ali.ads (ALIs_Record): Add No_Component_Reordering component. - (No_Component_Reordering_Specified): New switch. - * ali.adb (Initialize_ALI): Set No_Component_Reordering_Specified. - (Scan_ALI): Set No_Component_Reordering and deal with NC marker. - * bcheck.adb (Check_Consistent_No_Component_Reordering): - New check. - (Check_Configuration_Consistency): Invoke it. - * debug.adb (d.r): Toggle the effect of the switch. - (d.v): Change to no-op. - * einfo.ads (Has_Complex_Representation): - Restrict to record types. - (No_Reordering): New alias for Flag239. - (OK_To_Reorder_Components): Delete. - (No_Reordering): Declare. - (Set_No_Reordering): Likewise. - (OK_To_Reorder_Components): Delete. - (Set_OK_To_Reorder_Components): Likewise. - * einfo.adb (Has_Complex_Representation): Expect record types. - (No_Reordering): New function. - (OK_To_Reorder_Components): Delete. - (Set_Has_Complex_Representation): Expect base record types. - (Set_No_Reordering): New procedure. - (Set_OK_To_Reorder_Components): Delete. - (Write_Entity_Flags): Adjust to above change. - * fe.h (Debug_Flag_Dot_R): New macro and declaration. - * freeze.adb (Freeze_Record_Type): Remove conditional code setting - OK_To_Reorder_Components on record types with convention Ada. - * lib-writ.adb (Write_ALI): Deal with NC marker. - * opt.ads (No_Component_Reordering): New flag. - (No_Component_Reordering_Config): Likewise. - (Config_Switches_Type): Add No_Component_Reordering component. - * opt.adb (Register_Opt_Config_Switches): Copy - No_Component_Reordering onto No_Component_Reordering_Config. - (Restore_Opt_Config_Switches): Restore No_Component_Reordering. - (Save_Opt_Config_Switches): Save No_Component_Reordering. - (Set_Opt_Config_Switches): Set No_Component_Reordering. - * par-prag.adb (Prag): Deal with Pragma_No_Component_Reordering. - * sem_ch3.adb (Analyze_Private_Extension_Declaration): Also set the - No_Reordering flag from the default. - (Build_Derived_Private_Type): Likewise. - (Build_Derived_Record_Type): Likewise. Then inherit it - for untagged types and clean up handling of similar flags. - (Record_Type_Declaration): Likewise. - * sem_ch13.adb (Same_Representation): Deal with No_Reordering and - remove redundant test on Is_Tagged_Type. - * sem_prag.adb (Analyze_Pragma): Handle No_Component_Reordering. - (Sig_Flags): Likewise. - * snames.ads-tmpl (Name_No_Component_Reordering): New name. - (Pragma_Id): Add Pragma_No_Component_Reordering value. - * warnsw.adb (Set_GNAT_Mode_Warnings): Enable -gnatw.q as well. - * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: - Copy the layout of the parent type only if the No_Reordering - settings match. - (components_to_record): Reorder record types with - convention Ada by default unless No_Reordering is set or -gnatd.r - is specified and do not warn if No_Reordering is set in GNAT mode. - -2017-09-06 Ed Schonberg <schonberg@adacore.com> - - * sem_util.ads, sem_util.adb (Check_Previous_Null_Procedure): - new predicate to reject declarations that can be completions, - when there is a visible prior homograph that is a null procedure. - * sem_ch6.adb (Analyze_Null_Procedure): use it. - * sem_ch8.adb (Analyze_Subprogram_Renaming): ditto. - -2017-09-06 Thomas Quinot <quinot@adacore.com> - - * s-regpat.adb (Compile.Parse_Literal): Fix handling of literal - run of 253 characters or more. - -2017-09-06 Ed Schonberg <schonberg@adacore.com> - - * einfo.adb (Designated_Type): Use Is_Incomplete_Type to handle - properly incomplete subtypes that may be created by explicit or - implicit declarations. - (Is_Base_Type): Take E_Incomplete_Subtype into account. - (Subtype_Kind): Ditto. - * sem_ch3.adb (Build_Discriminated_Subtype): Set properly the - Ekind of a subtype of a discriminated incomplete type. - (Fixup_Bad_Constraint): Use Subtype_Kind in all cases, including - incomplete types, to preserve error reporting. - (Process_Incomplete_Dependents): Do not create a subtype - declaration for an incomplete subtype that is created internally. - * sem_ch7.adb (Analyze_Package_Specification): Handle properly - incomplete subtypes that do not require a completion, either - because they are limited views, of they are generic actuals. - -2017-09-06 Hristian Kirtchev <kirtchev@adacore.com> - - * checks.adb (Insert_Valid_Check): Remove the - suspicious manipulation of the Do_Range_Check flag as ths is - no linger needed. Suppress validity check when analysing the - validation variable. - -2017-09-06 Philippe Gil <gil@adacore.com> - - * g-debpoo.adb: adapt GNAT.Debug_Pools to allow safe thread - GNATCOLL.Memory - -2017-09-06 Bob Duff <duff@adacore.com> - - * sem_elim.adb: Minor comment fix. - -2017-09-06 Ed Schonberg <schonberg@adacore.com> - - * sem_util.adb (Is_Object_Reference): A function call is an - object reference, and thus attribute references for attributes - that are functions (such as Pred and Succ) as well as predefined - operators are legal in contexts that require an object, such as - the prefix of attribute Img and the Ada2020 version of 'Image. - -2017-09-06 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_util.adb, einfo.adb, sem_attr.adb, exp_ch4.adb, gnatls.adb, - exp_ch3.adb, xoscons.adb: Minor reformatting. - -2017-09-06 Raphael Amiard <amiard@adacore.com> - - * a-chtgop.ads, a-chtgop.adb: Add versions of First and Next with - Position parameter. If supplied, use it to provide efficient iteration. - * a-cohase.ads, a-cohase.adb, a-cihama.ads, a-cihama.adb, - a-cohama.ads, a-cohama.adb: Add/Use Position to provide efficient - iteration. - -2017-09-06 Ed Schonberg <schonberg@adacore.com> - - * exp_util.adb (Build_Allocate_Deallocate_Proc): If the - designated type is class-wide and the expression is an unchecked - conversion, preserve the conversion when checking the tag of the - designated object, to prevent spurious semantic errors when the - expression in the conversion has an untagged type (for example - an address attribute). - -2017-09-06 Ed Schonberg <schonberg@adacore.com> - - * sem_res.adb (Resolve_Entry_Call): Check whether a protected - operation is subject to a pragma Eliminate. - -2017-09-06 Ed Schonberg <schonberg@adacore.com> - - * sem_elim.ads, exp_ch4.adb: Minor reformatting. - -2017-09-06 Eric Botcazou <ebotcazou@adacore.com> - - * fe.h (Eliminate_Error_Msg): Remove. - -2017-09-05 Richard Sandiford <richard.sandiford@linaro.org> - - * gcc-interface/utils.c (make_packable_type): Update call to - mode_for_size_tree. - -2017-09-05 Richard Sandiford <richard.sandiford@linaro.org> - - * gcc-interface/utils2.c (build_load_modify_store): - Use int_mode_for_size. - -2017-09-05 Eric Botcazou <ebotcazou@adacore.com> - - PR ada/62235 - * gcc-interface/decl.c (gnat_to_gnu_entity): Skip regular processing - for Itypes that are E_Record_Subtype with a cloned subtype. - <E_Record_Subtype>: Use the DECL of the cloned type directly, if any. - -2017-09-05 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.c (convert_with_check): Use a custom base type - if the base type of the expression has a different machine mode. - Rename a couple of parameters and local variable. - -2017-09-05 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Address>: Do not strip - conversions around prefixes that are not references. - -2017-09-05 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/utils.c (unchecked_convert): When the result type is a - non-biased integral type with size 0, set the result to 0 directly. - -2017-09-05 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/gigi.h (renaming_from_generic_instantiation_p): Turn to - (renaming_from_instantiation_p): ...this. - * gcc-interface/decl.c (gnat_to_gnu_entity): Use inline predicate - instead of explicit tests on kind of entities. Adjust for renaming. - (gnat_to_gnu_profile_type): Likewise. - (gnat_to_gnu_subprog_type): Likewise. - * gcc-interface/trans.c (Identifier_to_gnu): Likewise. - (Case_Statement_to_gnu): Likewise. - (gnat_to_gnu): Likewise. - (process_freeze_entity): Likewise. - (process_type): Likewise. - (add_stmt_with_node): Adjust for renaming. - * gcc-interface/utils.c (gnat_pushdecl): Adjust for renaming. - (renaming_from_generic_instantiation_p): Rename to... - (renaming_from_instantiation_p): ...this. Use inline predicate. - (pad_type_hasher::keep_cache_entry): Fold. - -2017-09-05 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.c (adjust_for_implicit_deref): New function. - (gnat_to_gnu) <N_Explicit_Dereference>: Translate result type first. - (N_Indexed_Component): Invoke adjust_for_implicit_deref on the prefix. - (N_Slice): Likewise. - (N_Selected_Component): Likewise. Do not try again to translate it. - (N_Free_Statement): Invoke adjust_for_implicit_deref on the expression. - -2017-09-05 Eric Botcazou <ebotcazou@adacore.com> - - * repinfo.ads: Document new treatment of dynamic values. - (TCode): Bump upper bound to 29. - (Dynamic_Val): New constant set to 29. - * repinfo.adb (Print_Expr) <Dynamic_Val>: New case. - (Rep_Value) <Dynamic_Val>: Likewise. - * repinfo.h (Dynamic_Val): New macro. - * gcc-interface/decl.c (annotate_value): Tidy up and cache result for - DECL_P nodes too. - <INTEGER_CST>: Set TCODE instead of recursing. - <COMPONENT_REF>: Set TCODE instead of calling Create_Node manually. - <VAR_DECL>: New case. - <MULT_EXPR, PLUS_EXPR>: Fold conversions into inner operations. - <BIT_AND_EXPR>: Adjust. - <CALL_EXPR>: Do not fall through. - -2017-09-05 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.c (Call_to_gnu): If this is a function call and - there is no target, do not create a temporary for the return value for - an allocator either. - -2017-09-05 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.c (pos_to_constructor): Skip conversions to an - unconstrained array type. - -2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> - Alan Hayward <alan.hayward@arm.com> - David Sherwood <david.sherwood@arm.com> - - * gcc-interface/decl.c (validate_size): Use NARROWEST_INT_MODE - instead of GET_CLASS_NARROWEST_MODE (MODE_INT). - -2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> - Alan Hayward <alan.hayward@arm.com> - David Sherwood <david.sherwood@arm.com> - - * gcc-interface/decl.c (check_ok_for_atomic_type): Use - is_a <scalar_int_mode>. - * gcc-interface/trans.c (Pragma_to_gnu): Likewise. - * gcc-interface/utils.c (gnat_type_for_mode): Likewise. - -2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> - Alan Hayward <alan.hayward@arm.com> - David Sherwood <david.sherwood@arm.com> - - * gcc-interface/decl.c (gnat_to_gnu_entity): Use int_mode_for_size - instead of mode_for_size. - (gnat_to_gnu_subprog_type): Likewise. - * gcc-interface/utils.c (make_type_from_size): Likewise. - -2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> - Alan Hayward <alan.hayward@arm.com> - David Sherwood <david.sherwood@arm.com> - - * gcc-interface/misc.c (fp_prec_to_size): Use opt_scalar_float_mode. - (fp_size_to_prec): Likewise. - -2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> - Alan Hayward <alan.hayward@arm.com> - David Sherwood <david.sherwood@arm.com> - - * gcc-interface/utils.c (gnat_type_for_mode): Use is_a - <scalar_float_mode> instead of SCALAR_FLOAT_MODE_P. - -2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> +2018-05-22 Justin Squirek <squirek@adacore.com> + + * sem_ch6.adb (Analyze_Expression_Function): Propagate flags from the + original function spec into the generated function spec due to + expansion of expression functions during analysis. + (Analyze_Subprogram_Body_Helper): Modify check on formal parameter + references from the body to the subprogram spec in the case of + expression functions because of inconsistances related to having a + generated body. + * libgnarl/s-osinte__android.ads: Flag parameters as unused. + * libgnarl/s-osinte__lynxos178e.ads: Likewise. + * libgnarl/s-osinte__qnx.adb: Likewise. + * libgnarl/s-osinte__qnx.ads: Likewise. + +2018-05-22 Doug Rupp <rupp@adacore.com> + + * init.c (HAVE_ADJUST_CONTEXT_FOR_RAISE): Don't define on VxWorks7 for + AArch64. + +2018-05-22 Olivier Hainque <hainque@adacore.com> + + * libgnat/a-except.adb (Exception_Propagation.Propagate_Exception): + Expect an Exception_Occurence object, not an Access. + (Complete_And_Propagate_Occurrence): Adjust accordingly. + (Raise_From_Signal_Handler): Likewise. + (Reraise_Occurrence_No_Defer): If we have a Machine_Occurrence + available in the provided occurrence object, just re-propagate the + latter as a bare "raise;" would do. + * libgnat/a-exexpr.adb (Propagate_Exception): Adjust to spec change. + * libgnat/a-exstat.adb (String_To_EO): Initialize X.Machine_Occurrence + to null, to mark that the occurrence we're crafting from the stream + contents is not being propagated (yet). + +2018-05-22 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_aggr.adb (Initialize_Ctrl_Record_Component): Insert the generated + code for a transient component in line with the rest of the + initialization code, rather than before the aggregate. This ensures + that the component has proper visibility of the discriminants. + +2018-05-22 Jerome Lambourg <lambourg@adacore.com> + + * adaint.c: Reorganize QNX-specific macros, use syspage to retreive the + number of CPUs. + +2018-05-22 Jerome Lambourg <lambourg@adacore.com> + + * sigtramp-qnx.c: Properly restore link register in signal trampoline. + +2018-05-22 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Strip away any + conversions before extracting the value of the expression. + * exp_ch3.adb (Default_Initialize_Object): Optimize the default + initialization of an array of scalars. + (Get_Simple_Init_Val): Add processing for array types. Remove the + processing of strings because this case is already handled by the array + case. + (Needs_Simple_Initialization): Moved to Sem_Util. + (Simple_Init_Array_Type): New routine. + (Simple_Init_Initialize_Scalars_Type): Reimplemented to use the new + facilities from Sem_Util. + (Simple_Initialization_OK): New routine. + * exp_ch3.ads (Needs_Simple_Initialization): Moved to Sem_Util. + * exp_ch4.adb (Expand_N_Allocator): Optimize the default allocation of + an array of scalars. + * sem_prag.adb (Analyze_Float_Value): New routine. + (Analyze_Integer_Value): New routine. + (Analyze_Pragma): Reimplement the analysis of pragma Initialize_Scalars + to handled the extended form of the pragma. + (Analyze_Type_Value_Pair): New routine. + * sem_util.adb: Add invalid value-related data structures. + (Examine_Array_Bounds): New routine. + (Has_Static_Array_Bounds): Reimplemented. + (Has_Static_Non_Empty_Array_Bounds): New routine. + (Invalid_Scalar_Value): New routine. + (Needs_Simple_Initialization): Moved from Exp_Ch3. + (Set_Invalid_Scalar_Value): New routines. + * sem_util.ads (Has_Static_Non_Empty_Array_Bounds): New routine. + (Invalid_Scalar_Value): New routine. + (Needs_Simple_Initialization): Moved from Exp_Ch3. + (Set_Invalid_Scalar_Value): New routines. + * snames.ads-tmpl: Add names for the salar type families used by pragma + Initialize_Scalars. + +2018-05-22 Javier Miranda <miranda@adacore.com> + + * exp_disp.adb (Make_DT): Initialize the External_Tag with an empty + string when pragma No_Tagged_Streams is applicable to the tagged type, + and initialize the Expanded_Name with an empty string when pragma + Discard_Names is applicable to the tagged type. + +2018-05-22 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Check_Conformance): Add RM reference for rule that a + formal subprogram is never subtype conformqnt, and thus cannot be the + prefix of 'Access. Reject as well the attribute when applied to a + renaming of a formal subprogram. + +2018-05-22 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch3.adb (Build_Array_Init_Proc): Update the call to + Needs_Simple_Initialization. + (Build_Init_Statements): Update the call to Get_Simple_Init_Val. + (Check_Subtype_Bounds): Renamed to Extract_Subtype_Bounds. Update the + profile and comment on usage. + (Default_Initialize_Object): Do not use New_Copy_Tree to set the proper + Sloc of a value obtained from aspect Default_Value because this could + potentially replicate large trees. The proper Sloc is now set in + Get_Simple_Init_Val. + (Get_Simple_Init_Val): Reorganized by breaking the various cases into + separate routines. Eliminate the use of global variables. + (Init_Component): Update the call to Get_Simple_Init_Val. + (Needs_Simple_Initialization): Update the parameter profile and all + uses of T. + (Simple_Init_Defaulted_Type): Copy the value of aspect Default_Value + and set the proper Sloc. + * exp_ch3.ads (Get_Simple_Init_Val): Update the parameter profile and + comment on usage. + (Needs_Simple_Initialization): Update the parameter profile. + +2018-05-22 Patrick Bernardi <bernardi@adacore.com> + + * sem_ch3.adb (Build_Discriminant_Constraints): Raise an error if the + user tries to use a subtype indication as a discriminant constraint. + +2018-05-22 Ed Schonberg <schonberg@adacore.com> + + * exp_ch4.ads, exp_ch4.adb, exp_util.adb, expander.adb: Remove mention + of N_Reduction_Expression and N_Reduction_Expression_Parameter. + * par-ch4.adb: Remove parsing routines for reduction expressions. + * sem.adb, sinfo.ads, sinfo.adb, sem_ch4.ads, sem_ch4.adb, sem_res.adb, + sem_spark.adb, sprint.adb: Remove analysis routines for reduction + expressions. + +2018-05-22 Arnaud Charlet <charlet@adacore.com> + + * sem_ch8.adb (Check_Frozen_Renaming): Do not emit error in + Relaxed_RM_Semantics mode. + +2018-05-22 Arnaud Charlet <charlet@adacore.com> + + * comperr.adb (Delete_SCIL_Files): Take into account + N_Generic_Package_Renaming_Declaration. + +2018-05-22 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Search_Derivation_Levels): Whenever a parent type is + private, use the full view if available, because it may include renamed + discriminants whose values are stored in the corresponding + Stored_Constraint. + +2018-05-22 Ed Schonberg <schonberg@adacore.com> + + * einfo.ads, einfo.adb: New attribute Hidden_In_Formal_Instance, + defined on packages that are actuals for formal packages, in order to + set/reset the visibility of the formals of a formal package with given + actuals, when there are subsequent uses of those formals in the + enclosing generic, as required by RN 12.7 (10). + * atree.ads, atree.adb: Add operations for Elist30. + * atree.h: Add Elist30. + * sem_ch12.adb (Analyze_Formal_Package_Instantiation): Collect formals + that are not defaulted and are thus not visible within the current + instance. + (Check_Formal_Packages): Reset visibility of formals of a formal + package that are not defaulted, on exit from current instance. + +2018-05-22 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Analyze_Input_Output): Emit an error when a non-null, + non-'Result output appears in the output list of a function. + +2018-05-22 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_attr.adb (Build_Array_VS_Func): Reimplemented. + (Build_Record_VS_Func): Reimplemented. + (Expand_N_Attribute): Reimplement the handling of attribute + 'Valid_Scalars. + * sem_attr.adb (Analyze_Attribute): Reimplement the handling of + attribute 'Valid_Scalars. + * sem_util.adb (Scalar_Part_Present): Reimplemented. + (Validated_View): New routine. + * sem_util.ads (Scalar_Part_Present): Update the parameter profile and + comment on usage. + (Validated_View): New routine. + * doc/gnat_rm/implementation_defined_attributes.rst: Update the + documentation of attribute 'Valid_Scalars. + * gnat_rm.texi: Regenerate. + +2018-05-22 Bob Duff <duff@adacore.com> + + * binde.adb: (Choose): Ignore a pragma Elaborate_Body that appears in + the spec of a SAL_Interface package. + +2018-05-22 Ed Schonberg <schonberg@adacore.com> + + * freeze.adb (Freeze_Entity): When analyzing delayed aspects of an + entity E within a generic unit, indicate that there are no remaining + delayed aspects after invoking Analyze_Aspects_At_Freeze_Point. The + entity E is not frozen yet but the aspects should not be reanalyzed at + the freeze point, which may be outside of the generic and may not have + the proper visibility. + +2018-05-22 Bob Duff <duff@adacore.com> + + * doc/gnat_ugn/gnat_utility_programs.rst: Add documentation for + the new --split-line-before-record, --indent-named-statements and + --no-align-modes gnatpp switches. + +2018-05-22 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Handle properly + a second argument that is a constant of a given string value. + +2018-05-22 Doug Rupp <rupp@adacore.com> + + * sigtramp-vxworks-target.inc: Align stack to 128bits on AArch64. + +2018-05-22 Jerome Lambourg <lambourg@adacore.com> + + * sigtramp-qnx.c: Fix stack alignment issue in the signal trampoline. + +2018-05-22 Ed Schonberg <schonberg@adacore.com> + + * freeze.adb (Freeze_Fixed_Point_Type): If the first subtype has + delayed aspects, analyze them now, os that the representation of the + type (size, bounds) can be computed and validated. + +2018-05-22 Olivier Hainque <hainque@adacore.com> + + * libgnat/s-dwalin.adb (Enable_Cache): Skip symbols outside of the + executable code section boundaries. + +2018-05-22 Javier Miranda <miranda@adacore.com> + + * locales.c: New implementation for the Ada.Locales package. + * libgnat/a-locale.ads: Remove comment indicating that this is not + implemented. + * doc/gnat_rm/standard_library_routines.rst: Remove comment indicating + that this is not implemented. + * gnat_rm.texi: Regenerate. + +2018-05-22 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch5.adb, freeze.adb, pprint.adb, sem_ch4.adb, sem_res.adb: Minor + reformattings. + +2018-05-22 Justin Squirek <squirek@adacore.com> + + * sem_ch12.adb (In_Same_Declarative_Part): Moved to sem_util. + (Freeze_Subprogram_Body, Install_Body): Modify calls to + In_Same_Declarative_Part. + * sem_prag.adb (Analyze_Pragma-Pragma_Pure_Function): Add check to + verify pragma declaration is within the same declarative list with + corresponding error message. + * sem_util.adb, sem_util.ads (In_Same_Declarative_Part): Moved from + sem_ch12.adb and generalized to be useful outside the scope of + freezing. + +2018-05-22 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch6.adb (Analyze_Subprogram_Declaration): Set the proper + categorization of the unit after processing the aspects in case one of + its aspects is converted into a categorization pragma. + +2018-05-21 Ed Schonberg <schonberg@adacore.com> + + * freeze.adb (Warn_Overlay): Do not emit a wawrning on an object + declaration with an explicit address clause and a type with default + initialization, if the declaration carries an aspect + Suppress_Initialization. + +2018-05-21 Daniel Mercier <mercier@adacore.com> + + * pprint.adb: Use mixed case for attribute names. + +2018-05-21 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Rename the call to + Analyze_Aspect_Specifications_On_Body_Or_Stub. + (Analyze_Subprogram_Body_Helper): Rename the calls to + Analyze_Aspect_Specifications_On_Body_Or_Stub. + * sem_ch9.adb (Analyze_Entry_Body): Rename the call to + Analyze_Aspect_Specifications_On_Body_Or_Stub. + * sem_ch10.adb: Add with and use clause for Sem_Ch13. + (Analyze_Package_Body_Stub): Add constant Id. Decorate the package stub + prior to analyzing its aspects. + (Analyze_Protected_Body_Stub): Add constant Id. Decorate the package + stub prior to analyzing its aspects. Save and restore the configuration + switches. + (Analyze_Task_Body_Stub): Add constant Id. Decorate the package stub + prior to analyzing its aspects. + * sem_ch13.adb (Analyze_Aspect_Specifications_On_Body_Or_Stub): Renamed + to Analyze_Aspects_On_Subprogram_Body_Or_Stub. + * sem_ch13.ads (Analyze_Aspect_Specifications_On_Body_Or_Stub): Renamed + to Analyze_Aspects_On_Subprogram_Body_Or_Stub. + * sem_prag.adb: Code reformatting. + (Analyze_Refined_Depends_Global_Post): Consider task body stubs. + +2018-05-21 Jerome Lambourg <lambourg@adacore.com> + + * gcc-interface/Makefile.in: Add g-soliop__qnx.ads to the runtime build + for QNX. + +2018-05-21 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_cg.adb: Remove with and use clause for Exp_Disp. + * exp_ch9.adb: Remove with and use clause for Exp_Disp. + * exp_disp.adb (Is_Predefined_Dispatching_Operation): Moved to Sem_Util. + (Is_Predefined_Interface_Primitive): Moved to Sem_Util. + (Is_Predefined_Internal_Operation): Moved to Sem_Util. + * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved to Sem_Util. + (Is_Predefined_Interface_Primitive): Moved to Sem_Util. + (Is_Predefined_Internal_Operation): Moved to Sem_Util. + * exp_dist.adb: Remove with and use clause for Exp_Disp. + * freeze.adb: Remove with and use clause for Exp_Disp. + * sem_cat.adb: Remove with and use clause for Exp_Disp. + * sem_ch6.adb: Remove with and use clause for Exp_Disp. + * sem_ch12.adb: Remove with and use clause for Exp_Disp. + * sem_elab.adb (Check_Overriding_Primitive): Do not process predefined + primitives. + * sem_util.adb: Remove with and use clause for Exp_Disp. + (Is_Predefined_Dispatching_Operation): Moved from Exp_Disp. + (Is_Predefined_Interface_Primitive): Moved from Exp_Disp. + (Is_Predefined_Internal_Operation): Moved from Exp_Disp. + * sem_util.ads (Is_Predefined_Dispatching_Operation): Moved from + Exp_Disp. + (Is_Predefined_Interface_Primitive): Moved from Exp_Disp. + (Is_Predefined_Internal_Operation): Moved from Exp_Disp. + +2018-05-21 Ed Schonberg <schonberg@adacore.com> + + * sem_res.adb (Valid_Conversion): Improve error message on an illegal + type conversion whose expression has a limited view of a type. + +2018-05-21 Ed Schonberg <schonberg@adacore.com> + + * exp_ch5.adb (Build_Formal_Container_Iteration): If source has + explicit name for iterator loop, preserve that name in expanded + construct, for possible use in exit statements. + +2018-05-21 Javier Miranda <miranda@adacore.com> + + * sem_ch4.adb (Analyze_Membership_Op): Avoid compiler crash when the + spec of a unit has Ada 2012 membership tests with multiple choices and + the unit body is not compiled under Ada 2012 mode. + +2018-05-21 Doug Rupp <rupp@adacore.com> + + * sigtramp-vxworks-target.inc: Set cfa_reg properly from sigcontext + pregs. + (CFI_COMMON_REGS): Restore LR jic probed from prologue. + (REGNO_PC_OFFSET): Change to correct value for Aarch64. + +2018-05-21 Jose Ruiz <ruiz@adacore.com> + + * doc/gnat_ugn/gnat_utility_programs.rst, exp_attr.adb, + libgnarl/s-tassta.adb: Minor typo fixes + +2018-05-21 Ed Schonberg <schonberg@adacore.com> + + * sem_ch4.adb (Analyze_One_Call): Recognize complex cases where an + indexed call originally in prefix forn is itself the prefix of a + further call. + +2018-05-21 Piotr Trojanek <trojanek@adacore.com> + + * sem_eval.adb (Is_Null_Range): Clarify access to the full view of a + type. + (Not_Null_Range): Same as above. + +2018-05-21 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch3.adb: Minor reformatting. + * exp_ch6.adb: Likewise. + * freeze.adb: Likewise. + * inline.adb: Likewise. + * sem_util.adb: Likewise. + +2018-05-21 Yannick Moy <moy@adacore.com> + + * inline.adb (Expand_Inlined_Call.Process_Formals): Use a type + conversion instead of an unchecked type conversion when inlining a + return statement, unless type qualification is required (for character + and string literal) or no check can result from the conversion (for + access types). + * opt.ads: Update comment. + +2018-05-21 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Install the elaboration + model of the compilation unit spec, if any. + * sem_ch7.adb (Analyze_Package_Body_Helper): Install the elaboration + model of the compilation unit spec, if any. + * sem_ch10.adb (Analyze_Subunit): Install the elaboration model of the + parent compilation unit spec, if any. + * sem_elab.adb (Check_Elaboration_Scenarios): Restore the elaboration + model of the main unit. + (Is_Same_Unit): The routine now uses Unit_Entity. + (Is_Subunit): Removed. + (Normalize_Unit): Removed. + (Unit_Entity): New routine. + * sem_prag.adb (Analyze_Pragma): Reimplement the handling of pragma + Elaboration_Checks. The analysis now ensures that the pragma appears at + the configuration level, and on the initial declaration of a unit. + Other placements are either flagged as illegal, or ignored. + (Check_Duplicate_Elaboration_Checks_Pragma): New routine. + (Ignore_Elaboration_Checks_Pragma): New routine. + * sem_util.adb (Install_Elaboration_Model): New routine. + * sem_util.ads (Install_Elaboration_Model): New routine. + * doc/gnat_rm/implementation_defined_pragmas.rst: Update the + documentation of pragma Elaboration_Checks. + * gnat_rm.texi: Regenerate. + +2018-05-21 Olivier Hainque <hainque@adacore.com> + + * libgnat/s-trasym__dwarf.adb (Executable_Name): Return argv[0] instead + of empty string when argv[0] couldn't be found on PATH. + (Enable_Cache): Raise Program_Error instead of attempting a null + pointer dereference when the Exec_Module initialization failed. + +2018-05-21 Piotr Trojanek <trojanek@adacore.com> + + * libgnarl/a-reatim.ads (Clock_Time): Remove External aspect. + * libgnarl/a-taside.ads (Tasking_State): Likewise. + * libgnat/a-calend.ads (Clock_Time): Likewise. + +2018-05-21 Yannick Moy <moy@adacore.com> + + * sem_ch6.adb (Analyze_Procedure_Call): Refine test to recognize prefix + call notation in inlined call in GNATprove mode. + +2018-05-21 Hristian Kirtchev <kirtchev@adacore.com> + + * einfo.adb (Is_External_State): An abstract state is also external + when it is declared with option "synchronous". + * einfo.ads: Update the documentation of synthesized attribute + Is_External_State. + * sem_util.adb (Find_Simple_Properties): New routine. + (Is_Enabled_External_Property): New routine. + (State_Has_Enabled_Property): Reimplemented. The two flavors of option + External have precedence over option Synchronous when determining + whether a property is in effect. + +2018-05-21 Yannick Moy <moy@adacore.com> + + * sem_eval.adb (Static_Length): Take into account case of variable of + subtype string literal. + +2018-05-21 Olivier Hainque <hainque@adacore.com> + + * libgnat/s-objrea.ads (Get_Memory_Bounds): Rename as Get_Xcode_Bounds. + (Object_Section): Rename Flag_Alloc component as Flag_Xcode. + * libgnat/s-objrea.adb (Get_Xcode_Bounds): Adjust to new subprogram and + component name. + (Get_Section, ELF case): Set Flag_Xcode from SHF_EXECINSTR. + * libgnat/s-dwalin.adb (Open): Adjust to the Get_Memory_Bounds name + change. + +2018-05-21 Olivier Hainque <hainque@adacore.com> + + * libgnat/s-dwalin.ads (Dwarf_Context): Change type of Load_Address to + Address, and type of Low, High to Storage_Offset. + (Low): Rename as Low_Address and convey that the return value is a + runtime reference accounting for a load address. + * libgnat/s-dwalin.adb (Read_Aranges_Entry): Adjust to the + address/offset type changes. + (Aranges_Lookup): Likewise. + (Symbolic_Address): Likewise. + (Symbolic_Traceback): Likewise. + (Dump_Cache): Likewise. + (Is_Inside): Likewise. + (Open): Likewise. + (Set_Load_Address): Likewise. + (Low_Address): Likewise, and account for C.Load_Address. + * libgnat/s-trasym__dwarf.adb (Lt): Use Low_Address instead of Low. + (Multi_Module_Symbolic_Traceback): Compare address in traceback + with module Low_Address instead of Low. + +2018-05-21 Olivier Hainque <hainque@adacore.com> + + * libgnat/s-dwalin.ads (Dwarf_Context): Rename Load_Slide as + Load_Address. + * libgnat/s-dwalin.adb (Is_Inside): Adjust accordingly. + (Set_Load_Address): Likewise. + (Symbolic_Traceback): Likewise. + +2018-05-21 Olivier Hainque <hainque@adacore.com> + + * libgnat/s-trasym__dwarf.adb (Add_Module_To_Cache): Expect a + Load_Address argument and pass it down to Init_Module. + * libgnat/s-tsmona__linux.adb (Build_Cache_For_All_Modules): Pass + lm.l_addr as the Load_Address to Add_Module_To_Cache. + +2018-05-21 Piotr Trojanek <trojanek@adacore.com> + + * einfo.adb (Has_Discriminants): Stronger assertion. + (Set_Has_Discriminants): Stronger assertion. + * sem_ch13.adb (Push_Scope_And_Install_Discriminants): Adapt to respect + the stronger assertion on Has_Discriminant. + (Uninstall_Discriminants_And_Pop_Scope): Same as above. + * sem_util.adb (New_Copy_Tree): Same as above. + * sem_ch7.adb (Generate_Parent_References): Prevent calls to + Has_Discriminant on non-type entities that might happen when the + compiled code has errors. + * sem_ch3.adb (Derived_Type_Declaration): Only call + Set_Has_Discriminant on type entities. + +2018-05-21 Arnaud Charlet <charlet@adacore.com> + + * exp_unst.adb (Unnest_Subprogram): Unnest all subprograms relevant for + code generation. + +2018-05-21 Piotr Trojanek <trojanek@adacore.com> + + * lib.ads: Fix typo in enumeration in comment. + +2018-05-21 Ed Schonberg <schonberg@adacore.com> + + * sem_attr.adb (Analyze_Attribute, case Scalar_Storage_Order): The + attribute reference is legal within a generic unit when the prefix is a + formal private type. + +2018-05-21 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch7.adb (Establish_Transient_Scope): Code cleanup. Do not + delegate the secondary stack management when there is no suitable + transient context, and the transient scope was intended to manage the + secondary stack because this causes premature reclamation. Change the + transient scope creation logic by special casing assignment statements + of controlled components for type initialization procedures. + (Find_Node_To_Be_Wrapped): Renamed to Find_Transient_Context. Update + the comment on usage. + (Find_Transient_Context): Change the initinte loop into a while loop. + Iterations schemes and iterator specifications are not valid transient + contexts because they rely on special processing. Assignment statements + are now treated as a normal transient context, special cases are + handled by the caller. Add special processing for pragma Check. + (Is_OK_Construct): Removed. Its functionality has been merged in + routine Find_Transient_Context. + * sem_ch5.adb (Check_Call): Reimplemented. Add code to properly + retrieve the subprogram being invoked. Use a more accurate predicate + (Requires_Transient_Scope) to determine that the function will emply + the secondary stack. + +2018-05-21 Piotr Trojanek <trojanek@adacore.com> + + * ada_get_targ.adb: Fix subprogram body headers. + * adabkend.adb: Likewise. + * checks.adb: Likewise. + * exp_ch3.adb: Likewise. + * exp_ch5.adb: Likewise. + * exp_ch9.adb: Likewise. + * exp_dist.adb: Likewise. + * exp_tss.adb: Likewise. + * inline.adb: Likewise. + * lib-writ.adb: Likewise. + * lib-xref-spark_specific.adb: Likewise. + * libgnarl/s-osinte__darwin.adb: Likewise. + * libgnarl/s-stusta.adb: Likewise. + * libgnarl/s-taprop__solaris.adb: Likewise. + * libgnarl/s-tposen.adb: Likewise. + * libgnarl/s-vxwext__kernel-smp.adb: Likewise. + * libgnarl/s-vxwext__kernel.adb: Likewise. + * libgnat/a-btgbso.adb: Likewise. + * libgnat/a-cfdlli.adb: Likewise. + * libgnat/a-cfhama.adb: Likewise. + * libgnat/a-cfinve.adb: Likewise. + * libgnat/a-cimutr.adb: Likewise. + * libgnat/a-coboho.adb: Likewise. + * libgnat/a-cofove.adb: Likewise. + * libgnat/a-cofuve.adb: Likewise. + * libgnat/a-comutr.adb: Likewise. + * libgnat/a-exexda.adb: Likewise. + * libgnat/a-tags.adb: Likewise. + * libgnat/a-tideau.adb: Likewise. + * libgnat/a-wtdeau.adb: Likewise. + * libgnat/a-ztdeau.adb: Likewise. + * libgnat/g-alleve.adb: Likewise. + * libgnat/s-excdeb.adb: Likewise. + * libgnat/s-parint.adb: Likewise. + * libgnat/s-shasto.adb: Likewise. + * libgnat/s-traceb__hpux.adb: Likewise. + * prepcomp.adb: Likewise. + * sem_ch4.adb: Likewise. + * sem_ch6.adb: Likewise. + * sem_dist.adb: Likewise. + * sem_prag.adb: Likewise. + * sem_util.adb: Likewise. + * sinfo.adb: Likewise. + * switch.adb: Likewise. + +2018-05-04 John Marino <gnugcc@marino.st> + + PR ada/85635 + * link.c (BSD platforms): Add missing backslash. + +2018-04-27 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/85540 + * init.c (__gnat_handle_vms_condition): Add missing parentheses. + +2018-04-25 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/85007 + * gnat_ugn.texi: Regenerate. + +2018-03-23 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/85007 + * gnatlink.adb (Gnatlink): Remove handling of -b switch. + * doc/gnat_ugn/building_executable_programs_with_gnat.rst (gnatlink): + Remove documentation of -b switch. + +2018-03-23 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/85036 + * gnatlink.adb (Process_Args): Drop existing link switches if multiple + switches are passed for --LINK. + +2018-03-12 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/82813 + * gcc-interface/misc.c (gnat_post_options): Disable string overflow + warnings. + +2018-03-10 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (node_has_volatile_full_access) <N_Identifier>: + Consider only entities for objects. + +2018-03-07 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * gcc-interface/Makefile.in (OSCONS_CPP): Remove redundant + $(GNATLIBCFLAGS). + (OSCONS_EXTRACT): Add $(GNATLIBCFLAGS_FOR_C). + +2018-03-06 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (convert_with_check): Fix typo in the condition + guarding the overflow check emitted for the upper bound of a floating- + point conversion. + +2018-03-06 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/utils.c (def_builtin_1): Bail out on error_mark_node. + +2018-02-28 Eric Botcazou <ebotcazou@adacore.com> + + * libgnat/i-cexten.ads (Float_128): New type. + +2018-02-02 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (array_type_has_nonaliased_component): Return + false if the component type is a pointer. + +2018-01-11 Gary Dismukes <dismukes@adacore.com> + + * exp_ch3.adb (Default_Initialize_Object): Call New_Copy_Tree on the + result of Get_Simple_Init_Value and pass the source location of the + object declaration's object_definition. + +2018-01-11 Ed Schonberg <schonberg@adacore.com> + + * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Handle + properly object declarations with initializations that are + build-in-place function calls, when there is an address specification, + either as an aspect specification or an explicit attribute + specification clause, for the initialized object. + * freeze.adb (Check_Address_Clause): Do not remove side-effects from + initial expressions in the case of a build-in-place call. + +2018-01-11 Piotr Trojanek <trojanek@adacore.com> + + * sem_eval.adb (Is_Null_Range): Retrieve the full view when called on a + private (sub)type; refactor to avoid early return statement. + (Not_Null_Range): Same as above. + +2018-01-11 Hristian Kirtchev <kirtchev@adacore.com> + + * freeze.adb (Freeze_Entity): Ensure that a Ghost type is not + concurrent, nor effectively volatile. + * ghost.adb (Check_Ghost_Type): New routine. + * ghost.ads (Check_Ghost_Type): New routine. + * sem_util.adb (Is_Declaration): Reimplemented. The routine can now + consider specific subsets of declarations. + (Is_Declaration_Other_Than_Renaming): Removed. Its functionality is + replicated by Is_Declaration. + * sem_util.ads (Is_Declaration): New parameter profile. Update the + comment on usage. + (Is_Declaration_Other_Than_Renaming): Removed. + +2018-01-11 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch5.adb (Analyze_Assignment): Assignments to variables that act + as Part_Of consituents of single protected types are illegal when they + take place inside a protected function. + (Diagnose_Non_Variable_Lhs): Use Within_Function to check for an + enclosing function. + (Is_Protected_Part_Of_Constituent): New routine. + (Within_Function): New routine. + +2018-01-11 Arnaud Charlet <charlet@adacore.com> + + Bump copyright notices to 2018. + +2018-01-11 Hristian Kirtchev <kirtchev@adacore.com> + + * binde.adb, par-ch6.adb, par-ch9.adb, sem_ch12.adb, sem_ch13.adb: + Minor reformatting. + +2018-01-11 Justin Squirek <squirek@adacore.com> + + * par-ch6.adb (Scan_Body_Or_Expression_Function): Add additional check + to make sure a given expression function is properly parenthesized. + +2018-01-11 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Check the + categorization of a subprogram body which does not complete a previous + declaration. + +2018-01-11 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch10.adb (Check_Private_Child_Unit): Ensure that the enclosing + scope of package Ada is Standard. + +2018-01-11 Ed Schonberg <schonberg@adacore.com> + + * sem_ch13.adb (Replace_Type_Ref): Handle properly reference to a + subcomponent of the current entity when building the body for a dynamic + predicate function for a record with composite subcomponents. + +2018-01-11 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_aggr.adb (Convert_Aggr_In_Object_Decl): Update the call to + Establish_Transient_Scope. + (Convert_To_Assignments): Update the call to Establish_Transient_Scope. + (Expand_Array_Aggregate): Update the call to Establish_Transient_Scope. + * exp_ch6.adb (Expand_Call_Helper): Update the call to + Establish_Transient_Scope. + (Make_Build_In_Place_Call_In_Object_Declaration): Update the call to + Establish_Transient_Scope. + * exp_ch7.adb (Establish_Transient_Scope): Restructured. Delegate the + management of the secondary stack to an enclosing scope if there is no + suitable construct to wrap, and the transient scope was intended to + manage the secondary stack. + (Find_Node_To_Be_Wrapped): Restructured. A case_statement_alternative + is a valid boundary for a transient expression which comes from the + statements of the alternative, otherwise alternatives cannot be + wrapped. Assignments of controlled objects which have controlled + actions suppressed now stop the traversal as there is no point in + looking for an enclosing construct. Add several N_xxx_Body choices to + the termination conditions for completeness. + * exp_ch7.ads (Establish_Transient_Scope): Update the parameter profile + and the associated comment on usage. + * exp_smem.adb (Add_Shared_Var_Lock_Procs): Update the call to + Establish_Transient_Scope. + (Add_Write_After): Update the call to Establish_Transient_Scope. + * sem_res.adb (Check_Initialization_Call): Removed. + (Resolve_Actuals): Account for additional cases where finalization + actions are required by utilizing predicate Needs_Finalization rather + than Is_Controlled. + (Resolve_Call): Type initialization procedures can now utilize + transient scopes to manage the secondary stack, thus preventing leaks + during initialization. Remove the previous kludgy algorithm which + attempts to manage the secondary stack at the object creation site. + +2018-01-11 Jerome Lambourg <lambourg@adacore.com> + + * libgnat/g-soliop__qnx.ads: New. + * adaint.c, adaint.h, cstreams.c, s-oscons-tmplt.c, sysdep.c: Update + for QNX. + +2018-01-11 Bob Duff <duff@adacore.com> + + * par-ch9.adb (P_Protected_Operation_Declaration_Opt): Give an error if + a null procedure occurs in a protected definition. + +2018-01-11 Bob Duff <duff@adacore.com> + + * binderr.ads, namet.ads: Minor reformatting. + +2018-01-11 Bob Duff <duff@adacore.com> + + * doc/gnat_ugn/gnat_utility_programs.rst: Improve documentation of + xml2gnat. + +2018-01-11 Bob Duff <duff@adacore.com> + + * binde.adb (Force_Elab_Order): Give an error if there are duplicate + unit names. + +2018-01-11 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Freeze_Expr_Types): If an access value is the + controlling argument of a dispatching call. freeze the corresponding + designated type. + +2018-01-11 Ben Brosgol <brosgol@adacore.com> + + * doc/Makefile: Add Sphinx option -W to treat warnings as errors. + +2018-01-11 Ben Brosgol <brosgol@adacore.com> + + * doc/gnat_rm/implementation_defined_aspects.rst: Minor type/wording + corrections. + * gnat_rm.texi: Regenerate. + +2018-01-11 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb (Check_Fixed_Point_Type): Do not apply check if the + formsl type corresponding to the actual fixed point type is private, + because in this case there can be no suspicious arithmetic operations + in the generic unless they reference a formal subprogram. Clarify + warning. + +2018-01-11 Javier Miranda <miranda@adacore.com> + + * exp_util.adb (Remove_Side_Effects): No action done for functions + returning class-wide types since it requires generating code using + 'reference and the CCG target has no secondary stack. + * gnat1drv.adb: Disable building static dispatch tables when generating + C code. + +2018-01-11 Piotr Trojanek <trojanek@adacore.com> + + * libgnat/a-direio.ads, libgnat/a-sequio.ads, libgnat/a-ststio.ads, + libgnat/a-textio.ads, libgnat/a-witeio.ads, libgnat/a-ztexio.ads + (File_Type): Add Default_Initial_Condition aspect. + +2018-01-11 Pascal Obry <obry@adacore.com> + + * libgnat/s-os_lib.adb (Normalize_Pathname): New implementation. + +2018-01-11 Bob Duff <duff@adacore.com> + + * doc/gnat_ugn/gnat_utility_programs.rst: Rewrite gnatpp documentation + to match what the Libadalang-based version does. + * doc/gnat_ugn/about_this_guide.rst: Update reference. + +2018-01-11 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_res.adb (Uses_SS): A controlled type requires the secondary stack + if it contains at least one component declaration employing a function + call returning on the secondary stack. + +2018-01-11 Yannick Moy <moy@adacore.com> + + * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst: + Update description of restriction SPARK_05 with SPARK 2014. + * gnat_rm.texi: Regenerate. + +2018-01-11 Vasiliy Fofanov <fofanov@adacore.com> + + * doc/gnat_ugn/gnat_utility_programs.rst: Fix layout. + +2018-01-11 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_aggr.adb, exp_ch9.adb, exp_util.adb, sem_aggr.adb, sem_ch3.adb, + sem_res.adb, sem_util.adb: Minor reformatting. + +2018-01-11 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb (Analyze_Pragma, case Predicate): Indicate that the type + has a delayed aspect which must be processed at the point the type is + frozen. This mimics what is done when the predicate is provided by a + source aspect. + +2018-01-11 Doug Rupp <rupp@adacore.com> + + * init.c (vxworks): Add macro checks for __aarch64__. + +2018-01-11 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_util.adb (Add_Failure_Expression): New routine. + (Make_Predicate_Check): Reimplement the handling of Predicate_Failure. + * sem_util.adb (Is_Current_Instance): Code cleanup. + +2018-01-11 Patrick Bernardi <bernardi@adacore.com> + + * libgnat/s-parame*.adb, libgnat/s-parame*.ads: Remove unneeded + Default_Sec_Stack_Size. + * libgnat/s-secsta.adb (SS_Allocate): Handle the fixed secondary stack + limit check so that the integer index does not overflow. Check the + dynamic stack allocation does not cause the secondary stack pointer to + overflow. + (SS_Info): Align colons. + (SS_Init): Cover the case when bootstraping with an old compiler that + does not set Default_SS_Size. + +2018-01-11 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Add_Internal_Interface_Entities): When checking the + legality of an inherited operation that may require overriding, ignore + primitive_wrappers that correspond to explicit operations that override + an interface primitive. + * exp_util.adb (Build_Class_Wide_Expression, Replace_Entity): If the + operation to which the class-wide expression applies is a protected op. + with a primitive_wrapper, verify that the updated inherited expression + does not contain an internal call to a protected function. This + completes the implementation of AI12-0166. + +2018-01-11 Hristian Kirtchev <kirtchev@adacore.com> + + * ali.adb: Document the remaining letters available for ALI lines. + (Scan_ALI): A with clause is internal when it is encoded on a 'Z' line. + * ali.ads: Update type With_Record. Field + Implicit_With_From_Instantiation is no longer in use. Add field + Implicit_With. + * csinfo.adb (CSinfo): Remove the setup for attribute + Implicit_With_From_Instantiation. + * lib-writ.adb (Collect_Withs): Correct the logic which marks a unit as + either implicitly or explicitly withed. + (Is_Implicit_With_Clause): New routine. + (Write_ALI): Rename array Implicit_With to Has_Implicit_With to avoid + confusion with the with clause attribute by the same name. + (Write_With_Lines): Update the emission of 'W', 'Y', and 'Z' headers. + * rtsfind.adb (Maybe_Add_With): Code cleanup. + * sem_ch8.adb (Present_System_Aux): Code cleanup. + * sem_ch10.adb (Expand_With_Clause): Mark the with clause as generated + for a parent unit. + (Implicit_With_On_Parent): Mark the with clause as generated for a + parent unit. + * sem_ch12.adb (Inherit_Context): With clauses inherited by an + instantiation are no longer marked as Implicit_With_From_Instantiation + because they are already marked as implicit. + * sem_elab.adb (Ensure_Prior_Elaboration_Static): Remove the kludge + which marks implicit with clauses as related to an instantiation. + * sinfo.adb (Implicit_With_From_Instantiation): Removed. + (Parent_With): New routine. + (Set_Implicit_With_From_Instantiation): Removed. + (Set_Parent_With): New routine. + * sinfo.ads: Update the documentation of attribute Implicit_With. + Remove attribute Implicit_With_From_Instantiation along with + occurrences in nodes. Add attribute Parent_With along with occurrences + in nodes. + (Implicit_With_From_Instantiation): Removed along with pragma Inline. + (Parent_With): New routine along with pragma Inline. + (Set_Implicit_With_From_Instantiation): Removed along with pragma Inline. + (Set_Parent_With): New routine along with pragma Inline. + +2018-01-11 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_util.adb (Find_Enclosing_Scope): Return the unique defining + entity when the enclosing construct is a body. + +2018-01-11 Patrick Bernardi <bernardi@adacore.com> + + * exp_ch9.adb (Expand_N_Task_Type_Declaration): Simplified + Secondary_Stack_Size handling as a pragma is now generated for the + corresponding aspect instead of an attribute. Pragma expression is + relocated instead of evaluated. Discriminant of the corresponding + record type is referenced rather than the type discriminant. + (Create_Secondary_Stack_For_Task, Make_Task_Create_Call): Update + Secondary_Stack_Size rep item checks to only look for the pragma rep. + * sem_ch13.adb (Analyze_One_Aspect): Transform + Aspect_Secondary_Stack_Size into a pragma instead of an attribute + because the attribute does not have visibility on a task type's + discriminants when the type's definition is expanded. + (Analyze_Attribute_Definition_Clause): Remove handling of + Attribute_Secondary_Stack_Size. + * snames.adb-tmpl, snames.ads-tmpl: Remove + Attribute_Secondary_Stack_Size, no longer used. + +2018-01-11 Justin Squirek <squirek@adacore.com> + + * sem_ch8.adb: Minor comment fix. + +2018-01-11 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch4.adb (Process_Action): Do not abandon the inspection of an + individual action because the action may denote a complex expression, + such as a case statement, which in turn may contain additional + transient objects. + +2018-01-11 Ed Schonberg <schonberg@adacore.com> + + * sem_aggr.adb (Resolve_Iterated_Component_Association): Perform + analysis on a copy of the expression with a copy of the index variable, + because full expansion will rewrite construct into a loop with the + original loop variable. + * exp_aggr.adb (Gen_Assign): Defer analysis and resolution if the + expression is an iterated component association. Full analysis takes + place when construct is rewritten as a loop. + (In_Place_Assign_OK, Safe_Component): An iterated_component_association + is not safe for in-place assignment. + * sem_util.adb (Remove_Entity): Handle properly the case of an isolated + entity with no homonym and no other entity in the scope. + +2018-01-11 Justin Squirek <squirek@adacore.com> + + * sem_prag.adb (Analyze_Pragma:Pragma_Loop_Variant): Modify error + message to be printed on the pragma argument identifier. + +2018-01-11 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_util.adb (Build_Invariant_Procedure_Declaration): Set the last + entity of the generated invariant procedure in order to construct a + proper entity chain. + +2018-01-11 Piotr Trojanek <trojanek@adacore.com> + + * sem_ch13.adb (Build_Predicate_Functions): Fix minor issues in + comment. + +2018-01-11 Arnaud Charlet <charlet@adacore.com> + + * einfo.ads, einfo.adb (Activation_Record_Component, + Set_Activation_Record_Component, Set_Is_Uplevel_Referenced_Entity): + Allow E_Discriminant. + +2018-01-10 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_component_type): Apply the check + for atomic access once the component size is taken into account and + also do it if the component type is Atomic or Volatile_Full_Access. + +2018-01-04 Eric Botcazou <ebotcazou@adacore.com> + + * gnatvsn.ads: Bump copyright year. + +2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> Alan Hayward <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> - * gcc-interface/decl.c (validate_size): Update use of - GET_MODE_WIDER_MODE, forcing a wider mode to exist. - -2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> - Alan Hayward <alan.hayward@arm.com> - David Sherwood <david.sherwood@arm.com> - - * gcc-interface/misc.c (fp_prec_to_size): Use new mode iterators. - (fp_size_to_prec): Likewise. - -2017-08-29 Martin Liska <mliska@suse.cz> - - PR other/39851 - * gcc-interface/trans.c (Pragma_to_gnu): Set argument to NULL. - -2017-08-08 Martin Liska <mliska@suse.cz> - - * gcc-interface/trans.c: Include header files. - -2017-07-29 Jakub Jelinek <jakub@redhat.com> - - * gcc-interface/utils.c (gnat_write_global_declarations): Pass false - as new argument to the imported_module_or_decl debug hook. - -2017-07-25 Javier Miranda <miranda@adacore.com> - - * checks.adb (Apply_Divide_Checks): Ensure that operands are not - evaluated twice. - -2017-07-19 Jakub Jelinek <jakub@redhat.com> - - * gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE, - TYPE_GCC_MIN_VALUE): Use TYPE_MIN_VALUE_RAW instead of TYPE_MINVAL. - (TYPE_GCC_MAX_VALUE): Use TYPE_MAX_VALUE_RAW instead of TYPE_MAXVAL. - -2017-07-18 Mike Frysinger <vapier@chromium.org> - - * gcc-interface/Makefile.in (../../gnatmake$(exeext)): Delete $(P). - (../../gnatlink$(exeext)): Likewise. - -2017-07-15 John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> - - PR ada/81446 - * system-linux-m68k.ads: Add pragma No_Elaboration_Code_All. - (Backend_Overflow_Checks): Set to True. - -2017-06-23 Jakub Jelinek <jakub@redhat.com> - - * gcc-interface/trans.c (gnat_to_gnu): Initialize sync to false. - -2017-06-21 Pierre-Marie de Rodat <derodat@adacore.com> - - * gcc-interface/ada-tree.h (DECL_FUNCTION_IS_DEF): Update copyright - notice. New macro. - * gcc-interface/trans.c (Subprogram_Body_to_gnu): Tag the subprogram - as a definition. - (Compilation_Unit_to_gnu): Tag the elaboration procedure as a - definition. - * gcc-interface/decl.c (gnat_to_gnu_entity): Tag declarations of - imported subprograms for the current compilation unit as - definitions. Disable debug info for references to variables. - * gcc-interface/gigi.h (create_subprog_decl): Update declaration. - * gcc-interface/utils.c (gnat_pushdecl): Add external DECLs that are - not built-in functions to their binding scope. - (create_subprog_decl): Add a DEFINITION parameter. If it is true, tag - the function as a definition. Update all callers. - (gnat_write_global_declarations): Emit debug info for imported - functions. Filter out external variables for which debug info - is disabled. - -2017-06-15 Nicolas Boulenguez <nicolas.boulenguez@free.fr> - - PR ada/81105 - * gcc-interface/Makefile.in (x86 kfreebsd): Adjust system.ads setting. - (i[3456]86-pc-gnu): Likewise. - (x86_64 kfreebsd): Likewise. - -2017-06-12 Eric Botcazou <ebotcazou@adacore.com> - - PR bootstrap/80897 - * exp_ch3.adb (Make_Predefined_Primitive_Specs): Use Positive index. - -2017-06-12 Eric Botcazou <ebotcazou@adacore.com> - - PR ada/81070 - * s-interr-hwint.adb: Reinstate. - * gcc-interface/Makefile.in (RTEMS): Use it again. - -2017-06-08 Olivier Hainque <hainque@adacore.com> - - * vx_crtbegin_auto.c: Update year in copyright notice. - * vx_crtbegin.c: Likewise. - * vx_crtbegin.inc: Likewise. - * vx_crtend.c: Likewise. - -2017-06-07 Sebastian Huber <sebastian.huber@embedded-brains.de> - - * Makefile.in (rtems): Use TLS implementation for s-tpopsp.adb. - * s-tpopsp-rtems.adb: Delete. - -2017-06-02 Olivier Hainque <hainque@adacore.com> - - * vx_crtbegin_auto.c: New file. - * vx_crtbegin.c: New file. - * vx_crtbegin.inc: New file. - * vx_crtend.c: New file. - -2017-05-25 Jonathan Wakely <jwakely@redhat.com> - - * gcc-interface/utils2.c (compare_elmt_bitpos): Remove redundant - const qualifiers that cause -Wignored-qualifiers warnings. - -2017-05-22 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (gnat_to_gnu_entity): Skip regular processing - for Itypes that are E_Access_Subtype. - <E_Access_Subtype>: Use the DECL of the base type directly. - -2017-05-22 Ed Schonberg <schonberg@adacore.com> - Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch4.adb (Analyze_Call): In Ada2012 an incomplete type from a - limited view may appear in the profile of a function, and a call to - that function in another unit in which the full view is available must - use this full view to spurious type errors at the point of call. - * inline.adb (Analyze_Inlined_Bodies): Remove restriction on loading - of parent body with a with clause for the main unit. - * gcc-interface/decl.c (defer_limited_with_list): Document new usage. - (gnat_to_gnu_entity) <E_Access_Type>: Handle completed Taft Amendment - types declared in external units like types from limited with clauses. - Adjust final processing of defer_limited_with_list accordingly. - * gcc-interface/trans.c (gnat_to_gnu) < N_Selected_Component>: Try - again to translate the prefix after the field if it is incomplete. - -2017-05-22 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (gnat_to_gnu_field): Do not enforce strict - alignment for simple volatile fields and remove associated errors. - -2017-05-15 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/gigi.h (get_elaboration_procedure): Delete. - * gcc-interface/trans.c (get_elaboration_procedure): Make static. - -2017-05-15 Pierre-Marie de Rodat <derodat@adacore.com> - - * gcc-interface/utils.c (can_materialize_object_renaming_p): - Synchronize with GNAT's Exp_Dbug.Debug_Renaming_Declaration: - process Original_Node instead of expanded names. - -2017-05-15 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.c (return_value_ok_for_nrv_p): Only apply the - addressability check in the constrained case. - -2017-05-15 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.c (Identifier_to_gnu): Also accept incomplete - types not coming from a limited context. - -2017-05-15 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.c (Compilation_Unit_to_gnu): Skip subprograms on - the inlined list that are not public. - * gcc-interface/utils.c (create_subprog_decl): Clear TREE_PUBLIC if - there is a pragma Inline_Always on the subprogram. - -2017-05-15 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.c (gnat_to_gnu) <N_Aggregate>: Fix formatting. - <N_Allocator>: Use properly typed constants. - (extract_values): Move around. - (pos_to_constructor): Minor tweaks. - (Sloc_to_locus): Fix formatting. - * gcc-interface/utils.c (process_deferred_decl_context): Minor tweaks. - * gcc-interface/gigi.h (MARK_VISITED): Remove blank line. - (Gigi_Equivalent_Type): Adjust head comment. - * gcc-interface/decl.c (Gigi_Equivalent_Type): Likewise. - -2017-05-15 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: When there - is a representation clause on an extension, propagate the alignment of - the parent type only if the platform requires strict alignment. - -2017-05-12 Eric Botcazou <ebotcazou@adacore.com> - - * system-linux-arm.ads (Memory_Size): Use Long_Integer'Size - instead of Word_Size. - - Revert - 2017-03-28 Andreas Schwab <schwab@suse.de> - - PR ada/80117 - * system-linux-aarch64-ilp32.ads: New file. - * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS_COMMON): Rename - from LIBGNAT_TARGET_PAIRS. - (LIBGNAT_TARGET_PAIRS_32, LIBGNAT_TARGET_PAIRS_64): Define. - (LIBGNAT_TARGET_PAIRS): Use LIBGNAT_TARGET_PAIRS_COMMON, and - LIBGNAT_TARGET_PAIRS_64 or LIBGNAT_TARGET_PAIRS_32 for -mabi=lp64 - or -mabi=ilp32, resp. - -2017-05-10 H.J. Lu <hongjiu.lu@intel.com> - - PR ada/80626 - * system-linux-x86.ads (Memory_Size): Use Long_Integer'Size - instead of Word_Size. - -2017-05-10 Bernd Edlinger <bernd.edlinger@hotmail.de> - - * raise-gcc.c (exception_class_eq): Make ec parameter const. - -2017-05-02 Richard Biener <rguenther@suse.de> - - * gcc-interface/misc.c (gnat_post_options): Do not set - -fstrict-overflow. - -2017-05-02 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.c (assoc_to_constructor): Make sure - Corresponding_Discriminant is only called on discriminants. - Skip the saving of the result only for them. - (gnat_to_gnu) <N_Selected_Component>: Likewise. - <N_Unchecked_Type_Conversion>: Translate the result type first. - (gigi): Set TREE_NOTHROW on Begin_Handler. - (stmt_list_cannot_raise_p): New predicate. - (Exception_Handler_to_gnu_gcc): Emit a simple final call instead of - a cleanup if the statements of the handler cannot raise. - (process_freeze_entity): Use Is_Record_Type. - (process_type): Likewise. - -2017-05-02 Eric Botcazou <ebotcazou@adacore.com> - - * einfo.ads (Corresponding_Record_Component): New alias - for Node21 used for E_Component and E_Discriminant. - * einfo.adb (Corresponding_Record_Component): New function. - (Set_Corresponding_Record_Component): New procedure. - (Write_Field21_Name): Handle Corresponding_Record_Component. - * sem_ch3.adb (Inherit_Component): Set - Corresponding_Record_Component for every component in - the untagged case. Clear it afterwards for non-girder - discriminants. - * gcc-interface/decl.c (gnat_to_gnu_entity) - <E_Record_Type>: For a derived untagged type with discriminants - and constraints, apply the constraints to the layout of the - parent type to deduce the layout. - (field_is_aliased): Delete. - (components_to_record): Test DECL_ALIASED_P directly. - (annotate_rep): Check that fields are present except for - an extension. - (create_field_decl_from): Add DEBUG_INFO_P - parameter and pass it in recursive and other calls. Add guard - for the manual CSE on the size. - (is_stored_discriminant): New predicate. - (copy_and_substitute_in_layout): Consider only - stored discriminants and check that original fields are present - in the old type. Deal with derived types. Adjust call to - create_variant_part_from. - -2017-05-02 Ed Schonberg <schonberg@adacore.com> - - * exp_ch6.adb (Expand_Call_Helper): When locating the - accessibility entity created for an access parameter, handle - properly a reference to a formal of an enclosing subprogram. if - the reference appears in an inherited class-wide condition, it - is the rewriting of the reference in the ancestor expression, - but the accessibility entity must be that of the current formal. - -2017-05-02 Javier Miranda <miranda@adacore.com> - - * exp_ch4.adb (Expand_Non_Binary_Modular_Op): New subprogram. - (Expand_N_Op_Add, Expand_N_Op_Divide, Expand_N_Op_Minus, - Expand_N_Op_Multiply, Expand_N_Op_Or, Expand_N_Op_Subtract): - Call Expand_Non_Binary_Modular_Op. - -2017-05-02 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch3.adb (Build_Derived_Private_Type): If the parent type - has discriminants, do not override the Stored_Constraint list of - the full view of the derived type with that of the derived type. - -2017-05-02 Bob Duff <duff@adacore.com> - - * sem_attr.adb (Attribute_Enum_Rep): Disallow T'Enum_Rep. - -2017-05-02 Vasiliy Fofanov <fofanov@adacore.com> - - * s-os_lib.ads: Minor typo fix. - -2017-05-02 Vasiliy Fofanov <fofanov@adacore.com> - - * gnatls.adb: Merge and refactor code from Prj.Env and remove - this deprecated dependency. - -2017-05-02 Ed Schonberg <schonberg@adacore.com> - - * exp_util.ads: minor comment addition. - -2017-05-02 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch3.adb (Build_Derived_Record_Type): Fix a few typos and - pastos in part #3 of the head comment. - -2017-05-02 Ed Schonberg <schonberg@adacore.com> - - * exp_ch3.adb (Freeze_Type): Do not generate an invariant - procedure body for a local (sub)type declaration within a - predicate function. Invariant checks do not apply to these, and - the expansion of the procedure will happen in the wrong scope, - leading to misplaced freeze nodes. - -2017-05-02 Ed Schonberg <schonberg@adacore.com> - - * exp_util.adb (Insert_Library_Level_Action): Use proper scope - to analyze generated actions. If the main unit is a body, - the required scope is that of the corresponding unit declaration. - -2017-05-02 Arnaud Charlet <charlet@adacore.com> - - * einfo.adb (Declaration_Node): flip branches of - an IF statement to avoid repeated negations in its condition; - no change in semantics, only to improve readability. - -2017-05-02 Arnaud Charlet <charlet@adacore.com> - - * sem_case.adb: Remove extra spaces in parameter declarations. - -2017-05-02 Justin Squirek <squirek@adacore.com> - - * usage.adb: Replace space with hyphen ("run time" -> "run-time") - in usage line for new -gnatwE switch. - -2017-05-02 Claire Dross <dross@adacore.com> - - * a-cofuve.ads (Remove): Remove unnecessary - conditions in precondition. - -2017-05-02 Vasiliy Fofanov <fofanov@adacore.com> - - * a-stream.ads, exp_imgv.adb, sem_ch10.adb, - sem_attr.adb, s-finmas.ads, osint.adb: Minor typo fix. - -2017-05-02 Justin Squirek <squirek@adacore.com> - - * sem_ch4.adb (Analyze_Case_Expression): Add check for valid - alternative expression. - * sem_res.adb (Resolve_Case_Expression): Ditto. - -2017-05-02 Ed Schonberg <schonberg@adacore.com> - - * exp_disp.adb (Set_All_DT_Position, In_Predef_Prim_DT): - Refine predicate for the case where the primitive operation - is a renaming of equality. An overriding operation that is - a user-defined renaming of predefined equality inherits its - slot from the overridden operation. Otherwise it is treated - as a predefined op and occupies the same predefined slot as - equality. A call to it is transformed into a call to its alias, - which is the predefined equality. A dispatching call thus uses - the proper slot if operation is further inherited and called - with class-wide arguments. - -2017-05-02 Justin Squirek <squirek@adacore.com> - - * errout.adb (Set_Msg_Text): Add a case to switch the message - type when the character '[' is detected signifying a warning - about a run-time exception. - * opt.ads Add a new Warning_Mode value for new switch - * switch-b.adb (Scan_Binder_Switches): Add case for the binder - to handle new warning mode - * usage.adb (Usage): Add usage entry for -gnatwE - * warnsw.adb (Set_Warning_Switch): Add case for the new switch - -2017-05-02 Ed Schonberg <schonberg@adacore.com> - - * sem_prag.adb (Process_Conversion): Reject an intrinsic operator - declaration that operates on some fixed point type. - -2017-05-02 Justin Squirek <squirek@adacore.com> - - * a-crbtgo.adb, s-taasde.adb: Remove unused use-type clauses. - -2017-05-02 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch6.adb (Analyze_Null_Procedure): Revert previous change. - -2017-05-02 Justin Squirek <squirek@adacore.com> - - * sem_ch4.adb (Analyze_Case_Expression): Add check for valid - expression (Analyze_If_Expression): Add check for valid condition - * sem_eval.adb (Eval_Case_Expression): Add check for error posted - on case-expression - * sem_res.adb (Resolve_If_Expression): Add check for valid - condition and then-expression. - -2017-05-02 Ed Schonberg <schonberg@adacore.com> - - * exp_ch3.adb (Build_Initialization_Call): Generate a null - statement if the initialization call is a null procedure, as - can happen with a controlled type with no explicit Initialize - procedure, or an array of such. - * exp_ch7.adb (Process_Object_Declaration): For a type with - controlled components that has a trivial Initialize procedure, - insert declaration for finalization counter after object - declaration itself. - (Make_Deep_Array_Body, Build_Initialize_statements): Do not create - finalization block and attendant declarations if component has - a trivial Initialize procedure. - (Make_Init_Call): Do not generate a call if controlled type has - a trivial Initialize procedure. - -2017-05-02 Eric Botcazou <ebotcazou@adacore.com> - - * g-forstr.ads (Data): Move Format component last. - * g-forstr.adb ("+"): Adjust for above change. - * g-rewdat.ads (Buffer): Move Buffer, Current, Pattern and Value last. - * g-sechas.ads (Context): Move Key last. - * g-socket.ads (Service_Entry_Type): Move Aliases last. - * s-fileio.adb (Temp_File_Record): Move Name last. - * s-regexp.adb (Regexp_Value): Move Case_Sensitive last. - * xr_tabls.ads (Project_File): Move Src_Dir and Obj_Dir last. - -2017-05-02 Jerome Lambourg <lambourg@adacore.com> - - * bindusg.adb, bindgen.adb, gnatbind.adb, opt.ads: Remove the -nognarl - switch introduced recently. finally not needed. - -2017-05-02 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch6.adb (Analyze_Null_Procedure): Set the - Corresponding_Body link for a null procedure declaration. - -2017-05-02 Eric Botcazou <ebotcazou@adacore.com> - - * atree.h (Flag290): Add missing terminating parenthesis. - * einfo.adb (Is_Class_Wide_Clone): Use Flag290. - (Set_Is_Class_Wide_Clone): Likewise. - * einfo.ads (Is_Class_Wide_Clone): Likewise. - -2017-05-02 Gary Dismukes <dismukes@adacore.com> - - * checks.ads (Null_Exclusion_Static_Checks): Add Boolean - parameter Array_Comp to indicate the case of an array object - with null-excluding components. - * checks.adb (Null_Exclusion_Static_Checks): - Call Compile_Time_Constraint_Error instead of - Apply_Compile_Time_Constraint_Error in the component case. Also - call that when Array_Comp is True, with an appropriate warning for - the array component case. Only create an explicit initialization - by null in the case of an object of a null-excluding access type - (and no longer do that in the component case). - * sem_ch3.adb (Check_Component): Add a Boolean parameter - Array_Comp defaulted to False. Pass Empty for the Comp - actual when calling Null_Exclusion_Static_Checks in the case - where Comp_Decl matches Object_Decl, because we don't have a - component in that case. In the case of an object or component - of an array type, pass True for Array_Comp on the recursive call - to Check_Component. - -2017-05-02 Bob Duff <duff@adacore.com> - - * s-taprop-linux.adb (Prio_To_Linux_Prio): New function to correctly - compute the linux priority from the Ada priority. Call this everywhere - required. In particular, the previous version was not doing this - computation when setting the ceiling priority in various places. It - was just converting to C.int, which results in a ceiling that is off - by 1. - -2017-05-02 Ed Schonberg <schonberg@adacore.com> - - * sem_ch3.adb: Comment predicate inheritance. - -2017-05-02 Tristan Gingold <gingold@adacore.com> - - * s-trasym.ads: Add comment. - -2017-05-02 Bob Duff <duff@adacore.com> - - * sem_elab.adb, sem_elab.ads: Minor comment fixes. - * sem_ch4.adb: Minor reformatting. - * s-taprop-linux.adb, s-taspri-posix.ads: Code refactoring. - * s-taspri-posix-noaltstack.ads: Minor refactoring. - * sinput.ads: Minor typo fix. - -2017-05-02 Ed Schonberg <schonberg@adacore.com> - - * exp_ch9.adb (Discriminated_Size): Moved to sem_util. - * sem_util.ads, sem_util.adb (Discriminated_Size): Predicate moved - here from exp_ch9, to recognize objects whose creation requires - dynamic allocation, so that the proper warning can be emitted - when restriction No_Implicit_Heap_Allocation is in effect. - * sem_ch3.adb (Analyze_Object_Declaration): Use Discriminated_Size - to emit proper warning when an object that requires dynamic - allocation is declared. - -2017-05-02 Tristan Gingold <gingold@adacore.com> - - * s-trasym.ads, s-trasym.adb (Enable_Cache): New. - -2017-05-02 Ed Schonberg <schonberg@adacore.com> - - * sem_ch4.adb (Find_Equality_Types, Try_One_Interp): The same relaxed - visibility rules for equality operators that apply within an - instantiation apply within an inlined body. - * sem_type.adb (Add_One_Interp): ditto. - -2017-05-02 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_prag.adb (Analyze_Pragma): Forbid pragma Contract_Cases on null - procedures. - -2017-05-02 Eric Botcazou <ebotcazou@adacore.com> - - * snames.ads-tmpl - (Name_Assume, Name_Attribute_Definition, Name_Loop_Optimize, - Name_No_Tagged_Streams): Move to regular pragmas. Add - placeholders for Default_Scalar_Storage_Order, Dispatching_Domain, - and Secondary_Stack_Size. - (Pragma_Id): Move Pragma_Assume, - Pragma_Attribute_Definition, Pragma_Loop_Optimize and - Pragma_No_Tagged_Streams to second part. - -2017-05-02 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_attr.adb: Minor reformatting. - -2017-05-02 Ed Schonberg <schonberg@adacore.com> - - * sem_ch4.adb (Analyze_Selected_Component): Improve error - detection for illegal references to private components or - operations of a protected type in the body of the type. - -2017-05-02 Eric Botcazou <ebotcazou@adacore.com> - - * opt.ads: Add missing GNAT markers in comments. - * opt.adb (Set_Opt_Config_Switches): Do not override earlier - settings of Optimize_Alignment at the end. - -2017-05-02 Hristian Kirtchev <kirtchev@adacore.com> - - * checks.adb (Apply_Constraint_Check): Do not apply - a discriminant check when the associated type is a constrained - subtype created for an unconstrained nominal type. - * exp_attr.adb: Minor reformatting. - -2017-05-02 Bob Duff <duff@adacore.com> - - * sem_ch3.adb (OK_For_Limited_Init_In_05): Handle correctly - the N_Raise_Expression case. - * sem_ch6.adb (Check_Limited_Return): Minor: clarify comment, - and add assertions. - -2017-05-02 Yannick Moy <moy@adacore.com> - - * exp_ch4.adb (Expand_N_Op_Ne): Do not bump parenthese level and - optimize length comparison in GNATprove mode. - * exp_spark.adb (Expand_SPARK_Op_Ne): New function to rewrite - operator /= into negation of operator = when needed. - (Expand_SPARK): Call new - function to expand operator /=. - -2017-05-02 Ed Schonberg <schonberg@adacore.com> - - * exp_fixd.adb (Expand_Divide_Fixed_By_Fixed_Giving_Fixed): - Simplify the expression for a fixed-fixed division to remove - divisions by constants whenever possible, as an optimization - for restricted targets. - -2017-05-02 Hristian Kirtchev <kirtchev@adacore.com> - - * checks.adb, sem_ch3.adb, sem_ch6.adb: Minor reformatting. - -2017-05-02 Bob Duff <duff@adacore.com> - - * exp_attr.adb (Callable, Identity, Terminated): Use Find_Prim_Op - to find primitive ops, instead of using an Identifier that will - later be looked up. This is necessary because these ops are not - necessarily visible at all places where we need to call them. - * exp_util.ads: Minor comment fix. - -2017-05-02 Ed Schonberg <schonberg@adacore.com> - - * sem_ch6.adb (Fully_Conformant_Expressions): Two entity - references are fully conformant if they are both expansions - of the discriminant of a protected type, within one of the - protected operations. One occurrence may be expanded into a - constant declaration while the other is an input parameter to - the corresponding generated subprogram. - -2017-05-02 Justin Squirek <squirek@adacore.com> - - * sem_ch3.adb (Check_For_Null_Excluding_Components): Created for - recursivly searching composite-types for null-excluding access - types and verifying them. - (Analyze_Object_Declaration): Add a - call to Check_Null_Excluding_Components for static verification - of non-initialized objects. - * checks.adb, checks.ads (Null_Exclusion_Static_Checks): Added - a parameter for a composite-type's component and an extra case - for printing component information. - -2017-05-02 Yannick Moy <moy@adacore.com> - - * sem_ch10.adb (Analyze_Subunit): Take - configuration pragma into account when restoring appropriate - pragma for analysis of subunit. - -2017-05-02 Justin Squirek <squirek@adacore.com> - - * s-tasren.adb, s-tasini.adb, s-taprop-linux.adb, - s-mudido-affinity.adb,, a-exetim-posix.adb, a-direio.adb, - g-socket.adb, s-taenca.adb, s-fileio.adb: Remove unused use-type - clauses from the runtime. - -2017-05-02 Eric Botcazou <ebotcazou@adacore.com> - - * freeze.adb (Check_Component_Storage_Order): Do not treat bit-packed - array components specially. - -2017-05-02 Ed Schonberg <schonberg@adacore.com> - - * sem_ch8.adb (Premature_Usage): If the premature usage of - an entity is as the expression in its own object decaration, - rewrite the reference as Any_Id to prevent cascaded errors or - compiler loops when such an entity is used in an address clause. - -2017-05-01 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (components_to_record): Add missing guard. - -2017-05-01 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (components_to_record): Add more comments. - Put back pending fields onto the regular list if the misalignment - happens to cancel itself. - -2017-04-28 Ed Schonberg <schonberg@adacore.com> - - * sem_ch4.adb (Complete_Object_Operation): When rewriting the - controlling actual in a prefixed call, preserve the original node - information if the prefix itself has been rewritten, for ASIS use. - -2017-04-28 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch6.adb (Insert_Post_Call_Actions): - Code clean up. Insert the post-call actions after an enclosing - procedure call when N denotes a function call and appears as an - actual parameter in the procedure call. - -2017-04-28 Eric Botcazou <ebotcazou@adacore.com> - - * freeze.adb (Check_Component_Storage_Order): If there is a clause - for the component, also reject the attribute if the component - doesn't end on a byte boundary and its scalar storage order is - different from that of the enclosing record type. - -2017-04-28 Javier Miranda <miranda@adacore.com> - - * atree.ads (Info_Messages): Removed. - (Warning_Info_Messages): New counter. - (Report_Info_Messages): New counter. - * err_vars.ads Update documentation. - * errout.adb (Delete_Warning_And_Continuations): Update - Info_Message occurrences. - (Error_Msg_Internal): Update Info_Message occurrences. - (Delete_Warning): Update Info_Message occurrences. - (Write_Error_Summary): Update Info_Message occurrences. - (Output_Messages): Update Info_Message occurrences. - (To_Be_Removed): Update Info_Message occurrences. - (Reset_Warnings): Update Info_Message occurrences. - * errutil.adb (Error_Msg): Update Info_Message occurrences. - (Finalize): Update Info_Message occurrences. - (Initialize): Update Info_Message occurrences. - * erroutc.adb (Delete_Msg): Update Info_Message occurrences. - (Compilation_Errors): Update Info_Message_Occurences. - -2017-04-28 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch3.adb (Build_Init_Statements): Likewise on Nam. - * freeze.adb (Check_Component_Storage_Order): And on Comp_Byte_Aligned. - * sem_aggr.adb (Resolve_Record_Aggregate): Initialize Box_Node. - * sem_attr.adb (Loop_Entry): Initialize Encl_Loop. - * sem_ch12.adb (Build_Operator_Wrapper): Add pragma Warnings on Expr. - * sem_ch13.adb (Validate_Address_Clauses): Initialize Y_Alignment and - Y_Size. - * sem_eval.adb (Why_Not_Static): Initialize Typ. - * sem_prag.adb (Analyze_Pragma): Add pragma Warnings on Str. - -2017-04-28 Bob Duff <duff@adacore.com> - - * sem_util.ads, sem_util.adb (Might_Raise): New function - that replaces Is_Exception_Safe, but has the opposite - sense. Is_Exception_Safe was missing various cases -- calls inside - a pragma Debug, calls inside an 'if' or assignment statement, - etc. Might_Raise now walks the entire subtree looking for things - that can raise. - * exp_ch9.adb (Is_Exception_Safe): Remove. - (Build_Protected_Subprogram_Body): Replace call to - Is_Exception_Safe with "not Might_Raise". Misc cleanup (use - constants where possible). - * exp_ch7.adb: Rename Is_Protected_Body --> - Is_Protected_Subp_Body. A protected_body is something different - in the grammar. - -2017-04-28 Eric Botcazou <ebotcazou@adacore.com> - - * inline.adb (Expand_Inlined_Call): Initialize Targ1 variable. - * par-ch3.adb (P_Component_Items): Initialize Decl_Node variable. - (P_Discrete_Choice_List): Initialize Expr_Node variable. - * par-ch9.adb (P_Task): Initialize Aspect_Sloc variable. - (P_Protected): Likewise. - * sem_case.adb (Check_Duplicates): - Add pragma Warnings on variable. - * sem_ch12.adb (Preanalyze_Actuals): Initialize Vis variable. - * sem_ch4.adb (List_Operand_Interps): Add pragma Warnings on variable. - * sem_ch5.adb (Analyze_Assignment): Initialize Save_Full_Analysis. - (Analyze_Exit_Statement): Initialize Scope_Id variable. - (Analyze_Iterator_Specification): Initialize Bas variable. - * sem_ch9.adb (Allows_Lock_Free_Implementation): Initialize - Error_Count (Satisfies_Lock_Free_Requirements): Likewise. - (Analyze_Accept_Statement): Initialize Task_Nam. - -2017-04-28 Hristian Kirtchev <kirtchev@adacore.com> - - * checks.adb (Install_Primitive_Elaboration_Check): - Do not generate an elaboration check if all checks have been - suppressed. - -2017-04-28 Ed Schonberg <schonberg@adacore.com> - - * sem_ch13.adb (Analyze_Aspect_Specifications, case - Interrupt_Handler and Attach_Handler): Generate reference - to protected operation to prevent spurious warnings about - unreferenced entities. Previous scheme failed with style checks - enabled. - -2017-04-28 Ed Schonberg <schonberg@adacore.com> - - * sem_prag.adb (Relocate_Pragmas_To_Body): A pragma Warnings - that follows an expression function must not be relocated to - the generated body, because it applies to the code that follows. - -2017-04-28 Gary Dismukes <dismukes@adacore.com> - - * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): Test - Relaxed_RM_Semantics to avoid having CodePeer issue errors on - code that might violate the more stringent checking for 'Access - introduced in Ada 2005. - -2017-04-28 Arnaud Charlet <charlet@adacore.com> - - * a-cforse.adb: minor style fix in comment. - -2017-04-28 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body): Also - initialize Block_Decls variable. - (Expand_Entry_Barrier): Add pragma Warnings on Func_Body variable. - (Build_Dispatching_Requeue): Add pragma Warnings on Op variable. - * exp_disp.adb (Expand_Interface_Actuals): Initialize - Formal_DDT and Actual_DDT variables. - (Expand_Interface_Thunk): Initialize Iface_Formal. - (Make_DT): Initialize Size_Comp. - (Make_Select_Specific_Data_Table): Initialize Decls. - * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): - Also initialize more RPC_Receiver_* variables. - (Build_To_Any_Function): Initialize Cstr_Formal. - * exp_prag.adb (Expand_Pragma_Contract_Cases): Initialize Msg_Str. - -2017-04-28 Ed Schonberg <schonberg@adacore.com> - - * sem_ch6.adb (Freeze_Type_Refs): For an interface conversion - node between access types, freeze the designated type as well, - so that dispatch table pointers are created in the proper scope, - and not in the constructed body of the expression function. - -2017-04-28 Bob Duff <duff@adacore.com> - - * alloc.ads (Nodes_Initial): Go back to previous value. The large - value makes large compilations faster, but small compilations slower. - -2017-04-28 Arnaud Charlet <charlet@adacore.com> - - * sem_util.adb: minor typos in Is_Child_Or_Sibling. - -2017-04-28 Hristian Kirtchev <kirtchev@adacore.com> - - * erroutc.adb (Compilation_Errors): Do not consider info messages - as suitable warnings when warnings must be treated as errors. - * sem_ch7.adb (Analyze_Package_Specification): Do not consider - internally-generated packages when outputting completion - information. - * errout.adb (Output_Messages): Do not consider info messages as - suitable warnings when warnings must be treated as errors. - * errutil.adb (Finalize): Do not consider info messages as - suitable warnings when warnings must be treated as errors. - -2017-04-28 Eric Botcazou <ebotcazou@adacore.com> - - * warnsw.ads: Minor fix for incorrect wording in comment. - -2017-04-28 Ed Schonberg <schonberg@adacore.com> - - * sem_res.adb (In_Instance_Code): New predicate in - Valid_Conversion, to determine whether a type conversion appears - as (or within) an actual for a formal object. Type conversions - in instances are not rechecked in Valid_Conversion because - visibility changes between generic location andi instance may - lead to spurious errors, but conversions within an actual must be - fully checked, and they are not fully resolved when pre-analyzing - the actuals. - -2017-04-28 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch6.adb (Expand_N_Extended_Return_Statement): Use - New_Copy_Tree instead of Relocate_Node as any subsequent copies - of the relocated node will have mangled Parent pointers. - * sem_util.adb (Build_NCT_Hash_Tables): Reset both hash - tables used in conjunction with entity and itype replication. - (Visit_Entity): Rewrite the restriction on which entities - require duplication. The restriction now includes all types. - -2017-04-28 Hristian Kirtchev <kirtchev@adacore.com> - - * a-cofuse.ads, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfinve.adb, - a-cfinve.ads, a-cforma.adb, a-cforma.ads, a-cofuma.adb, a-cofuma.ads, - a-cfhama.adb, a-cfhama.ads, a-cforse.adb: Minor reformatting and code - cleanups. - -2017-04-28 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_util.adb, g-dyntab.adb, par-ch4.adb, sem_util.adb, sem_attr.adb, - gnat1drv.adb, exp_disp.adb, namet.adb, alloc.ads: Minor reformatting. - -2017-04-28 Gary Dismukes <dismukes@adacore.com> - - * exp_util.adb: Minor reformatting. - -2017-04-28 Ed Schonberg <schonberg@adacore.com> - - * sem_ch4.adb: Fix copy/pasto. - -2017-04-27 Tristan Gingold <gingold@adacore.com> - - * gcc-interface/Make-lang.in: Define EH_MECHANISM while building - raise-gcc.c. Fix include search path for raise-gcc.c - -2017-04-27 Eric Botcazou <ebotcazou@adacore.com> - - * fe.h (Warn_On_Questionable_Layout): Declare. - * warnsw.ads (Warn_On_Record_Holes): Move down. - (Warn_On_Questionable_Layout): New boolean variable. - (Warning_Record): Add Warn_On_Questionable_Layout field. - * warnsw.adb (All_Warnings): Set Warn_On_Questionable_Layout. - (Restore_Warnings): Likewise. - (Save_Warnings): Likewise. - (Set_Dot_Warning_Switch): Handle 'q' and 'Q' letters. - * gcc-interface/decl.c (gnat_to_gnu_entity): Adjust call to - components_to_record. - (gnu_field_to_gnat): New function. - (warn_on_field_placement): Likewise. - (components_to_record): Add GNAT_RECORD_TYPE and remove REORDER - parameters. Rename local variables and adjust recursive call. - Rework final scan of the field list and implement warnings on the - problematic placement of specific sorts of fields. - -2017-04-27 Bob Duff <duff@adacore.com> - - * errout.adb, exp_aggr.adb, exp_attr.adb, exp_code.adb, fname.adb, - * fname.ads, freeze.adb, inline.adb, lib.adb, lib.ads, lib-list.adb, - * lib-load.adb, lib-writ.adb, par.adb, restrict.adb, rtsfind.adb, - * sem.adb, sem_cat.adb, sem_ch10.adb, sem_ch12.adb, sem_ch3.adb, - * sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_ch9.adb, sem_elab.adb, - * sem_intr.adb, sem_res.adb, sem_util.adb, sem_warn.adb, sprint.adb: - For efficiency, cache results of Is_Internal_File_Name and - Is_Predefined_File_Name in the Units table. This avoids a lot - of repeated text processing. - -2017-04-27 Emmanuel Briot <briot@adacore.com> - - * g-comlin.adb (Sort_Sections): remove useless test. - -2017-04-27 Claire Dross <dross@adacore.com> - - * a-cfhase.adb, a-cfhase.ads (=): Generic parameter removed to - allow the use of regular equality over elements in contracts. - (Formal_Model): Ghost package containing model functions that are - used in subprogram contracts. - (Current_To_Last): Removed, model functions should be used instead. - (First_To_Previous): Removed, model functions should be used instead. - (Strict_Equal): Removed, model functions should be used instead. - (No_Overlap): Removed, model functions should be used instead. - (Equivalent_Keys): Functions over cursors are removed. They were - awkward with explicit container parameters. - * a-cforse.adb, a-cforse.ads (=): Generic parameter removed to - allow the use of regular equality over elements in contracts. - (Formal_Model): Ghost package containing model functions that - are used in subprogram contracts. - (Current_To_Last): Removed, model functions should be used instead. - (First_To_Previous): Removed, model functions should be used instead. - (Strict_Equal): Removed, model functions should be used instead. - (No_Overlap): Removed, model functions should be used instead. - -2017-04-27 Yannick Moy <moy@adacore.com> - - * gnat1drv.adb: Code cleanup. - -2017-04-27 Ed Schonberg <schonberg@adacore.com> - - * exp_util.adb (Replace_Entity): The prefix of a 'Result - attribute reference in a post- condition is the subprogram to - which the condition applies. If the condition is inherited - by a type extension, the prefix becomes a reference to the - inherited operation, but there is no need to create a wrapper - for this operation, because 'Result is expanded independently - when elaborating the postconditions. - -2017-04-27 Bob Duff <duff@adacore.com> - - * sinput.adb: Minor code cleanup. - * namet.adb (Append): Create faster versions of - Append(String) and Append(Name_Id) by using slice assignment - instead of loops. - * sem_util.adb (In_Instance): Speed this up by removing - unnecessary tests; Is_Generic_Instance is defined for all - entities. - * sem_util.ads, sem_util.adb (In_Parameter_Specification): - Remove unused function. - * alloc.ads (Nodes_Initial): Use a much larger value, because - the compiler was spending a lot of time copying the nodes table - when it grows. This number was chosen in 1996, so is rather out - of date with current memory sizes. Anyway, it's virtual memory. - Get rid of Orig_Nodes_...; use Node_... instead. - * atree.adb (Lock): Do not release the Nodes tables; it's a - waste of time. - Orig_Nodes_ ==> Nodes_ - * nlists.adb: Orig_Nodes_ ==> Nodes_ - * g-table.adb: Remove unused "with" clause. - * g-table.ads, table.ads: Remove Big_Table_Type, which should - not be used by clients. - * g-dyntab.adb (Last_Allocated): New function - to encapsulate T.P.Last_Allocated, which I'm thinking of changing. - -2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_eval.adb (Subtypes_Statically_Compatible): Remove duplicated - check. - (Subtypes_Statically_Match): Remove duplicate check. - * sem_prag.adb (Check_Arg_Is_External_Name): Remove duplicate check. - -2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_aggr.adb (Replace_Type): Remove the special processing - for selected components. - * exp_attr.adb (Expand_N_Attribute_Reference): Merge the - processing for attributes Fixed_Value and Integer_Value. - * exp_util.adb (Side_Effect_Free): Merge the processing for - qualified expressions, type conversions, and unchecked type - conversions. - * g-comlin.adb (Is_In_Config): Merge the processing for No_Space - and Optional. - * par-ch3.adb (P_Declarative_Items): Merge the processing for - tokens function, not, overriding, and procedure. - * sem_ch6.adb (Fully_Conformant_Expressions): Merge the processing - for qualified expressions, type conversions, and unchecked - type conversions. - * sem_util.adb (Compile_Time_Constraint_Error): Merge the - processing for Ada 83 and instances. - (Object_Access_Level): Merge the processing for indexed components - and selected components. - * uname.adb (Add_Node_Name): Merge the processing for stubs. - -2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> - - * checks.adb (Install_Primitive_Elaboration_Check): - Do not generate the check when restriction No_Elaboration_Code - is in effect. - -2017-04-27 Ed Schonberg <schonberg@adacore.com> - - * exp_disp.adb (Build_Class_Wide_Check): New subsidiary - of Expand_Dispatching_Call. If the denoted subprogram has a - class-wide precondition, this is the only precondition that - applies to the call, rather that the class-wide preconditions - that may apply to the body that is executed. (This is specified - in AI12-0195). - -2017-04-27 Yannick Moy <moy@adacore.com> - - * gnat1drv.adb (Adjust_Global_Switches): Issue - a warning in GNATprove mode if the runtime library does not - support IEEE-754 floats. - -2017-04-27 Ed Schonberg <schonberg@adacore.com> - - * sem_prag.adb (Inherit_Class_Wide_Pre): If the parent operation - is itself inherited it does not carry any contract information, - so examine its parent operation which is its Alias. - -2017-04-27 Ed Schonberg <schonberg@adacore.com> - - * sem_attr.adb (Analyze_Attribute, case 'Image): In Ada2012 the - prefix can be an object reference in which case Obj'Image (X) - can only be interpreted as an indexing of the parameterless - version of the attribute. - * par-ch4.adb (P_Name): An attribute reference can be the prefix of - an indexing or a slice operation if the attribute does not require - parameters. In Ada2012 'Image also belongs in this category, - and A'Image (lo .. hi) is legal and must be parsed as a slice. - -2017-04-27 Yannick Moy <moy@adacore.com> - - * exp_ch4.adb: Minor reformatting. - * gnat1drv.adb (Adjust_Global_Switches): When in GNATprove mode, - disable the CodePeer and C generation modes. Similar to the - opposite actions done in CodePeer mode. - -2017-04-27 Yannick Moy <moy@adacore.com> - - * sem_res.adb: Remove duplicate code. - * sem_attr.adb: Delete duplicate code. - -2017-04-27 Bob Duff <duff@adacore.com> - - * g-dyntab.adb: Reduce the amount of copying in - Release. No need to copy items past Last. - -2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> - - * checks.adb Add with and use clauses for Sem_Disp. - (Install_Primitive_Elaboration_Check): New routine. - * checks.ads (Install_Primitive_Elaboration_Check): New routine. - * exp_attr.adb (Expand_N_Attribute_Reference): Clean up the - processing of 'Elaborated. - * exp_ch6.adb (Expand_N_Subprogram_Body): Install a primitive - elaboration check. - -2017-04-27 Bob Duff <duff@adacore.com> - - * g-dyntab.ads, g-dyntab.adb, g-table.ads: Remove incorrect assertion. - If the table grows and then shrinks back to empty, we won't necessarily - point back to the empty array. Code cleanups. - * sinput.ads: Add 'Base to Size clause to match the declared - component subtypes. - -2017-04-27 Claire Dross <dross@adacore.com> - - * a-cforma.adb, a-cforma.ads (=): Generic parameter removed to - allow the use of regular equality over elements in contracts. - (Formal_Model): Ghost package containing model functions that - are used in subprogram contracts. - (Current_To_Last): Removed, model functions should be used instead. - (First_To_Previous): Removed, model functions should be used instead. - (Strict_Equal): Removed, model functions should be used instead. - (No_Overlap): Removed, model functions should be used instead. - * a-cofuma.adb, a-cofuma.ads (Enable_Handling_Of_Equivalence) - Boolean generic parameter to disable contracts for equivalence - between keys. - (Witness): Create a witness of a key that is used for handling of - equivalence between keys. - (Has_Witness): Check whether a witness is contained in a map. - (W_Get): Get the element associated to a witness. - (Lift_Equivalent_Keys): Removed, equivalence between keys is handled - directly. - * a-cofuse.adb, a-cofuse.ads (Enable_Handling_Of_Equivalence) - Boolean generic parameter to disable contracts for equivalence - between keys. - * a-cfhama.adb, a-cfhama.ads (Formal_Model.P) Disable handling - of equivalence on functional maps. - * a-cfdlli.adb, a-cfdlli.ads (Formal_Model.P) Disable handling - of equivalence on functional maps. - -2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch9.adb (Expand_Entry_Barrier): Code - cleanup. Do not perform the optimization which removes the - declarations of the discriminant and component renamings when - validity checks on operands and attributes are in effect. - -2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_spark.adb, exp_util.adb, sem_ch7.adb, g-dyntab.adb, g-dyntab.ads, - freeze.adb, a-cfinve.ads, a-cofuma.adb, a-cofuma.ads, a-cfhama.adb, - a-cfhama.ads, a-cofove.ads: Minor reformatting. - -2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> - - * g-debpoo.adb (Dump_Gnatmem): Protect against a possible null - pointer dereference. - * g-spipat.adb (Dump): Code clean up. Protect against a possible - null pointer dereference. - -2017-04-27 Bob Duff <duff@adacore.com> - - * g-dyntab.ads, g-dyntab.adb: Default for Table_Low_Bound. - Rename Empty --> Empty_Table_Ptr, and don't duplicate code for it. - Free renames Init, since they do the same thing. - * g-table.ads: Default for Table_Low_Bound. - * table.ads: Default for Table_Low_Bound, Table_Initial, and - Table_Increment. - -2017-04-27 Bob Duff <duff@adacore.com> - - * g-dyntab.ads, g-dyntab.adb: Add assertions to subprograms that - can reallocate. - * atree.adb, elists.adb, fname-uf.adb, ghost.adb, inline.adb, - * lib.adb, namet.adb, nlists.adb, sem.adb, sinput.adb, stringt.adb: - Reorder code so that above assertions do not fail. - * table.ads: Remove obsolete comment on Locked. - -2017-04-27 Claire Dross <dross@adacore.com> - - * a-cfdlli.ads: Code cleanup. - -2017-04-27 Yannick Moy <moy@adacore.com> - - * exp_spark.adb (Expand_SPARK_Freeze_Type): Build a DIC procedure - when needed for proof. (Expand_SPARK): Call the new procedure. - * exp_util.ads Fix typo. - -2017-04-27 Gary Dismukes <dismukes@adacore.com> - - * a-cofuma.ads, a-cfhama.ads: Minor reformatting, grammar, and typo - fixes. - -2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_elab.adb Add new type Visited_Element - and update the contents of table Elab_Visited. Various code clean up. - (Check_Elab_Call): Determine whether a prior call to - the same subprogram was already examined within the same context. - (Check_Internal_Call_Continue): Register the subprogram being - called as examined within a particular context. Do not suppress - elaboration warnings. - -2017-04-27 Gary Dismukes <dismukes@adacore.com> - - * xoscons.adb, osint.ads: Minor reformatting. - -2017-04-27 Bob Duff <duff@adacore.com> - - * g-dyntab.ads, g-dyntab.adb: Misc cleanup. Rename - Table_Count_Type --> Table_Last_Type, because the name - was confusing (a "count" usually starts at zero). Add - functionality supported or needed by other tables packages - (Move, Release_Threshold). - * g-table.ads, g-table.adb: This is now just a thin wrapper - around g-dyntab.ads/g-dyntab.adb. Add functionality supported - or needed by other tables packages (Save, Restore). - * table.ads, table.adb: This is now just a thin wrapper around - * g-table.ads/g-table.adb. - * namet.h, scos.h, uintp.h: These files are reaching into the - private data of some instances of g-table, whose names changed, - so the above change requires some adjustment here. It now uses - public interfaces. - -2017-04-27 Bob Duff <duff@adacore.com> - - * namet.adb, namet.ads: Minor: remove unused procedures. - -2017-04-27 Eric Botcazou <ebotcazou@adacore.com> - - * checks.adb (Apply_Scalar_Range_Check): Initialize Ok variable too. - (Minimize_Eliminate_Overflows): Initialize Llo and Lhi. - Add pragma Warnings on Rtype variable in nested block. * - * exp_ch3.adb (Build_Init_Statements): Initialize VAR_LOC. - * exp_ch4.adb (Expand_Concatenate): Initialize 3 variables. - (Size_In_Storage_Elements): Add pragma Warnings on Res variable. - * exp_ch7.adb (Build_Adjust_Statements): Initialize Bod_Stmts. - (Process_Component_List_For_Finalize): Initialize Counter_Id. - (Build_Finalize_Statements): Initialize Bod_Stmts. - * exp_disp.adb (Expand_Dispatching_Call): Initialize SCIL_Node. - -2017-04-27 Claire Dross <dross@adacore.com> - - * a-cfhama.adb, a-cfhamai.ads (=): Generic parameter removed to - allow the use of regular equality over elements in contracts. - (Formal_Model): Ghost package containing model functions that are - used in subprogram contracts. - (Current_To_Last): Removed, model - functions should be used instead. - (First_To_Previous): Removed, model functions should be used instead. - (Strict_Equal): Removed, model functions should be used instead. - (No_Overlap): Removed, model functions should be used instead. - (Equivalent_Keys): Functions over cursors are removed. They were - awkward with explicit container parameters. - * a-cofuma.adb, a-cofuma.ads (Lift_Equivalent_Keys): New lemma - (proof only) procedure to help GNATprove when equivalence over - keys is not equality. - -2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_util.adb, a-cfdlli.adb, a-cfdlli.ads, exp_ch9.adb, g-dyntab.adb, - sem_dim.adb, a-cfinve.adb, a-cfinve.ads, a-cofove.adb, a-cofove.ads: - Minor reformatting and code cleanups. - -2017-04-27 Ed Schonberg <schonberg@adacore.com> - - * freeze.adb (Build_Inherited_Condition_Pragmas): New procedure, - subsidiary of Check_Inherited_Conditions, to build pragmas for an - operation whose ancestor has classwide pre/postconditions. This - is used both to check the legality of the inheritance in Ada - and in SPARK, and to determine whether a wrapper is needed for - an inherited operation. - * exp_util.adb (Build_Class_Wide_Expression, Replace_Entity): - Improve placement of error message for inherited classwide - conditions that become illegal on type derivation. - -2017-04-27 Yannick Moy <moy@adacore.com> - - * sem_ch12.adb (Analyze_Generic_Package_Declaration): Set - SPARK_Mode from context on generic package. - * sem_ch7.adb (Analyze_Package_Declaration): Simplify code to remove - useless test. - -2017-04-27 Claire Dross <dross@adacore.com> - - * a-cofuve.ads (Range_Shifted): Rewrite precondition to avoid - overflows in computations. - * a-cofove.ads (Capacity_Range): Rewrite last bound to avoid - overflows in computations. - (Insert): Rewrite precondition to avoid overflows in computations. - * a-cfinve.ads (Capacity_Range): Rewrite last bound to avoid - overflows in computations. - (Insert): Rewrite precondition to avoid overflows in computations. - -2017-04-27 Steve Baird <baird@adacore.com> - - * exp_ch9.adb (Expand_N_Asynchronous_Select): Initialize the Cancel - flag when it is declared in order to avoid confusing CodePeer about - the possibility of an uninitialized variable read. - -2017-04-27 Ed Schonberg <schonberg@adacore.com> - - * sem_dim.adb (Analyze_Dimension_Object_Declaration): There is - no dimensionality error if the subtype of the expression is - identical to the nominal subtype in the declaration, even though - the expression itself may have been constant-folded and lack a - dimension vector. - * sem_dim.ads: Add comments on setting of dimension vectors and - its interaction with node rewritings and side-effect removal. - -2017-04-27 Bob Duff <duff@adacore.com> - - * debug.adb: Minor comment correction. - * sem_dim.ads: Minor reformatting and typo fixes. - -2017-04-27 Bob Duff <duff@adacore.com> - - * g-table.adb, g-table.adsa, scos.h: From the C side, access First and - Last of the tables via function calls, rather than relying on layout - of data structures. - -2017-04-27 Ed Schonberg <schonberg@adacore.com> - - * exp_util.adb: No wrapper in GNATprove mode. - -2017-04-27 Yannick Moy <moy@adacore.com> - - * sem_res.adb (Resolve_Comparison_Op): Always - evaluate comparisons between values of universal types. - -2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_elab.adb (Check_Internal_Call_Continue): Do not generate - an elaboration counter nor a check when in GNATprove mode. - * sem_util.adb (Build_Elaboration_Entity): Do not create an - elaboration counter when in GNATprove mode. - -2017-04-27 Ed Schonberg <schonberg@adacore.com> - - * freeze.adb: copy-paste typo. - -2017-04-27 Yannick Moy <moy@adacore.com> - - * sem_prag.adb (Analyze_Pre_Post_In_Decl_Part): - Use correct test to detect call in GNATprove mode instead of - compilation. - -2017-04-27 Claire Dross <dross@adacore.com> - - * a-cfdlli.adb, a-cfdlli.ads (Formal_Model.M_Elements_In_Union): - New property function expressing that the element of a - sequence are contained in the union of two sequences. - (Formal_Model.M_Elements_Included): New property function - expressing that the element of a sequence are another sequence. - (Generic_Sorting): Use new property functions to state that - elements are preserved by Sort and Merge. - * a-cofove.adb, a-cofove.ads (=): Generic parameter removed to - allow the use of regular equality over elements in contracts. - (Formal_Model): Ghost package containing model functions - that are used in subprogram contracts. (Capacity): - On unbounded containers, return the maximal capacity. - (Current_To_Last): Removed, model functions should be used instead. - (First_To_Previous): Removed, model functions should be used instead. - (Append): Default parameter value replaced - by new wrapper to allow more precise contracts. - (Insert): Subprogram restored, it seems it was useful to users even if - it is inefficient. - (Delete): Subprogram restored, it seems it was useful to users even if - it is inefficient. - (Prepend): Subprogram restored, it seems it was useful to users even - if it is inefficient. - (Delete_First): Subprogram restored, it seems it - was useful to users even if it is inefficient. (Delete_Last): - Default parameter value replaced by new wrapper to allow more - precise contracts. - (Generic_Sorting.Merge): Subprogram restored. - * a-cfinve.adb, a-cfinve.ads (=): Generic parameter removed to - allow the use of regular equality over elements in contracts. - (Formal_Model): Ghost package containing model functions - that are used in subprogram contracts. (Capacity): - On unbounded containers, return the maximal capacity. - (Current_To_Last): Removed, model functions should be used - instead. - (First_To_Previous): Removed, model functions should be used instead. - (Append): Default parameter value replaced - by new wrapper to allow more precise contracts. - (Insert): Subprogram restored, it seems it was useful to users even if - it is inefficient. - (Delete): Subprogram restored, it seems it was useful to users even if - it is inefficient. - (Prepend): Subprogram restored, it seems it was useful to users even - if it is inefficient. - (Delete_First): Subprogram restored, it seems it - was useful to users even if it is inefficient. (Delete_Last): - Default parameter value replaced by new wrapper to allow more - precise contracts. - (Generic_Sorting.Merge): Subprogram restored. - (Vector): Do not reuse formal vectors, as it is no longer possible - to supply them with an equality function over elements. - -2017-04-27 Bob Duff <duff@adacore.com> - - * g-dyntab.adb (Release): When allocating the new - table, use the correct slice of the old table to initialize it. - -2017-04-27 Eric Botcazou <ebotcazou@adacore.com> - - * einfo.ads: Minor fixes in comments. - -2017-04-27 Ed Schonberg <schonberg@adacore.com> - - * sem_prag.adb: disable clones in SPARK_Mode. - -2017-04-27 Gary Dismukes <dismukes@adacore.com> - - * sem_util.ads, contracts.adb: Minor reformatting. - -2017-04-27 Ed Schonberg <schonberg@adacore.com> - - * sem_util.adb, sem_util.ads (Build_Class_Wide_Clone_Body): - Build body of subprogram that has a class-wide condition that - contains calls to other primitives. - (Build_Class_Wide_Clone_Call); Build a call to the common - class-wide clone of a subprogram with classwide conditions. The - body of the subprogram becomes a wrapper for a call to the - clone. The inherited operation becomes a similar wrapper to which - modified conditions apply, and the call to the clone includes - the proper conversion in a call the parent operation. - (Build_Class_Wide_Clone_Decl (Spec_Id : Entity_Id): For a - subprogram that has a classwide condition that contains calls to - other primitives, build an internal subprogram that is invoked - through a type-specific wrapper for all inherited subprograms - that may have a modified condition. - * sem_prag.adb (Check_References): If subprogram has a classwide - condition, create entity for corresponding clone, to be invoked - through wrapper subprograns. - (Analyze_Pre_Post_Condition_In_Decl_Part): Do not emit error - message about placement if pragma isi internally generated. - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): If subprogram has - a classwide clone, build body of clone as copy of original body, - and rewrite original body as a wrapper as a wrapper for a call to - the clone, so that it incorporates the original pre/postconditions - of the subprogram. - * freeze.adb (Check_Inherited_Conditions): For an inherited - subprogram that inherits a classwide condition, build spec and - body of corresponding wrapper so that call to inherited operation - gets the modified conditions. - * contracts.adb (Analyze_Contracts): If analysis of classwide - condition has created a clone for a primitive operation, analyze - declaration of clone. - -2017-04-27 Steve Baird <baird@adacore.com> - - * exp_util.adb (Build_Allocate_Deallocate_Proc): - Add "Suppress => All_Checks" to avoid generating unnecessary - checks. - -2017-04-27 Yannick Moy <moy@adacore.com> - - * debug.adb: Reserve debug flag 'm' for no inlining in GNATprove. - * sem_ch6.adb (Anayze_Subprogram_Body_Helper): Skip creation of - inlining body in GNATprove mode when switch -gnatdm used. - * sem_res.adb (Resolve_Call): Skip detection of lack of inlining - in GNATprove mode when switch -gnatdm used. - -2017-04-27 Arnaud Charlet <charlet@adacore.com> - - * sem_ch13.adb (Analyze_Attribute_Definition_Clause - [Attribute_Address]): Call Set_Address_Taken when ignoring rep - clauses, so that we keep an indication of the address clause - before removing it from the tree. - -2017-04-27 Yannick Moy <moy@adacore.com> - - * exp_util.ads, exp_util.adb (Evaluate_Name): Force evaluation - of expression being qualified, when not an object name, or else - evaluate the underlying name. - -2017-04-27 Jerome Lambourg <lambourg@adacore.com> - - * bindusg.adb, bindgen.adb, gnatbind.adb, opt.ads: add -nognarl switch. - -2017-04-27 Justin Squirek <squirek@adacore.com> - - * exp_ch7.adb (Build_Finalize_Statements): Move Num_Comps to - Process_Component_List_For_Finalization as a local variable. - (Process_Component_For_Finalize): Add an extra parameter to avoid - global references. - (Process_Component_List_For_Finalization): Correct calls to - Process_Component_For_Finalize to take Num_Comps as a parameter. - -2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch8.adb (Find_Direct_Name): Account for the case where - a use-visible entity is defined within a nested scope of an - instance when giving priority to entities which were visible in - the original generic. - * sem_util.ads, sem_util.adb (Nearest_Enclosing_Instance): New routine. - -2017-04-27 Tristan Gingold <gingold@adacore.com> - - * raise-gcc.c: Don't use unwind.h while compiling - for the frontend, but mimic host behavior. - -2017-04-27 Javier Miranda <miranda@adacore.com> - - * sem_ch3.adb (Build_Discriminated_Subtype): - Propagate Has_Pragma_Unreferenced_Objects to the built subtype. - -2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_prag.adb (Analyze_Global_Item): - Do not consider discriminants because they are not "entire - objects". Remove the discriminant-related checks because they are - obsolete. - (Analyze_Input_Output): Do not consider discriminants - because they are not "entire objects". - -2017-04-27 Ed Schonberg <schonberg@adacore.com> - - * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Do not - perform check if the current scope does not come from source, - as is the case for a rewritten task body, because check has - been performed already, and may not be doable because of changed - visibility. - -2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> - - * a-cofuse.adb, a-cfdlli.adb, a-cofuse.ads, a-cfdlli.ads, a-cofuve.adb, - a-cofuve.ads, a-cofuma.adb, a-cofuma.ads, sem_eval.adb, a-cofuba.adb: - Minor reformatting. - -2017-04-27 Ed Schonberg <schonberg@adacore.com> - - * sem_ch4.adb (Analyze_Call): If the return type of a function - is incomplete in an context in which the full view is available, - replace the type of the call by the full view, to prevent spurious - type errors. - * exp_disp.adb (Check_Premature_Freezing): Disable check on an - abstract subprogram so that compiler does not reject a parameter - of a primitive operation of a tagged type being frozen, when - the untagged type of that parameter cannot be frozen. - -2017-04-27 Bob Duff <duff@adacore.com> - - * sem_attr.adb (Compute_Type_Key): Don't walk - representation items for irrelevant types, which could be in a - different source file. - -2017-04-27 Steve Baird <baird@adacore.com> - - * exp_attr.adb (Expand_N_Attribute_Reference): - Don't expand Image, Wide_Image, Wide_Wide_Image attributes - for CodePeer. - -2017-04-27 Yannick Moy <moy@adacore.com> - - * exp_unst.ads: Fix typos in comments. - -2017-04-27 Ed Schonberg <schonberg@adacore.com> - - * sem_eval.adb (Choice_Matches): Handle properly a real literal - whose type has a defined static predicate. - -2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch4.adb (Insert_Dereference_Action): - Do not adjust the address of a controlled object when the - associated access type is subject to pragma No_Heap_Finalization. - Code reformatting. - -2017-04-27 Pierre-Marie de Rodat <derodat@adacore.com> - - * gcc-interface/utils.c (gnat_type_for_size): Set - TYPE_ARTIFICIAL on created types. - -2017-04-27 Claire Dross <dross@adacore.com> - - * a-cfdlli.adb, a-cfdlli.ads (Formal_Model): Adapt to - modifications in functional containers. - * a-cofuba.ads, a-cofuma.ads, a-cofuse.ads, a-cofuve.ads Reformat - to improve readablity. Subprograms are separated between basic - operations, constructors and properties. Universally quantified - formulas in contracts are factorized in independant functions - with a name and a comment. Names of parameters are improved. - -2017-04-27 Gary Dismukes <dismukes@adacore.com> - - * exp_spark.adb, sem_elab.adb: Minor reformatting and typo fix. - -2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_res.adb (Resolve_Type_Conversion): Do not - install a predicate check here since this is already done during - the expansion phase. Verify whether the operand satisfies the - static predicate (if any) of the target type. - * sem_ch3.adb (Analyze_Object_Declaration): Do - not install a predicate check if the object is initialized by - means of a type conversion because the conversion is subjected - to the same check. - -2017-04-27 Tristan Gingold <gingold@adacore.com> - - * raise.c (__gnat_builtin_longjmp): Remove. - (__gnat_bracktrace): - Add a dummy definition for the compiler (__gnat_eh_personality, - __gnat_rcheck_04, __gnat_rcheck_10) (__gnat_rcheck_19, - __gnat_rcheck_20, __gnat_rcheck_21) (__gnat_rcheck_30, - __gnat_rcheck_31, __gnat_rcheck_32): Likewise. - * a-exexpr.adb: Renamed from a-exexpr-gcc.adb - * a-except.ads, a-except.adb: Renamed from a-except-2005.ads - and a-except-2005.adb. - * raise-gcc.c: Allow build in compiler, compiled as a C++ - file. - (__gnat_Unwind_ForcedUnwind): Adjust prototype. - (db): Constify msg_format. - (get_call_site_action_for): Don't use void arithmetic. - * system.ads (Frontend_Exceptions): Set to False. - (ZCX_By_Default): Set to True. - (GCC_ZC_Support): Set to True. - * gcc-interface/Makefile.in: No more variants for a-exexpr.adb and - a-except.ad[sb]. - * gcc-interface/Make-lang.in: Add support for backend zcx exceptions - in gnat1 and gnatbind. - * gnat1, gnatbind: link with raise-gcc.o, a-exctra.o, s-addima.o, - s-excmac.o, s-imgint.o, s-traceb.o, s-trasym.o, s-wchstw.o - * s-excmac.ads, s-excmac.adb: Copy of variants. - * a-except.o: Adjust preequisites. - Add handling of s-excmac-arm.adb and s-excmac-gcc.adb. - -2017-04-27 Claire Dross <dross@adacore.com> - - * a-cfdlli.adb, a-cfdlli.ads (Formal_Model): Adapt to - modifications in functional containers. - * a-cofuba.ads, a-cofuma.ads, a-cofuse.ads, a-cofuve.ads Reformat - to improve readablity. Subprograms are separated between basic - operations, constructors and properties. Universally quantified - formulas in contracts are factorized in independant functions - with a name and a comment. Names of parameters are improved. - -2017-04-27 Gary Dismukes <dismukes@adacore.com> - - * exp_spark.adb, sem_elab.adb: Minor reformatting and typo fix. - -2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_res.adb (Resolve_Type_Conversion): Do not - install a predicate check here since this is already done during - the expansion phase. Verify whether the operand satisfies the - static predicate (if any) of the target type. - * sem_ch3.adb (Analyze_Object_Declaration): Do - not install a predicate check if the object is initialized by - means of a type conversion because the conversion is subjected - to the same check. - -2017-04-27 Tristan Gingold <gingold@adacore.com> - - * a-except.ads, a-except.adb, a-exexpr.adb: Removed (will be - replaced by their variants). - -2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_prag.adb, a-cofuse.adb, a-cofuse.ads, einfo.adb, sem_prag.adb, - cstand.adb, par-prag.adb, a-cofuve.adb, a-cofuve.ads, a-cofuma.adb, - a-cofuma.ads, a-cofuba.adb, a-cofuba.ads: Minor reformatting. - -2017-04-27 Tristan Gingold <gingold@adacore.com> - - * s-excmac-gcc.ads, s-excmac-gcc.adb, - s-excmac-arm.ads, s-excmac-arm.adb (New_Occurrence): Rewrite it in - Ada95. - -2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch7.adb (Establish_Transient_Scope): Rewrite - the loop which detects potential enclosing transient scopes. The - loop now terminates much earlier as transient scopes are bounded - by packages and subprograms. - -2017-04-27 Claire Dross <dross@adacore.com> - - * a-cfdlli.adb, a-cfdlli.ads (=): Generic parameter removed to - allow the use of regular equality over elements in contracts. - (Cursor): Type is now public so that it can be used in - model functions. - (Formal_Model): Ghost package containing - model functions that are used in subprogram contracts. - (Current_To_Last): Removed, model functions should be used - instead. - (First_To_Previous): Removed, model functions should - be used instead. - (Strict_Equal): Removed, model functions - should be used instead. - (Append): Default parameter value - replaced by new wrapper to allow more precise contracts. - (Insert): Default parameter value replaced by new wrapper to - allow more precise contracts. - (Delete): Default parameter - value replaced by new wrapper to allow more precise contracts. - (Prepend): Default parameter value replaced by new wrapper to - allow more precise contracts. - (Delete_First): Default parameter - value replaced by new wrapper to allow more precise contracts. - (Delete_Last): Default parameter value replaced by new wrapper - to allow more precise contracts. - -2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_spark.adb (Expand_SPARK): Perform specialized expansion - for object declarations. - (Expand_SPARK_N_Object_Declaration): New routine. - * sem_elab.adb (Check_A_Call): Include calls to the - Default_Initial_Condition procedure of a type under the SPARK - elaboration checks umbrella. - -2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> - - * sem.adb (Analyze): Diagnose an illegal iterated component - association. - * sem_util.ads, sem_util.adb - (Diagnose_Iterated_Component_Association): New routine. - -2017-04-27 Bob Duff <duff@adacore.com> - - * adaint.c (__gnat_get_current_dir): Return 0 in length if - getcwd fails. - * a-direct.adb, g-dirope.adb, osint.adb, s-os_lib.adb: Raise - exception if getcwd failed. - -2017-04-27 Yannick Moy <moy@adacore.com> - - * exp_dbug.adb, exp_dbug.ads (Get_External_Name): Prefix ghost - entities with special prefix. - -2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> - - * debug.adb Change the documentation of switch -gnatd.s. - * exp_ch7.adb (Make_Transient_Block): Transient blocks do not need - to manage the secondary stack when an enclosing scope already - performs this functionality (aka relaxed management). Switch - -gnatd.s may be used to force strict management in which case - the block will manage the secondary stack unconditionally. Add - a guard to stop the traversal when encountering a package or a - subprogram scope. - -2017-04-27 Ed Schonberg <schonberg@adacore.com> - - * sem_res.adb (Resolve_Call): Refine further the handling of - limited views of return types in function calls. If the function - that returns a limited view appears in the current unit, - we do not replace its type by the non-limited view because - this transformation is performed int the back-end. However, - the type of the call itself must be the non-limited view, to - prevent spurious resolution errors. - -2017-04-27 Ed Schonberg <schonberg@adacore.com> - - * einfo,ads, einfo.adb (Class_Wide_Preconds, Class_Wide_Postconds): - Removed, proposed implementation using generics for class-wide - preconditions proved impractical. - (Class_Wide_Clone): New attribute of subprogram. Designates - subprogram created for primitive operations with class-wide - pre/postconditions that contain calls to other primitives. The - clone holds the body of the original primitive, but the - pre/postonditions do not apply to it. The original body is - rewritten as a wrapper for a call to the clone. - (Is_Class_Wide_Clone): New flag to identify a Class_Wide_Clone. If - the flag is set, no code for the corresponding pre/postconditions - is inserted into its body. - -2017-04-27 Bob Duff <duff@adacore.com> - - * exp_prag.adb, par-prag.adb, sem_ch13.adb: Ignore - Scalar_Storage_Order if -gnatI is given. - * sem_prag.adb (Analyze_Pragma): Ignore - Default_Scalar_Storage_Order if -gnatI is given. - -2017-04-27 Claire Dross <dross@adacore.com> - - * a-cofuba.ads (Add): Take as an additional input parameter - the position where the element should be inserted. - (Remove): New function that removes an element from the container. - * a-cofuma.ads (Add): Adapt to the new API of Base.Add. - * a-cofuse.ads (Add): Adapt to the new API of Base.Add. - (Remove): New function that removes an element from a set. - * a-cofuve.ads (Add): Adapt to the new API of Base.Add. - (Remove): New function that removes an element from a sequence. - (Insert): New function that adds anywhere in a sequence. - -2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> - - * checks.adb (Generate_Range_Check): Revert previous change. - -2017-04-27 Gary Dismukes <dismukes@adacore.com> - - * sem_util.adb: Minor reformatting/rewording. - -2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> - - * lib-xref.adb (Generate_Reference): The use - of attribute 'Result is not considered a violation of pragma - Unreferenced. - -2017-04-27 Justin Squirek <squirek@adacore.com> - - * cstand.adb (Create_Standard): Correctly set - Directly_Designated_Type for Any_Access. - * sem_type.adb (Covers): Minor grammar fixes. - -2017-04-27 Bob Duff <duff@adacore.com> - - * sem_attr.adb: Minor cleanup. - -2017-04-27 Claire Dross <dross@adacore.com> - - * a-cofuba.ads, a-cofuba.adb (Ada.Containers.Functional_Base): New - private child of Ada.Containers used to implement all functional - containers. - * a-cofuma.ads, a-cofuma.adb (Ada.Containers.Functional_Maps): New - child of Ada.Containers. It provides functional indefinite unbounded - maps which can be used as high level models for specification - of data structures. - * a-cofuse.ads, a-cofuse.adb (Ada.Containers.Functional_Sets): New - child of Ada.Containers. It provides functional indefinite unbounded - sets which can be used as high level models for specification - of data structures. - * a-cofuve.ads, a-cofuve.adb (Ada.Containers.Functional_Vectors): New - child of Ada.Containers. It provides functional indefinite unbounded - vectors which can be used as high level models for specification - of data structures. - * Makefile.rtl: Add new packages. - * impunit.adb: Add new packages. - -2017-04-27 Gary Dismukes <dismukes@adacore.com> - - * sem_ch4.adb: Minor reformatting. - -2017-04-27 Ed Schonberg <schonberg@adacore.com> - - * sem_ch12.adb (Analyze_Associations): minor reformatting. - (Check_Fixed_Point_Actual): Do not emit a warning on a fixed - point type actual that has user-defined arithmetic primitives, - when there is a previous actual for a formal package that defines - a fixed-point type with the parent user-defined operator. - -2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> - - * checks.adb (Generate_Range_Check): Reinstate part of previous change. - * sem_attr.adb (Resolve_Attribute): Generate a range check when - the component type allows range checks. - -2017-04-27 Ed Schonberg <schonberg@adacore.com> - - * sem_aux.adb (Is_Generic_Formal): Use original node to locate - corresponding declaration, because formal derived types are - rewritten as private extensions. - -2017-04-27 Ed Schonberg <schonberg@adacore.com> - - * sem_dim.adb (Analyze_Dimension_Binary_Op): Do not check - dimensions of operands if node has been analyzed already, because - previous analysis and dimension checking will have removed the - dimension information from the operands. - -2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> - - * debug.adb: Document the use of switch -gnatd.s. - * einfo.ads Update the documentation on attribute - Sec_Stack_Needed_For_Return and attribute Uses_Sec_Stack. Remove - the uses of these attributes from certain entities. - * exp_ch7.adb (Make_Transient_Block): Reimplement the circuitry - which determines whether the block should continue to manage - the secondary stack. - (Manages_Sec_Stack): New routine. - -2017-04-27 Bob Duff <duff@adacore.com> - - * atree.ads: Minor edit. - -2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> - - * sinfo.ads: Update the section on Ghost mode. Add - a section on SPARK mode. Update the placement of section on - expression functions. - -2017-04-27 Bob Duff <duff@adacore.com> - - * sinput.adb (Get_Source_File_Index): Don't - assert that S is in the right range in the case where this is - a .dg file under construction. - -2017-04-27 Yannick Moy <moy@adacore.com> - - * sem_util.adb (Check_Result_And_Post_State): - Handle more precisely each conjunct in expressions formed by - and'ing sub-expressions. - -2017-04-27 Gary Dismukes <dismukes@adacore.com> - - * exp_ch4.adb, sem_ch4.adb: Minor typo fix and reformatting. - -2017-04-25 Arnaud Charlet <charlet@adacore.com> - - * gnat_rm.texi, gnat_ugn.texi, - doc/gnat_ugn/building_executable_programs_with_gnat.rst, - doc/gnat_ugn/platform_specific_information.rst, - doc/gnat_ugn/gnat_and_program_execution.rst, - doc/gnat_ugn/gnat_utility_programs.rst, - doc/gnat_ugn/the_gnat_compilation_model.rst, - doc/gnat_rm/implementation_defined_attributes.rst, - doc/gnat_rm/the_gnat_library.rst, - doc/gnat_rm/implementation_defined_pragmas.rst, - doc/gnat_rm/representation_clauses_and_pragmas.rst, - doc/gnat_rm/implementation_of_specific_ada_features.rst, - doc/gnat_rm/implementation_defined_aspects.rst, - doc/gnat_rm/implementation_defined_characteristics.rst: Update - documentation. - -2017-04-25 Arnaud Charlet <charlet@adacore.com> - - * exp_ch4.adb (Expand_N_Case_Expression): Emit error message when - generating C code on complex case expressions. - -2017-04-25 Arnaud Charlet <charlet@adacore.com> - - * sem_prag.adb (Analyze_Pragma): Generate a warning instead - of silently ignoring pragma Ada_xxx in Latest_Ada_Only mode. - * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Use - Ada_2012 instead of Ada_2005 to be compatible with the above - change. - * bindgen.adb: Silence new warning on pragma Ada_95. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * checks.adb (Generate_Range_Check): Revert part of previous change. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_ch4.adb (Try_Container_Indexing): Handle properly a - container indexing operation that appears as a an actual in a - parameter association in a procedure call. - -2017-04-25 Olivier Ramonat <ramonat@adacore.com> - - * prj-proc.adb, sem_util.adb, s-stposu.adb, sem_attr.adb, prj-conf.ads: - Fix spelling mistakes. - -2017-04-25 Bob Duff <duff@adacore.com> - - * types.ads, osint.adb, sinput-c.adb, sinput-d.adb, sinput-l.adb, - * sinput-p.adb: Use regular fat pointers, with bounds checking, - for source buffers. Fix misc obscure bugs. - * sinput.ads, sinput.adb: Use regular fat pointers, with bounds - checking, for source buffers. Modify representation clause for - Source_File_Record as appropriate. Move Source_File_Index_Table - from spec to body, because it is not used outside the body. - Move Set_Source_File_Index_Table into the private part, because - it is used only in the body and in children. Use trickery to - modify the dope in the generic instantiation case. It's ugly, - but not as ugly as the previous method. Fix documentation. - Remove obsolete code. - * fname-sf.adb, targparm.adb: Fix misc out-of-bounds - indexing in source buffers. - * fmap.adb: Avoid conversions from one string type to another. - Remove a use of global name buffer. - * osint.ads, sfn_scan.ads, sfn_scan.adb, sinput-c.ads: Comment - fixes. - -2017-04-25 Gary Dismukes <dismukes@adacore.com> - - * exp_util.adb, exp_ch4.adb: Minor reformatting. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * checks.adb: Code clean up in various routines. - (Generate_Range_Check): Do not generate a range check when the - expander is not active or when index/range checks are suppressed - on the target type. - (Insert_List_After_And_Analyze, Insert_List_Before_And_Analyze): - Remove variants that include a Supress parameter. These routines - are never used, and were introduced before the current scope-based - check suppression method. - -2017-04-25 Vasiliy Fofanov <fofanov@adacore.com> - - * prj-part.adb, cstreams.c, osint.adb, osint.ads: Remove VMS specific - code and some subprogram calls that are now noop. - -2017-04-25 Arnaud Charlet <charlet@adacore.com> - - * exp_ch4.adb (Expand_N_Case_Expression): Take - Minimize_Expression_With_Actions into account when possible. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_util.adb (Known_Non_Null): Moved to Sem_Util. - (Known_Null): Moved to Sem_Util. - * exp_util.ads (Known_Non_Null): Moved to Sem_Util. - (Known_Null): Moved to Sem_Util. - * sem_util.adb Add new enumeration type Null_Status_Kind. - (Known_Non_Null): Moved from Exp_Util. Most of the logic in - this routine is now carried out by Null_Status. - (Known_Null): Moved from Exp_Util. Most of the logic in this routine - is now carried out by Null_Status. - (Null_Status): New routine. - * sem_util.ads (Known_Non_Null): Moved from Exp_Util. - (Known_Null): Moved from Exp_Util. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_ch6.adb (Analyze_Expression_Function): Do not report an - error on the return type of an expression function that is a - completion, if the type is derived from a generic formal type. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_dim.adb (Dimensions_Of_Operand): The dimensions of a type - conversion are those of the target type. - -2017-04-25 Bob Duff <duff@adacore.com> - - * a-clrefi.adb: Minor cleanup. - -2017-04-25 Gary Dismukes <dismukes@adacore.com> - - * exp_util.adb, exp_util.ads, types.ads: Minor reformatting. - -2017-04-25 Bob Duff <duff@adacore.com> - - * err_vars.ads, fmap.adb, fmap.ads, comperr.adb, fname-sf.adb, - types.adb, types.ads, types.h, sinput-l.adb, targparm.adb, - errout.adb, sinput.adb, sinput.ads, cstand.adb, scn.adb, - scn.ads, gnatls.adb: Eliminate the vestigial Internal_Source_File and - the Internal_Source buffer. This removes the incorrect call to "=" - the customer noticed. - Wrap remaining calls to "=" in Null_Source_Buffer_Ptr. We - eventually need to eliminate them altogether. Or else get rid - of zero-origin addressing. - -2017-04-25 Claire Dross <dross@adacore.com> - - * exp_util.ads (Expression_Contains_Primitives_Calls_Of): New - function used in GNATprove to know if an expression contains - non-dispatching calls on primitives of a tagged type. - -2017-04-25 Bob Duff <duff@adacore.com> - - * rtsfind.adb (Initialize): Initialize - First_Implicit_With. Building the compiler with Normalize_Scalars - and validity checking finds this being used as an uninitialized - variable. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * contracts.adb (Analyze_Entry_Or_Subprogram_Body_Contract): - Add a warning about SPARK mode management. The routine now - saves and restores both the mode and associated pragma. - (Analyze_Entry_Or_Subprogram_Contract): Add a warning about - SPARK mode management. The routine now saves and restores both - the mode and associated pragma. - (Analyze_Object_Contract): - Add a warning about SPARK mode management. The routine - now saves and restores both the mode and associated pragma. - (Analyze_Package_Body_Contract): Add a warning about SPARK mode - management. The routine now saves and restores both the mode - and associated pragma. (Analyze_Package_Contract): Add a warning - about SPARK mode management. The routine now saves and restores - both the mode and associated pragma. - (Analyze_Task_Contract): - Add a warning about SPARK mode management. The routine now saves - and restores both the mode and associated pragma. - * expander.adb (Expand): Change the way the Ghost mode is saved - and restored. - * exp_ch3.adb (Freeze_Type): Change the way the Ghost mode is - saved and restored. - * exp_disp.adb (Make_DT): Change the way the Ghost mode is saved - and restored. - * exp_util.adb (Build_DIC_Procedure_Body): - Change the way the Ghost mode is saved and restored. - (Build_DIC_Procedure_Declaration): Change the way the Ghost - mode is saved and restored. - (Build_Invariant_Procedure_Body): - Change the way the Ghost mode is saved and restored. - (Build_Invariant_Procedure_Declaration): Change the way the Ghost - mode is saved and restored. - (Make_Predicate_Call): Change the - way the Ghost mode is saved and restored. - * freeze.adb (Freeze_Entity): Change the way the Ghost mode is - saved and restored. - * ghost.adb (Mark_And_Set_Ghost_Assignment): Remove parameter Mode - and its assignment. - (Mark_And_Set_Ghost_Body): Remove parameter - Mode and its assignment. - (Mark_And_Set_Ghost_Completion): - Remove parameter Mode and its assignment. - (Mark_And_Set_Ghost_Declaration): Remove parameter Mode and its - assignment. - (Mark_And_Set_Ghost_Instantiation): Remove parameter - Mode and its assignment. - (Mark_And_Set_Ghost_Procedure_Call): - Remove parameter Mode and its assignment. - (Set_Ghost_Mode): - Remove parameter Mode and its assignment. - * ghost.ads (Mark_And_Set_Ghost_Assignment): Remove parameter Mode - and update the comment on usage. - (Mark_And_Set_Ghost_Body): - Remove parameter Mode and update the comment on usage. - (Mark_And_Set_Ghost_Completion): Remove parameter Mode and - update the comment on usage. - (Mark_And_Set_Ghost_Declaration): - Remove parameter Mode and update the comment on usage. - (Mark_And_Set_Ghost_Instantiation): Remove parameter Mode and - update the comment on usage. - (Mark_And_Set_Ghost_Procedure_Call): - Remove parameter Mode and update the comment on usage. - (Set_Ghost_Mode): Remove parameter Mode and update the comment - on usage. - * lib.ads Remove obsolete fields SPARK_Mode_Pragma from various - types. - * lib-load.adb (Create_Dummy_Package_Unit): Remove the assignment - of obsolete field SPARK_Mode_Pragma. - (Load_Main_Source): Remove - the assignment of obsolete field SPARK_Mode_Pragma. - (Load_Unit): Remove the assignment of obsolete field SPARK_Mode_Pragma. - * lib-writ.adb (Add_Preprocessing_Dependency): Remove - the assignment of obsolete field SPARK_Mode_Pragma. - (Ensure_System_Dependency): Remove the assignment of obsolete - field SPARK_Mode_Pragma. - * rtsfind.adb (Load_RTU): Add a warning about Ghost and SPARK - mode management. Change the way Ghost and SPARK modes are saved - and restored. - * sem.adb (Analyze): Change the way the Ghost mode is saved - and restored. - * sem_ch3.adb (Analyze_Object_Declaration): Change the way the - Ghost mode is saved and restored. - (Process_Full_View): Change - the way the Ghost mode is saved and restored. - * sem_ch5.adb (Analyze_Assignment): Change the way the Ghost - mode is saved and restored. - * sem_ch6.adb (Analyze_Procedure_Call): Change the way the Ghost - mode is saved and restored. - (Analyze_Subprogram_Body_Helper): - Change the way the Ghost mode is saved and restored. - * sem_ch7.adb (Analyze_Package_Body_Helper): Change the way the - Ghost mode is saved and restored. - * sem_ch10.adb (Analyze_Subunit): Add a warning about SPARK mode - management. Save the SPARK mode-related data prior to any changes - to the scope stack and contexts. The mode is then reinstalled - before the subunit is analyzed in order to restore the original - view of the subunit. - * sem_ch12.adb (Analyze_Package_Instantiation): Update the - warning on region management. Change the way the Ghost and - SPARK modes are saved and restored. - (Inline_Instance_Body): - Add a warning about SPARK mode management. Code clean up. - (Analyze_Subprogram_Instantiation): Update the warning on region - management. Change the way the Ghost and SPARK modes are saved - and restored. - (Instantiate_Package_Body): Update the warning - on region management. Change the way the Ghost and SPARK modes - are saved and restored. - (Instantiate_Subprogram_Body): Update - the warning on region management. Change the way the Ghost and - SPARK modes are saved and restored. - (Set_Instance_Env): Add a - warning about SPARK mode management. Change the way SPARK mode - is saved and restored. - * sem_ch13.adb (Build_Predicate_Functions): - Change the way the Ghost mode is saved and restored. - (Build_Predicate_Function_Declaration): Change the way the Ghost - mode is saved and restored. - * sem_elab.adb (Check_Elab_Calls): Add a warning about SPARK - mode management. Change the way SPARK mode is saved and restored. - * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): - Change the way the Ghost mode is saved and restored. - (Analyze_Initial_Condition_In_Decl_Part): Change the way - the Ghost mode is saved and restored. - (Analyze_Pragma): - Change the way the Ghost mode is saved and restored. - (Analyze_Pre_Post_Condition_In_Decl_Part): Change the way the - Ghost mode is saved and restored. - * sem_util.adb (Install_SPARK_Mode): New routine. - (Restore_SPARK_Mode): New routine. - (Save_SPARK_Mode_And_Set): Removed. - (Set_SPARK_Mode): New routine. - * sem_util.ads (Install_SPARK_Mode): New routine. - (Restore_SPARK_Mode): New routine. - (Save_SPARK_Mode_And_Set): Removed. - (Set_SPARK_Mode): New routine. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_util.adb, sem_util.ads (From_Nested_Package): New predicate - to determine whether a type is declared in a local package that - has not yet been frozen. - * freeze.adb (Freeze_Before): Use new predicate to determine - whether a local package must be installed on the scope stack - in order to evaluate in the proper scope actions generated by - aspect specifications, such as Predicate - * sem_ch13.adb: Simplify code in Analyze_Aspects_At_Freeze_Point - using new predicate. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_warn.adb (Warn_On_Constant_Valid_Condition): Do not consider - comparisons between non- scalar expressions expressions because - their values cannot be invalidated. - * sem_warn.ads (Warn_On_Constant_Valid_Condition): Update the - comment on usage. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * par_sco.adb: Minor reformatting. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): If entity - is a type from an unfrozen local package, install package to - complete the analysis of delayed aspects of the type. - -2017-04-25 Tristan Gingold <gingold@adacore.com> - - * bingen.adb (System_Version_Control_Used): New variable. - (Resolve_Binder_Options): Set the above variable. - (Gen_Output_File_Ada): Conditionally call Gen_Versions. - (Gen_Elab_Order): Emit blank line before. - -2017-04-25 Justin Squirek <squirek@adacore.com> - - * sem_cat.adb (Validate_RT_RAT_Component): Added - an extra check to ignore incomplete types. - -2017-04-25 Thomas Quinot <quinot@adacore.com> - - * sem_prag.adb (Analyze_Pragma, case Pragma_Check): Remove - bogus circuitry for the case where Name is Predicate. - -2017-04-25 Thomas Quinot <quinot@adacore.com> - - * par_sco.adb(Traverse_Declarations_Or_Statements.Traverse_Aspects): - Create SCOs for Predicate aspects in disabled - state initially, to be enabled later on by... - * sem_ch13.adb (Build_Predicate_Functions.Add_Predicates): Mark - SCO for predicate as enabled. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * comperr.adb (Compiler_Abort): Remove now obsolete pair of - pragmas Warnings Off / On. - * namet.adb (Finalize): Remove now obsolete pair of pragmas - Warnings Off / On. - * output.adb: Remove now obsolete pair of pragmas Warnings Off / On. - * sem_warn.adb (Warn_On_Constant_Valid_Condition): Do not - consider comparisons between static expressions because their - values cannot be invalidated. - * urealp.adb (Tree_Read): Remove now obsolete pair of pragmas - Warnings Off / On. - (Tree_Write): Remove now obsolete pair of pragmas Warnings Off / On. - * usage.adb Remove now obsolete pair of pragmas Warnings Off / On. - -2017-04-25 Bob Duff <duff@adacore.com> - - * sem_elab.adb (In_Task_Activation): Trace internal calls in - task bodies. - -2017-04-25 Gary Dismukes <dismukes@adacore.com> - - * sem_prag.adb, sem_warn.adb, sem_eval.adb: Minor reformatting and - typo fixes. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * comperr.adb (Compiler_Abort): Add a pair of pragma Warnings - On/Off to defend against a spurious warning in conditional - compilation. - * exp_ch4.adb (Rewrite_Comparison): Reimplemented. - * namet.adb (Finalize): Add a pair of pragma Warnings On/Off to - defend against a spurious warning in conditional compilation. - * output.adb Add a pair of pragma Warnings On/Off to defend - against a spurious warning in conditional compilation. - * sem_eval.adb (Eval_Relational_Op): Major code clean up. - (Fold_General_Op): New routine. - (Fold_Static_Real_Op): New routine. - (Test_Comparison): New routine. - * sem_eval.ads (Test_Comparison): New routine. - * sem_warn.adb (Is_Attribute_Constant_Comparison): New routine. - (Warn_On_Constant_Valid_Condition): New routine. - (Warn_On_Known_Condition): Use Is_Attribute_Constant_Comparison - to detect a specific case. - * sem_warn.adb (Warn_On_Constant_Valid_Condition): New routine. - * urealp.adb (Tree_Read): Add a pair of pragma Warnings On/Off - to defend against a spurious warning in conditional compilation. - (Tree_Write): Add a pair of pragma Warnings On/Off to defend - against a spurious warning in conditional compilation. - * usage.adb Add a pair of pragma Warnings On/Off to defend - against a spurious warning in conditional compilation. - -2017-04-25 Arnaud Charlet <charlet@adacore.com> - - * sinfo.ads, sem_ch13.adb: Update comment. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_util.adb (Is_Post_State): A reference to a - generic in out parameter is considered a change in the post-state - of a subprogram. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_ch12.adb (Load_Parent_Of_Generic); When retrieving the - declaration of a subprogram instance within its wrapper package, - skip over null statements that may result from the rewriting of - ignored pragmas. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * exp_attr.adb (Expand_Attribute_Reference, case 'Read): - If the type is an unchecked_union, replace the attribute with - a Raise_Program_Error (rather than inserting such before the - attribute reference) to handle properly the case where we are - processing a component of a larger record, and we need to prevent - further expansion for the unchecked union. - (Expand_Attribute_Reference, case 'Write): If the type is - an unchecked_union, check whether enclosing scope is a Write - subprogram. Replace attribute with a Raise_Program_Error if the - discriminants of the unchecked_union type have not default values - because such a use is erroneous.. - -2017-04-25 Tristan Gingold <gingold@adacore.com> - - * exp_ch9.adb (Expand_N_Task_Type_Declaration): - Add relative_deadline to task record on edf profile. - (Make_Initialize_Protection): Pass deadline_floor value on edf profile. - (Make_Task_Create_Call): Pass relative_deadline value. - * par-prag.adb (Prag): Handle Pragma_Deadline_Floor. - * s-rident.ads (Profile_Name): Add GNAT_Ravenscar_EDF. - (Profile_Info): Add info for GNAT_Ravenscar_EDF. - * sem_prag.adb (Set_Ravenscar_Profile): Handle - GNAT_Ravenscar_EDF (set scheduling policy). - (Analyze_Pragma): Handle GNAT_Ravenscar_EDF profile and Deadline_Floor - pragma. - (Sig_Flags): Add choice for Pragma_Deadline_Floor. - * snames.ads-tmpl (Name_Deadline_Floor, Name_Gnat_Ravenscar_EDF): - New names. - (Pragma_Deadline_Floor): New pragma. - * targparm.adb (Get_Target_Parameters): Recognize - GNAT_Ravenscar_EDF profile. - -2017-04-25 Arnaud Charlet <charlet@adacore.com trojanek> - - * gnatvsn.ads (Library_Version): Bump to 8. Update comment. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_aux.adb (Nearest_Ancestor): Use original node of type - declaration to locate nearest ancestor, because derived - type declarations for record types are rewritten as record - declarations. - * sem_ch13.adb (Add_Call): Use an unchecked conversion to handle - properly derivations that are completions of private types. - (Add_Predicates): If type is private, examine rep. items of full - view, which may include inherited predicates. - (Build_Predicate_Functions): Ditto. - -2017-04-25 Javier Miranda <miranda@adacore.com> - - * sem_util.adb (New_Copy_Tree.Visit_Entity): Extend previous change - to generate new entities for subtype declarations located in - Expression_With_Action nodes. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_elab.adb (Check_A_Call): Remove - local variables Is_DIC_Proc and Issue_In_SPARK. Verify the - need for Elaborate_All when SPARK elaboration checks are - required. Update the checks for instances, variables, and calls - to Default_Initial_Condition procedures. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * aspects.ads, aspects.adb: Make the GNAT-specific pragma No_Inline - into a boolean aspect, in analogy with the Ada aspect No_Return. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch6.adb, sem_ch13.adb, sem_ch6.adb: Minor reformatting. - -2017-04-25 Bob Duff <duff@adacore.com> - - * sem_res.adb (Resolve_Actuals): Under -gnatd.q, reset - Is_True_Constant for an array variable that is passed to a - foreign function as an 'in' parameter. - * debug.adb: Document -gnatd.q. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_ch6.adb (Analyze_Expression_Function): If expression function - is completion and return type is an access type do not freeze - designated type: this will be done in the process of freezing - the expression if needed. - (Freeze_Expr_Types): Check whether type is complete before - creating freeze node, to provide a better error message if - reference is premature. - * sem_ch13.adb (Check_Indexing_Functions): Ignore inherited - functions created by type derivations. - -2017-04-25 Pascal Obry <obry@adacore.com> - - * g-sercom.ads: Add simple usage of GNAT.Serial_Communication. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_res.adb (Resolve_Type_Conversion): - When resolving against any fixed type, set the type of the - operand as universal real when the operand is a multiplication - or a division where both operands are of any fixed type. - (Unique_Fixed_Point_Type): Add local variable ErrN. Improve the - placement of an error message by pointing to the operand of a - type conversion rather than the conversion itself. - -2017-04-25 Thomas Quinot <quinot@adacore.com> - - * sem_ch13.adb (Build_Predicate_Function_Declaration): Set - Needs_Debug_Info when producing SCOs. - -2017-04-25 Thomas Quinot <quinot@adacore.com> - - * exp_ch6.adb (Add_Finalization_Master_Actual_To_Build_In_Place_Call): - Always pass a null finalization master for a library level named access - type to which a pragme No_Heap_Finalization applies. - -2017-04-25 Arnaud Charlet <charlet@adacore.com trojanek> - - PR ada/78845 - - * a-ngcoar.adb, a-ngrear.adb (Inverse): call Unit_Matrix with First_1 - set to A'First(2) and vice versa. - -2017-04-25 Yannick Moy <moy@adacore.com> - - * freeze.adb (Freeze_Record_Type): Remove obsolete - rule on volatile tagged record restriction on SPARK code. - -2017-04-25 Yannick Moy <moy@adacore.com> - - * sem_prag.adb (minor) Fix SPARK RM reference. - -2017-04-25 Yannick Moy <moy@adacore.com> - - * sem_util.adb, sem_util.ads (Unique_Defining_Entity): Update - comment to reflect which entity is chosen as unique entity. - (Unique_Entity): Return full view instead of private spec for - protected type or task type. Fix possible incorrect access when - called on entry. - -2017-04-25 Eric Botcazou <ebotcazou@adacore.com> - - * sem_res.adb (Set_Slice_Subtype): Treat specially bit-packed - array types only instead of all packed array types. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_ch6.adb (Conforming_Types): If type of formal as a specified - dimension system, verify that dimensions of both match. - (Check_Conformance): Add error message in case of dimension - mismatch. - * sem_dim.ads, sem_dim.adb (Dimensions_Match): New utility - predicate. - -2017-04-25 Arnaud Charlet <charlet@adacore.com trojanek> - - * gnatxref.adb, gnatfind.adb: Avoid using the term project file, - confusing. - -2017-04-25 Yannick Moy <moy@adacore.com> - - * sem_util.adb: Minor refactoring. - * freeze.adb (Freeze_Record_Type): Fix checking of SPARK RM 7.1.3(5). - -2017-04-25 Claire Dross <dross@adacore.com> - - * sem_prag.adb (Collect_Inherited_Class_Wide_Conditions): Go to - ultimate alias when accessing overridden operation. Indeed, if the - overridden operation is itself inherited, it won't have any explicit - contract. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_warn.adb (Warn_On_Overlapping_Actuals): There can be no - overlap if the two formals have different types, because formally - the corresponding actuals cannot designate the same objects. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_dim.adb (Dimensions_Of_Operand): minot cleanups: a) If - dimensions are present from context, use them. b) If operand is - a static constant rewritten as a literal, obtain the dimensions - from the original declaration, otherwise use dimensions of type - established from context. - -2017-04-25 Yannick Moy <moy@adacore.com> - - * sem_util.adb (Is_Effectively_Volatile): Protect against base type - of array that is private. - -2017-04-25 Gary Dismukes <dismukes@adacore.com> - - * sem_ch3.adb, exp_util.adb, sem_prag.adb, exp_ch4.adb: Minor - reformatting. - -2017-04-25 Yannick Moy <moy@adacore.com> - - * a-ngelfu.adb, a-ngelfu.ads: Add SPARK_Mode On on spec, Off - on body. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_disp.adb (Check_Dispatching_Context): Add guard to refine - the check that recognizes a call to a private overridding and - replaces the called subprogram with its alias. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_util.adb: Minor reformatting. - -2017-04-25 Justin Squirek <squirek@adacore.com> - - * exp_ch3.adb (Freeze_Type): Add condition to always treat - interface types as a partial view of a private type for the - generation of invariant procedure bodies. - * exp_util.adb, exp_util.ads (Add_Inherited_Invariants): - Add a condition to get the Corresponding_Record_Type for - concurrent types, add condition to return in the absence of a - class in the pragma, remove call to Replace_Type_References, - and add call to Replace_References. - (Add_Interface_Invariatns), - (Add_Parent_Invariants): Modify call to Add_Inherited_Invariants - to including the working type T. - (Add_Own_Invariants): Remove - legacy condition for separate units, remove dispatching for ASIS - and save a copy of the expression in the pragma expression. - (Build_Invariant_Procedure_Body): Default initalize vars, - remove return condition on interfaces, always use the - private type for interfaces, and move the processing of types - until after the processing of invariants for the full view. - (Build_Invariant_Procedure_Declaration): Remove condition - to return if an interface type is encountered and add - condition to convert the formal parameter to its class-wide - counterpart if Work_Typ is abstract. - (Replace_Type): Add call to Remove_Controlling_Arguments. - (Replace_Type_Ref): Remove class-wide dispatching for the current - instance of the type. - (Replace_Type_References): Remove parameter "Derived" - (Remove_Controlling_Arguments): Created in order to removing - the controlliong argument from calls to primitives in the case - of the formal parameter being an class-wide abstract type. - * sem_ch3.adb (Build_Assertion_Bodies_For_Type): Almost identical - to the change made to Freeze_Type in exp_ch3. Add a condition - to treat interface types as a partial view. - * sem_prag.adb (Analyze_Pragma): Modify parameters in the call - to Build_Invariant_Procedure_Declaration to properly generate a - "partial" invariant procedure when Typ is an interface. - -2017-04-25 Bob Duff <duff@adacore.com> - - * a-numeri.ads: Go back to using brackets encoding for the Greek - letter pi. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_ch3.adb (Derive_Subprogram): Implement rule in RM 6.1.1 - (10-15): if derived type T with progenitors is abstract, - and primitive P of this type inherits non-trivial classwide - preconditions from both a parent operation and from an interface - operation, then the inherited operation is abstract if the parent - operation is not null. - * sem_disp.ads, sem_disp.adb: replace function Covers_Some_Interface - with Covered_Interface_Op to yield the actual interface operation - that is implemented by a given inherited operation. - -2017-04-25 Javier Miranda <miranda@adacore.com> - - * exp_ch4.adb (Expand_N_Op_Expon): Relocate left - and right operands after performing the validity checks. Required - because validity checks may remove side effects from the operands. - -2017-04-25 Javier Miranda <miranda@adacore.com> - - * exp_attr.adb (Attribute_Unrestricted_Access): - Do not disable implicit type conversion. Required to generate - code that displaces the pointer to reference the secondary - dispatch table. - -2017-04-25 Pascal Obry <obry@adacore.com> - - * prj-attr.adb, snames.ads-tmpl: Add package Install's - Required_Artifacts attribute. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_util.adb (Same_Value): String literals are compile-time - values, and comparing them must use Expr_Value_S. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_ch4.adb (Complete_Object_Interpretation): If an explicit - dereference is introduced for the object, and the object is - overloaded, do not check whether it is aliased, because it may - include an implicit dereference. - * sem_type.adb (Disambiguate): If two interpretations are access - attribute types with the same designated type keep either of - them and do not report an ambiguity. A true ambiguity will be - reported elsewhere. - -2017-04-25 Bob Duff <duff@adacore.com> - - * a-numeri.ads: Change the encoding of Greek letter Pi from - brackets encoding to UTF-8. Use pragma Wide_Character_Encoding - to indicate the encoding. We considered using a byte order mark - (BOM), but that causes various trouble (misc software eats the - BOM, if you have a patch with a BOM, then it's not at the start - of the patch, so it's not a BOM, the BOM affects with-ing files, - etc.). - * scng.adb, s-wchcnv.adb: Minor. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch3.adb, sem_ch8.adb, sem_disp.adb: Minor reformatting. -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_ch3.adb (Add_Internal_Interface_Entities): Move - Has_Non_Trivial_Precondition to sem_util. for use elsewhere. - Improve error message on operations that inherit non-conforming - classwide preconditions from ancestor and progenitor. - * sem_util.ads, sem_util.adb (Has_Non_Trivial_Precondition): - moved here from sem_ch3. - * sem_ch8.adb (Analyze_Subprogram_Renaming): Implement legality - check given in RM 6.1.1 (17) concerning renamings of overriding - operations that inherits class-wide preconditions from ancestor - or progenitor. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Code cleanup. - (Build_Adjust_Statements): Code cleanup. - (Build_Finalizer): Update the initialization of - Exceptions_OK. - (Build_Finalize_Statements): Code cleanup. - (Build_Initialize_Statements): Code cleanup. - (Make_Deep_Array_Body): Update the initialization of - Exceptions_OK. - (Make_Deep_Record_Body): Update the initialization of Exceptions_OK. - (Process_Object_Declaration): Generate a null exception handler only - when exceptions are allowed. - (Process_Transients_In_Scope): Update the initialization of - Exceptions_OK. - * exp_util.ads, exp_util.adb (Exceptions_In_Finalization_OK): New - routine. - * sem_ch11.adb (Analyze_Exception_Handlers): Do not check any - restrictions when the handler is internally generated and the - mode is warnings. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_ch3.adb (Has_Non_Trivial_Precondition): New predicate to - enforce legality rule on classwide preconditions inherited from - both an ancestor and a progenitor (RM 6.1.1 (10-13). - * sem_disp.adb (Check_Dispatching_Context): A call to an abstract - subprogram need not be dispatching if it appears in a precondition - for an abstract or null subprogram. - -2017-04-25 Gary Dismukes <dismukes@adacore.com> - - * sem_ch10.adb: Minor typo fix. - -2017-04-25 Arnaud Charlet <charlet@adacore.com> - - * gcc-interface/Makefile.in: Cleanup VxWorks targets. - -2017-04-25 Eric Botcazou <ebotcazou@adacore.com> - - * fname.adb (Is_Internal_File_Name): Arrange for the slices to - have a length which is a power of 2. - (Is_Predefined_File_Name): Likewise. Adjust comment. - -2017-04-25 Bob Duff <duff@adacore.com> - - * exp_aggr.adb (Component_Count): Protect the - arithmetic from attempting to convert a value >= 2**31 to Int, - which would otherwise raise Constraint_Error. - -2017-04-25 Bob Duff <duff@adacore.com> - - * opt.ads (Locking_Policy): Fix incorrect documentation. The - first character of the policy name is not unique. - -2017-04-25 Bob Duff <duff@adacore.com> - - * s-fileio.adb (Name): Raise Use_Error if the file is a temp file. - * s-ficobl.ads (Is_Temporary_File): Remove incorrect comment - about this flag not being used. It was already used, and it is - now used more. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * einfo.adb Flag301 is now known as Ignore_SPARK_Mode_Pragmas. - (Ignore_SPARK_Mode_Pragmas): New routine. - (Set_Ignore_SPARK_Mode_Pragmas): New routine. - (Write_Entity_Flags): Add an entry for Ignore_SPARK_Mode_Pragmas. - * einfo.ads Add new attribute Ignore_SPARK_Mode_Pragmas and update - related entities. - (Ignore_SPARK_Mode_Pragmas): New routine - along with pragma Inline. - (Set_Ignore_SPARK_Mode_Pragmas): New routine along with pragma Inline. - * opt.ads Rename flag Ignore_Pragma_SPARK_Mode to - Ignore_SPARK_Mode_Pragmas_In_Instance. - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): - Save and restore the value of global flag - Ignore_SPARK_Mode_Pragmas_In_Instance. Set or reinstate the value - of global flag Ignore_SPARK_Mode_Pragmas_In_Instance when either - the corresponding spec or the body must ignore all SPARK_Mode - pragmas found within. - (Analyze_Subprogram_Declaration): Mark - the spec when it needs to ignore all SPARK_Mode pragmas found - within to allow the body to infer this property in case it is - instantiated or inlined later. - * sem_ch7.adb (Analyze_Package_Body_Helper): Save and restore the - value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance. Set - the value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance - when the corresponding spec also ignored all SPARK_Mode pragmas - found within. - (Analyze_Package_Declaration): Mark the spec when - it needs to ignore all SPARK_Mode pragmas found within to allow - the body to infer this property in case it is instantiated or - inlined later. - * sem_ch12.adb (Analyze_Formal_Package_Declaration): - Save and restore the value of flag - Ignore_SPARK_Mode_Pragmas_In_Instance. Mark the - formal spec when it needs to ignore all SPARK_Mode - pragmas found within to allow the body to infer this - property in case it is instantiated or inlined later. - (Analyze_Package_Instantiation): Save and restore the value - of global flag Ignore_SPARK_Mode_Pragmas_In_Instance. Mark - the instance spec when it needs to ignore all SPARK_Mode - pragmas found within to allow the body to infer this - property in case it is instantiated or inlined later. - (Analyze_Subprogram_Instantiation): Save and restore the value - of global flag Ignore_SPARK_Mode_Pragmas_In_Instance. Mark the - instance spec and anonymous package when they need to ignore - all SPARK_Mode pragmas found within to allow the body to infer - this property in case it is instantiated or inlined later. - (Instantiate_Package_Body): Save and restore the value of global - flag Ignore_SPARK_Mode_Pragmas_In_Instance. Set the value of - global flag Ignore_SPARK_Mode_Pragmas_In_Instance when the - corresponding instance spec also ignored all SPARK_Mode pragmas - found within. - (Instantiate_Subprogram_Body): Save and restore the - value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance. Set - the value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance - when the corresponding instance spec also ignored all SPARK_Mode - pragmas found within. - * sem_prag.adb (Analyze_Pragma): Update the reference to - Ignore_Pragma_SPARK_Mode. - * sem_util.adb (SPARK_Mode_Is_Off): A construct which ignored - all SPARK_Mode pragmas defined within yields mode "off". - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * bindgen.adb, exp_dbug.adb, errout.adb, fname.adb: Minor reformatting. - -2017-04-25 Bob Duff <duff@adacore.com> - - * exp_atag.adb (Build_CW_Membership): Add "Suppress => - All_Checks" to avoid generating unnecessary checks. - * exp_ch4.adb (Expand_N_In, Make_Tag_Check): Add "Suppress => - All_Checks". - * sem.ads: Fix comment. - * expander.ads: Fix comment. - * exp_atag.ads: Fix comment: "Index = 0" should be - "Index >= 0". - -2017-04-25 Gary Dismukes <dismukes@adacore.com> - - * s-taprop-linux.adb: Minor editorial fixes. - -2017-04-25 Eric Botcazou <ebotcazou@adacore.com> - - * sem_util.adb (New_Copy_Tree): Put back the declarations of the - hash tables at library level. Reinstate the NCT_Hash_Tables_Used - variable and set it to True whenever the main hash table is - populated. Short- circuit the Assoc function if it is false - and add associated guards. - -2017-04-25 Olivier Hainque <hainque@adacore.com> - - * bindgen.adb (Gen_Elab_Calls): Also update counter of lone - specs without elaboration code that have an elaboration counter - nevertheless, e.g. when compiled with -fpreserve-control-flow. - * sem_ch10.adb (Analyze_Compilation_Unit): - Set_Elaboration_Entity_Required when requested to preserve - control flow, to ensure the unit elaboration is materialized at - bind time, resulting in the inclusion of the unit object file - in the executable closure at link time. - -2017-04-25 Pierre-Marie de Rodat <derodat@adacore.com> - - * exp_dbug.adb: In Debug_Renaming_Declaration, - when dealing with indexed component, accept to produce a renaming - symbol when the index is an IN parameter or when it is a name - defined in an outer scope. - -2017-04-25 Yannick Moy <moy@adacore.com> - - * errout.adb (Error_Msg): Adapt continuation - message in instantiations and inlined bodies for info messages. - -2017-04-25 Eric Botcazou <ebotcazou@adacore.com> - - * fname.adb (Has_Internal_Extension): Add pragma Inline. - Use direct 4-character slice comparisons. - (Has_Prefix): Add - pragma Inline. (Has_Suffix): Delete. - (Is_Internal_File_Name): - Test Is_Predefined_File_Name first. - (Is_Predefined_File_Name): - Use direct slice comparisons as much as possible and limit all - comparisons to at most 8 characters. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * checks.adb (Insert_Valid_Check): Code cleanup. - * exp_ch6.adb (Add_Validation_Call_By_Copy_Code): New routine. - (Expand_Actuals): Generate proper copy-back for a validation - variable when it acts as the argument of a type conversion. - * sem_util.adb (Is_Validation_Variable_Reference): Augment the - predicate to operate on type qualifications. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_prag.adb, exp_ch6.adb, binde.adb, sem_disp.adb, s-fileio.adb: - Minor reformatting. - -2017-04-25 Bob Duff <duff@adacore.com> - - * sem_prag.adb (No_Return): Give an error if the pragma applies - to a body. Specialize the error for the specless body case, - as is done for (e.g.) pragma Convention. - * debug.adb: Add switch -gnatd.J to disable the above legality - checks. This is mainly for use in our test suite, to avoid - rewriting a lot of illegal (but working) code. It might also - be useful to customers. Under this switch, if a pragma No_Return - applies to a body, and the procedure raises an exception (as it - should), the pragma has no effect. If the procedure does return, - execution is erroneous. - -2017-04-25 Bob Duff <duff@adacore.com> - - * exp_ch6.adb (Expand_Actuals): This is the - root of the problem. It took N as an 'in out' parameter, and in - some cases, rewrote N, but then set N to Original_Node(N). So - the node returned in N had no Parent. The caller continued - processing of this orphaned node. In some cases that caused a - crash (e.g. Remove_Side_Effects climbs up Parents in a loop, - and trips over the Empty Parent). The solution is to make N an - 'in' parameter. Instead of rewriting it, return the list of - post-call actions, so the caller can do the rewriting later, - after N has been fully processed. - (Expand_Call_Helper): Move most of Expand_Call here. It has - too many premature 'return' statements, and we want to do the - rewriting on return. - (Insert_Post_Call_Actions): New procedure to insert the post-call - actions in the appropriate place. In the problematic case, - that involves rewriting N as an Expression_With_Actions. - (Expand_Call): Call the new procedures Expand_Call_Helper and - Insert_Post_Call_Actions. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_prag.adb (Inherits_Class_Wide_Pre): Cleanup code, handle - properly type derived from generic formal types, to handle - properly modified version of ACATS 4.1B B611017. - -2017-04-25 Javier Miranda <miranda@adacore.com> - - * exp_unst.adb (Subp_Index): Adding missing - support for renamings and functions that return a constrained - array type (i.e. functions for which the frontend built a - procedure with an extra out parameter). - -2017-04-25 Pascal Obry <obry@adacore.com> - - * s-string.adb: Minor code clean-up. - -2017-04-25 Bob Duff <duff@adacore.com> - - * s-os_lib.ads, s-os_lib.adb (Non_Blocking_Wait_Process): New - procedure. - * adaint.h, adaint.c (__gnat_portable_no_block_wait): C support - function for Non_Blocking_Wait_Process. - -2017-04-25 Bob Duff <duff@adacore.com> - - * prep.adb (Preprocess): Remove incorrect - Assert. Current character can be ASCII.CR. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_prag.adb (Set_Convention_From_Pragma): Cleanup code for - convention Stdcall, which has a number of exceptions. Convention - is legal on a component declaration whose type is an anonymous - access to subprogram. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch4.adb: sem_ch4.adb Various reformattings. - (Try_One_Prefix_Interpretation): Use the base type when dealing - with a subtype created for purposes of constraining a private - type with discriminants. - -2017-04-25 Javier Miranda <miranda@adacore.com> - - * einfo.ads, einfo.adb (Has_Private_Extension): new attribute. - * warnsw.ads, warnsw.adb (All_Warnings): Set warning on late - dispatching primitives (Restore_Warnings): Restore warning on - late dispatching primitives (Save_Warnings): Save warning on late - dispatching primitives (Do_Warning_Switch): Use -gnatw.j/-gnatw.J - to enable/disable this warning. - (WA_Warnings): Set warning on late dispatching primitives. - * sem_ch3.adb (Analyze_Private_Extension_Declaration): Remember - that its parent type has a private extension. - * sem_disp.adb (Warn_On_Late_Primitive_After_Private_Extension): - New subprogram. - * usage.adb: Document -gnatw.j and -gnatw.J. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch7.adb, checks.adb, sem_prag.adb, eval_fat.adb: Minor - reformatting. - -2017-04-25 Bob Duff <duff@adacore.com> - - * binde.adb (Validate): Do not pass dynamic strings - to pragma Assert, because older compilers do not support that. - -2017-04-25 Bob Duff <duff@adacore.com> - - * s-fileio.adb (Close): When a temp file is - closed, delete it and clean up its Temp_File_Record immediately, - rather than waiting until later. - (Temp_File_Record): Add File - component, so Close can know which Temp_File_Record corresponds - to the file being closed. - (Delete): Don't delete temp files, - because they are deleted by Close. - (Open): Set the File component - of Temp_File_Record. This requires moving the creation of the - Temp_File_Record to the end, after the AFCB has been created. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * checks.adb (Insert_Valid_Check): Do not generate - a validity check when inside a generic. - -2017-04-25 Yannick Moy <moy@adacore.com> - - * sem_res.adb (Resolve_Type_Conversion): Fix bad logic. - -2017-04-25 Arnaud Charlet <charlet@adacore.com> - - * snames.ads-tmpl (Snames): More names for detecting predefined - potentially blocking subprograms. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_prag.adb (Analyze_Pre_Post_Condition): The rules - concerning inheritance of class-wide preconditions do not apply - to postconditions. - -2017-04-25 Bob Duff <duff@adacore.com> - - * s-ficobl.ads: Minor comment fix. - -2017-04-25 Yannick Moy <moy@adacore.com> - - * checks.adb (Apply_Scalar_Range_Check): Analyze precisely - conversions from float to integer in GNATprove mode. - (Apply_Type_Conversion_Checks): Make sure in GNATprove mode - to call Apply_Type_Conversion_Checks, so that range checks - are properly positioned when needed on conversions, including - when converting from float to integer. (Determine_Range): In - GNATprove mode, take into account the possibility of conversion - from float to integer. - * sem_res.adb (Resolve_Type_Conversion): Only enforce range - check on conversions from fixed-point to integer, not anymore - on conversions from floating-point to integer, when in GNATprove - mode. - -2017-04-25 Yannick Moy <moy@adacore.com> - - * checks.adb (Determine_Range_R): Special case type conversions - from integer to float in order to get bounds in that case too. - * eval_fat.adb (Machine): Avoid issuing warnings in GNATprove - mode, for computations involved in interval checking. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * checks.adb (Insert_Valid_Check): Partially reimplement validity - checks. - * einfo.adb Node36 is now used as Validated_Object. - (Validated_Object): New routine. - (Set_Validated_Object): New routine. - (Write_Field36_Name): Add an entry for Validated_Object. - * einfo.ads Add new attribute Validated_Object along with - usage in entities. - (Validated_Object): New routine along with pragma Inline. - (Set_Validated_Object): New routine along with pragma Inline. - * exp_attr.adb (Make_Range_Test): Add processing for validation - variables to avoid extra reads and copies of the prefix. - * exp_ch6.adb (Expand_Actuals): Add copy-back for validation - variables in order to reflect any changes done in the variable - back into the original object. - * sem_util.adb (Is_Validation_Variable_Reference): New routine. - * sem_util.ads (Is_Validation_Variable_Reference): New routine. - -2017-04-25 Steve Baird <baird@adacore.com> - - * exp_ch7.adb (Build_Array_Deep_Procs, - Build_Record_Deep_Procs, Make_Finalize_Address_Body): Don't - generate Finalize_Address routines for CodePeer. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_prag.adb (Inherits_Class_Wide_Pre): subsidiary of - Analyze_Pre_Post_Condition, to implement the legality checks - mandated by AI12-0131: Pre'Class shall not be specified for an - overriding primitive subprogram of a tagged type T unless the - Pre'Class aspect is specified for the corresponding primitive - subprogram of some ancestor of T. - -2017-04-25 Bob Duff <duff@adacore.com> - - * sem_ch8.adb (Use_One_Type): If a use_type_clause - is redundant, set its Used_Operations to empty. This is only - necessary for use clauses that appear in the parent of a generic - child unit, because those use clauses get reanalyzed when we - instantiate the generic, and we don't want the Used_Operations - carried over from the original context (where it was probably - not redundant). - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch6.adb: Minor reformatting. - -2017-04-25 Bob Duff <duff@adacore.com> - - * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): - Use Source_Index (Current_Sem_Unit) to find the correct casing. - * exp_prag.adb (Expand_Pragma_Check): Use Source_Index - (Current_Sem_Unit) to find the correct casing. - * par.adb (Par): Null out Current_Source_File, to ensure that - the above bugs won't rear their ugly heads again. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_ch8.adb (Find_Type): For an attribute reference - 'Class, if prefix type is synchronized and previous errors - have suppressed the creation of the corresponding record type, - create a spurious class-wide for the synchonized type itself, - to catch other misuses of the attribute - -2017-04-25 Steve Baird <baird@adacore.com> - - * exp_ch6.adb (Expand_Simple_Function_Return): if CodePeer_Mode - is True, then don't generate the accessibility check for the - tag of a tagged result. - * exp_intr.adb (Expand_Dispatching_Constructor_Call): - if CodePeer_Mode is True, then don't generate the - tag checks for the result of call to an instance of - Ada.Tags.Generic_Dispatching_Constructor (i.e., both the "is a - descendant of" check and the accessibility check). - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_ch13.adb: Code cleanups. - * a-strbou.ads: minor whitespace fix in Trim for bounded strings. - * sem_ch8.ads: Minor comment fix. - -2017-04-25 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch4.adb (Library_Level_Target): New function. - (Expand_Concatenate): When optimization is enabled, also expand - the operation out-of-line if the concatenation is present within - the expression of the declaration of a library-level object and - not only if it is the expression of the declaration. - -2017-04-25 Bob Duff <duff@adacore.com> - - * freeze.adb (Freeze_Object_Declaration): Do - not Remove_Side_Effects if there is a pragma Linker_Section, - because in that case we want static initialization in the - appropriate section. - -2017-04-25 Gary Dismukes <dismukes@adacore.com> - - * exp_dbug.adb: Minor rewording and reformatting. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_attr.adb (Statically_Denotes_Object): New predicate, to - handle the proposed changes to rules concerning potentially - unevaluated expressions, to include selected components that - do not depend on discriminants, and indexed components with - static indices. - * sem_util.adb (Is_Potentially_Unevaluated): Add check for - predicate in quantified expression, and fix bugs in the handling - of case expressions and membership test. - (Analyze_Attribute_Old_Result): use new predicate. - (Analyze_Attribute, case Loop_Entry): ditto. - -2017-04-25 Bob Duff <duff@adacore.com> - - * s-secsta.adb (SS_Info): Add a comment - explaining why we don't need to walk all the chunks in order to - compute the total size. - -2017-04-25 Bob Duff <duff@adacore.com> - - * namet.ads, namet.adb (Global_Name_Buffer): Increase the length - of the global name buffer to 4*Max_Line_Length. - -2017-04-25 Javier Miranda <miranda@adacore.com> - - * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): When creating a - renaming entity for debug information, mark the entity as needing debug - info if it comes from sources. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Remove the - restriction converning the use of 'Address where the prefix is - of a controlled type. - -2017-04-25 Pierre-Marie de Rodat <derodat@adacore.com> - - * exp_dbug.adb: In Debug_Renaming_Declaration, - skip slices that are made redundant by an indexed component - access. - * atree.h: New definition for Original_Node. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_prag.adb, sem_prag.ads: Minor reformatting. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_ch3.adb (Check_Entry_Contract): Call - Preanalyze_Spec_Expression so that resolution takes place as well. - * sem_util.adb (Check_Internal_Protected_Use): Reject properly - internal calls that appear in preconditions of protected - operations, in default values for same, and in contract guards - for contract cases in SPARK. - -2017-04-25 Eric Botcazou <ebotcazou@adacore.com> - - * a-numaux.ads: Fix description of a-numaux-darwin - and a-numaux-x86. - (Double): Define to Long_Float. - * a-numaux-vxworks.ads (Double): Likewise. - * a-numaux-darwin.ads - (Double): Likewise. - * a-numaux-libc-x86.ads (Double): Define to Long_Long_Float. - * a-numaux-x86.ads: Fix package description. - * a-numaux-x86.adb (Is_Nan): Minor tweak. - (Reduce): Adjust and complete description. Call Is_Nan instead of - testing manually. Use an integer temporary to hold rounded value. - * a-numaux-darwin.adb (Reduce): Likewise. - (Is_Nan): New function. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_ch4.adb (Analyze_Selected_Component): Additional refinement - on analysis of prefix whose type is a current instance of a - synchronized type, but where the prefix itself is an entity that - is an object. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * exp_ch5.adb (Replace_Target): When rewriting the RHS, preserve - the identity of callable entities therein, because they have been - properly resolved, and prefixed calls may have been rewritten - as normal calls. - -2017-04-25 Patrick Bernardi <bernardi@adacore.com> - - * exp_ch3.adb (Build_Init_Statements): Convert - the expression of the pragma/aspect Secondary_Stack_Size to - internal type System.Parameters.Size_Type before assigning - it to the Secondary_Stack_Size component of the task type's - corresponding record. - -2017-04-25 Eric Botcazou <ebotcazou@adacore.com> - - * sem_eval.adb (Compile_Time_Compare): Reinstate the expr+literal - (etc) optimizations when the type is modular and the offsets - are equal. - -2017-04-25 Eric Botcazou <ebotcazou@adacore.com> - - * s-osinte-freebsd.ads: Minor comment tweaks - -2017-04-25 Javier Miranda <miranda@adacore.com> - - * urealp.adb (UR_Write): Reverse previous patch - adding documentation on why we generate multiplications instead - of divisions (needed to avoid expressions whose computation with - large numbers may cause division by 0). - -2017-04-25 Bob Duff <duff@adacore.com> - - * erroutc.adb (Set_Specific_Warning_Off, - Set_Warnings_Mode_Off): Use the correct source file for - Stop. Was using Current_Source_File, which is only valid during - parsing. Current_Source_File will have a leftover value from - whatever file happened to be parsed last, because of a with_clause - or something. - -2017-04-25 Bob Duff <duff@adacore.com> - - * lib.ads, lib.adb (In_Internal_Unit): New functions similar - to In_Predefined_Unit, but including GNAT units. - * sem_util.ads, sem_util.adb (Should_Ignore_Pragma): Replace - with Should_Ignore_Pragma_Par and Should_Ignore_Pragma_Sem, - because Should_Ignore_Pragma was not working reliably outside - the parser, because Current_Source_File is not valid. - * sem_prag.adb, exp_prag.adb: Call Should_Ignore_Pragma_Sem. - * par-prag.adb: Call Should_Ignore_Pragma_Par. - -2017-04-25 Arnaud Charlet <charlet@adacore.com trojanek> - - * gnat1drv.adb (Gnat1Drv): Disable Generate_Processed_File in - codepeer mode. - -2017-04-25 Javier Miranda <miranda@adacore.com> - - * urealp.adb (UR_Write): Fix output of constants with a base other - that 10. - -2017-04-25 Justin Squirek <squirek@adacore.com> - - * sem_ch13.adb (Get_Interfacing_Aspects): Moved to sem_util.adb. - * sem_prag.adb (Analyze_Pragma, Process_Import_Or_Interface): - Add extra parameter for Process_Interface_Name. - (Process_Interface_Name): Add parameter for pragma to analyze - corresponding aspect. - * sem_util.ads, sem_util.adb (Get_Interfacing_Aspects): Added - from sem_ch13.adb - -2017-04-25 Gary Dismukes <dismukes@adacore.com> - - * exp_ch7.adb, einfo.ads, sem_prag.adb: Minor reformatting and typo - correction. - -2017-04-25 Yannick Moy <moy@adacore.com> - - * sem_res.adb (Resolve_Comparison_Op): Do not - attempt evaluation of relational operations inside assertions. - -2017-04-25 Justin Squirek <squirek@adacore.com> - - * exp_util.adb (Add_Interface_Invariants): - Restored, code moved back from Build_Invariant_Procedure_Body. - (Add_Parent_Invariants): Restored, code moved back from - Build_Invariant_Procedure_Body. - (Build_Invariant_Procedure_Body): - Remove refactored calls and integrated code from - Add_Parent_Invariants and Add_Interface_Invariants. - -2017-04-25 Johannes Kanig <kanig@adacore.com> - - * errout.adb (Output_Messages): Adjust computation of total - errors - * erroutc.adb (Error_Msg): In statistics counts, deal - correctly with informational messages that are not warnings. - * errutil.adb (Finalize): adjust computation of total errors. - -2017-04-25 Arnaud Charlet <charlet@adacore.com trojanek> - - * terminals.c (__gnat_terminate_pid): New. - * g-exptty.ads (Terminate_Process): New. Update comments. - -2017-04-25 Arnaud Charlet <charlet@adacore.com> - - * a-cfinve.ads, a-cofove.ads (Empty_Vector): add Global contract. - -2017-04-25 Justin Squirek <squirek@adacore.com> - - * sem_ch3.adb (Analyze_Declarations): Minor - correction to comments, move out large conditional and scope - traversal into a predicate. - (Uses_Unseen_Lib_Unit_Priv): Predicate function made from extracted - logic. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_ch4.adb (Analyze_Selected_Component): Refine analysis - of prefix whose type is a current instance of a synchronized - type. If the prefix is an object this is an external call (or - requeue) that can only access public operations of the object. The - previous predicate was too restrictive, and did not allow public - protected operations, only task entries. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch5.adb, fname.adb: Minor reformatting. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * einfo.adb (Is_Anonymous_Access_Type): New routine. - * einfo.ads Update the placement of - E_Anonymous_Access_Subprogram_Type along with all subtypes that - mention the ekind. - (Is_Anonymous_Access_Type): New routine. - * exp_ch7.adb (Allows_Finalization_Master): Do not generate a - master for an access type subject to pragma No_Heap_Finalization. - * exp_util.adb (Build_Allocate_Deallocate_Proc): An object being - allocated or deallocated does not finalization actions if the - associated access type is subject to pragma No_Heap_Finalization. - * opt.ads Add new global variable No_Heap_Finalization_Pragma. - * par-prag.adb Pragma No_Heap_Finalization does not need special - processing from the parser. - * sem_ch6.adb (Check_Return_Subtype_Indication): Remove ancient - ??? comments. Use the new predicate Is_Anonymous_Access_Type. - * sem_prag.adb Add an entry in table Sig_Flags for pragma - No_Heap_Finalization. - (Analyze_Pragma): Add processing for - pragma No_Heap_Finalization. Update various error messages to - use Duplication_Error. - * sem_util.ads, sem_util.adb (No_Heap_Finalization): New routine. - * snames.ads-tmpl: Add new predefined name No_Heap_Finalization - and corresponding pragma id. - -2017-04-25 Bob Duff <duff@adacore.com> - - * freeze.adb (Freeze_Record_Type): Use the - underlying type of the component type to determine whether it's - elementary. For representation clause purposes, a private type - should behave the same as its full type. - * fname.ads, fname.adb (Is_Predefined_File_Name): - Make sure things like "system.ali" are recognized as predefined. - -2017-04-25 Javier Miranda <miranda@adacore.com> - - * debug.adb: Update documentation of -gnatd.6. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_ch5.adb (Preanalyze_Range): Handle properly an Ada2012 - element iterator when the name is an overloaded function call, - one of whose interpretations yields an array. - -2017-04-25 Bob Duff <duff@adacore.com> - - * uname.ads, uname.adb (Is_Predefined_Unit_Name, - Is_Internal_Unit_Name): New functions for operating on unit - names, as opposed to file names. There's some duplicated code - with fname.adb, which is unfortunate, but it seems like we don't - want to add dependencies here. - * fname-uf.adb (Get_File_Name): Change Is_Predefined_File_Name - to Is_Predefined_Unit_Name; the former was wrong, because Uname - is not a file name at all. - * fname.ads, fname.adb: Document the fact that - Is_Predefined_File_Name and Is_Internal_File_Name can be called - for ALI files, and fix the code so it works properly for ALI - files. E.g. these should return True for "system.ali". - -2017-04-25 Justin Squirek <squirek@adacore.com> - - * exp_util.adb (Add_Invariant): Removed, - code moved to Add_Invariant_Check, Add_Inherited_Invariant, - and Add_Own_Invariant. (Add_Invariant_Check): Used - for adding runtime checks from any kind of invariant. - (Add_Inherited_Invariant): Generates invariant checks for - class-wide invariants (Add_Interface_Invariants): Removed, code - moved to Build_Invariant_Procedure_Body (Add_Own_Invariant): - Create a types own invariant procedure (Add_Parent_Invariants): - Removed, code moved to Build_Invariant_Procedure_Body - (Build_Invariant_Procedure_Body): Add refactored calls - and integrated code from Add_Parent_Invariants and - Add_Interface_Invariants. - (Process_Type): Removed, the - relavant code was inlined into both Add_Own_Invariant and - Add_Inherited_Invariant. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * make.adb, par-ch2.adb, sem_util.adb, scans.ads, sem_ch8.adb, - scn.adb, osint.adb, fname.adb: Minor reformatting. - -2017-04-25 Pascal Obry <obry@adacore.com> - - * s-taprop-mingw.adb: Do not check for CloseHandle in - Finalize_TCB. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_util.adb (Check_Part_Of_Reference): - Continue to examine the context if the reference appears within - an expression function. - -2017-04-25 Justin Squirek <squirek@adacore.com> - - * exp_ch7.adb, exp_ch7.ads Remove Build_Invariant_Procedure_Body - and Build_Invariant_Procedure_Declaration. - * exp_util.ads, exp_util.adb Add Build_Invariant_Procedure_Body - and Build_Invariant_Procedure_Declaration from exp_ch7 - and break-out Is_Untagged_Private_Derivation from - Build_Invariant_Procedure_Body. - (Replace_Type_References): - Append an extra parameter to allow for dispatching replacements - and add the corrasponding logic. - (Type_Invariant): Remove - Replace_Typ_Refs and replace its references with calls to - Replace_Type_References. - * sem_ch3.adb, sem_prag.adb: Remove with and use of exp_ch7. - -2017-04-25 Bob Duff <duff@adacore.com> - - * sem_util.ads, sem_util.adb (Should_Ignore_Pragma): New function - that returns True when appropriate. - * par-prag.adb, exp_prag.adb, sem_prag.adb: Do not ignore pragmas - when compiling predefined files. - * fname.ads, fname.adb (Is_Predefined_File_Name): Fix bug: - "gnat.adc" should not be considered a predefined file name. - That required (or at least encouraged) a lot of cleanup of global - variable usage. We shouldn't be communicating information via - the global name buffer. - * bindgen.adb, errout.adb, fname-uf.adb, lib-load.adb, make.adb, - * restrict.adb, sem_ch10.adb, sem_ch6.adb, sem_ch8.adb: Changes - required by the above-mentioned cleanup. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * osint.adb (Find_File): Handle properly a request for a - configuration file whose name is a directory. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_attr.adb, sem_ch5.adb: Minor reformatting. - -2017-04-25 Bob Duff <duff@adacore.com> - - * types.ads: Minor: Fix '???' comment. - * sem_ch8.adb: Minor comment fix. - -2017-04-25 Bob Duff <duff@adacore.com> - - * sem_prag.adb: Remove suspicious uses of Name_Buf. - * stringt.ads, stringt.adb, exp_dbug.adb, sem_dim.adb: Remove - Add_String_To_Name_Buffer, to avoid using the global Name_Buf. - Add String_To_Name with no side effects. - -2017-04-25 Justin Squirek <squirek@adacore.com> - - * sem_ch3.adb (Analyze_Declarations): Add - additional condition for edge case. - -2017-04-25 Bob Duff <duff@adacore.com> - - * par-ch2.adb, scans.ads, scn.adb: Do not give an error for - reserved words inside pragmas. This is necessary to allow the - pragma name Interface to be used in pragma Ignore_Pragma. - * par.adb: Minor comment fix. - -2017-04-25 Javier Miranda <miranda@adacore.com> - - * a-tags.ads, a-tags.adb (Type_Is_Abstract): Renamed as Is_Abstract. - * rtsfind.ads (RE_Type_Is_Abstract): Renamed as Is_Abstract. - * exp_disp.adb (Make_DT): Update occurrences of RE_Type_Is_Abstract. - * exp_intr.adb (Expand_Dispatching_Constructor_Call): Update - occurrences of RE_Type_Is_Abstract - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_util.adb (Build_Chain): Account for ancestor - subtypes while traversing the derivation chain. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_attr.adb: minor reformatting. - -2017-04-25 Doug Rupp <rupp@adacore.com> - - * sigtramp-vxworks-target.inc [PPC64]: Add a .localentry pseudo-op. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_ch5.adb (Analyze_Assignment): Reset Full_Analysis flag on - the first pass over an assignment statement with target names, - to prevent the generation of subtypes (such as discriminated - record components)that may carry the target name outside of the - tree for the assignment. The subtypes will be generated when - the assignment is reanalyzed in full. - (Analyze_Target_Name): Handle properly class-wide types. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * elists.ads, elists.adb (Prepend_Unique_Elmt): New routine. - * exp_ch3.adb (Freeze_Type): Signal the DIC body is created for - the purposes of freezing. - * exp_util.adb Update the documentation and structure of the - type map used in class-wide semantics of assertion expressions. - (Add_Inherited_Tagged_DIC): There is really no need to preanalyze - and resolve the triaged expression because all substitutions - refer to the proper entities. Update the replacement of - references. - (Build_DIC_Procedure_Body): Add formal parameter - For_Freeze. Add local variable Build_Body. Inherited DIC pragmas - are now only processed when freezing occurs. Build a body only - when one is needed. - (Entity_Hash): Removed. - (Map_Types): New routine. - (Replace_Object_And_Primitive_References): Removed. - (Replace_References): New routine. - (Replace_Type_References): Moved to the library level of Exp_Util. - (Type_Map_Hash): New routine. - (Update_Primitives_Mapping): Update the mapping call. - (Update_Primitives_Mapping_Of_Types): Removed. - * exp_util.ads (Build_DIC_Procedure_Body): Add formal - parameter For_Freeze and update the comment on usage. - (Map_Types): New routine. - (Replace_References): New routine. - (Replace_Type_References): Moved to the library level of Exp_Util. - (Update_Primitives_Mapping_Of_Types): Removed. - * sem_ch7.adb (Preserve_Full_Attributes): Propagate the DIC - properties of the private type to the full view in case the full - view derives from a parent type and inherits a DIC pragma. - * sem_prag.adb (Analyze_Pragma): Guard against a case where a - DIC pragma is placed at the top of a declarative region. - -2017-04-25 Arnaud Charlet <charlet@adacore.com trojanek> - - * a-tasatt.adb: Complete previous change and use an unsigned - int to avoid overflow checks. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_attr.adb (Analyze_Attribute, case 'Access): Specialize - the error message when the attribute reference is an actual in - a call to a subprogram inherited from a generic formal type with - unknown discriminants, which makes the subprogram and its formal - parameters intrinsic (see RM 6.3.1 (8) and (13)). - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_aggr.adb, inline.adb, einfo.adb, einfo.ads, scng.adb, - sem_prag.adb: Minor reformatting. - -2017-04-25 Bob Duff <duff@adacore.com> - - * sem_attr.adb (Type_Key): Add code in the - recursive Compute_Type_Key to protect against fetching the source - code for Standard, in case a component of the type is declared - in Standard. There was already code to do this for the original - type, but not for its components. - -2017-04-25 Javier Miranda <miranda@adacore.com> - - * exp_ch3.adb (Build_Initialization_Call): Handle - subtypes of private types when searching for the underlying full - view of a private type. - -2017-04-25 Javier Miranda <miranda@adacore.com> - - * sem_res.adb (Set_Mixed_Mode_Operand): A universal - real conditional expression can appear in a fixed-type context - and must be resolved with that context to facilitate the code - generation to the backend. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * einfo.adb, einfo.ads (Body_Needed_For_Inlining): New flag, - to indicate whether during inline processing, when some unit U1 - appears in the context of a unit U2 compiled for instantiation - or inlining purposes, the body of U1 needs to be compiled as well. - * sem_prag.adb (Process_Inline): Set Body_Needed_For_Inlining if - context is a package declaration. - * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration, - Analyze_Generic_Package_Declaration): ditto. - * inline.adb (Analyze_Inlined_Bodies): Check - Body_Needed_For_Inlining. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * par.adb (Current_Assign_Node): Global variable use to record - the presence of a target_name in the right hand side of the - assignment being parsed. - * par-ch4.adb (P_Name): If the name is a target_name, mark the - enclosing assignment node accordingly. - * par-ch5.adb (P_Assignment_Statement): Set Current_Assign_Node - appropriately. - * sem_ch5.adb (Analyze_Assignment): Disable expansion before - analyzing RHS if the statement has target_names. - * sem_aggr.adb (Resolve_Iterated_Component_Association): Handle - properly choices that are subtype marks. - * exp_ch5.adb: Code cleanup. - -2017-04-25 Bob Duff <duff@adacore.com> - - * s-memory.adb: Add a comment regarding efficiency. - * atree.adb: Fix the assertion, and combine 2 assertions into one, - "the source has an extension if and only if the destination does." - * sem_ch3.adb, sem_ch13.adb: Address ??? comments. - -2017-04-25 Arnaud Charlet <charlet@adacore.com trojanek> - - * a-tasatt.adb (Set_Value): Fix handling of 32bits -> 64bits - conversion. - -2017-04-25 Doug Rupp <rupp@adacore.com> - - * init.c (__gnat_error_handler) [vxworks]: Turn on sigtramp - handling for ppc64-vx7. - * sigtramp-vxworks-target.inc - [SIGTRAMP_BODY]: Add section for ppc64-vx7. - -2017-04-25 Arnaud Charlet <charlet@adacore.com> - - * ada_get_targ.adb: New file. - -2017-04-25 Bob Duff <duff@adacore.com> - - * uintp.adb (Most_Sig_2_Digits): In case Direct (Right), fetch - Direct_Val (Right), instead of the incorrect Direct_Val (Left). - (UI_GCD): Remove ??? comment involving possible efficiency - improvements. This just isn't important after all these years. - Also minor cleanup. - * uintp.ads: Minor cleanup. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_util.adb, exp_util.ads, sem_ch7.adb, sem_prag.adb, exp_ch3.adb: - Revert previous changes. - * scng.adb: Minor reformatting. - * s-stratt.ads: Fix unbalanced parens in comment. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch3.adb, exp_util.adb, sem_prag.adb, freeze.adb, sem_util.adb: - Minor reformatting. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * scng.adb (Scan): Handle '@' appropriately. - * sem_ch5.adb: Code cleanup. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * freeze.adb (Check_Expression_Function): Do not check for the - use of deferred constants if the freezing of the expression - function is triggered by its generated body, rather than a - premature use. - -2017-04-25 Javier Miranda <miranda@adacore.com> - - * exp_attr.adb (Rewrite_Stream_Proc_Call): Handle - subtypes of private types when performing the view conversion. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch3.adb (Freeze_Type): Signal the DIC body is created for - the purposes of freezing. - * exp_util.adb Update the documentation and structure of the - type map used in class-wide semantics of assertion expressions. - (Add_Inherited_Tagged_DIC): There is really no need to preanalyze - and resolve the triaged expression because all substitutions - refer to the proper entities. Update the replacement of - references. - (Build_DIC_Procedure_Body): Add formal parameter - For_Freeze. Add local variable Build_Body. Inherited DIC pragmas - are now only processed when freezing occurs. Build a body only - when one is needed. - (Entity_Hash): Removed. - (Map_Types): New routine. - (Replace_Object_And_Primitive_References): Removed. - (Replace_References): New routine. - (Replace_Type_References): Moved to the library level of Exp_Util. - (Type_Map_Hash): New routine. - (Update_Primitives_Mapping): Update the mapping call. - (Update_Primitives_Mapping_Of_Types): Removed. - * exp_util.ads (Build_DIC_Procedure_Body): Add formal - parameter For_Freeze and update the comment on usage. - (Map_Types): New routine. - (Replace_References): New routine. - (Replace_Type_References): Moved to the library level of Exp_Util. - (Update_Primitives_Mapping_Of_Types): Removed. - * sem_ch7.adb (Preserve_Full_Attributes): Propagate the DIC - properties of the private type to the full view in case the full - view derives from a parent type and inherits a DIC pragma. - * sem_prag.adb (Analyze_Pragma): Guard against a case where a - DIC pragma is placed at the top of a declarative region. - -2017-04-25 Tristan Gingold <gingold@adacore.com> - - * s-mmap.ads (Data): Add pragma Inline. - -2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> - - * checks.adb (Insert_Valid_Check): Do not use - a renaming to alias a volatile name because this will lead to - multiple evaluations of the volatile name. Use a constant to - capture the value instead. - -2017-04-25 Doug Rupp <rupp@adacore.com> - - * init.c [VxWorks Section]: Disable sigtramp for ppc64-vx7. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * exp_util.adb, exp_util.ads (Build_Class_Wide_Expression): - Add out parameter to indicate to caller that a wrapper must - be constructed for an inherited primitive whose inherited - pre/postcondition has called to overridden primitives. - * freeze.adb (Check_Inherited_Conditions): Build wrapper body - for inherited primitive that requires it. - * sem_disp.adb (Check_Dispatching_Operation): Such wrappers are - legal primitive operations and belong to the list of bodies - generated after the freeze point of a type. - * sem_prag.adb (Build_Pragma_Check_Equivalent): Use new signature - of Build_Class_Wide_Expression. - * sem_util.adb, sem_util.ads (Build_Overriding_Spec): New procedure - to construct the specification of the wrapper subprogram created - for an inherited operation. - -2017-04-25 Bob Duff <duff@adacore.com> - - * s-osinte-linux.ads (pthread_mutexattr_setprotocol, - pthread_mutexattr_setprioceiling): Add new interfaces for these - pthread operations. - * s-taprop-linux.adb (Initialize_Lock, Initialize_TCB): Set - protocols as appropriate for Locking_Policy 'C' and 'I'. - * s-taprop-posix.adb: Minor reformatting to make it more similar - to s-taprop-linux.adb. - -2017-04-25 Ed Schonberg <schonberg@adacore.com> - - * sem_ch3.adb (Get_Discriminant_Value, Search_Derivation_Levels): - Handle properly a multi- level derivation involving both renamed - and constrained parent discriminants, when the type to be - constrained has fewer discriminants that the ultimate ancestor. - -2017-04-25 Bob Duff <duff@adacore.com> - - * sem_util.adb (Is_Object_Reference): In the - case of N_Explicit_Dereference, return False if it came from a - conditional expression. - -2017-04-25 Bob Duff <duff@adacore.com> - - * par-ch4.adb (P_Case_Expression): If a semicolon - is followed by "when", assume that ";" was meant to be ",". - -2017-04-25 Gary Dismukes <dismukes@adacore.com> - - * sem_ch9.adb, sem_ch10.adb, sem_util.adb: Minor reformatting and typo - fixes. - -2017-04-25 Arnaud Charlet <charlet@adacore.com> - - * rtsfind.ads (SPARK_Implicit_Load): New procedure for forced - loading of an entity. - * rtsfind.adb (SPARK_Implicit_Load): Body with a pattern - previously repeated in the analysis. - * sem_ch9.adb (Analyze_Protected_Type_Declaration): use new - procedure SPARK_Implicit_Load. (Analyze_Task_Type_Declaration): - use new procedure SPARK_Implicit_Load. - * sem_ch10.adb (Analyze_Compilation_Unit): Use new procedure - SPARK_Implicit_Load. - -2017-04-25 Javier Miranda <miranda@adacore.com> - - * sem_util.adb (New_Copy_Tree): By default - copying of defining identifiers is prohibited because - this would introduce an entirely new entity into the - tree. This patch introduces an exception to this general - rule: the declaration of constants and variables located in - Expression_With_Action nodes. - (Copy_Itype_With_Replacement): Renamed as Copy_Entity_With_Replacement. - (In_Map): New subprogram. - (Visit_Entity): New subprogram. - (Visit_Node): Handle EWA_Level, - EWA_Inner_Scope_Level, and take care of defining entities defined - in Expression_With_Action nodes. - -2017-04-25 Thomas Quinot <quinot@adacore.com> - - * exp_ch6.adb: minor comment edit. - * sinfo.ads, sinfo.adb: New Null_Statement attribute for null - procedure specifications that come from source. - * par-ch6.adb (P_Subprogram, case of a null procedure): Set new - Null_Statement attribute. - * par_sco.adb (Traverse_Declarations_Or_Statements): For a null - procedure, generate statement SCO for the generated NULL statement. - * sem_ch6.adb (Analyze_Null_Procedure): Use null statement from - parser, if available. - -2017-04-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com> - - * system-linux-s390.ads: Use Long_Integer'Size to define - Memory_Size. - -2017-04-04 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch3.adb (Build_Derived_Record_Type): Fix long line. - -2017-04-03 Jonathan Wakely <jwakely@redhat.com> - - * doc/gnat_ugn/gnat_and_program_execution.rst: Fix typo. - * g-socket.adb (To_Host_Entry): Fix typo in comment. - * gnat_ugn.texi: Fix typo. - * raise.c (_gnat_builtin_longjmp): Fix capitalization in comment. - * s-stposu.adb (Allocate_Any_Controlled): Fix typo in comment. - * sem_ch3.adb (Build_Derived_Record_Type): Likewise. - * sem_util.adb (Mark_Coextensions): Likewise. - * sem_util.ads (Available_Full_View_Of_Component): Likewise. - -2017-03-28 Andreas Schwab <schwab@suse.de> - - PR ada/80117 - * system-linux-aarch64-ilp32.ads: New file. - * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS_COMMON): Rename - from LIBGNAT_TARGET_PAIRS. - (LIBGNAT_TARGET_PAIRS_32, LIBGNAT_TARGET_PAIRS_64): Define. - (LIBGNAT_TARGET_PAIRS): Use LIBGNAT_TARGET_PAIRS_COMMON, and - LIBGNAT_TARGET_PAIRS_64 or LIBGNAT_TARGET_PAIRS_32 for -mabi=lp64 - or -mabi=ilp32, resp. - -2017-03-14 James Cowgill <James.Cowgill@imgtec.com> - - * s-osinte-linux.ads (struct_sigaction): Use correct type for sa_flags. - -2017-03-08 Thanassis Tsiodras <ttsiodras@gmail.com> - - PR ada/79903 - * socket.c (__gnat_gethostbyaddr): Add missing test for __rtems__. - -2017-03-08 Eric Botcazou <ebotcazou@adacore.com> - - PR ada/79945 - * system-linux-ppc.ads (Default_Bit_Order): Use Standard's setting. - - * system-linux-arm.ads (Default_Bit_Order): Likewise. - * system-linux-mips.ads (Default_Bit_Order): Likewise. - * system-linux-armeb.ads: Delete. - * system-linux-mipsel.ads: Likewise. - * gcc-interface/Makefile.in (MIPS/Linux): Adjust. - (ARM/Linux): Likewise. - -2017-02-24 Jakub Jelinek <jakub@redhat.com> - - PR c/79677 - * gcc-interface/misc.c (gnat_handle_option): Pass true to - handle_generated_option GENERATED_P. - -2017-02-24 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c (gnat_to_gnu_field): Do not remove the wrapper - around a justified modular type if it doesn't have the same scalar - storage order as the enclosing record type. - -2017-02-24 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.c (gnat_to_gnu): Do not apply special handling - of boolean rvalues to function calls. - -2017-02-24 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/utils.c (fold_bit_position): New function. - (rest_of_record_type_compilation): Call it instead of bit_position to - compute the field position and remove the call to remove_conversions. - (compute_related_constant): Factor out the multiplication in both - operands, if any, and streamline the final test. - -2017-02-24 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.c (return_value_ok_for_nrv_p): Add sanity check. - -2017-02-24 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.c: Include demangle.h. - (is_cplusplus_method): Return again true for a primitive operation - only if it is dispatching. For a subprogram with an interface name, - call the demangler to get the number of C++ parameters and compare it - with the number of Ada parameters. - -2017-02-24 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): If - there is no end label, put the location of the At_End procedure on - the call to the procedure. - -2017-02-24 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/misc.c (gnat_type_max_size): Try to return a meaningful - value for array types with TYPE_INDEX_TYPE set on their domain type. - * gcc-interface/utils.c (max_size): For operations and expressions, do - not build a new node if the operands have not changed or are missing. - -2017-02-24 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/utils.c (max_size) <tcc_expression>: Flip the second - argument when recursing on TRUTH_NOT_EXPR. - -2017-02-12 John Marino <gnugcc@marino.st> - - * system-freebsd-x86.ads: Rename into... - * system-freebsd.ads: ...this. - (Default_Bit_Order): Define using Standard'Default_Bit_Order. - * gcc-interface/Makefile.in: Support aarch64-freebsd. - (x86-64/FreeBSD): Adjust to above renaming. - (i386/FreeBSD): Likewise. - -2017-02-09 Gerald Pfeifer <gerald@pfeifer.com> - - * comperr.adb: Update FSF bug reporting URL. - -2017-02-01 Eric Botcazou <ebotcazou@adacore.com> - Jakub Jelinek <jakub@redhat.com> - - PR ada/79309 - * adaint.c (__gnat_killprocesstree): Fix broken string handling. - -2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com> - - PR lto/79061 - * gcc-interface/utils.c (get_global_context): Pass main_input_filename - to build_translation_unit_decl. - -2017-01-23 Javier Miranda <miranda@adacore.com> - - * sem_util.adb (New_Copy_Tree): Code cleanup: - removal of the internal map (ie. variable Actual_Map, its - associated local variables, and all the code handling it). - * sem_ch9.adb (Analyze_Task_Type_Declaration): in GNATprove mode - force loading of the System package when processing a task type. - (Analyze_Protected_Type_Declaration): in GNATprove mode force - loading of the System package when processing a protected type. - * sem_ch10.adb (Analyze_Compilation_Unit): in GNATprove mode - force loading of the System package when processing compilation - unit with a main-like subprogram. - * frontend.adb (Frontend): remove forced loading of the System - package. - -2017-01-23 Ed Schonberg <schonberg@adacore.com> - - * sem_prag.adb (Default_Initial_Condition): If the desired type - declaration is a derived type declaration with discriminants, - it is rewritten as a private type declaration. - * sem_ch13.adb (Replace_Type_References_Generic, - Visible_Component): A discriminated private type with descriminnts - has components that must be rewritten as selected components - if they appear as identifiers in an aspect expression such as - a Default_Initial_Condition. - * sem_util.adb (Defining_Entity): support N_Iterator_Specification - nodes. - -2017-01-23 Hristian Kirtchev <kirtchev@adacore.com> - - * ghost.ads, ghost.adb (Is_Ignored_Ghost_Unit): New routine. - * gnat1drv.adb Generate an empty object file for an ignored - Ghost compilation unit. - * inline.adb, sem_util.adb, sem_ch4.adb: Minor reformatting. - -2017-01-23 Yannick Moy <moy@adacore.com> - - * sem_ch4.adb (Analyze_Indexed_Component_Form): - Adapt to inlined prefix with string literal subtype. - * inline.adb (Expand_Inlined_Call): Keep unchecked - conversion inside inlined call when formal type is constrained. - -2017-01-23 Javier Miranda <miranda@adacore.com> - - * sem_util.adb (New_Copy_Tree): Code cleanup: - removal of global variables. All the global variables, global - functions and tables of this subprogram are now declared locally. - -2017-01-23 Gary Dismukes <dismukes@adacore.com> - - * exp_strm.ads: Minor reformatting and typo fixes. - -2017-01-23 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_aggr.adb, par_sco.adb, exp_util.adb, sem.adb, sem_ch4.adb, - exp_aggr.adb: Minor reformatting. - * g-diopit.adb: minor grammar/punctuation fix in comment. - * g-byorma.ads: minor fix of unbalanced parens in comment. - -2017-01-23 Hristian Kirtchev <kirtchev@adacore.com> - - * par.adb: Update the documentation of component Labl. - * par-ch6.adb (P_Return_Statement): Set the expected label of - an extended return statement to Error. - -2017-01-23 Tristan Gingold <gingold@adacore.com> - - * s-boustr.ads, s-boustr.adb (Is_Full): New function. - -2017-01-23 Ed Schonberg <schonberg@adacore.com> - - * expander.adb: Handle N_Delta_Aggregate. - -2017-01-23 Javier Miranda <miranda@adacore.com> - - * exp_ch6.adb (Expand_Call): Improve the code that - checks if some formal of the called subprogram is a class-wide - interface, to handle subtypes of class-wide interfaces. - -2017-01-23 Javier Miranda <miranda@adacore.com> - - * checks.adb (Apply_Parameter_Aliasing_Checks): - Remove side effects of the actuals before generating the overlap - check. - -2017-01-23 Justin Squirek <squirek@adacore.com> - - * exp_strm.ads, exp_strm.ads - (Build_Record_Or_Elementary_Input_Function): Add an extra parameter so - as to avoid getting the underlying type by default. - * exp_attr.adb (Expand_N_Attribute_Reference): Remove use of - underlying type in the Iiput and output attribute cases when - building their respective functions. - -2017-01-23 Gary Dismukes <dismukes@adacore.com> - - * scng.adb: Minor reformatting of error message. - -2017-01-23 Ed Schonberg <schonberg@adacore.com> - - * sem_ch6.adb (Analyze_Expression_Function): Do not attempt - to freeze the return type of an expression funxtion that is a - completion, if the type is a limited view and the non-limited - view is available. - -2017-01-23 Ed Schonberg <schonberg@adacore.com> - - * par-ch4.adb (P_Aggregate_Or_Parent_Expr): Recognize delta - aggregate construct. - (P_Record_Or_Array_Component_Association): An array aggregate - can start with an Iterated_Component_Association. - * scng.adb: Modify error message on improper use of @ in earlier - versions of the language. - * sinfo.ads: New node kind N_Delta_Aggregate. - * sinfo.adb: An N_Delta_Aggregate has component associations and - an expression. - * sem_res.adb (Resolve): Call Resolve_Delta_Aggregate. - * sem_aggr.ads, sem_aggr.adb (Resolve_Iterated_Component_Association): - Create a new index for each one of the choices in the association, - to prevent spurious homonyms in the scope. - (Resolve_Delta_Aggregate): New. - * sem.adb: An N_Delta_Aggregate is analyzed like an aggregate. - * exp_util.adb (Insert_Actions): Take into account - N_Delta_Aggregate. - * exp_aggr.ads: New procedure Expand_N_Delta_Aggregate. - * exp_aggr.adb: New procedure Expand_N_Delta_Aggregate, - and local procedures Expand_Delta_Array_Aggregate and - expand_Delta_Record_Aggregate. - * sprint.adb: Handle N_Delta_Aggregate. - -2017-01-23 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch11.adb (Expand_N_Exception_Declaration): Generate an - empty name when the exception declaration is subject to pragma - Discard_Names. - (Null_String): New routine. - -2017-01-23 Hristian Kirtchev <kirtchev@adacore.com> - - * par-ch9.adb (P_Protected_Definition): Parse - any optional and potentially illegal pragmas which appear in - a protected operation declaration list. - (P_Task_Items): Parse - any optional and potentially illegal pragmas which appear in a - task item list. - -2017-01-23 Pascal Obry <obry@adacore.com> - - * s-taprop-mingw.adb (Enter_Task): Initialize the Thread handle which - is needed when a foreign thread call a Win32 API using a thread handle - like GetThreadTimes() for example. - -2017-01-23 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do not - allow an 'Address clause to be specified on a prefix of a - class-wide type. - -2017-01-23 Hristian Kirtchev <kirtchev@adacore.com> - - * checks.adb (Insert_Valid_Check): Ensure that the prefix of - attribute 'Valid is a renaming of the original expression when - the expression denotes a name. For all other kinds of expression, - use a constant to capture the value. - * exp_util.adb (Is_Name_Reference): Moved to Sem_Util. - * sem_util.ads, sem_util.adb (Is_Name_Reference): Moved from Exp_Util. - -2017-01-23 Justin Squirek <squirek@adacore.com> - - * sem_eval.adb (Eval_Integer_Literal): Add special - case to avoid optimizing out check if the literal appears in - an if-expression. - -2017-01-23 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do not - allow an 'Address clause to be specified on a prefix of a - class-wide type. - -2017-01-23 Hristian Kirtchev <kirtchev@adacore.com> - - * checks.adb (Insert_Valid_Check): Ensure that the prefix of - attribute 'Valid is a renaming of the original expression when - the expression denotes a name. For all other kinds of expression, - use a constant to capture the value. - * exp_util.adb (Is_Name_Reference): Moved to Sem_Util. - * sem_util.ads, sem_util.adb (Is_Name_Reference): Moved from Exp_Util. - -2017-01-23 Justin Squirek <squirek@adacore.com> - - * sem_eval.adb (Eval_Integer_Literal): Add special - case to avoid optimizing out check if the literal appears in - an if-expression. - -2017-01-23 Ed Schonberg <schonberg@adacore.com> - - * sem_ch4.adb (Try_Primitive_Operations, - Is_Valid_First_Argument_Of): argument is valid if it is a derived - type with unknown discriminants that matches its underlying - record view. - * exp_util.adb (Expand_Subtype_From_Expr): Do not expand - expression if its type is derived from a limited type with - unknown discriminants, because the expansion (which is a call) - must be expanded in the enclosing context to add the proper build- - in-place parameters to the call. - * lib.ads, exp_ch9.adb: Minor fixes in comments. - -2017-01-23 Yannick Moy <moy@adacore.com> - - * frontend.adb (Frontend): Do not load runtime - unit for GNATprove when parsing failed. - * exp_ch9.adb: minor removal of extra whitespace - * exp_ch6.adb: minor typo in comment - * sem_util.adb: Code cleanup. - * exp_ch9.ads, par-ch2.adb: minor style fixes in whitespace and comment - * a-ngcefu.adb: minor style fix in whitespace - -2017-01-23 Thomas Quinot <quinot@adacore.com> - - * scos.ads: Document usage of 'd' as default SCO kind for - declarations. - * par_sco.adb (Traverse_Declarations_Or_Statements. - Traverse_Degenerate_Subprogram): New supporting routine for expression - functions and null procedures. - (Traverse_Declarations_Or_Statements.Traverse_One): Add - N_Expression_Function to the subprogram case; add required - support for null procedures and expression functions. - -2017-01-23 Bob Duff <duff@adacore.com> - - * namet.ads (Bounded_String): Decrease the size of type - Bounded_String to avoid running out of stack space. - * namet.ads (Append): Don't ignore buffer overflow; raise - Program_Error instead. - -2017-01-23 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch5.adb, freeze.adb, par-ch4.adb, scng.adb, sem_ch13.adb, - sem_ch3.adb, sem_ch5.adb, sem_ch5.ads, sem_util.adb, sinfo.ads: Minor - reformatting. - * exp_ch9.adb: minor style fix in comment. - -2017-01-23 Ed Schonberg <schonberg@adacore.com> - - * sem_ch4.adb (Analyze_Allocator): Handle properly a type derived - for a limited record extension with unknown discriminants whose - full view has no discriminants. - -2017-01-23 Yannick Moy <moy@adacore.com> - - * exp_spark.adb: Alphabetize with clauses. - -2017-01-23 Yannick Moy <moy@adacore.com> - - * sem_util.adb (Has_Enabled_Property): Treat - protected objects and variables differently from other variables. - -2017-01-23 Thomas Quinot <quinot@adacore.com> - - * sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): - Split original Ada 95 part off into new subprogram - below. Call that subprogram (instead of proceeding with - AI95-0133 behaviour) if debug switch -gnatd.p is in use. - (Adjust_Record_For_Reverse_Bit_Order_Ada_95): ... new subprogram - * debug.adb Document new switch -gnatd.p - * freeze.adb (Freeze_Entity.Freeze_Record_Type): Do not adjust - record for reverse bit order if an error has already been posted - on the record type. This avoids generating extraneous "info:" - messages for illegal code. - -2017-01-23 Justin Squirek <squirek@adacore.com> - - * sem_ch3.adb (Analyze_Declarations): Correct comments - * freeze.adb (Find_Constant): Add detection of deferred constants - so they are not incorrectly flagged as premature. - -2017-01-23 Ed Schonberg <schonberg@adacore.com> - - * scans.ads: New token At_Sign. Remove '@' from list of illegal - characters for future version of the language. '@' is legal name. - * scng.ads, scng.adb (Scan): Handle '@' appropriately. - * scn.adb (Scan_Reserved_Identifier): An occurrence of '@' - denotes a Target_Name. - * par-ch4.adb (P_Name, P_Primary): Handle Target_Name. - * sinfo.ads, sinfo.adb (N_Target_Name): New non-terminal node. - (Has_Target_Names): New flag on N_Assignment_Statement, to - indicate that RHS has occurrences of N_Target_Name. - * sem.adb: Call Analyze_Target_Name. - * sem_ch5.ads, sem_ch5.adb (Analyze_Target_Name): New subpogram. - (urrent_LHS): Global variable that denotes LHS of assignment, - used in the analysis of Target_Name nodes. - * sem_res.adb (Resolve_Target_Name): New procedure. - * exp_ch5.adb (Expand_Assign_With_Target_Names): (AI12-0125): - N is an assignment statement whose RHS contains occurences of @ - that designate the value of the LHS of the assignment. If the - LHS is side-effect free the target names can be replaced with - a copy of the LHS; otherwise the semantics of the assignment - is described in terms of a procedure with an in-out parameter, - and expanded as such. - (Expand_N_Assignment_Statement): Call - Expand_Assign_With_Target_Names when needed. - * exp_util.adb (Insert_Actions): Take into account N_Target_Name. - * sprint.adb: Handle N_Target_Name. - -2017-01-23 Eric Botcazou <ebotcazou@adacore.com> - - * checks.adb: Minor fix in comment. - -2017-01-23 Philippe Gil <gil@adacore.com> - - * g-debpoo.adb (Do_Report) remove freed chunks from chunks - count in Sort = Memory_Usage or Allocations_Count - -2017-01-23 Justin Squirek <squirek@adacore.com> - - * sem_ch3.adb: Code cleanup. - -2017-01-23 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Move all global - variables to the local variable section. Update the profile - of various nested routine that previously had visibility - of those globals. One the matching phase has completed, - remove certain classes of clauses which are considered noise. - (Check_Dependency_Clause): Properly detect a match between two - 'Result attributes. Update the various post-match cases to use - Is_Already_Matched as this routine now automatically recognizes - a previously matched 'Result attribute. - (Is_Already_Matched): New routine. - (Remove_Extra_Clauses): New routine. - (Report_Extra_Clauses): Remove the detection of ... => null - clauses as this is now done in Remove_Extra_Clauses. - -2017-01-23 Ed Schonberg <schonberg@adacore.com> - - * sem_aggr.adb (Resolve_Array_Aggregate): In ASIS mode do not - report on spurious overlaps between values involving a subtype - with a static predicate, because the expansion of such a subtype - into individual ranges in inhibited in ASIS mode. - -2017-01-23 Justin Squirek <squirek@adacore.com> - - * sem_ch3.adb (Analyze_Declarations): Add detection - of an edge case and delay freezing if it is present. - -2017-01-23 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch3.adb, exp_spark.adb, exp_attr.adb, sem_ch9.adb, sem_prag.adb, - sem_util.adb, sem_warn.adb, exp_ch3.adb: Minor reformatting. - -2017-01-23 Hristian Kirtchev <kirtchev@adacore.com> - - * freeze.adb (Freeze_Subprogram): Ensure that all anonymous - access-to-subprogram types inherit the convention of the - associated subprogram. (Set_Profile_Convention): New routine. - * sem_ch6.adb (Check_Conformance): Do not compare the conventions - of the two entities directly, use Conventions_Match to account - for anonymous access-to-subprogram and subprogram types. - (Conventions_Match): New routine. - -2017-01-23 Claire Dross <dross@adacore.com> - - * exp_spark.adb (Expand_SPARK_Attribute_Reference): For attributes - which return Universal_Integer, force the overflow check flag for - Length and Range_Length for types as big as Long_Long_Integer. - -2017-01-23 Claire Dross <dross@adacore.com> - - * exp_spark.adb (Expand_SPARK_Attribute_Reference): For - attributes which return Universal_Integer, introduce a conversion - to the expected type with the appropriate check flags set. - * sem_res.adb (Resolve_Range): The higher bound can be in Typ's - base type if the range is null. It may still be invalid if it - is higher than the lower bound. This is checked later in the - context in which the range appears. - -2017-01-23 Pierre-Marie de Rodat <derodat@adacore.com> - - * scos.ads: Introduce a constant to represent ignored - dependencies in SCO_Unit_Table_Entry. - -2017-01-23 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Remove extra - spaces from error messages. - -2017-01-23 Ed Schonberg <schonberg@adacore.com> - - * exp_ch3.adb (Check_Large_Modular_Array): New procedure, - subsidiary to Expand_N_Object_ Declaration, to compute a guard on - an object declaration for an array type with a modular index type - with the size of Long_Long_Integer. Special processing is needed - in this case to compute reliably the size of the object, and - eventually to raise Storage_Error, when wrap-around arithmetic - might compute a meangingless size for the object. - -2017-01-23 Justin Squirek <squirek@adacore.com> - - * a-wtenau.adb, par-endh.adb, sem_prag.adb, - sem_type.adb: Code cleanups. - -2017-01-23 Bob Duff <duff@adacore.com> - - * sem_res.adb (Resolve_Call): In the part of the code where - it is deciding whether to turn the call into an indexed - component, avoid doing so if the call is to an instance of - Unchecked_Conversion. Otherwise, the compiler turns it into an - indexed component, and resolution of that turns it back into a - function call, and so on, resulting in infinite recursion. - * sem_util.adb (Needs_One_Actual): If the first formal has a - default, then return False. - -2017-01-21 Eric Botcazou <ebotcazou@adacore.com> - - * sem_eval.adb (Compile_Time_Compare): Reinstate the expr+literal (etc) - optimizations when the type is modular and the offsets are equal. - -2017-01-20 Thomas Quinot <quinot@adacore.com> - - * sem_warn.adb (Warn_On_Useless_Assignment): Adjust wording of warning - message. - -2017-01-20 Nicolas Roche <roche@adacore.com> - - * terminals.c: Ignore failures on setpgid and tcsetpgrp commands. - -2017-01-20 Bob Duff <duff@adacore.com> - - * sem_eval.adb (Compile_Time_Compare): Disable the expr+literal - (etc) optimizations when the type is modular. - -2017-01-20 Yannick Moy <moy@adacore.com> - - * sem_ch6.adb (Move_Pragmas): move some pragmas, - but copy the SPARK_Mode pragma instead of moving it. - (Build_Subprogram_Declaration): Ensure that the generated spec - and original body share the same SPARK_Pragma aspect/pragma. - * sem_util.adb, sem_util.ads (Copy_SPARK_Mode_Aspect): New - procedure to copy SPARK_Mode aspect. - -2017-01-20 Bob Duff <duff@adacore.com> - - * sem_ch3.adb (Analyze_Declarations): Disable Resolve_Aspects - even in ASIS mode. - * sem_ch13.adb (Resolve_Name): Enable setting the entity to - Empty even in ASIS mode. - -2017-01-20 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch9.adb: minor style fixes in comments. - * sem_ch9.adb (Analyze_Delay_Relative): in GNATprove mode a delay - relative statement introduces an implicit dependency on - Ada.Real_Time.Clock_Time. - * sem_util.adb: Minor reformatting. - -2017-01-20 Ed Schonberg <schonberg@adacore.com> - - * sem_ch13.adb (Analyze_Aspect_Specifications): Aspect Alignment - must be treated as delayed aspect even if the expression is - a literal, because the aspect affects the freezing and the - elaboration of the object to which it applies. - -2017-01-20 Tristan Gingold <gingold@adacore.com> - - * s-osinte-vxworks.ads (Interrup_Range): New subtype. - -2017-01-20 Ed Schonberg <schonberg@adacore.com> - - * lib-xref.adb (Generate_Reference): Do not warn about the - presence of a pragma Unreferenced if the entity appears as the - actual in a procedure call that does not come from source. - -2017-01-20 Pascal Obry <obry@adacore.com> - - * expect.c, terminals.c: Fix some warnings about unused variables. - * gsocket.h, adaint.c, adaint.h: Fix some more warnings in the C part - of the runtime. - -2017-01-20 Bob Duff <duff@adacore.com> - - * exp_attr.adb (Constrained): Apply an access check (check that - the prefix is not null) when the prefix denotes an object of an - access type; that is, when there is an implicit dereference. - -2017-01-20 Gary Dismukes <dismukes@adacore.com> - - * s-rident.ads (constant Profile_Info): Remove - No_Calendar from GNAT_Extended_Ravenscar restrictions. - -2017-01-20 Tristan Gingold <gingold@adacore.com> - - * s-maccod.ads: Add pragma No_Elaboration_Code_All - -2017-01-20 Hristian Kirtchev <kirtchev@adacore.com> - - * ghost.adb (Mark_Ghost_Clause): New routine. - (Prune_Node): Do not prune compilation unit nodes. - (Remove_Ignored_Ghost_Code): Prune the compilation unit node directly. - This does not touch the node itself, but does prune all its fields. - * ghost.ads (Mark_Ghost_Clause): New routine. - * sem_ch8.adb (Analyze_Use_Package): Emit an error when a use - package clause mentions Ghost and non-Ghost packages. Mark a - use package clause as Ghost when it mentions a Ghost package. - (Analyze_Use_Type): Emit an error when a use type clause mentions - Ghost and non-Ghost types. Mark a use type clause as Ghost when - it mentions a Ghost type. - * sem_ch10.adb (Analyze_With_Clause): Mark a with clause as - Ghost when it withs a Ghost unit. - -2017-01-20 Javier Miranda <miranda@adacore.com> - - * sem_res.adb (Resolve_Call): If a function call - returns a limited view of a type and at the point of the call the - function is not declared in the extended main unit then replace - it with the non-limited view, which must be available. If the - called function is in the extended main unit then no action is - needed since the back-end handles this case. - -2017-01-20 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch7.adb (Contains_Subp_Or_Const_Refs): Rename into... - (Contains_Subprograms_Refs): ...this. Adjust comment - for constants. (Is_Subp_Or_Const_Ref): Rename into... - (Is_Subprogram_Ref): ...this. - (Has_Referencer): Rename Has_Non_Subp_Const_Referencer variable into - Has_Non_Subprograms_Referencer and adjust comment. Remove - incorrect shortcut for package declarations and bodies. - -2017-01-20 Ed Schonberg <schonberg@adacore.com> - - * sem_ch3.adb (Complete_Private_Subtype): If the scope of the - base type differs from that of the completion and the private - subtype is an itype (created for a constraint on an access - type e.g.), set Delayed_Freeze on both to prevent out-of-scope - anomalies in gigi. - -2017-01-20 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): - When inheriting the SPARK_Mode of a prior expression function, - look at the properly resolved entity rather than the initial - candidate which may denote a homonym. - -2017-01-20 Ed Schonberg <schonberg@adacore.com> - - * sem_prag.adb (Rewrite_Assertion_Kind): If the name is - Precondition or Postcondition, and the context is pragma - Check_Policy, indicate that this Pre-Ada2012 usage is deprecated - and suggest the standard names Assertion_Policy /Pre /Post - instead. - -2017-01-20 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch10.adb, sem_cat.adb: Minor reformatting. - -2017-01-20 Javier Miranda <miranda@adacore.com> - - * sem_ch3.adb (Access_Type_Declaration): Protect access to the - Entity attribute. - * sem_ch10.adb (Install_Siblings): Skip processing malformed trees. - * sem_cat.adb (Validate_Categoriztion_Dependency): Skip processing - malformed trees. - -2017-01-20 Ed Schonberg <schonberg@adacore.com> - - * sem_ch13.adb (Analyze_Aspect_Specification, case - Dynamic_Predicate): If the entity E is a subtype that inherits - a static predicate for its parent P,, the inherited and the - new predicate combine in the generated predicate function, - and E only has a dynamic predicate. - -2017-01-20 Tristan Gingold <gingold@adacore.com> - - * s-boustr.ads, s-boustr.adb: New package. - * Makefile.rtl: Add s-boustr. - -2017-01-20 Hristian Kirtchev <kirtchev@adacore.com> - - * inline.adb (Process_Formals): Qualify the - expression of a return statement when it yields a universal type. - -2017-01-20 Hristian Kirtchev <kirtchev@adacore.com> - - * freeze.adb (Freeze_All): Freeze the default - expressions of all eligible formal parameters that appear in - entries, entry families, and protected subprograms. - -2017-01-20 Ed Schonberg <schonberg@adacore.com> - - * sem_ch3.adb (Check_Nonoverridable_Aspects); Refine check - for illegal inherited Implicit_Dereference aspects with renamed - discriminants. - -2017-01-20 Javier Miranda <miranda@adacore.com> - - * debug.adb (switch d.6): do not avoid declaring unreferenced itypes. - * nlists.ads (Lock_Lists, Unlock_Lists): New subprograms. - * nlists.adb (Lock_Lists, Unlock_Lists): New subprograms. - (Set_First, Set_Last, Set_List_Link, Set_Next, Set_Parent, - Set_Prev, Tree_Read): Adding assertion. - * atree.ads (Lock_Nodes, Unlock_Nodes): New subprograms. - * atree.adb (Lock_Nodes, Unlock_Nodes): New subprograms. - (Set_Analyzed, Set_Check_Actuals, Set_Comes_From_Source, - Set_Ekind, Set_Error_Posted, Set_Has_Aspects, - Set_Is_Ignored_Ghost_Node, Set_Original_Node, Set_Paren_Count, - Set_Parent, Set_Sloc, Set_Nkind, Set_FieldNN, Set_NodeNN, - Set_ListNN, Set_ElistNN, Set_NameN, Set_StrN, Set_UintNN, - Set_UrealNN, Set_FlagNNN, Set_NodeN_With_Parent, - Set_ListN_With_Parent): Adding assertion. - -2017-01-20 Ed Schonberg <schonberg@adacore.com> - - * sem_prag.adb (Process_Convention): Diagnose properly a pragma - import that applies to several homograph subprograms. when one - of them is declared by a subprogram body. - -2017-01-20 Justin Squirek <squirek@adacore.com> - - * exp_ch6.adb (Expand_Call): Remove optimization - that nulls out calls to null procedures. - -2017-01-20 Yannick Moy <moy@adacore.com> - - * inline.adb (Expand_Inlined_Call): Keep more - precise type of actual for inlining whenever possible. In - particular, do not switch to the formal type in GNATprove mode in - some case where the GNAT backend might require it for visibility. - -2017-01-20 Ed Schonberg <schonberg@adacore.com> - - * sem_ch3.adb (Check_Non_Overridable_Aspects): An inherited - aspect Implicit_Dereference can be inherited by a full view if - the partial view has no discriminants, because there is no way - to apply the aspect to the partial view. - (Build_Derived_Record_Type): If derived type renames discriminants - of the parent, the new discriminant inherits the aspect from - the old one. - * sem_ch4.adb (Analyze_Call): Handle properly a parameterless - call through an access discriminant designating a subprogram. - * sem_ch5.adb (Analyze_Assignment): (Analyze_Call): Handle - properly a parameterless call through an access discriminant on - the left-hand side of an assignment. - * sem_res.adb (resolve): If an interpreation involves a - discriminant with an implicit dereference and the expression is an - entity, resolution takes place later in the appropriate routine. - * sem_ch13.adb (Analyze_Aspect_Implicit_Dereference): Recognize - access discriminants that designate a subprogram type. - -2017-01-20 Pascal Obry <obry@adacore.com> - - * a-locale.adb, a-locale.ads: Update Ada.Locales for RM 2012 COR:1:2016 - -2017-01-20 Yannick Moy <moy@adacore.com> - - * sem_ch10.adb (Check_No_Elab_Code_All): Do not issue an error - on implicitly with'ed units in GNATprove mode. - * sinfo.ads (Implicit_With): Document use of flag for implicitly - with'ed units in GNATprove mode. - -2017-01-20 Ed Schonberg <schonberg@adacore.com> - - * sem_cat.adb (Validate_Static_Object_Name): In a preelaborated - unit Do not report an error on a non-static entity that appears - in the context of a spec expression, such as an aspect expression. - -2017-01-20 Hristian Kirtchev <kirtchev@adacore.com> - - * einfo.adb: Flag298 now denotes Is_Underlying_Full_View. - (Is_Underlying_Full_View): New routine. - (Set_Is_Underlying_Full_View): New routine. - (Write_Entity_Flags): Add an entry for Is_Underlying_Full_View. - * einfo.ads Add new attribute Is_Underlying_Full_View. - (Is_Underlying_Full_View): New routine along with pragma Inline. - (Set_Is_Underlying_Full_View): New routine along with pragma Inline. - * exp_util.adb (Build_DIC_Procedure_Body): Do not consider - class-wide types and underlying full views. The first subtype - is used as the working type for all Itypes, not just array base types. - (Build_DIC_Procedure_Declaration): Do not consider - class-wide types and underlying full views. The first subtype - is used as the working type for all Itypes, not just array - base types. - * freeze.adb (Freeze_Entity): Inherit the freeze node of a full - view or an underlying full view without clobbering the attributes - of a previous freeze node. - (Inherit_Freeze_Node): New routine. - * sem_ch3.adb (Build_Derived_Private_Type): Mark an underlying - full view as such. - (Build_Underlying_Full_View): Mark an underlying full view as such. - * sem_ch7.adb (Install_Private_Declarations): Mark an underlying - full view as such. - -2017-01-20 Yannick Moy <moy@adacore.com> - - * sinfo.ads: Document lack of Do_Division_Check flag - on float exponentiation. - -2017-01-19 Javier Miranda <miranda@adacore.com> - - * ghost.adb (Propagate_Ignored_Ghost_Code): Protect access to the - identifier attribute of a block-statement node. Required to avoid - assertion failure when building the new containers library. - -2017-01-19 Bob Duff <duff@adacore.com> - - * exp_ch3.adb: Update comment. - -2017-01-19 Vincent Celier <celier@adacore.com> - - * gprep.adb (Gnatprep): Parse the definition file without - "replace in comments" even when switch -C is used. - -2017-01-19 Justin Squirek <squirek@adacore.com> - - * exp_ch9.adb (Is_Pure_Barrier): Create function - Is_Count_Attribute to identify an expansion of the 'Count - attribute. - -2017-01-19 Ed Schonberg <schonberg@adacore.com> - - * sem_ch5.adb (Analyze_Loop_Statement): In GNATprove mode the - statements within an element iterator loop are only analyzed - agter the loop is rewritten. Within a generic the analysis must - be performed in any case to complete name capture. - -2017-01-19 Bob Duff <duff@adacore.com> - - * sem_prag.adb (Analyze_Pragma): Check for ignored pragmas first, - before checking for unrecognized pragmas. - Initialize Pname on its declarations; that's always good style. - -2017-01-19 Claire Dross <dross@adacore.com> - - * exp_ch7.adb (Build_Invariant_Procedure_Body): Semi-insert the - body into the tree for GNATprove by setting its Parent field. The - components invariants of composite types are not checked by - the composite type's invariant procedure in GNATprove mode. - (Build_Invariant_Procedure_Declaration): Semi-insert the - declaration into the tree for GNATprove by setting its Parent - field. - * freeze.adb (Freeze_Arry_Type):In GNATprove mode, do not add - the component invariants to the array type invariant procedure - so that the procedure can be used to check the array type - invariants if any. - (Freeze_Record_Type): In GNATprove mode, do - not add the component invariants to the record type invariant - procedure so that the procedure can be used to check the record - type invariants if any. - -2017-01-19 Hristian Kirtchev <kirtchev@adacore.com> - - * lib-xref-spark_specific.adb: Minor reformatting. - * exp_ch7.adb (Add_Parent_Invariants): Do not process array types. - -2017-01-19 Javier Miranda <miranda@adacore.com> - - * exp_aggr.adb (Pass_Aggregate_To_Back_End): Renamed as - Build_Back_End_Aggregate. - (Generate_Aggregate_For_Derived_Type): Code cleanup. - (Prepend_Stored_Values): Code cleanup. - -2017-01-19 Ed Schonberg <schonberg@adacore.com> - - * sem_ch6.adb (Analyze_Expression_Function): Check for an - incomplete return type after attempting to freeze it, so that - other freeze actiona are generated in the proper order. - -2017-01-19 Ed Schonberg <schonberg@adacore.com> - - * sem_aggr.adb (Resolve_Aggregate): If the type is a string - type, ie. a type whose component is a character type, and the - aggregate is positional, do not convert into a string literal - if the index type is not an integer type, because the original - type may be required in an enclosing operation. - -2017-01-19 Bob Duff <duff@adacore.com> - - * binde.adb, debug.adb: Enable new elaboration order algorithm - by default. -dp switch reverts to the old algorithm. - -2017-01-19 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch3.adb Add with and use clauses for Exp_Ch7. - (Analyze_Declarations): Create the DIC and Invariant - procedure bodies s after all freezing has taken place. - (Build_Assertion_Bodies): New routine. - * sem_ch7.adb Remove the with and use clauses for Exp_Ch7 - and Exp_Util. - (Analyze_Package_Specification): Remove the - generation of the DIC and Invariant procedure bodies. This is - now done by Analyze_Declarations. - * sem_disp.adb (Check_Dispatching_Operation): DIC and Invariant - procedures are never treated as primitives. - -2017-01-19 Yannick Moy <moy@adacore.com> - - * frontend.adb: Analyze inlined bodies and check elaboration - rules in GNATprove mode too. - * sem_elab.adb (Delay_Element): Add Boolean component to save - indication that call is in SPARK code. (Check_Elab_Calls): - Check elaboration rules in GNATprove mode, and correctly set - the current value of SPARK_Mode. - * lib-xref-spark_specific.adb - (Add_SPARK_Xrefs): Simplify iteration over dereferences. - -2017-01-19 Ed Schonberg <schonberg@adacore.com> - - * exp_ch4.adb (Expand_Concatenate): Do no enable overflow - checks on the expression for the high bound of concatenation - when checks are disabled, to suppress warnings about potential - constraint errors in restricted runtimes. - -2017-01-19 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch3.adb (Expand_Freeze_Enumeration_Type): Mark the - representation-to-position function as inlined. - * sem_cat.adb (Set_Categorization_From_Scope): Do not modify - the purity of an internally generated entity if it has been - explicitly marked as pure for optimization purposes. - * exp_aggr.adb: Minor reformatting. - -2017-01-19 Javier Miranda <miranda@adacore.com> - - * exp_ch6.adb (Expand_Call): Remove side effects on - actuals that are allocators with qualified expression since the - initialization of the object is performed by means of individual - statements (and hence it must be done before the call). - -2017-01-19 Ed Schonberg <schonberg@adacore.com> - - * sem_ch3.adb (Analyze_Declarations): Minor reformatting. - (Build_Derived_Enumeration_Type): If the derived type inherits a - dynamic predicate from its parent, the bounds of the type must - freeze because an explicit constraint is constructed for the - type and the corresponding range is elaborated now. - -2017-01-19 Arnaud Charlet <charlet@adacore.com> - - * sem_attr.ads: minor fix of inconsistent casing in comment - * lib-writ.ads: minor align comments in columns - * sem_ch3.adb: Minor reformatting. - * spark_xrefs.ads: minor fix typo in SPARK-related comment - * table.ads: minor style fix in comment - * lib-xref-spark_specific.adb - (Add_SPARK_Xrefs): simplify processing of SPARK cross-references. - * sem_ch12.adb: minor whitespace fix - * freeze.adb: Add comment. - * sem_util.adb (Unique_Name): for instances of - generic subprograms ignore the name of the wrapper package. - -2017-01-19 Javier Miranda <miranda@adacore.com> - - * exp_aggr.adb (Resolve_Record_Aggregate): - Factorize code needed for aggregates of limited and unlimited - types in a new routine. - (Pass_Aggregate_To_Back_End): New subprogram. - -2017-01-19 Yannick Moy <moy@adacore.com> - - * sinfo.adb (Pragma_Name): Only access up to Last_Pair of Pragma_Map. - -2017-01-19 Ed Schonberg <schonberg@adacore.com> - - * sem_ch4.ads, sem_ch4.adb (Try_Object_Operation): Make subprogram - public, for use elsewhere. - * sem_ch6.adb (Analyze_Procedure_Call): In SPARK_Mode and within - an Inlined_body, recognize a call that uses object notation - and has not been rewritten as a regular call because regular - expansion has not taken place. - -2017-01-19 Bob Duff <duff@adacore.com> - - * checks.adb (Apply_Type_Conversion_Checks): Disable small optimization - in case of generic formal discrete types, because it causes crashes in - the compiler when built with assertions on. - -2017-01-19 Hristian Kirtchev <kirtchev@adacore.com> - - * lib-xref-spark_specific.adb, sem_util.adb, sem_util.ads, - sem_ch4.adb, sem_ch8.adb, lib-xref.ads: Minor reformatting. - -2017-01-19 Bob Duff <duff@adacore.com> - - * bcheck.adb (Check_Consistent_Dynamic_Elaboration_Checking): - Increment Warnings_Detected. It was decrementing, which is - wrong since we just issued a warning message. - * binderr.ads (Errors_Detected, Warnings_Detected): Declare - these variables to be of subtype Nat instead of Int, because - they should never be negative. - -2017-01-19 Javier Miranda <miranda@adacore.com> - - * contracts.adb (Build_Postconditions_Procedure): Replace - Generate_C_Code by Modify_Tree_For_C. - * exp_aggr.adb (Build_Record_Aggr_Code, Expand_Array_Aggregate): - Replace Generate_C_Code by Modify_Tree_For_C. - * exp_attr.adb (Float_Valid, Is_GCC_Target): Replace Generate_C_Code by - Modify_Tree_For_C. - * exp_ch11.adb (Expand_N_Exception_Declaration): Replace - Generate_C_Code by Modify_Tree_For_C. - * exp_ch4.adb (Expand_Allocator_Expression): Replace - Generate_C_Code by Modify_Tree_For_C. - * exp_dbug.adb (Qualify_Entity_Name): Replace Generate_C_Code - by Modify_Tree_For_C. - * exp_util.adb (Remove_Side_Effects, Side_Effect_Free): Replace - Generate_C_Code by Modify_Tree_For_C. - * sem_res.adb (Resolve_Type_Conversion): Replace Generate_C_Code - by Modify_Tree_For_C. - * sinfo.ads (Modify_Tree_For_C): Adding documentation. - -2017-01-19 Javier Miranda <miranda@adacore.com> - - * sem_util.ads, sem_util.adb (Expression_Of_Expression_Function): New - subprogram. - (Is_Inlinable_Expression_Function): New subprogram. - * exp_ch6.ads, exp_ch6.adb (Expression_Of_Expression_Function): Moved - to Sem_Util. - (Is_Inlinable_Expression_Function): Moved to Sem_Util. - -2017-01-19 Ed Schonberg <schonberg@adacore.com> - - * sem_ch4.adb (Diagnose_Call): Improve error message when a - selected component has a prefix that might be interpreted - as a parameterless function call, but none of the candidate - interpretations is parameterless, and there is a hidden homonym - of the prefix that is a package. - * sem_ch8.adb (Find_Selected_Component): If the prefix might be - interpreted as a parameterless function call and its analysis - fails, do not call Analyze_Selected_Component. - -2017-01-19 Steve Baird <baird@adacore.com> - - * sem_util.ads: Add new Use_Full_View Boolean parameter to - Get_Index_Bounds. - * sem_util.adb (Get_Index_Bounds): replace calls to Scalar_Range with - calls to a newly-defined Scalar_Range_Of_Right_View function. - -2017-01-19 Arnaud Charlet <charlet@adacore.com> - - * gnat1drv.adb: minor fix of unbalanced parens in comment - * lib-xref.ads (Traverse_Compilation_Unit): declaration moved - to visible part of the package to allow re-use in GNATprove. - * lib-xref-spark_specific.adb (Traverse_Stub): routine refactored - from repeated code of Traverse_Compilation_Unit. - (Traverse_Declaration_Or_Statement): fixed detection of - generic subprograms and packages; also, iteration over case - statement alternatives rewritten to avoid testing if the first - alternative is present (since it must be present due to Ada - syntax restrictions). - -2017-01-19 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch6.adb (Expand_N_Subprogram_Body): Mark the spec as - returning by reference not just for subprogram body stubs, - but for all subprogram cases. - * sem_util.adb: Code reformatting. - (Requires_Transient_Scope): Update the call to Results_Differ. - (Results_Differ): Update the parameter profile and the associated - comment on usage. - -2017-01-19 Ed Schonberg <schonberg@adacore.com> - - * sem_dim.adb (Analyze_Dimension): Analyze object declaration and - identifier nodes that do not come from source, to handle properly - dimensionality check within an inlined body which inclddes both - original operands and rewritten operands. This removes spurious - dimensionality errors in the presence of front-end inlining, - as well as in SPARK mode. - -2017-01-16 Jakub Jelinek <jakub@redhat.com> - - PR driver/49726 - * gcc-interface/lang.opt (gant, gnatO, gnat): Add Driver flag. - -2017-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> - - * gcc-interface/Makefile.in (SPARC/Solaris): Fix typo. - -2017-01-13 Arnaud Charlet <charlet@adacore.com> - - * doc/gnat_ugn/getting_started_with_gnat.rst, - doc/gnat_ugn/inline_assembler.rst, - doc/gnat_ugn/building_executable_programs_with_gnat.rst, - doc/gnat_ugn/elaboration_order_handling_in_gnat.rst, - doc/gnat_ugn/about_this_guide.rst, - doc/gnat_ugn/platform_specific_information.rst, - doc/gnat_ugn/example_of_binder_output.rst, - doc/gnat_ugn/gnat_and_program_execution.rst, - doc/gnat_ugn/gnat_utility_programs.rst, - doc/gnat_ugn/the_gnat_compilation_model.rst, - doc/gnat_rm/implementation_defined_attributes.rst, - doc/gnat_rm/compatibility_and_porting_guide.rst, - doc/gnat_rm/standard_library_routines.rst, - doc/gnat_rm/standard_and_implementation_defined_restrictions.rst, - doc/gnat_rm/implementation_defined_pragmas.rst, - doc/gnat_rm/the_gnat_library.rst, - doc/gnat_rm/obsolescent_features.rst, - doc/gnat_rm/about_this_guide.rst, - doc/gnat_rm/the_implementation_of_standard_i_o.rst, - doc/gnat_rm/implementation_of_ada_2012_features.rst, - doc/gnat_rm/interfacing_to_other_languages.rst, - doc/gnat_rm/implementation_defined_aspects.rst, - doc/gnat_rm.rst: Update documentation. - * gnat_rm.texi, gnat_ugn.texi: Regenerated. - -2017-01-13 Ed Schonberg <schonberg@adacore.com> - - * einfo.ads: minor grammar fixes in comment of Normalized_Position_Max. - * scil_ll.adb: Minor style fix in comment. - * sem_ch8.adb (Analyze_Expanded_Name): Perform dimension analysis - even if entity is already set, because the node may be renalyzed - after inlining transformations. - -2017-01-13 Javier Miranda <miranda@adacore.com> - - * sem_res.adb (Resolve_Call): Do not establish a transient scope - for a call to inlinable expression function (since the call will - be replaced by its returned object). - * exp_ch6.ads (Is_Inlinable_Expression_Function): New subprogram. - * exp_ch6.adb (Expression_Of_Expression_Function): New subprogram. - (Expand_Call): For inlinable expression function call replace the - call by its returned object. - (Is_Inlinable_Expression_Function): New subprogram. - -2017-01-13 Gary Dismukes <dismukes@adacore.com> - - * checks.adb: Minor typo fix and reformatting. - -2017-01-13 Javier Miranda <miranda@adacore.com> - - * contracts.adb (Contract_Only_Subprograms): Remove formal. - (Copy_Original_Specification): Removed. - (Skip_Contract_Only_Subprogram): Move here checks previously - located in the caller of this routine (to leave the code more clean). - (Build_Contract_Only_Subprogram): Code cleanup. - * scil_ll.ads, scil_ll.adb (Get_Contract_Only_Body_Name): Removed. - (Get_Contract_Only_Missing_Body_Name): Removed. - -2017-01-13 Javier Miranda <miranda@adacore.com> - - * sem_ch6.adb (Cloned_Expression): New subprogram. - (Freeze_Expr_Types): Complete previous patch since the expression - of an expression-function may have iterators and loops with - defining identifiers which, as part of the preanalysis of the - expression, may be left decorated with itypes that will not be - available in the tree passed to the backend. - -2017-01-13 Ed Schonberg <schonberg@adacore.com> - - * checks.adb (Apply_Type_Conversion_Checks): Optimize a type - conversion to Integer of an expression that is an attribute - reference 'Pos on an enumeration type. - -2017-01-13 Bob Duff <duff@adacore.com> - - * atree.ads: Minor comment fix. - -2017-01-13 Justin Squirek <squirek@adacore.com> - - * sem_ch6.adb (Check_Aggregate_Accessibility): Ignore function - calls in accessibility check on return statement. - -2017-01-13 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): - Ensure that the input body is a subprogram body before trying to - determine whether it denoted an expression function. Note that - subprogram body stubs cannot denote expression functions. - -2017-01-13 Gary Dismukes <dismukes@adacore.com> - - * bindgen.adb, sem_ch6.adb, binde.adb, exp_ch3.adb: Minor reformatting - and typo fixes. - -2017-01-13 Javier Miranda <miranda@adacore.com> - - * einfo.ads (Component_Bit_Offset): Fix documentation. - * sem_ch13.adb (Check_Record_Representation_Clause): Skip check - on record holes for components with unknown compile-time offsets. - -2017-01-13 Bob Duff <duff@adacore.com> - - * ali.ads, ali.adb (Static_Elaboration_Model_Used): Remove unused flag. - * g-locfil.ads: Minor comment fix. - -2017-01-13 Bob Duff <duff@adacore.com> - - * binde.adb (Elab_New): New elaboration order algorithm - that is expected to cause fewer ABE issues. This is a work in - progress. The new algorithm is currently disabled, and can be - enable by the -dp switch, or by modifying the Do_Old and Do_New - etc. flags and rebuilding. Experimental code is included to - compare the results of the old and new algorithms. - * binde.ads: Use GNAT.Dynamic_Tables instead of Table, so we - can have multiple of these tables, so the old and new algorithms - can coexist. - * bindgen.ads (Gen_Output_File): Pass Elab_Order as an 'in' - parameter of type array. This avoids the global variable, and - allows bounds checking (which is normally defeated by the tables - packages). It also ensures that the Elab_Order is read-only - to Bindgen. - * bindgen.adb: Pass Elab_Order as an 'in' parameter to all - subprograms that need it, as above. - * debug.adb: Document new -dp switch. Modify doc of old -do - switch. - * gnatbind.adb (Gnatbind): Make use of new interfaces to Binde - and Bindgen. Move writing of closure (-R and -Ra switches) - to Binde; that's more convenient. - -2017-01-13 Ed Schonberg <schonberg@adacore.com> - - * sem_ch6.adb (Analyze_Expression_Function): If the expression - function is a completion, all entities referenced in the - expression are frozen. As a consequence, a reference to an - uncompleted private type from an enclosing scope is illegal. - -2017-01-13 Javier Miranda <miranda@adacore.com> - - * sem_ch6.adb (Freeze_Expr_Types): New subprogram. - (Analyze_Subprogram_Body_Helper): At the occurrence of an - expression function declaration that is a completion, its - expression causes freezing (AI12-0103). - -2017-01-13 Vadim Godunko <godunko@adacore.com> - - * a-coinho-shared.adb: Fix memory leaks in Constant_Reference and - Reference functions of Ada.Containers.Indefinite_Holders. - -2017-01-13 Bob Duff <duff@adacore.com> - - * s-os_lib.ads: Minor comment fixes. - -2017-01-13 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch3.adb (Default_Initialize_Object): Do not default - initialize an object when it is of a task type and restriction - No_Tasking is in effect because the initialization is obsolete. - * exp_ch9.adb (Build_Master_Entity): Do not generate a master when - restriction No_Tasking is in effect. - (Build_Master_Renaming): Do not rename a master when restriction - No_Tasking is in effect. - -2017-01-13 Ed Schonberg <schonberg@adacore.com> - - * sem_aggr.adb (Resolve_Array_Aggregate): The code that verifies - the legality of An others clause applies as well to a choice in - an Iterated_component_ association. - (Resolve_Iterated_Component_Association): An others choice - is legal. - * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): An - Iterated_Component_Association is not static. - -2017-01-13 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch3.adb (Freeze_Type): Mark the Ghost mode as set in case - control is passed to the expresion handler before the new mode - is set. - * sem_ch12.adb (Analyze_Package_Instantiation, - Analyze_Subprogram_Instantiation): Mark the Ghost mode as set - in case control is passed to the expresion handler before the - new mode is set. - -2017-01-13 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_aggr.adb, sem_ch3.adb, inline.adb, sem_util.adb, exp_ch4.adb, - exp_aggr.adb: Minor reformatting. - -2017-01-13 Gary Dismukes <dismukes@adacore.com> - - * inline.adb: Minor reformatting and typo fix. - -2017-01-13 Ed Schonberg <schonberg@adacore.com> - - * sem_util.ads, sem_util.adb (Choice_List): Move function here - from sem_aggr.adb, for use elsewhere. - * sem_ch3.adb (Analyze_Object_Declaration): Use Choice_List. - * sem_aggr.adb (Resolve_Array_Aggregate): Remove - Iterated_Component_Present. - * exp_aggr.adb: Use Choice_List throughout, to handle - Iterated_Component_Associations. - (Gen_Loop): Generate proper loop for an - Iterated_Component_Association: loop variable has the identifier - of the original association. Generate a loop even for a single - component choice, in order to make loop parameter visible in - expression. - (Flatten): An Iterated_Component_Association is not static. - -2017-01-13 Yannick Moy <moy@adacore.com> - - * exp_ch4.adb (Expand_N_Op_Expon): Ensure that the value of - float exponentiation for statically known small negative values - is the reciprocal of the exponentiation for the opposite value - of the exponent. - * s-exnllf.adb (Exn_Float, Exn_Long_Float, Exn_Long_Long_Float): - Ensure that the value of float exponentiation for negative values - is the reciprocal of the exponentiation for the opposite value - of the exponent. - * inline.adb (Expand_Inlined_Call): Fix the count - for the number of generated gotos. - -2017-01-13 Yannick Moy <moy@adacore.com> - - * inline.adb: Code cleanup. - * sem_util.adb (Is_OK_Volatile_Context): Add - expression in delay statement as OK for volatile context. - -2017-01-13 Ed Schonberg <schonberg@adacore.com> - - * sem_aggr.adb (Resolve_Array_Aggregate): In normal compilation - mode a choice that is a subtype with a static predicate is - replaced by the values it covers. This transformation must not - be performed in ASIS mode, to preserve the source for analysis. - -2017-01-13 Justin Squirek <squirek@adacore.com> - - * nlists.ads: Correct minor typo. - -2017-01-13 Gary Dismukes <dismukes@adacore.com> - - * sem_ch13.adb: Minor reformatting and typo fix. - -2017-01-13 Ed Schonberg <schonberg@adacore.com> - - * par-ch4.adb (P_Aggregate_Or_Parent_Expr): An - Iterated_Component_Association is a named association in an - array aggregate. - * sem_aggr.adb (Resolve_Iterated_Component_Association): New - procedure, subsidiary of Resolve_Array_Aggregate, to analyze - and resolve the discrete choices and the expression of the - new construct. - * sinfo.adb, sinfo.ads: In analogy with N_Component_Association, - Loop_Actions and Box_Present are attributes of - N_Iterated_Component_Association nodes. Box_Present is always - False in this case. - * sprint.adb (Sprint_Node): An Iterated_Component_Association - has a Discrete_Choices list, as specified in the RM. A - Component_Association for aggregate uses instead a Choices list. - We have to live with this small inconsistency because the new - construct also has a defining identifier, and there is no way - to merge the two node structures. - -2017-01-13 Yannick Moy <moy@adacore.com> - - * inline.adb (Remove_Aspects_And_Pragmas): Add Unused to the - list of pragmas to remove. Remove pragmas from the list of - statements in the body to inline. - * namet.adb, namet.ads (Nam_In): New version with 12 parameters. - -2017-01-13 Ed Schonberg <schonberg@adacore.com> - - * sem_ch3.adb (Resolve_Aspects): New procedure, subsidiary of - Analyze_Declarations, to analyze and resolve the expressions of - aspect specifications in the current declarative list, so that - the expressions have proper entity and type info. This is needed - for ASIS when there is no subsequent expansion to generate this - semantic information. - * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Use Etype of - original expression, to suppress cascaded errors when expression - has been constant-folded. - (Resolve_Aspect_Expressions, Resolve_Name): Preserve entities in - ASIS mode, because there is no subsequent expansion to decorate - the tree. - -2017-01-13 Yannick Moy <moy@adacore.com> - - * inline.adb, inline.ads (Call_Can_Be_Inlined_In_GNATprove_Mode): - New function to detect when a call may be inlined or not in - GNATprove mode. - (Expand_Inlined_Call): Ensure that a temporary - is always created in the cases where a type conversion may be - needed on an input parameter in GNATprove mode, so that GNATprove - sees the check to perform. - * sem_res.adb (Resolve_Call): In GNATprove mode, skip inlining - when not applicable due to actual requiring type conversion - with possible check but no temporary value can be copied for - GNATprove to see the check. - -2017-01-13 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_aggr.adb, par_sco.adb, s-osprim-mingw.adb, exp_ch5.adb, - exp_prag.adb, sem_ch3.adb, xr_tabls.adb, lib-xref-spark_specific.adb, - layout.adb, sem_dist.adb, exp_spark.adb, exp_ch7.adb, gnatcmd.adb, - exp_util.adb, prj-proc.adb, sem_aux.adb, comperr.adb, g-memdum.adb, - exp_attr.adb, s-intman-solaris.adb, exp_ch9.adb, make.adb, live.adb, - g-sercom-linux.adb, sem_dim.adb, mlib-prj.adb, s-intman-posix.adb, - sem_ch9.adb, sem_ch10.adb, prep.adb, einfo.adb, scng.adb, checks.adb, - prj-strt.adb, sem_prag.adb, eval_fat.adb, sem_ch12.adb, sem.adb, - a-numaux-x86.adb, a-stwifi.adb, i-cobol.adb, prj.adb, - get_spark_xrefs.adb, s-tasini.adb, rtsfind.adb, freeze.adb, - g-arrspl.adb, par-ch4.adb, sem_util.adb, sem_res.adb, expander.adb, - sem_attr.adb, exp_dbug.adb, prj-pp.adb, a-stzfix.adb, s-interr.adb, - s-wchcnv.adb, switch-m.adb, gnat1drv.adb, sinput-l.adb, stylesw.adb, - contracts.adb, s-intman-android.adb, g-expect.adb, exp_ch4.adb, - g-comlin.adb, errout.adb, sinput.adb, s-exctra.adb, repinfo.adb, - g-spipat.adb, g-debpoo.adb, exp_ch6.adb, sem_ch4.adb, exp_ch13.adb, - a-wtedit.adb, validsw.adb, pprint.adb, widechar.adb, makeutl.adb, - ali.adb, set_targ.adb, sem_mech.adb, sem_ch6.adb, gnatdll.adb, - get_scos.adb, g-pehage.adb, s-tratas-default.adb, gnatbind.adb, - prj-dect.adb, g-socthi-mingw.adb, par-prag.adb, prj-nmsc.adb, - exp_disp.adb, par-ch12.adb, binde.adb, sem_ch8.adb, - s-tfsetr-default.adb, s-regexp.adb, gprep.adb, s-tpobop.adb, - a-teioed.adb, sem_warn.adb, sem_eval.adb, g-awk.adb, s-io.adb, - a-ztedit.adb, xoscons.adb, exp_intr.adb, sem_cat.adb, sprint.adb, - g-socket.adb, exp_dist.adb, sem_ch13.adb, s-tfsetr-vxworks.adb, - par-ch3.adb, treepr.adb, g-forstr.adb, g-catiio.adb, par-ch5.adb, - uname.adb, osint.adb, exp_ch3.adb, prj-env.adb, a-strfix.adb, - a-stzsup.adb, prj-tree.adb, s-fileio.adb: Update all eligible case - statements to reflect the new style for case alternatives. Various - code clean up and reformatting. - -2017-01-13 Gary Dismukes <dismukes@adacore.com> - - * exp_util.adb: Minor reformatting. - -2017-01-13 Yannick Moy <moy@adacore.com> - - * exp_spark.adb: Code cleanup. - * sem_ch9.adb (Analyze_Delay_Until): Resolve - expression so that calls are identified as such inside delay - until. - -2017-01-13 Ed Schonberg <schonberg@adacore.com> - - * exp_util.adb (Insert_Actions): Handle Iterated_Component_Association. - * par-ch3.adb (P_Discrete_Choice_List): An - Iterated_Component_Association is an array aggregate component. - * par-ch4.adb (P_Iterated_Component_Association): New procedure. - (Is_Quantified_Expression): New function that performs a lookahead - to distinguish quantified expressions from iterated component - associations. - (P_Aggregate_Or_Paren_Expr): Recognize iterated component - associations. - (P_Unparen_Cond_Case_Quant_Expression, P_Primary): Ditto. - * sem.adb (Analyze): Handle Iterated_Component_Association. - * sem_aggr.adb (Resolve_Array_Aggregate): Dummy handling of iterated - component associations. - * sinfo.ads, sinfo.adb: Entries for for - N_Iterated_Component_Association and its fields. - * sprint.adb (Sprint_Node_Actual): Handle - N_Iterated_Component_Association. - -2017-01-13 Justin Squirek <squirek@adacore.com> - - * sem_ch12.adb (Analyze_Package_Instantiation): Move disabiling - of the style check until after preanalysis of acutals. - -2017-01-13 Yannick Moy <moy@adacore.com> - - * sem_ch13.adb: Minor reformatting. - * par-ch11.adb: minor style fix in whitespace - * gnatbind.adb (Gnatbind): Scope of Std_Lib_File - reduced to Add_Artificial_ALI_File; style fix in declaration of - Text; grammar fix in comment. - * osint-c.adb (Read_Library_Info): strip trailing NUL from result. - * freeze.adb: Cleanup to pass pragma instead of - expression to call. - * exp_spark.adb (Expand_SPARK_Attribute_Reference): New procedure to - replace System'To_Address by equivalent call. - -2017-01-13 Arnaud Charlet <charlet@adacore.com> - - * bindusg.adb: Improve usage output for -f switch. - -2017-01-13 Hristian Kirtchev <kirtchev@adacore.com> - - * frontend.adb, freeze.adb, sem_res.adb, sem_attr.adb, sem_ch8.adb: - Minor reformatting. - -2017-01-13 Ed Schonberg <schonberg@adacore.com> - - * sem_ch13.adb (Is_Predicate_Static): Following the intent of the RM, - treat comparisons on strings as legal in a Static_Predicate. - (Is_Predicate_Static, Is_Type_Ref): Predicate also returns true on - a function call that is the expansion of a string comparison.The - function call is built when compiling the corresponding predicate - function, but the expression has been found legal as a static - predicate during earlier analysis. - * sem_eval.adb (Real_Or_String_Static_Predicate_Matches): Handle - properly a function call that is the expansion of a string - comparison operation, in order to recover the Static_Predicate - expression and apply it to a static argument when needed. - -2017-01-13 Tristan Gingold <gingold@adacore.com> - - * s-mmap.adb, s-mmap.ads (Open_Read_No_Exception): New function. - (Open_Read): Re-implement using Open_Read_No_Exception. - (Open_Write): Raise exception in case of error. - * s-mmosin-mingw.adb (Open_Common): Do not raise exception. - * s-mmosin-unix.adb (Open_Read, Open_Write): Do not - reaise exception. - * s-mmosin-mingw.ads, s-mmosin-unix.ads (Open_Read): Adjust comment. - -2017-01-13 Yannick Moy <moy@adacore.com> - - * checks.adb: Code cleanup. - -2017-01-13 Yannick Moy <moy@adacore.com> - - * freeze.adb (Check_Inherited_Conditions): Use analyzed pragma - expression instead of unanalyzed aspect expression for checking - the validity of inheriting an operation. Also copy the expression - being passing it to Build_Class_Wide_Expression, as this call - modifies its argument. - * sem_util.ads Fix comment to reference correct function name - New_Copy_Tree. - -2017-01-13 Javier Miranda <miranda@adacore.com> - - * sem_res.adb (Resolve_Generalized_Indexing): Compiling in ASIS mode, - when we propagate information about the indexes back to the original - indexing mode and the prefix of the index is a function call, do not - remove any parameter from such call. - -2017-01-13 Gary Dismukes <dismukes@adacore.com> - - * exp_ch6.ads (Needs_BIP_Finalization_Master): Update comment. - * exp_ch6.adb (Needs_BIP_Finalization_Master): Return True for - a build-in-place function whose result type is tagged. - -2017-01-13 Yannick Moy <moy@adacore.com> - - * sem_ch8.adb (Analyze_Subprogram_Renaming.Build_Class_Wide_Wrapper): - Do not generate a wrapper when the only candidate is a class-wide - subprogram. - (Analyze_Subprogram_Renaming): Do not freeze the renaming or renamed - inside a generic context. - -2017-01-13 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_util.adb (Add_Inherited_Tagged_DIC): - Pass the object parameters of both the parent and the derived - type DIC procedure to the reference replacement circuitry. - (Find_DIC_Type): Modify the circuitry to present the partial - view of a private type in case the private type defines its own - DIC pragma. - (Replace_Object_And_Primitive_References): Add two - optional formal parameters. Update the comment on usage. Update - the replacement of references to object parameters. - -2017-01-13 Gary Dismukes <dismukes@adacore.com> - - * einfo.adb, sem_ch6.adb, atree.adb: Minor reformatting and typo fix. - -2017-01-13 Ed Schonberg <schonberg@adacore.com> - - * sem_res.adb (Resolve_Actuals): Apply Scalar_Range_Check to - an out parameter that is a type conversion, independently of th - range check that may apply to the expression of the conversion, - for use in GNATProve. - -2017-01-13 Yannick Moy <moy@adacore.com> - - * gnat1drv.adb (Gnat1drv): Move the implicit with for System in - GNATprove_Mode here to Frontend. - * frontend.adb (Frontend): Move the implicit with for System - in GNATprove_Mode here as it ismore correct this way; the old - place only worked by chance, since there were no overloaded names. - * rtsfind.ads (RE_Id, RE_Unit_Table): Add RE_Tasking_State. - * sem_attr.adb (Analyze_Attribute): In GNATprove_Mode, for the - four attributes identified in SRM 9(18), add an implicit with - to Ada.Task_Identification. - * sem_ch8.adb (Analyze_Subprogram_Renaming.Build_Class_Wide_Wrapper): - Deal specially with the wrapper introduced for AI05-0071 in GNATprove - mode. - * checks.adb (Apply_Discriminant_Check, - Apply_Selected_Length_Checks, Apply_Selected_Range_Checks): - In GNATprove mode, we do not apply the checks, but we still - analyze the expression to possibly issue errors on SPARK - code when a run-time error can be detected at compile time. - (Selected_Length_Checks, Selected_Range_Checks): Perform analysis - in GNATprove mode. - -2017-01-13 Hristian Kirtchev <kirtchev@adacore.com> - - * expander.adb (Expand): Add a warning about using return - statements in Ghost management code. - * exp_ch3.adb (Freeze_Type): Add a warning about using return - statements in Ghost management code. - * exp_ch7.adb (Build_Invariant_Procedure_Body, - Build_Invariant_Procedure_Declaration): Add a warning about - using return statements in Ghost management code. - * exp_disp.adb (Make_DT): Add a warning about using return - statements in Ghost management code. - * exp_util.adb (Build_DIC_Procedure_Body, - Build_DIC_Procedure_Declaration, Make_Predicated_Call): Add a - warning about using return statements in Ghost management code. - * freeze.adb (Freeze_Entity): Add a warning about using return - statements in Ghost management code. - * sem.adb (Analyze, Do_Analyze): Add a warning about using return - statements in Ghost management code. - * sem_ch3.adb (Analyze_Object_Declaration, Process_Full_View): Add - a warning about using return statements in Ghost management code. - * sem_ch5.adb (Analyze_Assignment): Add a warning about using - return statements in Ghost management code. - * sem_ch6.adb (Analyze_Procedure_Call, - Analyze_Subprogram_Body_Helper): Add a warning about using return - statements in Ghost management code. - * sem_ch7.adb (Analyze_Package_Body_Helper): Add a warning about - using return statements in Ghost management code. - * sem_ch12.adb (Analyze_Package_Instantiation, - Analyze_Subprogram_Instantiation, Instantiate_Package_Body, - Instantiate_Subprogram_Body): Add a warning about using return - statements in Ghost management code. - * sem_ch13.adb (Build_Predicate_Functions, - Build_Predicate_Function_Declarations): Add a warning about - using return statements in Ghost management code. - * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part, - Analyze_Initial_Condition_In_Decl_Part, Analyze_Pragma, - Analyze_Pre_Post_Condition_In_Decl_Part): Add a warning about - using return statements in Ghost management code. - -2017-01-13 Tristan Gingold <gingold@adacore.com> - - * s-mmosin-mingw.adb: Fix pragma import. - -2017-01-13 Arnaud Charlet <charlet@adacore.com> - - * gnat1drv.adb (Adjust_Global_Switches): Ignore -gnateE in - codepeer mode. - -2017-01-13 Hristian Kirtchev <kirtchev@adacore.com> - - * atree.adb (Allocate_Initialize_Node): A newly created node is - no longer marked as Ghost at this level. - (Mark_New_Ghost_Node): New routine. - (New_Copy): Mark the copy as Ghost. - (New_Entity): Mark the entity as Ghost. - (New_Node): Mark the node as Ghost. - * einfo.adb (Is_Checked_Ghost_Entity): This attribute can now - apply to unanalyzed entities. - (Is_Ignored_Ghost_Entity): This attribute can now apply to unanalyzed - entities. - (Set_Is_Checked_Ghost_Entity): This attribute now - applies to all entities as well as unanalyzed entities. - (Set_Is_Ignored_Ghost_Entity): This attribute now applies to - all entities as well as unanalyzed entities. - * expander.adb Add with and use clauses for Ghost. - (Expand): Install and revert the Ghost region associated with the node - being expanded. - * exp_ch3.adb (Expand_Freeze_Array_Type): Remove all Ghost-related code. - (Expand_Freeze_Class_Wide_Type): Remoe all Ghost-related code. - (Expand_Freeze_Enumeration_Type): Remove all Ghost-related code. - (Expand_Freeze_Record_Type): Remove all Ghost-related code. - (Freeze_Type): Install and revert the Ghost region associated - with the type being frozen. - * exp_ch5.adb Remove with and use clauses for Ghost. - (Expand_N_Assignment_Statement): Remove all Ghost-related code. - * exp_ch6.adb Remove with and use clauses for Ghost. - (Expand_N_Procedure_Call_Statement): Remove all Ghost-relatd code. - (Expand_N_Subprogram_Body): Remove all Ghost-related code. - * exp_ch7.adb (Build_Invariant_Procedure_Body): Install and revert the - Ghost region of the working type. - (Build_Invariant_Procedure_Declaration): Install and revert - the Ghost region of the working type. - (Expand_N_Package_Body): Remove all Ghost-related code. - * exp_ch8.adb Remove with and use clauses for Ghost. - (Expand_N_Exception_Renaming_Declaration): Remove all Ghost-related - code. - (Expand_N_Object_Renaming_Declaration): Remove all Ghost-related code. - (Expand_N_Package_Renaming_Declaration): Remove all Ghost-related code. - (Expand_N_Subprogram_Renaming_Declaration): Remove all Ghost-related - code. - * exp_ch13.adb Remove with and use clauses for Ghost. - (Expand_N_Freeze_Entity): Remove all Ghost-related code. - * exp_disp.adb (Make_DT): Install and revert the Ghost region of - the tagged type. Move the generation of various entities within - the Ghost region of the type. - * exp_prag.adb Remove with and use clauses for Ghost. - (Expand_Pragma_Check): Remove all Ghost-related code. - (Expand_Pragma_Contract_Cases): Remove all Ghost-related code. - (Expand_Pragma_Initial_Condition): Remove all Ghost-related code. - (Expand_Pragma_Loop_Variant): Remove all Ghost-related code. - * exp_util.adb (Build_DIC_Procedure_Body): Install - and revert the Ghost region of the working types. - (Build_DIC_Procedure_Declaration): Install and revert the - Ghost region of the working type. - (Make_Invariant_Call): Install and revert the Ghost region of the - associated type. - (Make_Predicate_Call): Reimplemented. Install and revert the - Ghost region of the associated type. - * freeze.adb (Freeze_Entity): Install and revert the Ghost region - of the entity being frozen. - (New_Freeze_Node): Removed. - * ghost.adb Remove with and use clauses for Opt. - (Check_Ghost_Completion): Update the parameter profile - and all references to formal parameters. - (Ghost_Entity): Update the comment on usage. - (Install_Ghost_Mode): New routines. - (Is_Ghost_Assignment): New routine. - (Is_Ghost_Declaration): New routine. - (Is_Ghost_Pragma): New routine. - (Is_Ghost_Procedure_Call): New routine. - (Is_Ghost_Renaming): Removed. - (Is_OK_Declaration): Reimplemented. - (Is_OK_Pragma): Reimplemented. - (Is_OK_Statement): Reimplemented. - (Is_Subject_To_Ghost): Update the comment on usage. - (Mark_And_Set_Ghost_Assignment): New routine. - (Mark_And_Set_Ghost_Body): New routine. - (Mark_And_Set_Ghost_Completion): New routine. - (Mark_And_Set_Ghost_Declaration): New routine. - (Mark_And_Set_Ghost_Instantiation): New routine. - (Mark_And_Set_Ghost_Procedure_Call): New routine. - (Mark_Full_View_As_Ghost): Removed. - (Mark_Ghost_Declaration_Or_Body): New routine. - (Mark_Ghost_Pragma): New routine. - (Mark_Ghost_Renaming): New routine. - (Mark_Pragma_As_Ghost): Removed. - (Mark_Renaming_As_Ghost): Removed. - (Propagate_Ignored_Ghost_Code): Update the comment on usage. - (Prune_Node): Freeze nodes no longer need special pruning, they - are processed by the general ignored Ghost code mechanism. - (Restore_Ghost_Mode): New routine. - (Set_Ghost_Mode): Reimplemented. - (Set_Ghost_Mode_From_Entity): Removed. - * ghost.ads Add with and use clauses for Ghost. - (Check_Ghost_Completion): Update the parameter profile - along with the comment on usage. - (Install_Ghost_Mode): New routine. - (Is_Ghost_Assignment): New routine. - (Is_Ghost_Declaration): New routine. - (Is_Ghost_Pragma): New routine. - (Is_Ghost_Procedure_Call): New routine. - (Mark_And_Set_Ghost_Assignment): New routine. - (Mark_And_Set_Ghost_Body): New routine. - (Mark_And_Set_Ghost_Completion): New routine. - (Mark_And_Set_Ghost_Declaration): New routine. - (Mark_And_Set_Ghost_Instantiation): New routine. - (Mark_And_Set_Ghost_Procedure_Call): New routine. - (Mark_Full_View_As_Ghost): Removed. - (Mark_Ghost_Pragma): New routine. - (Mark_Ghost_Renaming): New routine. - (Mark_Pragma_As_Ghost): Removed. - (Mark_Renaming_As_Ghost): Removed. - (Restore_Ghost_Mode): New routine. - (Set_Ghost_Mode): Redefined. - (Set_Ghost_Mode_From_Entity): Removed. - * sem.adb (Analyze): Install and revert the Ghost region of the - node being analyzed. - (Do_Analyze): Change the way a clean Ghost - region is installed and reverted. - * sem_ch3.adb (Analyze_Full_Type_Declaration): Remove - all Ghost-related code. - (Analyze_Incomplete_Type_Decl): Remove all Ghost-related code. - (Analyze_Number_Declaration): Remove all Ghost-related code. - (Analyze_Object_Declaration): Install and revert the Ghost region of - a deferred object declaration's completion. - (Array_Type_Declaration): Remove all Ghost-related code. - (Build_Derived_Type): Update the comment on - the propagation of Ghost attributes from a parent to a derived type. - (Derive_Subprogram): Remove all Ghost-related code. - (Make_Class_Wide_Type): Remove all Ghost-related code. - (Make_Implicit_Base): Remove all Ghost-related code. - (Process_Full_View): Install and revert the Ghost region of - the partial view. There is no longer need to check the Ghost - completion here. - * sem_ch5.adb (Analyze_Assignment): Install and revert the Ghost - region of the left hand side. - * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Remove - all Ghost-related code. - (Analyze_Expression_Function): Remove all Ghost-related code. - (Analyze_Generic_Subprogram_Body): Remove all Ghost-related code. - (Analyze_Procedure_Call): Install and revert the Ghost region of - the procedure being called. - (Analyze_Subprogram_Body_Helper): Install and revert the Ghost - region of the spec or body. - (Analyze_Subprogram_Declaration): Remove all Ghost-related code. - (Build_Subprogram_Declaration): Remove all Ghost-related code. - (Find_Corresponding_Spec): Remove all Ghost-related code. - (Process_Formals): Remove all Ghost-related code. - * sem_ch7.adb (Analyze_Package_Body_Helper): Install and revert - the Ghost region of the spec. - (Analyze_Package_Declaration): Remove all Ghost-related code. - * sem_ch8.adb (Analyze_Exception_Renaming): Mark a renaming as - Ghost when it aliases a Ghost entity. - (Analyze_Generic_Renaming): Mark a renaming as Ghost when it aliases - a Ghost entity. - (Analyze_Object_Renaming): Mark a renaming as Ghost when - it aliases a Ghost entity. - (Analyze_Package_Renaming): Mark a renaming as Ghost when it aliases - a Ghost entity. - (Analyze_Subprogram_Renaming): Mark a renaming as Ghost when it - aliases a Ghost entity. - * sem_ch11.adb Remove with and use clauses for Ghost. - (Analyze_Exception_Declaration): Remove all Ghost-related code. - * sem_ch12.adb (Analyze_Generic_Package_Declaration): Remove all - Ghost-related code. - (Analyze_Generic_Subprogram_Declaration): Remove all Ghost-related - code. - (Analyze_Package_Instantiation): Install and revert the Ghost region - of the package instantiation. - (Analyze_Subprogram_Instantiation): Install - and revert the Ghost region of the subprogram instantiation. - (Instantiate_Package_Body): Code clean up. Install and revert the - Ghost region of the package body. - (Instantiate_Subprogram_Body): Code clean up. Install and revert the - Ghost region of the subprogram body. - * sem_ch13.adb (Build_Predicate_Functions): Install - and revert the Ghost region of the related type. - (Build_Predicate_Function_Declaration): Code clean up. Install - and rever the Ghost region of the related type. - * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): - Install and revert the Ghost region of the pragma. - (Analyze_Initial_Condition_In_Decl_Part): Install and revert the - Ghost region of the pragma. - (Analyze_Pragma): Install and revert the Ghost region of various - pragmas. Mark a pragma as Ghost when it is related to a Ghost entity - or encloses a Ghost entity. - (Analyze_Pre_Post_Condition): Install and revert the Ghost - region of the pragma. - (Analyze_Pre_Post_Condition_In_Decl_Part): Install and revert the - Ghost region of the pragma. - * sem_res.adb (Resolve): Remove all Ghost-related code. - * sem_util.adb (Is_Declaration): Reimplemented. - (Is_Declaration_Other_Than_Renaming): New routine. - * sem_util.ads (Is_Declaration_Other_Than_Renaming): New routine. - * sinfo.adb (Is_Checked_Ghost_Pragma): New routine. - (Is_Ghost_Pragma): Removed. - (Is_Ignored_Ghost_Pragma): New routine. - (Set_Is_Checked_Ghost_Pragma): New routine. - (Set_Is_Ghost_Pragma): Removed. - (Set_Is_Ignored_Ghost_Pragma): New routine. - * sinfo.ads: Update the documentation on Ghost mode and - Ghost regions. New attributes Is_Checked_Ghost_Pragma - and Is_Ignored_Ghost_Pragma along with usages in nodes. - Remove attribute Is_Ghost_Pragma along with usages in nodes. - (Is_Checked_Ghost_Pragma): New routine along with pragma Inline. - (Is_Ghost_Pragma): Removed along with pragma Inline. - (Is_Ignored_Ghost_Pragma): New routine along with pragma Inline. - (Set_Is_Checked_Ghost_Pragma): New routine along with pragma Inline. - (Set_Is_Ghost_Pragma): Removed along with pragma Inline. - (Set_Is_Ignored_Ghost_Pragma): New routine along with pragma Inline. - -2017-01-12 Tristan Gingold <gingold@adacore.com> - - * s-mmap.ads, s-mmap.adb, s-mmosin-unix.ads, s-mmosin-unix.adb, - s-mmauni-long.ads, s-mmosin-mingw.ads, s-mmosin-mingw.adb: New files. - -2017-01-12 Yannick Moy <moy@adacore.com> - - * errout.adb, errout.ads (Initialize): Factor common treatment - in Reset_Warnings. - (Reset_Warnings): New procedure to reset counts related to warnings. - (Record_Compilation_Errors): New variable to store the presence of an - error, used in gnat2why to allow changing the Warning_Mode. - (Compilation_Errors): Use new variable Record_Compilation_Errors to - store the presence of an error. - -2017-01-12 Javier Miranda <miranda@adacore.com> - - * sem_ch13.adb (Analyze_Aspect_Specifications): - For Interrupt_Handler and Attach_ Handler aspects, decorate the - internally built reference to the protected procedure as coming - from sources and force its analysis. - -2017-01-12 Ed Schonberg <schonberg@adacore.com> - - * sem_ch3.adb (Build_Derived_Type): For a scalar derived type, - inherit predicates if any from the first_subtype of the parent, - not from the anonymous parent type. - * sem_eval.adb (Is_Static_Subtype): A type that inherits a dynamic - predicate is not a static subtype. - -2017-01-12 Gary Dismukes <dismukes@adacore.com> - - * freeze.adb (Check_Suspicious_Convention): New procedure - performing a warning check on discriminated record types with - convention C or C++. Factored out of procedure Freeze_Record_Type, - and changed to only apply to base types (to avoid spurious - warnings on subtypes). Minor improvement of warning messages - to refer to discriminated rather than variant record types. - (Freeze_Record_Type): Remove code for performing a suspicious - convention check. - (Freeze_Entity): Only call Freeze_Record_Type - on types that aren't declared within any enclosing generic units - (rather than just excluding the type when the innermost scope - is generic). Call Check_Suspicious_Convention whether or not - the type is declared within a generic unit. - * sem_ch8.adb (In_Generic_Scope): Move this function to Sem_Util. - * sem_util.ads, sem_util.adb (In_Generic_Scope): New function (moved - from Sem_Ch8). - -2017-01-12 Tristan Gingold <gingold@adacore.com> - - * sysdep.c, adaint.c, rtinit.c, ming32.h: - (__gnat_current_codepage): Renamed from CurrentCodePage - (__gnat_current_ccs_encoding): Renamed from CurrentCCSEncoding - -2017-01-12 Ed Schonberg <schonberg@adacore.com> - - * sem_ch6.adb (Fully_Conformant_Expressions): Handle properly - quantified expressions, following AI12-050: the loop parameters - of two quantified expressions are conformant if they have the - same identifier. - -2017-01-12 Arnaud Charlet <charlet@adacore.com> - - * gcc-interface/Makefile.in: Clean up VxWorks targets. - -2017-01-12 Ed Schonberg <schonberg@adacore.com> - - * sem_attr.adb (Analyze_Attribute_Reference, case Loop_Entry): - Hnadle properly the attribute reference when it appears as part - of an expression in another loop aspect. - -2017-01-12 Ed Schonberg <schonberg@adacore.com> - - * exp_ch3.adb (Check_Predicated_Discriminant): New procedure, - subsidiary of Build_Initialization_Call, to complete generation - of predicate checks on discriminants whose (sub)types have - predicates, and to add checks on variants that do not have an - others clause. - * sem_util.adb (Gather_Components): A missing Others alternative is - not an error when the type of the discriminant is a static predicate - (and coverage has been checked when analyzing the case statement). A - runtime check is generated to verify that a given discriminant - satisfies the predicate (RM 3.8.1. (21.1/2)). - -2017-01-12 Yannick Moy <moy@adacore.com> - - * gnat1drv.adb (Adjust_Global_Switches): Only - perform checking of exception mechanism when generating code. - -2017-01-12 Justin Squirek <squirek@adacore.com> - - * exp_ch7.adb (Add_Type_Invariants, Process_Array_Component): - Remove handling of access component with invariant. - (Build_Invariant_Procedure_Declaration): Remove return on class - wide type. - * freeze.adb (Freeze_Array_Type, Freeze_Record_Type): Remove - conditional exception for component or array so Has_Own_Invariants - flag is not falsly set. - * sem_ch3.adb (Make_Class_Wide_Type): Initialize copy of class - wide type to have no invariant flags. - -2017-01-12 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch9.adb, sem_prag.adb, s-tassta.adb, sem_util.adb, s-tarest.adb, - sem_ch13.adb: Minor reformatting. - -2017-01-12 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_aggr.adb (Build_Record_Aggr_Code): Guard against a missing - adjustment primitive when the ancestor type was not properly frozen. - (Gen_Assign): Guard against a missing initialization - primitive when the component type was not properly frozen. - (Initialize_Array_Component): Guard against a missing adjustment - primitive when the component type was not properly frozen. - (Initialize_Record_Component): Guard against a missing adjustment - primitive when the component type was not properly frozen. - (Process_Transient_Component_Completion): The transient object may - not be finalized when its associated type was not properly frozen. - * exp_ch3.adb (Build_Assignment): Guard against a missing - adjustment primitive when the component type was not properly frozen. - (Build_Initialization_Call): Guard against a missing - initialization primitive when the associated type was not properly - frozen. - (Expand_N_Object_Declaration): Guard against a missing - adjustment primitive when the base type was not properly frozen. - (Predefined_Primitive_Bodies): Create an empty Deep_Adjust - body when there is no adjustment primitive available. Create an - empty Deep_Finalize body when there is no finalization primitive - available. - * exp_ch4.adb (Apply_Accessibility_Check): Guard against a - missing finalization primitive when the designated type was - not properly frozen. - (Expand_N_Allocator): Guard against a missing initialization primitive - when the designated type was not properly frozen. - * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add the adjustment call - only when the corresponding adjustment primitive is available. - * exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Generate the - adjustment/finalization statements only when there is an available - primitive to carry out the action. - (Build_Initialize_Statements): Generate the initialization/finalization - statements only when there is an available primitive to carry out the - action. - (Make_Adjust_Call): Do not generate a call when the underlying - type is not present due to a possible missing full view. - (Make_Final_Call): Do not generate a call when the underlying - type is not present due to a possible missing full view. - (Make_Finalize_Address_Stmts): Generate an empty body when the - designated type lacks a finalization primitive. - (Make_Init_Call): Do not generate a call when the underlying type is - not present due to a possible missing full view. - (Process_Component_For_Adjust): Add the adjustment call only when the - corresponding adjustment primitive is available. - (Process_Component_For_Finalize): Add the finalization call only when - the corresponding finalization primitive is available. - (Process_Object_Declaration): Use a null statement to emulate a - missing call to the finalization primitive of the object type. - * exp_ch7.ads (Make_Adjust_Call): Update the comment on usage. - (Make_Final_Call): Update the comment on usage. - (Make_Init_Call): Update the comment on usage. - * exp_util.adb (Build_Transient_Object_Statements): Code reformatting. - -2017-01-12 Arnaud Charlet <charlet@adacore.com> - - * einfo.ads: Update documentation of Address_Taken. - * sem_attr.adb (Analyze_Access_Attribute, Resolve_Attribute - [Access_Attribute]): Only consider 'Access/'Unchecked_Access - for subprograms when setting Address_Taken flag. - -2017-01-12 Patrick Bernardi <bernardi@adacore.com> - - * sem_ch10.adb (Analyze_With_Clause): Removed code that turned - Configurable_Run_Time_Mode off when analysing with'ed predefined - libraries. - -2017-01-12 Gary Dismukes <dismukes@adacore.com> - - * sem_prag.adb: Minor reformatting. - * sem_util.adb (Unique_Entity): fix result for - bodies of entry families. - -2017-01-12 Justin Squirek <squirek@adacore.com> - - * sem_prag.adb (Analyze_Pragma): Add appropriate calls to - Resolve_Suppressible in the pragma Assertion_Policy case. - (Resolve_Suppressible): Created this function to factor out - common code used to resolve Suppress to either Ignore or Check - * snames.ads-tmpl: Add name for Suppressible. - -2017-01-12 Gary Dismukes <dismukes@adacore.com> - - * exp_ch9.adb, s-secsta.adb, snames.ads-tmpl, exp_ch3.adb: Minor - reformatting. - * debug.adb: Minor comment fixes. - -2017-01-12 Arnaud Charlet <charlet@adacore.com> - - * sem_util.adb (Unique_Entity): For concurrent - bodies that are defined with stubs and complete a declaration - of a single concurrent object return the entity of an implicit - concurrent type, not the entity of the anonymous concurrent - object. - * debug.adb: -gnatd.J is no longer used. - * make.adb (Globalize): Removed, no longer used. - * sem_ch9.adb: minor typo in comment for entry index - -2017-01-12 Patrick Bernardi <bernardi@adacore.com> - - * aspect.adb, aspect.ads: Added new aspect Secondary_Stack_Size. - * exp_ch3.adb (Build_Init_Statements): As part of initialising - the value record of a task, set its _Secondary_Stack_Size field - if present. - * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create - a _Secondary_Stack_Size field in the value record of - the task if a Secondary_Stack_Size rep item is present. - (Make_Task_Create_Call): Include secondary stack size - parameter. If No_Secondary_Stack restriction is in place, passes - stack size of 0. - * par-prag.adb, sem_prag.adb, sem_prag.ads: Added new pragma - Secondary_Stack_Size. - * s-secsta.adb, s-secsta.ads (Minimum_Secondary_Stack_Size): New - function to define the overhead of the secondary stack. - * s-tarest.adb (Create_Restricted_Task, - Create_Restricted_Task_Sequential): Functions now include - Secondary_Stack_Size parameter to pass to Initialize_ATCB. - * s-tarest.adb (Create_Restricted_Task, - Create_Restricted_Task_Sequential): Calls to Initialize_ATCB now - include Secondary_Stack_Size parameter. - (Task_Wrapper): Secondary stack now allocated to the size specified by - the Secondary_Stack_Size parameter in the task's ATCB. - * s-taskin.adb, s-taskin.adb (Common_ATCB, Initialize_ATCB): New - Secondary_Stack_Size component. - * s-tassta.adb, s-tassta.ads (Create_Restricted_Task, - Create_Restricted_Task_Sequential): Function now include - Secondary_Stack_Size parameter. - (Task_Wrapper): Secondary stack now allocated to the size - specified by the Secondary_Stack_Size parameter in the task's - ATCB. - * s-tproft.adb (Register_Foreign_Thread): Amended Initialize_ATCB call - to include Secondary_Stack_Size parameter. - * sem_ch13.adb (Analyze_Aspect_Specification): Add support for - Secondary_Stack_Size aspect, turning the aspect into its corresponding - internal attribute. - (Analyze_Attribute_Definition): Process Secondary_Stack_Size attribute. - * snames.adb-tmpl, snames.ads-tmpl: Added names - Name_Secondary_Stack_Size, Name_uSecondary_Stack_Size, - Attribute_Secondary_Stack_Size and Pragma_Secondary_Stack_Size. - -2017-01-12 Yannick Moy <moy@adacore.com> - - * exp_spark.adb (Expand_SPARK_Potential_Renaming): Fix sloc of copied - subtree. - -2017-01-12 Justin Squirek <squirek@adacore.com> - - * exp_attr.adb (Expand_N_Attribute_Reference): - Fix Finalization_Size case by properly resolving the type after - rewritting the node. - -2017-01-12 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_util.adb (Build_DIC_Procedure_Body): Semi-insert the body into - the tree. - (Build_DIC_Procedure_Declaration): Semi-insert the body into the tree. - * binde.adb, exp_ch5.adb, sem_type.adb, sem.ads, sem_res.adb, - exp_sel.ads: Minor reformatting. - -2017-01-12 Justin Squirek <squirek@adacore.com> - - * exp_ch6.adb (Expand_Call): Add guard to prevent - invariant checks from being created for internally generated - subprograms. - -2017-01-12 Bob Duff <duff@adacore.com> - - * lib-writ.ads: Remove incorrect comment. - -2017-01-12 Javier Miranda <miranda@adacore.com> - - * debug.adb (-gnatd.K): Enable generation of contract-only - procedures in CodePeer mode. - * contracts.adb (Build_And_Analyze_Contract_Only_Subprograms): - New subprogram. - (Analyze_Contracts): Generate contract-only procedures if -gnatdK is - set. - * scil_ll.ads, scil_ll.adb (Get_Contract_Only_Body_Name): New - subprogram. - (Get_Contract_Only_Missing_Body_Name): New subprogram. - (Get_Contract_Only_Body): New subprogram. - (Set_Contract_Only_Body): New subprogram. - (Is_Contract_Only_Body): New subprogram. - (Set_Is_Contract_Only_Body): New subprogram. - (SCIL_Nodes): Replace table by hash-table. - -2017-01-12 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch6.adb: Minor reformatting. - * spark_xrefs.ads: minor cleanup of comments for SPARK xrefs - -2017-01-12 Bob Duff <duff@adacore.com> - - * binde.adb (Forced): New reason for a dependence. - (Force_Elab_Order): Implementation of the new switch. - * binde.ads: Minor comment fixes. - * bindusg.adb: Add -f switch. Apparently, there was an -f switch - long ago that is no longer supported; removed comment about that. - * opt.ads (Force_Elab_Order_File): Name of file specified for - -f switch. - * switch-b.adb: Parse -f switch. - -2017-01-12 Justin Squirek <squirek@adacore.com> - - * exp_ch6.adb (Check_View_Conversion): Created this function - to properly chain calls to check type invariants that may be - present in a subprogram call after the subprogram. - (Expand_Call): Add a conditional to identify when a view conversion - needs to be checked. - * nlists.adb, nlists.ads (Prepend_New): New routine. - (Prepend_New_To): New routine. - -2017-01-12 Hristian Kirtchev <kirtchev@adacore.com> - - * sinfo.ads: Minor reformatting. - -2017-01-12 Gary Dismukes <dismukes@adacore.com> - - * exp_util.adb, exp_util.ads, einfo.ads: Minor typo fixes and - reformatting. - -2017-01-12 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch6.adb (Make_Build_In_Place_Call_In_Anonymous_Context): Add new - variable Definite. Create a local object and pass its 'Access to the - BIP function when the result type is either definite or it does not - require any finalization or secondary stack management. - -2017-01-12 Bob Duff <duff@adacore.com> - - * contracts.adb, einfo.adb, errout.adb, exp_attr.adb, - exp_ch3.adb, exp_ch7.adb, exp_ch9.adb, exp_prag.adb, freeze.adb, - frontend.adb, ghost.adb, inline.adb, lib-writ.adb, lib-xref.adb, - par.adb, par-ch10.adb, par-ch2.adb, par-prag.adb, par_sco.adb, - sem_attr.adb, sem_aux.adb, sem_ch10.adb, sem_ch12.adb, - sem_ch13.adb, sem_ch6.adb, sem_ch8.adb, sem_ch9.adb, sem_elab.adb, - sem_prag.adb, sem_res.adb, sem_util.adb, sem_util.ads, - sem_warn.adb, sinfo.adb, sinfo.ads, sprint.adb (Pragma_Name): - Change name to Pragma_Name_Unmapped. - (Pragma_Name_Mapped): Change name to Pragma_Name. - This is because the "mapped" version should be the usual case. - -2017-01-09 Hristian Kirtchev <kirtchev@adacore.com> - - * einfo.ads, einfo.adb: Remove uses of flags Has_Default_Init_Cond, - Is_Default_Init_Cond_Procedure, and - Has_Inherited_Default_Init_Cond. Add uses of flags - Has_Own_DIC, Is_DIC_Procedure, and Has_Inherited_DIC. - (Default_Init_Cond_Procedure): Removed. - (DIC_Procedure): New routine. - (Has_Default_Init_Cond): Removed. - (Has_DIC): New routine. - (Has_Inheritable_Invariants): The attribute applies to the base type. - (Has_Inherited_Default_Init_Cond): Removed. - (Has_Inherited_DIC): New routine. - (Has_Inherited_Invariants): The attribute applies to the base type. - (Has_Own_DIC): New routine. - (Has_Own_Invariants): The attribute applies to the base type. - (Is_Default_Init_Cond_Procedure): Removed. - (Is_DIC_Procedure): New routine. - (Set_Default_Init_Cond_Procedure): Removed. - (Set_DIC_Procedure): New routine. - (Set_Has_Default_Init_Cond): Removed. - (Set_Has_Inheritable_Invariants): The attribute applies - to the base type. - (Set_Has_Inherited_Default_Init_Cond): Removed. - (Set_Has_Inherited_DIC): New routine. - (Set_Has_Inherited_Invariants): The attribute applies to the base type. - (Set_Has_Own_DIC): New routine. - (Set_Has_Own_Invariants): The attribute applies to the base type. - (Set_Is_Default_Init_Cond_Procedure): Removed. - (Set_Is_DIC_Procedure): New routine. - (Write_Entity_Flags): Update the output of all flags related to - default initial condition. - * exp_ch3.adb (Expand_N_Object_Declaration): Update the generation - of the call to the DIC procedure. - (Freeze_Type): Generate the body of the DIC procedure. - * exp_ch7.adb (Build_Invariant_Procedure_Body): Replace - all occurrences of Create_Append with Append_New_To. Do - not generate an invariant procedure for a class-wide type. - The generated body acts as a freeze action of the working type. - (Build_Invariant_Procedure_Declaration): Do not generate an - invariant procedure for a class-wide type. - (Create_Append): Removed. - * exp_util.adb: Add with and use clauses for Sem_Ch3, sem_ch6, - sem_Ch12, Sem_Disp, and GNAT.HTable. Move the handling of - class-wide pre/postcondition description and data structures from - Sem_Prag. - (Build_Class_Wide_Expression): Moved from Sem_Prag. - (Build_DIC_Call): New routine. - (Build_DIC_Procedure_Body): New routine. - (Build_DIC_Procedure_Declaration): New routine. - (Entity_Hash): Moved from Sem_Prag. - (Find_DIC_Type): New routine. - (Update_Primitives_Mapping): Reimplemented. - (Update_Primitives_Mapping_Of_Types): New routine. - * exp_util.ads (Build_Class_Wide_Expression): Moved from Sem_Prag. - (Build_DIC_Call): New routine. - (Build_DIC_Procedure_Body): New routine. - (Build_DIC_Procedure_Declaration): New routine. - (Update_Primitives_Mapping): Moved from Sem_Prag. - (Update_Primitives_Mapping_Of_Types): New routine. - * nlists.adb (Append_New): New routine. - (Append_New_To): New routine. - * nlists.ads (Append_New): New routine. - (Append_New_To): New routine. - * sem_ch3.adb (Analyze_Declarations): Do not generate the bodies - of DIC procedures here. This is now done at the end of the - visible declarations, private declarations, and at the freeze - point of a type. - (Analyze_Private_Extension_Declaration): - A private extension inherits the DIC pragma of a parent type. - (Analyze_Subtype_Declaration): No need to propagate invariant - attributes to a subtype as those apply to the base type. - (Build_Derived_Record_Type): No need to inherit invariants here - as this is now done in Build_Derived_Type. - (Build_Derived_Type): Inherit both the DIC pragma and invariants from - a parent type. - (Process_Full_View): Update the propagation of DIC attributes. - (Propagate_Default_Init_Cond_Attributes): Removed. - * sem_ch7.adb Add with and use clauses for Exp_Util. - (Analyze_Package_Specification): Create the body of the DIC - procedure at the end of the visible and private declarations. - (Preserve_Full_Attributes): Propagate DIC attributes. - * sem_ch9.adb (Analyze_Protected_Type_Declaration): Propagate - DIC attributes. - (Analyze_Task_Type_Declaration): Propagate DIC attributes. - * sem_elab.adb (Check_A_Call): Update the call to - Is_Nontrivial_Default_Init_Cond_Procedure. - * sem_prag.adb Remove the with and use clauses for - GNAT.HTable. Move the handling of class- wide pre/postcondition - description and data structures to Exp_Util. - (Analyze_Pragma): Create the declaration of the DIC procedure. There - is no need to propagate invariant-related attributes at this point - as this is done in Build_Invariant_Procedure_Declaration. - (Build_Class_Wide_Expression): Moved to Exp_Util. - (Entity_Hash): Moved to Exp_Util. - (Update_Primitives_Mapping): Moved to Exp_Util. - * sem_prag.ads (Build_Class_Wide_Expression): Moved to Exp_Util. - (Update_Primitives_Mapping): Moved to Exp_Util. - * sem_util.adb: Remove with and use clauses for Ghost - and Sem_Ch13. - (Build_Default_Init_Cond_Call): Removed. - (Build_Default_Init_Cond_Procedure_Bodies): Removed. - (Build_Default_Init_Cond_Procedure_Declaration): Removed. - (Get_Views): Reimplemented. - (Has_Full_Default_Initialization): Reimplement the section on DIC. - (Inherit_Default_Init_Cond_Procedure): Removed. - (Is_Nontrivial_Default_Init_Cond_Procedure): Removed. - (Is_Nontrivial_DIC_Procedure): New routine. - (Is_Verifiable_DIC_Pragma): New routine. - (Propagate_DIC_Attributes): New routine. - * sem_util.ads (Build_Default_Init_Cond_Call): Removed. - (Build_Default_Init_Cond_Procedure_Bodies): Removed. - (Build_Default_Init_Cond_Procedure_Declaration): Removed. - (Inherit_Default_Init_Cond_Procedure): Removed. - (Is_Nontrivial_Default_Init_Cond_Procedure): Removed. - (Is_Nontrivial_DIC_Procedure): New routine. - (Is_Verifiable_DIC_Pragma): New routine. - (Propagate_DIC_Attributes): New routine. - * sem_warn.adb (Is_OK_Fully_Initialized): Reimplement the section - on DIC. - * sinfo.ads, sinfo.adb: Add new attribute Expression_Copy along with - usage in nodes. - (Expression_Copy): New routine along with pragma Inline. - (Set_Expression_Copy): New routine along with pragma Inline. - -2017-01-06 Bob Duff <duff@adacore.com> - - * bindgen.adb (Gen_Adainit, Gen_Adafinal): Change - "Bind_Main_Program" to "not Bind_For_Library", because otherwise - we won't generate the call to s_stalib_adafinal when the main - is not written in Ada. - -2017-01-06 Bob Duff <duff@adacore.com> - - * sem_prag.adb: Minor: remove pragma Warnings. - -2017-01-06 Tristan Gingold <gingold@adacore.com> - - * Makefile.rtl: Do not compile s-stchop by default. - -2017-01-06 Patrick Bernardi <bernardi@adacore.com> - - * aspects.adb, aspects.ads, exp_ch3.adb, exp_ch9.adb, par-prag.adb, - sem_ch13.adb, sem_prag.adb, sem_prag.ads, snames.adb-tmpl, - snames.ads-tmpl, s-secsta.adb, s-secsta.ads, s-tarest.adb, - s-tarest.ads, s-taskin.adb, s-taskin.ads, s-tassta.adb, s-tassta.ads: - Reverted previous change for now. - -2017-01-06 Ed Schonberg <schonberg@adacore.com> - - * exp_ch3.adb (Build_Initialization_Call): Apply predicate - check to default discriminant value if checks are enabled. - (Build_Assignment): If type of component has static predicate, - apply check to its default value, if any. - -2017-01-06 Patrick Bernardi <bernardi@adacore.com> - - * aspect.adb, aspect.ads: Added new aspect Secondary_Stack_Size. - * exp_ch3.adb (Build_Init_Statements): As part of initialising - the value record of a task, set its _Secondary_Stack_Size field - if present. - * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create - a _Secondary_Stack_Size field in the value record of - the task if a Secondary_Stack_Size rep item is present. - (Make_Task_Create_Call): Include secondary stack size - parameter. If No_Secondary_Stack restriction is in place, passes - stack size of 0. - * par-prag.adb, sem_prag.adb, sem_prag.ads: Added new pragma - Secondary_Stack_Size. - * s-secsta.adb, s-secsta.ads (Minimum_Secondary_Stack_Size): New - function to define the overhead of the secondary stack. - * s-tarest.adb (Create_Restricted_Task, - Create_Restricted_Task_Sequential): Functions now include - Secondary_Stack_Size parameter to pass to Initialize_ATCB. - * s-tarest.adb (Create_Restricted_Task, - Create_Restricted_Task_Sequential): Calls to Initialize_ATCB - now include Secondary_Stack_Size parameter. - (Task_Wrapper): - Secondary stack now allocated to the size specified by the - Secondary_Stack_Size parameter in the task's ATCB. - * s-taskin.adb, s-taskin.adb (Common_ATCB, Initialise_ATCB): New - Secondary_Stack_Size component. - * s-tassta.adb, s-tassta.ads (Create_Restricted_Task, - Create_Restricted_Task_Sequential): Function now include - Secondary_Stack_Size parameter. - (Task_Wrapper): Secondary stack - now allocated to the size specified by the Secondary_Stack_Size - parameter in the task's ATCB. - * sem_ch13.adb (Analyze_Aspect_Specification): Add support - for Secondary_Stack_Size aspect, turning the aspect into its - corresponding internal attribute. - (Analyze_Attribute_Definition): - Process Secondary_Stack_Size attribute. - * snames.adb-tmpl, snames.ads-tmpl: Added names - Name_Secondary_Stack_Size, Name_uSecondary_Stack_Size, - Attribute_Secondary_Stack_Size and Pragma_Secondary_Stack_Size. - -2017-01-06 Pascal Obry <obry@adacore.com> - - * a-direio.adb, a-direio.ads, a-sequio.adb, a-sequio.ads: Add Flush to - Sequential_IO and Direct_IO. - -2017-01-06 Bob Duff <duff@adacore.com> - - * snames.ads-tmpl (Renamed): New name for the pragma argument. - * par-ch2.adb: Allow the new pragma (with analysis deferred - to Sem_Prag). - * sinfo.ads, sinfo.adb (Map_Pragma_Name, Pragma_Name_Mapped): - Keep a mapping from new pragma names to old names. - * sem_prag.adb: Check legality of pragma Rename_Pragma, and - implement it by calling Map_Pragma_Name. - * checks.adb, contracts.adb, einfo.adb, errout.adb, - * exp_attr.adb, exp_ch3.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb, - * exp_prag.adb, exp_util.adb, freeze.adb, frontend.adb, ghost.adb, - * inline.adb, lib-writ.adb, scans.adb, scans.ads, sem_attr.adb, - * sem_aux.adb, sem_ch10.adb, sem_ch13.adb, sem_ch6.adb, sem_ch9.adb, - * sem_elab.adb, sem_res.adb, sem_util.adb, sem_util.ads, - * sem_warn.adb: Call Pragma_Name_Mapped instead of Pragma_Name - as appropriate. - -2017-01-06 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch9.adb: Minor reformatting. - -2017-01-06 Tristan Gingold <gingold@adacore.com> - - * exp_ch9.ads, exp_ch9.adb (Build_Entry_Names): Remove (unused). - * rtsfind.ads (RE_Task_Entry_Names_Array, RO_ST_Set_Entry_Names) - (RE_Protected_Entry_Names_Array, RO_PE_Set_Entry_Names): Remove - (unused). - * s-taskin.ads, s-taskin.adb (Set_Entry_Names, - Task_Entry_Names_Array, Task_Entry_Names_Access): Remove. - * s-tpoben.ads, s-tpoben.adb (Set_Entry_Names, - Protected_Entry_Names_Array, Protected_Entry_Names_Access): Remove. - -2017-01-06 Bob Duff <duff@adacore.com> - - * sinfo.ads, sinfo.adb (Map_Pragma_Name): Preparation work, - dummy implementation of Map_Pragma_Name. - -2017-01-06 Tristan Gingold <gingold@adacore.com> - - * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Make the - entry_body variable constant. - * s-taprob.ads (Entry_Body_Access): Move to s-tposen. - * s-tpoben.ads (Protected_Entry_Body_Access): Now access - to constant. - * s-tposen.ads (Entry_Body_Access): Moved from s-taprob, - now access to constant. - -2017-01-06 Gary Dismukes <dismukes@adacore.com> - - * einfo.ads, sem_res.adb, sem_attr.adb, sem_ch6.adb: Minor - reformatting and typo fixes. - -2017-01-06 Bob Duff <duff@adacore.com> - - * snames.ads-tmpl: New names for pragma renaming. - * snames.adb-tmpl (Is_Configuration_Pragma_Name): Minor cleanup. - * par-prag.adb: Add new pragma name to case statement. - * sem_prag.adb (Rename_Pragma): Initial cut at semantic analysis - of the pragma. - * sinfo.ads, sinfo.adb (Pragma_Name_Mapped): Preparation work, - Dummy implementation of Pragma_Name_Mapped. - -2017-01-06 Ed Schonberg <schonberg@adacore.com> - - * exp_ch6.adb (Expand_Protected_Subprogram_Call): Add guard to - better detect call within an entry_wrapper. - * sem_res.adb (Resolve_Call): A protected call within an - entity_wrapper is analyzed in the context of the protected - object but corresponds to a pre-analysis and is not an access - before elaboration. - * sem_attr.adb: Minor reformatting. - -2017-01-06 Justin Squirek <squirek@adacore.com> - - * sem_attr.adb (Analyze_Attribute): Modify semantic checks for - Finalization_Size to allow a prefix of any non-class-wide type. - * sem_attr.ads Modify comment for Finalization_Size to include - definite type use case. - -2017-01-06 Ed Schonberg <schonberg@adacore.com> - - * einfo.ads, einfo.adb (Is_Entry_Wrapper): New flag, defined - on procedures that are wrappers created for entries that have - preconditions. - * sem_ch6.adb (Analyze_Subrogram_Body_Helper): If the subprogram - body is an entry_wrapper, compile it in the context of the - synchronized type, because a precondition may refer to funtions - of the type. - * exp_ch9.adb (Build_Contract_Wrapper): Set Is_Entry_Wrapper on - body entity. - * exp_ch6.adb (Expand_Protected_Subprogram_Call): if the call is - within an Entry_Wrapper this is an external call whose target - is the synchronized object that is the actual in the call to - the wrapper. - -2017-01-06 Yannick Moy <moy@adacore.com> - - * sem_attr.adb (Analyze_Attribute/Attribute_Loop_Entry): Analyze node - in tree, which means not analyzing the previous prefix if the node has - been rewritten into its prefix. - -2017-01-06 Gary Dismukes <dismukes@adacore.com> - - * s-tpobop.adb: Minor reformatting. - -2017-01-06 Ed Schonberg <schonberg@adacore.com> - - * checks.adb (Ensure_Valid): Do not generate a validity check - within a generated predicate function, validity checks will have - been applied earlier when required. - -2017-01-06 Tristan Gingold <gingold@adacore.com> - - * s-tpoben.ads (Protection_Entries): Add comment and reorder - components for performances. - * s-tpobop.adb (PO_Do_Or_Queue): Implement Max_Queue_Length runtime - semantic. - -2017-01-06 Ed Schonberg <schonberg@adacore.com> - - * sem_eval.adb (Check_Expression_Against_Static_Predicate): - If expression is compile-time known and obeys a static predicate - it must be labelled as static, to prevent spurious warnings and - run-time errors, e.g. in case statements. This is relevant when - the expression is the result of constant-folding a type conversion - whose expression is a variable with a known static value. - -2017-01-06 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_attr.adb, sem_attr.ads: Minor reformatting. - -2017-01-06 Justin Squirek <squirek@adacore.com> - - * exp_attr.adb (Expand_N_Attribute_Reference): Add entry for - expansion of Finalization_Size attribute. - * sem_attr.adb (Analyze_Attribute): Add entry to check the - semantics of Finalization_Size. - (Eval_Attribute): Add null entry for Finalization_Size. - * sem_attr.ads: Add Finalization_Size to the implementation - dependent attribute list. - * snames.ads-tmpl: Add name entry for Finalization_Size attribute. - -2017-01-06 Ed Schonberg <schonberg@adacore.com> - - * sem_ch5.adb (Analyze_Loop_Statement): If the loop includes an - iterator specification with a serious syntactic error, transform - construct into an infinite loop in order to continue analysis - and prevent a compiler abort. - -2017-01-06 Tristan Gingold <gingold@adacore.com> - - * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Do not generate - max_queue_lengths_array if unused. - -2017-01-06 Bob Duff <duff@adacore.com> - - * errout.adb (Set_Msg_Text): Protect against out-of-bounds - array access, in case "\" is at the end of Text. - * stylesw.adb (Set_Style_Check_Options): Don't include input - characters in the error message template, because they could - be control characters such as "\", which Errout will try to - interpret. - -2017-01-06 Ed Schonberg <schonberg@adacore.com> - - * sem_ch4.adb (Find_Indexing_Operations, Inspect_Declarations): - For a private type examine the visible declarations that follow - the partial view, not just the private declarations that follow - the full view. - -2017-01-06 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_ch5.adb, sem_ch3.adb, checks.adb: Minor reformatting and - code cleanup. - -2017-01-06 Ed Schonberg <schonberg@adacore.com> - - * exp_ch5.adb (Get_Default_Iterator): For a derived type, the - alias of the inherited op is the parent iterator, no need to - examine dispatch table positions which might not be established - yet if type is not frozen. - * sem_disp.adb (Check_Controlling_Formals): The formal of a - predicate function may be a subtype of a tagged type. - * sem_ch3.adb (Complete_Private_Subtype): Adjust inheritance - of representation items for the completion of a type extension - where a predicate applies to the partial view. - * checks.ads, checks.adb (Apply_Predicate_Check): Add optional - parameter that designates function whose actual receives a - predicate check, to improve warning message when the check will - lead to infinite recursion. - * sem_res.adb (Resolve_Actuals): Pass additional parameter to - Apply_Predicate_Check. - -2017-01-06 Tristan Gingold <gingold@adacore.com> - - * s-rident.ads (Profile_Info): Remove No_Entry_Queue from - Gnat_Extended_Ravenscar. - * exp_ch9.adb, s-tpoben.adb, s-tpoben.ads: Fix spelling. - -2017-01-06 Gary Dismukes <dismukes@adacore.com> - - * sem_util.ads: Minor typo fix and reformatting. - -2017-01-06 Yannick Moy <moy@adacore.com> - - * ghost.adb Minor fixing of references to SPARK RM. - (Check_Ghost_Context): Check whether reference is to a lvalue - before issuing an error about violation of SPARK RM 6.9(13) - when declaration has Ghost policy Check and reference has Ghost - policy Ignore. - * sem_util.adb Minor indentation. - * sem_ch10.adb (Analyze_Package_Body_Stub, Analyze_Protected_Body_Stub, - Analyze_Task_Body_Stub): Set Ekind of the defining identifier. - * sem_util.ads (Unique_Defining_Entity): Document the result - for package body stubs. - -2017-01-06 Tristan Gingold <gingold@adacore.com> - - * raise-gcc.c (abort): Macro to call Abort_Propagation. - * s-tpoben.ads (Protected_Entry_Queue_Max_Access): Make it access - constant. - * exp_ch9.adb (Expand_N_Protected_Type_Declaration): - Do not generate the Entry_Max_Queue_Lengths_Array if all default - values. - * exp_util.adb (Corresponding_Runtime_Package): Consider - Max_Queue_Length pragma. - -2017-01-06 Justin Squirek <squirek@adacore.com> - - * exp_ch9.adb (Expand_N_Protected_Type_Declaration): - Remove declaration generation in the case of - System_Tasking_Protected_Objects_Single_Entry being used, - and add a warning message when this is detected to occur. - (Make_Initialize_Protection): Remove reference pass in the case - of System_Tasking_Protected_Objects_Single_Entry. - * rtsfind.ads: Remove RE_Protected_Entry_Queue_Max - * s-tposen.adb (Initialize_Protection_Entry): Remove - Entry_Queue_Max parameter. - * s-tposen.ads: Remove the types use to store the entry queue - maximum. - * sem_prag.adb (Analyze_Pragma): Remove entry families restriction - -2017-01-06 Yannick Moy <moy@adacore.com> - - * sem_util.adb, sem_util.ads (Get_Enum_Lit_From_Pos): Strengthen - behavior of function, to also accept out of range positions - and raise Constraint_Error in such case, and to copy sloc from - literal if No_Location passed as location. - * uintp.adb, uintp.ads (UI_To_Int, UI_To_CC): Strengthen behavior - of functions to raise Constraint_Error in case of value not in - appropriate range. - -2017-01-06 Tristan Gingold <gingold@adacore.com> - - * sem_util.adb, s-taprop-linux.adb (Finalize_TCB): Remove call to - Invalidate_Stack_Cache. - -2017-01-06 Eric Botcazou <ebotcazou@adacore.com> - - * s-os_lib.adb: Minor fix to the signature of Readlink. - -2017-01-06 Javier Miranda <miranda@adacore.com> - - * sem_ch6.adb (Conforming_Types): Handle another - confusion between views in a nested instance with an actual - private type whose full view is not in scope. - -2017-01-06 Arnaud Charlet <charlet@adacore.com> - - * exp_ch5.adb (Expand_N_If_Statement): Obey existing comment and - mark a rewritten if statement as explicit (Comes_From_Source). - -2017-01-06 Gary Dismukes <dismukes@adacore.com> - - * sem_prag.adb, rtsfind.adb, sem_util.adb: Minor typo fixes. - -2017-01-06 Tristan Gingold <gingold@adacore.com> - - * ada.ads, a-unccon.ads: Add pragma No_Elaboration_Code_All. - -2017-01-06 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_case.adb: Minor reformatting. - -2017-01-06 Thomas Quinot <quinot@adacore.com> - - * g-socthi-mingw.adb: Remove now extraneous USE TYPE clause - -2017-01-06 Justin Squirek <squirek@adacore.com> - - * aspects.adb: Register aspect in Canonical_Aspect. - * aspects.ads: Associate qualities of Aspect_Max_Queue_Length - into respective tables. - * einfo.ads, einfo.adb: Add a new attribute for - handling the parameters for Pragma_Max_Entry_Queue - (Entry_Max_Queue_Lengths_Array) in E_Protected_Type. Subprograms - for accessing and setting were added as well. - * par-prag.adb (Prag): Register Pramga_Max_Entry_Queue. - * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Emit - declaration for pramga arguments and store them in the protected - type node. - (Make_Initialize_Protection): Pass a reference to - the Entry_Max_Queue_Lengths_Array in the protected type node to - the runtime. - * rtsfind.adb: Minor grammar fix. - * rtsfind.ads: Register new types taken from the - runtime libraries RE_Protected_Entry_Queue_Max and - RE_Protected_Entry_Queue_Max_Array - * s-tposen.adb, s-tpoben.adb - (Initialize_Protection_Entry/Initialize_Protection_Entries): - Add extra parameter and add assignment to local object. - * s-tposen.ads, s-tpoben.ads: Add new types to - store entry queue maximums and a field to the entry object record. - * sem_ch13.adb (Analyze_Aspect_Specifications): Add case statement - for Aspect_Max_Queue_Length. - (Check_Aspect_At_Freeze_Point): - Add aspect to list of aspects that don't require delayed analysis. - * sem_prag.adb (Analyze_Pragma): Add case statement for - Pragma_Max_Queue_Length, check semantics, and register arugments - in the respective entry nodes. - * sem_util.adb, sem_util.ads Add functions Get_Max_Queue_Length - and Has_Max_Queue_Length - * snames.ads-tmpl: Add constant for the new aspect-name - Name_Max_Queue_Length and corrasponding pragma. - -2017-01-06 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_util.adb (Is_Controlled_Function_Call): - Reimplemented. Consider any node which has an entity as the - function call may appear in various ways. - -2017-01-06 Hristian Kirtchev <kirtchev@adacore.com> - - * exp_attr.adb (Rewrite_Stream_Proc_Call): Use - an unchecked type conversion when performing a view conversion - to/from a private type. In all other cases use a regular type - conversion to ensure that any relevant checks are properly - installed. - -2017-01-06 Hristian Kirtchev <kirtchev@adacore.com> - - * sem_prag.adb, sem_ch8.adb: Minor reformatting. - -2017-01-06 Ed Schonberg <schonberg@adacore.com> - - * sem_case.adb (Explain_Non_Static_Bound): Suppress cascaded - error on case expression that is an entity, when coverage is - incomplete and entity has a static value obtained by local - propagation. - (Handle_Static_Predicate): New procedure, subsidiary of - Check_Choices, to handle case alternatives that are either - subtype names or subtype indications involving subtypes that - have static predicates. - -2017-01-06 Thomas Quinot <quinot@adacore.com> - - * s-oscons-tmplt.c, g-socket.adb, g-socket.ads, g-sothco.ads: - (GNAT.Socket): Add support for Busy_Polling and Generic_Option - -2017-01-06 Bob Duff <duff@adacore.com> - - * sem_elab.adb (Activate_Elaborate_All_Desirable): Don't add - Elaborate_All(P) to P itself. That could happen in obscure cases, - and always introduced a cycle (P body must be elaborated before - P body). - * lib-writ.ads: Comment clarification. - * ali-util.ads: Minor comment fix. - * ali.adb: Minor reformatting. - -2017-01-06 Tristan Gingold <gingold@adacore.com> - - * a-exexpr-gcc.adb: Improve comment. - -2017-01-03 James Cowgill <James.Cowgill@imgtec.com> - - * s-linux-mips.ads: Use correct signal and errno constants. - (sa_handler_pos, sa_mask_pos): Fix offsets for 64-bit MIPS. - -2017-01-03 James Cowgill <James.Cowgill@imgtec.com> - - * s-linux-mips.ads: Rename from s-linux-mipsel.ads. - * gcc-interface/Makefile.in (MIPS/Linux): Merge mips and mipsel - sections. - -2017-01-01 Eric Botcazou <ebotcazou@adacore.com> - - * gnatvsn.ads: Bump copyright year. - -2017-01-01 Jakub Jelinek <jakub@redhat.com> - - * gnat_ugn.texi: Bump @copying's copyright year. - * gnat_rm.texi: Likewise. + * gcc-interface/misc.c (enumerate_modes): Treat GET_MODE_BITSIZE + as polynomial. + +2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> + Alan Hayward <alan.hayward@arm.com> + David Sherwood <david.sherwood@arm.com> + + * gcc-interface/misc.c (enumerate_modes): Treat GET_MODE_PRECISION + as polynomial. + +2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> + Alan Hayward <alan.hayward@arm.com> + David Sherwood <david.sherwood@arm.com> + + * gcc-interface/utils.c (gnat_types_compatible_p): Handle + polynomial TYPE_VECTOR_SUBPARTS. + +2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> + Alan Hayward <alan.hayward@arm.com> + David Sherwood <david.sherwood@arm.com> + + * gcc-interface/misc.c (enumerate_modes): Handle polynomial + GET_MODE_NUNITS. + +2018-01-03 Jakub Jelinek <jakub@redhat.com> + + Update copyright years. + + * gnat_ugn.texi: Bump @copying's copyright year. + * gnat_rm.texi: Likewise. -Copyright (C) 2017 Free Software Foundation, Inc. +Copyright (C) 2018 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright