| 2017-12-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/83535 |
| * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Always take |
| into account the Esize if it is known. |
| |
| 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * gcc-interface/trans.c (Attribute_to_gnu): Track polynomial |
| offsets and sizes. |
| * gcc-interface/utils2.c (build_unary_op): Likewise. |
| |
| 2017-12-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (Loop_Statement_to_gnu): Use IN_RANGE macro. |
| * gcc-interface/misc.c (gnat_get_array_descr_info): Likewise. |
| (default_pass_by_ref): Likewise. |
| * gcc-interface/decl.c (gnat_to_gnu_entity): Likewise. |
| |
| 2017-12-19 Jakub Jelinek <jakub@redhat.com> |
| |
| * gcc-interface/trans.c (Loop_Statement_to_gnu): Replace Yoda |
| conditions with typical order conditions. |
| * gcc-interface/misc.c (gnat_get_array_descr_info): Likewise. |
| (default_pass_by_ref): Likewise. |
| * gcc-interface/decl.c (gnat_to_gnu_entity): Likewise. |
| * adaint.c (__gnat_tmp_name): Likewise. |
| |
| 2017-12-19 Arnaud Charlet <charlet@adacore.com> |
| |
| PR ada/66205 |
| * bindgen.adb (Gen_AdaFinal): Revert previous change. |
| |
| 2017-12-15 Jakub Jelinek <jakub@redhat.com> |
| |
| * gcc-interface/utils.c (gnat_internal_attribute_table): Swap |
| affects_type_identity and handler fields, adjust comments. |
| |
| 2017-12-15 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Use Component_Size of |
| the innermost array instead of Esize of its component type to exclude |
| inappropriate array types, including packed array types. |
| |
| 2017-12-15 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_prag.adb (Analyze_Input_Item): Allow concurrent types to appear |
| within the input list of Initializes. Remove the uses of Input_OK. |
| |
| 2017-12-15 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_ch4.adb (Expand_N_In): Do not replace a membership test on a |
| scalar type with a validity test when the membership appears in a |
| predicate expression, to prevent a spurious error when predicate is |
| specified static. |
| * sem_ch13.adb (Build_Predicate_Functions): Add warning if a static |
| predicate, after constant-folding, reduces to True and is this |
| redundant. |
| * par-ch4.adb: Typo fixes and minor reformattings. |
| |
| 2017-12-15 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_elab.adb (Ensure_Prior_Elaboration_Static): Mark the generated |
| with clause as being implicit for an instantiation in order to |
| circumvent an issue with 'W' and 'Z' line encodings in ALI files. |
| |
| 2017-12-15 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_util.adb (Is_Potentially_Unevaluated): Detect further cases of |
| misuse of 'Old that appear within an expression that is potentially |
| unevaluated, when the prefix of the attribute does not statically |
| designate an object (e.g. a function call). |
| |
| 2017-12-15 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch6.adb (Conformking_Types): Two incomplete types are conforming |
| when one of them is used as a generic actual, but only within an |
| instantiation. |
| * einfo.ads: Clarify use of flag Used_As_Generic_Actual. |
| |
| 2017-12-15 Justin Squirek <squirek@adacore.com> |
| |
| * sem_attr.adb (Resolve_Attribute): Modify check for aliased view on |
| prefix to use the prefix's original node to avoid looking at expanded |
| conversions for certain array types. |
| |
| 2017-12-15 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_res.adb (Resolve_Membership_Op): Add warning on a membership |
| operation on a scalar type for which there is a user-defined equality |
| operator. |
| |
| 2017-12-15 Yannick Moy <moy@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_pragmas.rst: Add Ghost assertion |
| policy. |
| |
| 2017-12-15 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_prag.adb (Analyze_Initialization_Item): Remove the specialized |
| processing for a null initialization item. Such an item is always |
| illegal. |
| |
| 2017-12-15 Bob Duff <duff@adacore.com> |
| |
| * types.ads, types.h, libgnat/a-except.adb, exp_ch11.adb |
| (PE_Build_In_Place_Mismatch): New reason code for raising when the |
| BIPalloc formal parameter is incorrect. This can happen if a compiler |
| bug causes a mismatch of build-in-place between caller and callee. |
| * exp_ch6.adb (Expand_N_Extended_Return_Statement): Use |
| PE_Build_In_Place_Mismatch. |
| |
| 2017-12-15 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_ch4.ads, exp_ch4.adb (Expand_N_Reduction_Expression): New |
| procedure. |
| * exp_util.adb (Insert_Actions): Handle N_Reduction_Expression. |
| * expander.adb (Expand): Call Expand_N_Reduction_Expression |
| * par-ch4.adb (P_Reduction_Expression): New procedure. |
| (P_Iterated_Component_Assoc_Or_Reduction): New precedure, extension of |
| P_Iterated_Component_Association. |
| (OK_Reduction_Expression_Parameter): New procedure. |
| (P_Aggregate_Or_Paren_Expr): Improve error message for malformed delta |
| aggregate. |
| * sem.adb (Analyze): Call Analyze_Reduction_Expression and |
| Analyze_Reduction_Expression_Parameter |
| * sinfo.ads, sinfo.adb: New node kinds N_Reduction_Expression and |
| N_Reduction_Expression_Parameter. |
| * sem_ch4.ads, sem_ch4.adb (Analyze_Reduction_Expression, |
| Analyze_Reduction_Expression_Parameter): New procedures. |
| * sem_res.adb (Resolve): Handle Reduction_Expression and |
| Reduction_Expression_Parameter |
| * sem_spark.adb: Dummy entries for Reduction_Expression and |
| Reduction_Expression_Parameter |
| * sprint.adb (Sprint_Node_Actual): Print Reduction_Expression, |
| Reduction_Expression_Parameter |
| |
| 2017-12-15 Bob Duff <duff@adacore.com> |
| |
| * einfo.ads: Comment fix. |
| |
| 2017-12-15 Piotr Trojanek <trojanek@adacore.com> |
| |
| * s-vercon.adb: Minor style fixes. |
| |
| 2017-12-15 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch6.adb (Freeze_Expr_Types): Do not emit a freeze node for an |
| itype that is the type of a discriminant-dependent component. |
| |
| 2017-12-15 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_prag.adb (Analyze_Part_Of): The context-specific portion of the |
| analysis is now directed to several specialized routines. |
| (Check_Part_Of_Abstract_State): New routine. |
| (Check_Part_Of_Concurrent_Type): New routine. Reimplement the checks |
| involving the item, the single concurrent type, and their respective |
| contexts. |
| * sem_res.adb (Resolve_Entity_Name): Potential constituents of a single |
| concurrent type are now recorded regardless of the SPARK mode. |
| * sem_util.adb (Check_Part_Of_Reference): Split some of the tests in |
| individual predicates. A Part_Of reference is legal when it appears |
| within the statement list of the object's immediately enclosing |
| package. |
| (Is_Enclosing_Package_Body): New routine. |
| (Is_Internal_Declaration_Or_Body): New routine. |
| (Is_Single_Declaration_Or_Body): New routine. |
| (Is_Single_Task_Pragma): New routine. |
| |
| 2017-12-15 Patrick Bernardi <bernardi@adacore.com> |
| |
| * gnat_ugn.texi: Regenerate. |
| |
| 2017-12-15 Bob Duff <duff@adacore.com> |
| |
| * gnatvsn.ads: Minor comment fixes. |
| |
| 2017-12-15 Patrick Bernardi <bernardi@adacore.com> |
| |
| * doc/gnat_ugn/gnat_and_program_execution.rst: Update section "Dynamic |
| Stack Usage Analysis" to include more details about GNAT_STACK_LIMIT. |
| |
| 2017-12-15 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * exp_util.adb (Add_Own_DIC): Ensure that the expression of the pragma |
| is available (Is_Verifiable_DIC_Pragma): Moved from Sem_Util. |
| * sem_util.adb (Has_Full_Default_Initialization): |
| Has_Fully_Default_Initializing_DIC_Pragma is now used to determine |
| whether a type has full default initialization due to pragma |
| Default_Initial_Condition. |
| (Has_Fully_Default_Initializing_DIC_Pragma): New routine. |
| (Is_Verifiable_DIC_Pragma): Moved to Exp_Util. |
| * sem_util.ads (Has_Fully_Default_Initializing_DIC_Pragma): New |
| routine. |
| (Is_Verifiable_DIC_Pragma): Moved to Exp_Util. |
| * sem_warn.adb (Is_OK_Fully_Initialized): |
| Has_Fully_Default_Initializing_DIC_Pragma is now used to determine |
| whether a type has full default initialization due to pragma |
| Default_Initial_Condition. |
| |
| 2017-12-15 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_prag.adb (Match_Constituent): Do not quietly accept constants as |
| suitable constituents. |
| * exp_util.adb: Minor reformatting. |
| |
| 2017-12-15 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_aggr.adb (In_Place_Assign_OK): Extend the predicate to recognize |
| an array aggregate in an allocator, when the designated type is |
| unconstrained and the upper bound of the aggregate belongs to the base |
| type of the index. |
| |
| 2017-12-15 Bob Duff <duff@adacore.com> |
| |
| * exp_ch6.adb (Expand_N_Extended_Return_Statement, |
| Expand_Simple_Function_Return): Assert that the b-i-p-ness of the |
| caller and callee match. Otherwise, we would need some substantial |
| changes to allow b-i-p calls non-b-i-p, and vice versa. |
| |
| 2017-12-15 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_unst.adb (Unnest_Subprograms): Nothing to do if the main unit is |
| a generic package body. Unnesting is only an issue when generating |
| code, and if the main unit is generic then nested instance bodies have |
| not been created and analyzed, and unnesting will crash in the absence |
| of those bodies, |
| |
| 2017-12-15 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * inline.adb (Add_Inlined_Body): Do not add a function which is |
| completed by an expression function defined in the same context as the |
| initial declaration because the completing body is not in a package |
| body. |
| (Is_Non_Loading_Expression_Function): New routine. |
| |
| 2017-12-15 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * debug.adb: Move the functionality of -gnatdL to -gnatd_i. Restore |
| the behavior of -gnatdL from before revision 255412. |
| * sem_elab.adb: Update the section of compiler switches. |
| (Build_Call_Marker): Do not create a marker for a call which originates |
| from an expanded spec or body of an instantiated gener, does not invoke |
| a generic formal subprogram, the target is external to the instance, |
| and -gnatdL is in effect. |
| (In_External_Context): New routine. |
| (Process_Conditional_ABE_Activation_Impl): Update the uses of -gnatdL |
| and associated flag. |
| (Process_Conditional_ABE_Call): Update the uses of -gnatdL and |
| associated flag. |
| * switch-c.adb (Scan_Front_End_Switches): Switch -gnatJ now sets switch |
| -gnatd_i. |
| * exp_unst.adb: Minor typo fixes and edits. |
| |
| 2017-12-15 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch6.adb (Possible_Freeze): Do not set Delayed_Freeze on an |
| subprogram instantiation, now that the enclosing wrapper package |
| carries an explicit freeze node. THis prevents freeze nodes for the |
| subprogram for appearing in the wrong scope. This is relevant when the |
| generic subprogram has a private or incomplete formal type and the |
| instance appears within a package that declares the actual type for the |
| instantiation, and that type has itself a delayed freeze. |
| |
| 2017-12-15 Patrick Bernardi <bernardi@adacore.com> |
| |
| * doc/gnat_ugn/gnat_and_program_execution.rst: Removed references to |
| the environment variable GNAT_STACK_LIMIT from the Stack Overflow |
| Checking section as it is no longer used by any of our supported |
| targets. |
| |
| 2017-12-15 Bob Duff <duff@adacore.com> |
| |
| * exp_ch6.adb (Expand_N_Extended_Return_Statement): If the |
| Init_Assignment is rewritten, we need to set Assignment_OK on the new |
| node. Otherwise, we will get spurious errors when initializing via |
| assignment statement. |
| |
| 2017-12-15 Arnaud Charlet <charlet@adacore.com> |
| |
| * exp_unst.adb (Visit_Node): Refine handling of 'Access to ignore non |
| relevant nodes. |
| (Has_Non_Null_Statements): Moved to sem_util for later reuse. |
| |
| 2017-12-15 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_attr.adb (Is_Inline_Floating_Point_Attribute): Fix comment. |
| * libgnat/s-fatgen.adb (Model): Use Machine attribute. |
| (Truncation): Likewise. |
| |
| 2017-12-15 Bob Duff <duff@adacore.com> |
| |
| * exp_ch7.adb (Expand_Cleanup_Actions): Make sure the block and handled |
| statement sequence generated for certain extended return statements |
| have a Sloc that is not No_Location. Otherwise, the back end doesn't |
| set any location and ends up reading uninitialized variables. |
| |
| 2017-12-15 Bob Duff <duff@adacore.com> |
| |
| * types.ads, exp_ch6.adb, libgnat/s-regexp.ads, opt.ads: Partly revert |
| r255414, committed by mistake. |
| |
| 2017-12-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/Makefile.in: Generalize support for symbolic traces. |
| |
| 2017-12-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/misc.c (default_pass_by_ref): Minor tweak. |
| |
| 2017-12-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (Call_to_gnu): Set DECL_DISREGARD_INLINE_LIMITS |
| to 0 on the callee if the call is recursive. |
| |
| 2017-12-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.c (gnat_to_gnu_field): Do not set the alignment |
| of the enclosing record type if it is not already set. |
| |
| 2017-12-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/gigi.h (pad_type_has_rm_size): Declare. |
| * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Do not build |
| a padding type for the alignment before validating the size. |
| Flip conditional construct and add a comment. |
| * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Size>: Make sure to |
| apply the exception for padded objects to the type of the object. |
| * gcc-interface/utils.c (hash_pad_type): New static function. |
| (lookup_and_insert_pad_type): Rename into... |
| (canonicalize_pad_type): ...this. Call hash_pad_type, do only one |
| lookup with insertion and always return the canonical type. |
| (maybe_pad_type): Adjust to above changes. Set debug type later. |
| (pad_type_has_rm_size): New predicate. |
| (set_reverse_storage_order_on_pad_type): Adjust to above changes. |
| |
| 2017-12-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (Subprogram_Body_to_gnu): Initialize locus. |
| |
| 2017-12-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (process_freeze_entity): Be prepared for a |
| package without body. |
| |
| 2017-12-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.c (gnat_to_gnu_entity): Robustify test for types |
| descendant of System.Address. |
| (gnat_to_gnu_subprog_type): Likewise. |
| |
| 2017-12-08 Jakub Jelinek <jakub@redhat.com> |
| |
| * gcc-interface/utils.c (gnat_internal_attribute_table): Add |
| exclusions to the comment. |
| |
| 2017-12-07 Martin Sebor <msebor@redhat.com> |
| |
| PR c/81544 |
| * gcc-interface/utils.c (gnat_internal_attribute_table): Initialize |
| new member of struct attribute_spec. |
| |
| 2017-12-06 Simon Wright <simon@pushface.org> |
| |
| PR ada/66205 |
| * bindgen.adb (Gen_AdaFinal): If the restriction No_Task_Termination is |
| set, generate a null body. |
| |
| 2017-12-05 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_util.adb (Contains_Refined_State): Remove. |
| |
| 2017-12-05 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch13.adb (Analyze_Aspect_Specifications, case Predicate): A |
| predicate cannot apply to a formal type. |
| |
| 2017-12-05 Arnaud Charlet <charlet@adacore.com> |
| |
| * exp_unst.ads: Fix typos. |
| |
| 2017-12-05 Jerome Lambourg <lambourg@adacore.com> |
| |
| * libgnarl/s-taprop__qnx.adb: Better detect priority ceiling bug in |
| QNX. At startup, the first mutex created has a non-zero ceiling |
| priority whatever its actual policy. This makes some tests fail |
| (c940013 for example). |
| |
| 2017-12-05 Bob Duff <duff@adacore.com> |
| |
| * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Call |
| Expand_Cleanup_Actions for N_Extended_Return_Statement. |
| * exp_ch7.adb (Expand_Cleanup_Actions): Handle |
| N_Extended_Return_Statement by transforming the statements into a |
| block, and (indirectly) calling Expand_Cleanup_Actions on the block. |
| It's too hard for Expand_Cleanup_Actions to operate directly on the |
| N_Extended_Return_Statement, because it has a different structure than |
| the other node kinds that Expand_Cleanup_Actions. |
| * exp_util.adb (Requires_Cleanup_Actions): Add support for |
| N_Extended_Return_Statement. Change "when others => return False;" to |
| "when others => raise ...;" so it's clear what nodes this function |
| handles. Use named notation where appropriate. |
| * exp_util.ads: Mark incorrect comment with ???. |
| |
| 2017-12-05 Javier Miranda <miranda@adacore.com> |
| |
| * exp_ch9.adb (Install_Private_Data_Declarations): Add missing |
| Debug_Info_Needed decoration of internally generated discriminal |
| renaming declaration. |
| |
| 2017-12-05 Arnaud Charlet <charlet@adacore.com> |
| |
| * exp_unst.adb (Unnest_Subprogram): Add handling of 'Access on |
| nested subprograms. |
| |
| 2017-12-05 Sergey Rybin <rybin@adacore.com> |
| |
| * doc/gnat_ugn/gnat_utility_programs.rst: Add description of '--ignore' |
| option for gnatmetric, gnatpp, gnat2xml, and gnattest. |
| |
| 2017-12-05 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_util.adb (Contains_Refined_State): Remove. |
| |
| 2017-12-05 Piotr Trojanek <trojanek@adacore.com> |
| |
| * rtsfind.ads: Add new enumeration literals: RE_Clock_Time (for |
| Ada.Real_Time.Clock_Time) and RO_CA_Clock_Time (for |
| Ada.Calendar.Clock_Time). |
| |
| 2017-12-05 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch4.adb (Is_Private_Overriding): If the candidate private |
| subprogram is overloaded, scan the list of homonyms in the same |
| scope, to find the inherited operation that may be overridden |
| by the candidate. |
| * exp_ch11.adb, exp_ch7.adb: Minor reformatting. |
| |
| 2017-12-05 Bob Duff <duff@adacore.com> |
| |
| * exp_ch6.adb (Expand_N_Extended_Return_Statement): If the |
| Init_Assignment is rewritten, we need to set Assignment_OK on the new |
| node. Otherwise, we will get spurious errors when initializing via |
| assignment statement. |
| |
| 2017-12-05 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_elab.adb: Update the terminology and switch sections. |
| (Check_SPARK_Model_In_Effect): New routine. |
| (Check_SPARK_Scenario): Verify the model in effect for SPARK. |
| (Process_Conditional_ABE_Call_SPARK): Verify the model in effect for |
| SPARK. |
| (Process_Conditional_ABE_Instantiation_SPARK): Verify the model in |
| effect for SPARK. |
| (Process_Conditional_ABE_Variable_Assignment_SPARK): Verify the model |
| in effect for SPARK. |
| |
| 2017-12-05 Nicolas Setton <setton@adacore.com> |
| |
| * terminals.c (__gnat_setup_child_communication): As documented, |
| __gnat_setup_child_communication should not terminate - it is intended |
| to be used as the child process of a call to fork(). However, execvp |
| might actually return in some cases, for instance when attempting to |
| run a 32-bit binary on a 64-bit Linux distribution when the |
| compatibility packages are not installed. In these cases, exit the |
| program to conform to the documentation. |
| |
| 2017-12-05 Olivier Hainque <hainque@adacore.com> |
| |
| * libgnat/s-tsmona.adb: Fix for oversight in the tsmona interface |
| update. |
| |
| 2017-12-05 Gary Dismukes <dismukes@adacore.com> |
| |
| * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Minor typo fix |
| and reformatting. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2017-12-05 Olivier Hainque <hainque@adacore.com> |
| |
| * sem_util.adb (Set_Convention): Always clear Can_Use_Internal_Rep |
| on access to subprogram types with foreign convention. |
| |
| 2017-12-05 Yannick Moy <moy@adacore.com> |
| |
| * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix User's |
| Guide description of default settings of warnings. |
| |
| 2017-12-05 Olivier Hainque <hainque@adacore.com> |
| |
| * s-dwalin.adb (Read_And_Execute_Isn): Adjust test checking for the end |
| of section. Add comments explaining the rationale of the computation. |
| |
| 2017-12-05 Bob Duff <duff@adacore.com> |
| |
| * exp_ch11.adb: Minor refactoring. |
| |
| 2017-12-05 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * debug.adb: Add debug switches d_a, d_e, and d_p, along with |
| documentation. |
| (Set_Underscored_Debug_Flag): New routine. |
| * debug.ads: Add the flags for all underscore switches. |
| (Set_Underscored_Debug_Flag): New routine. |
| * einfo.adb: Flag303 is now Suppress_Elaboration_Warnings. |
| (Suppress_Elaboration_Warnings): New routine. |
| (Set_Suppress_Elaboration_Warnings): New routine. |
| (Write_Entity_Flags): Add output for Suppress_Elaboration_Warnings. |
| * einfo.ads: Add new flag Suppress_Elaboration_Warnings. |
| (Suppress_Elaboration_Warnings): New routine along with pragma Inline. |
| (Set_Suppress_Elaboration_Warnings): New routine along with pragma |
| Inline. |
| * exp_ch3.adb (Build_Init_Procedure): Restore the behavior of the |
| legacy elaboration model. |
| (Default_Initialize_Object): Restore the behavior of the legacy |
| elaboration model. |
| * exp_ch9.adb: Add with and use clause for Sem_Elab. |
| (Build_Task_Activation_Call): Restore the behavior of the legacy |
| elaboration model. |
| * frontend.adb (Frontend): Restore the behavior of the legacy |
| elaboration model. |
| * opt.ads: Add new flags Legacy_Elaboration_Checks and |
| Relaxed_Elaboration_Checks, along with documentation. |
| * sem_attr.adb (Analyze_Access_Attribute): Restore the behavior of the |
| legacy elaboration model. |
| * sem_ch5.adb (Analyze_Assignment): Restore the behavior of the legacy |
| elaboration model. |
| * sem_ch7.adb (Analyze_Package_Declaration): Restore the behavior of |
| the legacy elaboration model. |
| * sem_ch8.adb (Attribute_Renaming): Restore the behavior of the legacy |
| elaboration model. |
| * sem_ch12.adb (Analyze_Instance_And_Renamings): Restore the behavior |
| of the legacy elaboration model. |
| (Analyze_Package_Instantiation): Restore the behavior of the legacy |
| elaboration model. |
| (Analyze_Subprogram_Instantiation): Restore the behavior of the legacy |
| elaboration model. |
| * sem_elab.adb: Update the documentation of the Processing phase. |
| Update the documentation on elaboration-related compilation |
| switches. Update the documentation on adding a new target. Add |
| Processing_Attributes which represent the state of the Processing |
| phase. Resurrect the previous elaboration model as "legacy elaboration |
| model". |
| (Build_Call_Marker): This routine does not function when the legacy |
| elaboration model is in effect. Do not consider entry calls and requeue |
| statements when debug flag d_e is in effect. Do not consider calls to |
| subprograms which verify the runtime semantics of certain assertion |
| pragmas when debug flag d_p is in effect. |
| (Build_Variable_Reference_Marker): This routine does not function when |
| the legacy elaboration model is in effect. |
| (Check_Elaboration_Scenarios): This routine does not function when the |
| legacy elaboration model is in effect. |
| (Ensure_Prior_Elaboration): The various flags have now been replaced |
| with a state. Do not generate implicit Elaborate[_All] pragmas when |
| their creation has been suppressed. |
| (Ensure_Prior_Elaboration_Static): The with clause is marked based on |
| the requested pragma, not on the nature of the scenario. |
| (In_External_Context): Removed. |
| (Is_Assertion_Pragma_Target): New routine. |
| (Is_Potential_Scenario): Stop the traversal of a task body when |
| reaching an accept or select statement, and debug switch d_a is in |
| effect. |
| (Kill_Elaboration_Scenario): This routine does not function when the |
| legacy elaboration model is in effect. |
| (Process_Activation_Generic): The various flags have now been replaced |
| with a state. |
| (Process_Conditional_ABE): The various flags have now been replaced |
| with a state. |
| (Process_Conditional_ABE_Access): The various flags have now been |
| replaced with a state. |
| (Process_Conditional_ABE_Activation_Impl): The various flags have now |
| been replaced with a state. Do not process an activation call which |
| activates a task whose type is defined in an external instance, and |
| debug switch dL is in effect. Suppress the generation of implicit |
| Elaborate[_All] pragmas once a conditional ABE check has been |
| installed. |
| (Process_Conditional_ABE_Call): The various flags have now been |
| replaced with a state. Do not process a call which invokes a subprogram |
| defined in an external instance, and debug switch dL is in effect. |
| (Process_Conditional_ABE_Call_Ada): The various flags have now been |
| replaced with a state. Suppress the generation of implicit |
| Elaborate[_All] pragmas once a conditional ABE check has been |
| installed. |
| (Process_Conditional_ABE_Call_SPARK): The various flags have now been |
| replaced with a state. |
| (Process_Conditional_ABE_Instantiation): The various flags have now |
| been replaced with a state. |
| (Process_Conditional_ABE_Instantiation_Ada): The various flags have now |
| been replaced with a state. Suppress the generation of implicit |
| Elaborate[_All] pragmas once a conditional ABE check has been |
| installed. |
| (Process_Conditional_ABE_Instantiation_SPARK): The various flags have |
| now been replaced with a state. |
| (Process_Guaranteed_ABE_Activation_Impl): The various flags have now |
| been replaced with a state. |
| (Process_Single_Activation): The various flags have now been replaced |
| with a state. |
| (Record_Elaboration_Scenario): This routine does not function when the |
| legacy elaboration model is in effect. |
| (Traverse_Body): The various flags have now been replaced with a state. |
| * sem_elab.ads: Resurrect the pre-18.x elaboration model as "legacy |
| elaboration model". |
| * sem_prag.adb (Analyze_Pragma): Restore the behavior of the legacy |
| elaboration model. |
| * sem_res.adb (Resolve_Call): Restore the behavior of the legacy |
| elaboration model. |
| (Resolve_Entity_Name): Restore the behavior of the legacy elaboration |
| model. |
| * sem_util.adb (Mark_Elaboration_Attributes): This routine does not |
| function when the legacy elaboration model is in effect. |
| * sinfo.adb (Is_Known_Guaranteed_ABE): Update the assertion check. |
| (No_Elaboration_Check): New routine. |
| (Set_Is_Known_Guaranteed_ABE): Update the assertion check. |
| (Set_No_Elaboration_Check): New routine. |
| * sinfo.ads: Update the documentation of flag Is_Known_Guaranteed_ABE |
| along with occurrences in nodes. Add new flag No_Elaboration_Check |
| along with occurrences in nodes. |
| * switch-c.adb (Scan_Front_End_Switches): Add processing for debug |
| switches with underscores. Add processing for switches -gnatH and |
| -gnatJ. |
| * usage.adb (Usage): Add output for switches -gnatH and -gnatJ. |
| * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update the |
| documentation to include the legacy and relaxed elaboration models. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2017-12-05 Arnaud Charlet <charlet@adacore.com> |
| |
| * doc/gnat_ugn/platform_specific_information.rst: Minor edit. |
| Improve doc on required packages for linux 32bits. |
| |
| 2017-12-05 Doug Rupp <rupp@adacore.com> |
| |
| * tracebak.c (ppc64-vx7): USE_GCC_UNWINDER for 64bit. |
| |
| 2017-12-05 Javier Miranda <miranda@adacore.com> |
| |
| * checks.adb (Generate_Range_Check): Force evaluation of the node in |
| more cases. This patch was written to improve the code generated by |
| the CCG compiler but it is enabled for all targets since double |
| evaluation is always a potential source of inefficiency. |
| |
| 2017-12-05 Gary Dismukes <dismukes@adacore.com> |
| |
| * doc/gnat_ugn/gnat_utility_programs.rst: Remove reference to obsolete |
| -fdump-xref switch. |
| |
| 2017-12-05 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): Use the SLOC of the |
| iteration scheme throughout, except for the new loop statement(s). |
| |
| 2017-12-05 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_aggr.adb (Gen_Assign): Do not analyze the expressionn of the |
| assignment if it is part of an Iterated_Component_Association: the |
| analysis needs to take place once the loop structure is analyzed and |
| the loop parameter made visible, because references to it typically |
| appear in the corresponding expression. This is necessary if the |
| expression is an aggregate, because previous pre-analysis of the |
| expression does not handle nested aggregates properly. |
| |
| 2017-12-05 Bob Duff <duff@adacore.com> |
| |
| * sem_res.adb (Resolve_Allocator): Avoid coextension processing for an |
| allocator that is the expansion of a build-in-place function call. |
| |
| 2017-12-05 Olivier Hainque <hainque@adacore.com> |
| |
| libgnat/ |
| * s-trasym__dwarf.adb (spec of Module_Name.Get): Instead of |
| possibly adjusting the lookup address by a load address, expect |
| a extra argument through which the load address can be conveyed |
| separately. |
| (Multi_Module_Symbolic_Traceback): Adjust accordingly. Pass the |
| retrieved load address to Init_Module. |
| * s-tsmona__linux.adb (Get): Honor the new interface. |
| * s-tsmona__mingw.adb (Get): Likewise. |
| * s-dwalin.ads: Adjust comments to be explicit about which |
| addresses are from module info and which are run-time addresses, |
| offsetted by the module load address. |
| * s-dwalin.adb (Set_Load_Address): Simply set C.Load_Slide. |
| Do not alter the module Low and High (relative) addresses. |
| (Is_Inside): Improve documentation regarding the kinds of addresses |
| at hand and correct the test. |
| (Symbolic_Traceback): Use separate variables with explicit names |
| for the address in traceback (run-time value) and the address to |
| lookup within the shared object (module-relative). Adjust the |
| computation of address passed to Symbolic_Address for symbolization. |
| |
| 2017-12-05 Arnaud Charlet <charlet@adacore.com> |
| |
| * opt.ads (Expand_Nonbinary_Modular_Ops): New flag. |
| * exp_ch4.adb (Expand_Nonbinary_Modular_Op): Use |
| Expand_Nonbinary_Modular_Ops instead of Modify_Tree_For_C, so that |
| other back-ends can also benefit from the front-end expansion. Remove |
| test for Modify_Tree_For_C in all callers to better share code. |
| * gnat1drv.adb (Adjust_Global_Switches): Set |
| Expand_Nonbinary_Modular_Ops when generating C code. |
| |
| 2017-12-05 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_ch5.adb (Expand_Formal_Container_Loop): Ensure that the loop |
| parameter becomes invisible after analyzing the loop, which has been |
| rewritten as a while-loop. |
| |
| 2017-12-05 Doug Rupp <rupp@adacore.com> |
| |
| * vxaddr2line.adb: Revise and enhance for new ports, remove dead ports, |
| and update for 64bit ports. |
| |
| 2017-12-05 Bob Duff <duff@adacore.com> |
| |
| * exp_ch6.adb (Build_In_Place_Formal): Search for the formal by suffix |
| instead of the full name. |
| * sem_ch6.adb (Create_Extra_Formals): Make sure there are extra formals |
| in the case of an instance of a generic. |
| |
| 2017-12-05 Arnaud Charlet <charlet@adacore.com> |
| |
| (Adjust_Global_Switches): Create an alias GNAT_Annotate to map to |
| pragma Annotate. |
| |
| 2017-12-05 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * gcc-interface/Makefile.in (RTEMS): Define EH_MECHANISM. |
| |
| 2017-12-04 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * gcc-interface/Makefile.in (RTEMS): Use s-osprim__rtems.adb. |
| * libgnat/s-osprim__rtems.adb: New file. |
| * libgnarl/s-osinte__rtems.adb (pthread_cond_t): Fix alignment. |
| (pthread_mutexattr_t): Likewise. |
| (pthread_rwlockattr_t): Likewise. |
| (pthread_rwlock_t): Likewise. |
| (time_t): Use 64-bit integer. |
| |
| 2017-12-01 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * libgnarl/s-osinte__rtems.ads (pthread_cond_t): Use correct size and |
| alignment. |
| (pthread_mutex_t): Likewise. |
| (pthread_rwlock_t): Likewise. |
| |
| 2017-11-28 Jakub Jelinek <jakub@redhat.com> |
| |
| * gcc-interface/trans.c (Case_Statement_to_gnu): Build SWITCH_EXPR |
| using build2 instead of build3. |
| |
| 2017-11-23 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/83091 |
| * gcc-interface/decl.c (gnat_to_gnu_entity): Do not build a variant |
| type for the implementation type of a packed array. |
| |
| 2017-11-23 Mike Stump <mikestump@comcast.net> |
| Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (gnat_gimplify_stmt) <LOOP_STMT>: Pass 3rd |
| operand to ANNOTATE_EXPR and also pass unrolling hints. |
| |
| 2017-11-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/83016 |
| * gnatlink.adb (Process_Args): Accept multiple switches for --LINK. |
| (Usage): Adjust. |
| * gcc-interface/Makefile.in (GCC_LINK): Remove $(ADA_INCLUDES). |
| (common-tools): Pass $(CC) as --GCC= and $(GCC_LINK) as --LINK= in |
| the invocations of $(GNATLINK). |
| (../../gnatdll$(exeext)): Likewise. |
| (../../vxaddr2line$(exeext)): Likewise. |
| (gnatmake-re): Likewise. |
| (gnatlink-re): Likewise. |
| |
| 2017-11-16 Doug Rupp <rupp@adacore.com> |
| |
| * gcc-interface/Makefile.in: Merge Aarch64 and ARM "ifeq" blocks. |
| |
| 2017-11-16 Steve Baird <baird@adacore.com> |
| |
| * debug.adb: Update another comment to indicate gnat2scil's use of the |
| -gnatd.7 switch. |
| |
| 2017-11-16 Bob Duff <duff@adacore.com> |
| |
| * exp_ch6.adb (Expand_Call_Helper): Avoid creating a transient scope in |
| the case of nested build-in-place calls. |
| |
| 2017-11-16 Joel Brobecker <brobecker@adacore.com> |
| |
| * doc/gnat_ugn/gnat_utility_programs.rst: Document the switches |
| available in gnatsymbolize. |
| |
| 2017-11-16 Steve Baird <baird@adacore.com> |
| |
| * debug.adb: Update comment to indicate gnat2scil's use of the -gnatd.7 |
| switch. |
| |
| 2017-11-16 Gary Dismukes <dismukes@adacore.com> |
| |
| * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst, sem_ch6.adb, |
| sem_elab.adb: Minor editorial corrections. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2017-11-16 Joel Brobecker <brobecker@adacore.com> |
| |
| * doc/gnat_ugn/gnat_utility_programs.rst (GNAT UGN): Add |
| gnatsymbolize documentation. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2017-11-16 Steve Baird <baird@adacore.com> |
| |
| * sem_ch3.adb (Build_Derived_Record_Type): Replace all uses of |
| "Scope (Parent_Type)" with "Scope (Parent_Base)". |
| |
| 2017-11-16 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * opt.ads: Elaboration warnings are now on by default. Add a comment |
| explaining why this is needed. |
| * sem_ch9.adb (Analyze_Requeue): Preserve the status of elaboration |
| warnings. |
| * sem_ch12.adb (Analyze_Package_Instantiation): Preserve the status of |
| elaboration warnings. |
| (Analyze_Subprogram_Instantiation): Preserve the status of elaboration |
| warnings. |
| * sem_elab.adb: Update the structure of Call_Attributes and |
| Instantiation_Attributes. |
| (Build_Call_Marker): Propagate the status of elaboration warnings from |
| the call to the marker. |
| (Extract_Call_Attributes): Extract the status of elaboration warnings. |
| (Extract_Instantiation_Attributes): Extract the status of elaboration |
| warnings. |
| (Process_Conditional_ABE_Activation_Impl): Elaboration diagnostics are |
| now dependent on the status of elaboration warnings. |
| (Process_Conditional_ABE_Call_Ada): Elaboration diagnostics are now |
| dependent on the status of elaboration warnings. |
| (Process_Conditional_ABE_Instantiation_Ada): Elaboration diagnostics |
| are now dependent on the status of elaboration warnings. |
| (Process_Guaranteed_ABE_Activation_Impl): Remove pragma Unreferenced |
| for formal Call_Attrs. Elaboration diagnostics are now dependent on the |
| status of elaboration warnings. |
| (Process_Guaranteed_ABE_Call): Elaboration diagnostics are now |
| dependent on the status of elaboration warnings. |
| (Process_Guaranteed_ABE_Instantiation): Elaboration diagnostics are now |
| dependent on the status of elaboration warnings. |
| * sem_prag.adb (Analyze_Pragma): Remove the unjustified warning |
| concerning pragma Elaborate. |
| * sem_res.adb (Resolve_Call): Preserve the status of elaboration |
| warnings. |
| (Resolve_Entry_Call): Propagate flag Is_Elaboration_Warnings_OK_Node |
| from the procedure call to the entry call. |
| * sem_util.adb (Mark_Elaboration_Attributes): Add formal parameter |
| Warnings. |
| (Mark_Elaboration_Attributes_Node): Preserve the status of elaboration |
| warnings |
| * sem_util.ads (Mark_Elaboration_Attributes): Add formal parameter |
| Warnings. Update the comment on usage. |
| * sinfo.adb (Is_Dispatching_Call): Update to use Flag6. |
| (Is_Elaboration_Warnings_OK_Node): New routine. |
| (Set_Is_Dispatching_Call): Update to use Flag6. |
| (Set_Is_Elaboration_Warnings_OK_Node): New routine. |
| * sinfo.ads: Attribute Is_Dispatching_Call now uses Flag6. Add new |
| attribute Is_Elaboration_Warnings_OK_Node along with occurrences |
| in nodes. |
| (Is_Elaboration_Warnings_OK_Node): New routine along with pragma |
| Inline. |
| (Set_Is_Elaboration_Warnings_OK_Node): New routine along with pragma |
| Inline. |
| * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update various |
| sections to indicate how to suppress elaboration warnings. Document |
| switches -gnatwl and -gnatwL. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2017-11-16 Sylvain Dailler <dailler@adacore.com> |
| |
| * sem_util.adb (Get_Enum_Lit_From_Pos): Add a condition for Pos |
| lower than 0. |
| |
| 2017-11-16 Bob Duff <duff@adacore.com> |
| |
| * sem_ch13.adb (Check_Expr_Constants): Avoid error message in case of |
| System'To_Address. |
| |
| 2017-11-16 Yannick Moy <moy@adacore.com> |
| |
| * sem_elab.adb (Include): Fix mode of parameter Curr to out. |
| |
| 2017-11-16 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_util.ads, sem_util.adb (Is_CCT_Instance): Allow calls where |
| Context_Id denotes a record type. |
| |
| 2017-11-16 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_ch8.adb (Check_SPARK_Primitive_Operation): Enable the check in |
| instantiations. |
| |
| 2017-11-16 Doug Rupp <rupp@adacore.com> |
| |
| Initial gnat port to aarch64-wrs-vxworks7 |
| * libgnarl/s-vxwork__aarch64.ads, |
| libgnat/system-vxworks7-aarch64-rtp-smp.ads, |
| libgnat/system-vxworks7-aarch64.ads: New files |
| * sigtramp-vxworks-target.inc (aarch64): New section. |
| * tracebak.c (USE_ARM_UNWINDING): Disable for ARMARCH8A. |
| |
| 2017-11-16 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_elab.adb (Include): Including a node which is also a compilation |
| unit terminates the search because there are no more lists to examine. |
| |
| 2017-11-16 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_ch8.adb (Analyze_Subprogram_Renaming): Ensure that a renaming |
| declaration does not define a primitive operation of a tagged type for |
| SPARK. |
| (Check_SPARK_Primitive_Operation): New routine. |
| |
| 2017-11-16 Arnaud Charlet <charlet@adacore.com> |
| |
| * libgnat/a-elchha.adb (Last_Chance_Handler): Display Argv (0) in |
| message when using -E binder switch. |
| |
| 2017-11-16 Piotr Trojanek <trojanek@adacore.com> |
| |
| * errout.ads: Fix minor typo in comment. |
| |
| 2017-11-16 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch3.adb (Process_Subtype): If the subtype indication does not |
| syntactically denote a type, return Any_Type to prevent subsequent |
| compiler crashes or infinite loops. |
| |
| 2017-11-16 Steve Baird <baird@adacore.com> |
| |
| * lib-writ.adb: Fix bug which causes Program_Error to be raised in some |
| cases when writing out a .ali file when a Rename_Pragma pragma is in |
| effect. |
| * lib-writ.adb (Write_Unit_Information): Replace call to |
| Pragma_Name_Unmapped with call to Pragma_Name. |
| |
| 2017-11-16 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_elab.adb: Minor typo fixes. |
| |
| 2017-11-16 Justin Squirek <squirek@adacore.com> |
| |
| * sem_res.adb (Resolve_Allocator): Correct warning messages and make |
| them more explicit. |
| |
| 2017-11-16 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * atree.ads (Nkind_In): Add 10 and 11 parameter versions. |
| * checks.adb (Install_Primitive_Elaboration_Check): Mark the setting of |
| the elaboration flag as elaboration code. |
| * einfo.adb (Contract): Update the comments. |
| (Ignore_SPARK_Mode_Pragmas): Update the comments. |
| (SPARK_Aux_Pragma): Update the comments. |
| (SPARK_Aux_Pragma_Inherited): Update the comments. |
| (SPARK_Pragma): Update the comments. The attribute now applies |
| to all types and abstract states. |
| (SPARK_Pragma_Inherited): Update the comments. The attribute now |
| applies to all types and abstract states. |
| (Set_Contract): Update the comments. |
| (Set_Ignore_SPARK_Mode_Pragmas): Update the comments. |
| (Set_SPARK_Aux_Pragma): Update the comments. |
| (Set_SPARK_Aux_Pragma_Inherited): Update the comments. |
| (Set_SPARK_Pragma): Update the comments. The attribute now applies to |
| all types and abstract states. |
| (Set_SPARK_Pragma_Inherited): Update the comments. The attribute now |
| applies to all types and abstract states. |
| (Write_Field40_Name): Add output for SPARK_Pragma when it appears on a |
| type and abstract states. |
| * einfo.ads: Update the documentation of attributes SPARK_Pragma and |
| SPARK_Pragma_Inherited. Both of them now apply to all types and |
| abstract states. |
| * exp_util.adb (Set_Elaboration_Flag): Mark the setting of the |
| elaboration flag as elaboration code. |
| * sem_ch3.adb: Add with and use clauses for Sem_Elab. |
| (Analyze_Full_Type_Declaration): Set the SPARK_Mode of the type. Record |
| a derived type for later processing by the ABE mechanism. |
| (Analyze_Incomplete_Type_Decl): Set the SPARK_Mode of the type. |
| (Analyze_Private_Extension_Declaration): Set the SPARK_Mode of the |
| type. |
| * sem_ch7.adb (Analyze_Private_Type_Declaration): Set the SPARK_Mode of |
| the type. |
| * sem_elab.adb: Define the term "early call region". Update the |
| terminology for "scenario" and "target". Update the architecture of |
| the ABE mechanism. Update the steps which must be taken when adding a |
| new scenario. Update the section on debugging ABE issues. Add new |
| hash tables Early_Call_Regions and Recorded_SPARK_Scenarios. Add new |
| table SPARK_Scenarios. Hash table Elaboration_Context is now |
| Elaboration_Statuses. The majority of Process_xxx routines have been |
| updated to better reflect their role. |
| (Add_Unit): Reimplemented. |
| (Check_Elaboration_Constituent): New routine. |
| (Check_Elaboration_Scenarios): Verify previously recorded scenarios for |
| conditional ABE issues. Verify previously recorded SPARK scenarios. |
| (Check_SPARK_Derived_Type): New routine. |
| (Check_SPARK_Instantiation): New routine. |
| (Check_SPARK_Scenario): New routine. |
| (Check_SPARK_Refined_State_Pragma): New routine. |
| (Early_Call_Region): New routine. |
| (Elaboration_Status): New routine. |
| (Ensure_Prior_Elaboration): Add new formal parameter Prag_Nam. The |
| implicit Elabotate[_All] pragma is now specified via Prag_Nam. |
| (Find_Early_Call_Region): New routine. |
| (Info_Scenario): Add output for refinement constituents. |
| (Is_Recorded_SPARK_Scenario): New routine. |
| (Is_Suitable_SPARK_Derived_Type): New routine. |
| (Is_Suitable_SPARK_Instantiation): New routine. |
| (Is_Suitable_SPARK_Refined_State_Pragma): New routine. |
| (Is_Visited_Body): New routine. |
| (Kill_Elaboration_Scenario): Reimplemented. |
| (Output_Active_Scenarios): Add output for pragma Refined_State. |
| (Output_SPARK_Refined_State_Pragma): New routine. |
| (Process_Conditional_ABE_Call): Remove the use of -gnatd.v. The effect |
| is now achieved by different means. |
| (Process_Conditional_ABE_Call_SPARK): Verify that a call which precedes |
| the subprogram body appears within the early call region of the body. |
| Either ensure the prior elaboration of external subprograms or verify |
| that the context meets the suitable elaboration requirement. |
| (Process_Conditional_ABE_Instantiation_SPARK): New routine. |
| (Record_Elaboration_Scenario): Reimplement the portion which enforces |
| the level restrictions of the static model. Add support for SPARK |
| scenarios. |
| (Record_SPARK_Elaboration_Scenario): New routine. |
| (Reset_Visited_Bodies): New routine. |
| (Set_Early_Call_Region): New routine. |
| (Set_Elaboration_Status): New routine. |
| (Set_Is_Recorded_SPARK_Scenario): New routine. |
| (Update_Elaboration_Scenario): Reimplemented. |
| * sem_elab.ads: Add new subtype Library_Or_Instantiation_Level. |
| * sem_prag.adb (Analyze_Refined_State_In_Decl_Part): Save the pragma |
| for examination by the ABE Processing phase. |
| (Create_Abstract_State): Save the SPARK_Mode from the context. |
| * sem_util.adb (Is_Non_Preelaborable_Construct): New routine. |
| * sem_util.ads (Is_Non_Preelaborable_Construct): New routine. |
| * sinfo.adb (Is_Elaboration_Code): New routine. |
| (Set_Is_Elaboration_Code): New routine. |
| (Nkind_In): Add 10 and 11 parameter versions. |
| * sinfo.ads: Add new attribute Is_Elaboration_Code along with |
| occurrences in nodes. |
| (Is_Elaboration_Code): New routine along with pragma Inline. |
| (Set_Is_Elaboration_Code): New routine along with pragma Inline. |
| (Nkind_In): Add 10 and 11 parameter versions. |
| |
| 2017-11-16 Justin Squirek <squirek@adacore.com> |
| |
| * sem.adb (Analyze): Remove requirement that the original node of N be |
| an operator in the case that analysis on the node yields the relevant |
| operator - so prefer it instead. |
| |
| 2017-11-16 Bob Duff <duff@adacore.com> |
| |
| * sem_ch6.adb (Create_Extra_Formals): The type of the BIP_Object_Access |
| formal must not have a designated type that is the full view coming |
| from a limited-with'ed package. |
| * sem_util.adb,sem_util.ads (Incomplete_View_From_Limited_With): New |
| function called from sem_ch6. |
| * sem_ch5.adb (Analyze_Assignment): Treat user-defined concatenation |
| specially for b-i-p cases. |
| |
| 2017-11-10 Martin Sebor <msebor@redhat.com> |
| |
| PR c/81117 |
| * adadecode.c (__gnat_decode): Use memcpy instead of strncpy. |
| * argv.c (__gnat_fill_arg, __gnat_fill_env): Likewise. |
| |
| 2017-11-10 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/utils.c (convert) <RECORD_TYPE>: Add comment and do |
| not fall through to the next case. |
| <ARRAY_TYPE>: Deal specially with a dereference from another array |
| type with the same element type. |
| |
| 2017-11-09 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_util.adb, freeze.adb: Minor reformatting. |
| |
| 2017-11-09 Jerome Lambourg <lambourg@adacore.com> |
| |
| * gcc-interface/Makefile.in: Add rules to build aarch64-qnx runtimes. |
| |
| 2017-11-09 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * gcc-interface/trans.c (gnat_to_gnu): Add processing for |
| N_Variable_Reference_Marker nodes. |
| |
| 2017-11-09 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch12.adb (Analyze_Generic_Package_Declaration): Handle properly |
| the pragma Compile_Time_Error when it appears in a generic package |
| declaration and uses an expanded name to denote the current unit. |
| |
| 2017-11-09 Jerome Lambourg <lambourg@adacore.com> |
| |
| * libgnarl/s-taprop__qnx.adb: Fix incorrect casing for pthread_self. |
| * tracebak.c: Add support for tracebacks in QNX. |
| |
| 2017-11-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.adb (Aggr_Size_OK): Bump base limit from 50000 to 500000. |
| |
| 2017-11-09 Yannick Moy <moy@adacore.com> |
| |
| * erroutc.adb, set_targ.adb: Remove pragma Annotate for CodePeer |
| justification. |
| |
| 2017-11-09 Joel Brobecker <brobecker@adacore.com> |
| |
| * doc/gnat_ugn/platform_specific_information.rst: Document packages |
| needed on GNU/Linux by GNAT. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2017-11-09 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * contracts.adb (Analyze_Contracts): Remove the three parameter |
| version. This routine now only analyzes contracts and does not perform |
| any freezing actions. |
| (Analyze_Previous_Contracts): Removed. |
| (Freeze_Previous_Contracts): New routine. |
| * contracts.ads (Analyze_Previous_Contracts): Removed. |
| (Freeze_Previous_Contracts): New routine. |
| * sem_ch3.adb (Analyze_Declarations): Analyze the contract of an |
| enclosing package spec regardless of whether the list denotes the |
| visible or private declarations. Fix the removal of partial state |
| refinements when the context is a package spec. |
| * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Freeze previous |
| contracts. |
| * sem_ch7.adb (Analyze_Package_Body_Helper): Freeze previous contracts. |
| * sem_ch9.adb (Analyze_Entry_Body): Freeze previous contracts. |
| (Analyze_Protected_Body): Freeze previous contracts. |
| (Analyze_Task_Body): Freeze previous contracts. |
| * sem_prag.adb: Comment reformatting. |
| |
| 2017-11-09 Bob Duff <duff@adacore.com> |
| |
| * libgnarl/g-thread.ads, libgnarl/g-thread.adb: (Make_Independent): |
| Export this so users can use it without importing |
| System.Tasking.Utilities. |
| * libgnarl/s-tassta.adb (Vulnerable_Complete_Task): Relax assertion |
| that fails when Make_Independent is called on a user task. |
| * libgnarl/s-taskin.ads (Master_Of_Task): Avoid unusual |
| capitalization style ((style) bad casing of "Master_of_Task"). |
| |
| 2017-11-09 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch12.adb (Analyze_Subprogram_Instantiation): Correct use of |
| uninitialized variable uncovered by Codepeer. |
| |
| 2017-11-09 Arnaud Charlet <charlet@adacore.com> |
| |
| * namet.adb: Replace pragma Assume by pragma Assert to fix bootstrap. |
| |
| 2017-11-09 Javier Miranda <miranda@adacore.com> |
| |
| * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst: |
| (Static_Dispatch_Tables): Minor rewording. |
| * gnat_rm.texi: Regenerate. |
| |
| 2017-11-09 Justin Squirek <squirek@adacore.com> |
| |
| * sem_ch8.adb (Analyze_Use_Package): Remove forced installation of |
| use_clauses within instances. |
| (Use_One_Package): Add condition to check for "hidden" open scopes to |
| avoid skipping over packages that have not been properly installed even |
| though they are visible. |
| |
| 2017-11-09 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch4.adb (Analyze_Selected_Component): Reject properly a call to a |
| private operation of a protected type, when the type has no visible |
| operations. |
| |
| 2017-11-09 Javier Miranda <miranda@adacore.com> |
| |
| * rtsfind.ads (RE_Id, RE_Unit_Table): Add RE_HT_Link. |
| * exp_disp.adb (Make_DT): Initialize the HT_Link field of the TSD only |
| if available. |
| |
| 2017-11-09 Bob Duff <duff@adacore.com> |
| |
| * exp_ch4.adb, exp_ch9.adb, exp_prag.adb, par-ch3.adb, sem_aggr.adb, |
| sem_ch12.adb, sem_ch13.adb, sem_ch4.adb, sem_disp.adb, sem_prag.adb, |
| sem_res.adb, sem_util.adb: Get rid of warnings about uninitialized |
| variables. |
| |
| 2017-11-09 Yannick Moy <moy@adacore.com> |
| |
| * exp_disp.adb (Make_DT): Default initialize Ifaces_List and |
| Ifaces_Comp_List. |
| |
| 2017-11-09 Pascal Obry <obry@adacore.com> |
| |
| * libgnarl/s-taprop__mingw.adb: On Windows, initialize the thead handle |
| only for foreign threads. We initialize the thread handle only if not |
| yet initialized. This happens in Enter_Task for foreign threads only. |
| But for native threads (Ada tasking) we do want to keep the real |
| handle (from Create_Task) to be able to free the corresponding |
| resources in Finalize_TCB (CloseHandle). |
| |
| 2017-11-09 Yannick Moy <moy@adacore.com> |
| |
| * sem_attr.adb (Analyze_Attribute): Default initialize P_Type, |
| P_Base_Type. |
| (Error_Attr_P): Fix name in pragma No_Return. |
| (Unexpected_Argument): Add pragma No_Return. |
| (Placement_Error): Add pragma No_Return. |
| |
| 2017-11-09 Javier Miranda <miranda@adacore.com> |
| |
| * exp_disp.adb (Elab_Flag_Needed): Elaboration flag not needed when the |
| dispatch table is statically built. |
| (Make_DT): Declare constant the Interface_Table object associated with |
| an statically built dispatch table. For this purpose the Offset_To_Top |
| value of each interface is computed using the dummy object. |
| * exp_ch3.adb (Build_Init_Procedure): Do not generate code initializing |
| the Offset_To_Top field of secondary dispatch tables when the dispatch |
| table is statically built. |
| (Initialize_Tag): Do not generate calls to Register_Interface_Offset |
| when the dispatch table is statically built. |
| * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst: |
| Document the new GNAT restriction Static_Dispatch_Tables. |
| * gnat_rm.texi: Regenerate. |
| |
| 2017-11-09 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_aggr.adb (Resolve_Delta_Record_Aggregate): Reorder declarations |
| to avoid a dormant bug. |
| |
| 2017-11-09 Jerome Lambourg <lambourg@adacore.com> |
| |
| * init.c: Define missing __gnat_alternate_stack for QNX. Set it to 0, |
| as such capability is not available on the OS. |
| * link.c: Make sure linker options for QNX are correct. |
| * libgnarl/s-osinte__qnx.ads: Add some missing bindings to pthread. |
| * libgnarl/s-taprop__qnx.adb: New, derived from s-taprop__posix.adb. This brings |
| in particular a workaround with locks priority ceiling where a higher |
| priority task is allowed to lock a lower ceiling priority lock. This |
| also fixes the scheduling of FIFO tasks when the priority of a task is |
| lowered. |
| * libgnat/system-qnx-aarch64.ads: Fix priority ranges. |
| |
| 2017-11-09 Yannick Moy <moy@adacore.com> |
| |
| * erroutc.adb (Output_Error_Msgs): Justify CodePeer false positive |
| message. |
| * gnatbind.adb (Scan_Bind_Arg): Simplify test to remove always true |
| condition. |
| * namet.adb (Copy_One_Character): Add assumption for static analysis, |
| as knowledge that Hex(2) is in the range 0..255 is too complex for |
| CodePeer. |
| (Finalize): Add assumption for static analysis, as the fact that there |
| are symbols in the table depends on a global invariant at this point in |
| the program. |
| * set_targ.adb (Check_Spaces): Justify CodePeer false positive message. |
| * stylesw.adb (Save_Style_Check_Options): Rewrite to avoid test always |
| true. |
| |
| 2017-11-09 Javier Miranda <miranda@adacore.com> |
| |
| * libgnat/s-rident.ads (Static_Dispatch_Tables): New restriction name. |
| * exp_disp.adb (Building_Static_DT): Check restriction. |
| (Building_Static_Secondary_DT): Check restriction. |
| (Make_DT): Initialize the HT_Link to No_Tag. |
| * opt.ads (Static_Dispatch_Tables): Rename flag... |
| (Building_Static_Dispatch_Tables): ... into this. This will avoid |
| conflict with the restriction name. |
| * gnat1drv.adb: Update. |
| * exp_aggr.adb (Is_Static_Dispatch_Table_Aggregate): Update. |
| * exp_ch3.adb (Expand_N_Object_Declaration): Update. |
| |
| 2017-11-09 Pascal Obry <obry@adacore.com> |
| |
| * libgnarl/s-taprop__mingw.adb: Minor code clean-up. Better using a |
| named number. |
| |
| 2017-11-09 Yannick Moy <moy@adacore.com> |
| |
| * binde.adb (Diagnose_Elaboration_Problem): Mark procedure No_Return. |
| * checks.adb (Apply_Scalar_Range_Check): Rescope variable OK closer to |
| use. Default initialize Hi, Lo. |
| (Selected_Range_Checks): Retype Num_Checks more precisely. |
| (Determine_Range, Determine_Range_R): Default initialize Hi_Right, |
| Lo_Right. |
| * contracts.adb (Process_Contract_Cases): Mark parameter Stmts as |
| Unmodified. |
| (Process_Postconditions): Mark parameter Stmts as Unmodified. |
| * exp_attr.adb (Expand_Loop_Entry_Attribute): Default initialize Blk. |
| * exp_ch4.adb (Expand_N_Allocator): Default initialize Typ. |
| (Expand_Concatenate): Default initialize High_Bound. |
| (Optimize_Length_Comparison): Default initialize Ent, Index. |
| * exp_ch5.adb (Expand_Predicated_Loop): Default initialize L_Hi and |
| L_Lo. |
| * exp_ch6.adb (Expand_N_Extended_Return_Statement): Default initialize |
| Return_Stmt. |
| * exp_ch9.adb (Expand_Entry_Barrier): Default initialize Func_Body and |
| remove pragma Warnings(Off). |
| * exp_imgv.adb (Expand_Image_Attribute): Default initialize Tent. |
| * exp_util.adb (Find_Interface_Tag): Default initialize AI_Tag. |
| * freeze.adb (Check_Component_Storage_Order): Default initialize |
| Comp_Byte_Aligned rather than silencing messages with pragma |
| Warnings(Off), which does not work for CodePeer initialization |
| messages, and given that here the possible read of an unitialized value |
| depends on a proper use of parameters by the caller. |
| * inline.adb (Expand_Inlined_Call): Default initialize Lab_Decl, Targ. |
| * sem_ch12.adb (Build_Operator_Wrapper): Default initialize Expr. |
| * sem_ch3.adb (Build_Derived_Array_Type): Default initialize |
| Implicit_Base. |
| * sem_ch4.adb (List_Operand_Interps): Default initialize Nam and remove |
| pragma Warnings(Off). |
| (Analyze_Case_Expression): Rescope checking block within branch where |
| Others_Present is set by the call to Check_Choices. |
| * sem_ch5.adb (Analyze_Assignment): Default initialize |
| Save_Full_Analysis. |
| * sem_ch6.adb (Analyze_Function_Return): Default initialize Obj_Decl, |
| and restructure code to defend against previous errors, so that, in |
| that case, control does not flow to the elsif condition which read an |
| uninitialized Obj_Decl. |
| * sem_ch9.adb (Analyze_Requeue): Default initialize Synch_Type. |
| (Check_Interfaces): Default initialize Full_T_Ifaces and Priv_T_Ifaces, |
| which seem to be left uninitialized and possibly read in some cases. |
| * sem_dim.adb (Analyze_Aspect_Dimension_System): Retype Position more |
| precisely. This requires to exchange the test for exiting in case of |
| too many positions and the increment to Position, inside the loop. |
| * sem_eval.adb (Eval_Concatenation): Default initialize Folded_Val, |
| which cannot be read uninitialized, but the reasons for that are quite |
| subtle. |
| * sem_intr.adb (Check_Intrinsic_Call): Default initialize Rtyp. |
| * sem_prag.adb (Collect_Subprogram_Inputs_Outputs): Default initialize |
| Spec_Id. |
| * sem_res.adb (Make_Call_Into_Operator): Default initialize Opnd_Type, |
| and test for presence of non-null Opnd_Type before testing its scope, |
| in a test which would read its value uninitialized, and is very rarely |
| exercized (it depends on the presence of an extension of System). |
| * sem_spark.ads: Update comment to fix name of main analysis procedure. |
| * sem_warn.adb (Warn_On_Known_Condition): Default initialize |
| Test_Result. |
| * set_targ.adb (FailN): Mark procedure with No_Return. |
| * stylesw.adb (Save_Style_Check_Options): Delete useless code to |
| initialize all array Options to white space, as there is already code |
| doing the same for the remaining positions in Options at the end of the |
| procedure. |
| |
| 2017-11-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch11.adb (Possible_Local_Raise): Do not issue the warning for |
| generic instantiations either. |
| |
| 2017-11-09 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_prag.adb (Analyze_Part_Of): Reword error message. |
| (Get_SPARK_Mode_Type): Do not raise Program_Error in case pragma |
| SPARK_Mode appears with an illegal mode, treat this as a non-existent |
| mode. |
| |
| 2017-11-09 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch4.adb (Analyze_Call): Reject a call to a function that returns |
| a limited view of a type T declared in unit U1, when the function is |
| declared in another unit U2 and the call appears in a procedure within |
| another unit. |
| |
| 2017-11-09 Justin Squirek <squirek@adacore.com> |
| |
| * sem_ch8.adb (Analyze_Use_Package): Force installation of use_clauses |
| when processing generic instances. |
| |
| 2017-11-09 Bob Duff <duff@adacore.com> |
| |
| * namet.ads, namet.adb (Valid_Name_Id): New subtype that excludes |
| Error_Name and No_Name. Use this (versus Name_Id) to indicate which |
| objects can have those special values. Valid_Name_Id could usefully be |
| used all over the compiler front end, but that's too much trouble for |
| now. If we did that, we might want to rename: |
| Name_Id --> Optional_Name_Id, Valid_Name_Id --> Name_Id. |
| For parameters of type Valid_Name_Id, remove some redundant tests, |
| including the ones found by CodePeer. Use Is_Valid_Name instead of |
| membership test when appropriate. |
| (Error_Name_Or_No_Name): Delete this; it's no longer needed. |
| * sem_ch2.adb (Analyze_Identifier): Use "not Is_Valid_Name" instead of |
| "in Error_Name_Or_No_Name". |
| (Check_Parameterless_Call): Use "not Is_Valid_Name" instead of "in |
| Error_Name_Or_No_Name". |
| |
| 2017-11-09 Arnaud Charlet <charlet@adacore.com> |
| |
| * gnat1drv.adb (Adjust_Global_Switches): Suppress warnings in codepeer |
| mode here unless -gnateC is specified. |
| * switch-c.adb (Scan_Front_End_Switches): Do not suppress warnings with |
| -gnatC here. |
| |
| 2017-11-09 Piotr Trojanek <trojanek@adacore.com> |
| |
| * lib-writ.adb (Write_ALI): Remove processing of the frontend xrefs as |
| part of the ALI writing; they are now processed directly from memory |
| when requested by the backend. |
| * lib-xref.ads (Collect_SPARK_Xrefs): Remove. |
| (Iterate_SPARK_Xrefs): New routine for iterating over frontend xrefs. |
| * lib-xref-spark_specific.adb (Traverse_Compilation_Unit): Remove. |
| (Add_SPARK_File): Remove. |
| (Add_SPARK_Xref): Refactored from removed code; filters xref entries |
| that are trivially uninteresting to the SPARK backend. |
| * spark_xrefs.ads: Remove code that is no longer needed. |
| * spark_xrefs.adb (dspark): Adapt to use Iterate_SPARK_Xrefs. |
| |
| 2017-11-09 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_elab.adb: Update the documentation on adding a new elaboration |
| schenario. Add new hash table Recorded_Top_Level_Scenarios. |
| (Is_Check_Emitting_Scenario): Removed. |
| (Is_Recorded_Top_Level_Scenario): New routine. |
| (Kill_Elaboration_Scenario): Reimplemented. |
| (Record_Elaboration_Scenario): Mark the scenario as recorded. |
| (Set_Is_Recorded_Top_Level_Scenario): New routine. |
| (Update_Elaboration_Scenario): Reimplemented. |
| * sinfo.adb (Is_Recorded_Scenario): Removed. |
| (Set_Is_Recorded_Scenario): Removed. |
| * sinfo.ads: Remove attribute Is_Recorded_Scenario along with |
| occurrences in nodes. |
| (Is_Recorded_Scenario): Removed along with pragma Inline. |
| (Set_Is_Recorded_Scenario): Removed along with pragma Inline. |
| |
| 2017-11-09 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_prag.adb (Analyze_Part_Of): Change "designate" to "denote" in |
| error message. |
| |
| 2017-11-09 Justin Squirek <squirek@adacore.com> |
| |
| * sem_res.adb (Resolve_Allocator): Add warning messages corresponding |
| to the allocation of an anonymous access-to-controlled object. |
| |
| 2017-11-09 Jerome Lambourg <lambourg@adacore.com> |
| |
| * sigtramp-qnx.c: Fix obvious typo. |
| |
| 2017-11-09 Doug Rupp <rupp@adacore.com> |
| |
| * libgnarl/s-taprop__linux.adb (Monotonic_Clock): Minor reformatting. |
| |
| 2017-11-09 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_res.adb (Resolve): If expression is an entity whose type has |
| implicit dereference, generate reference to it, because no reference is |
| generated for an overloaded entity during analysis, given that its |
| identity may not be known. |
| |
| 2017-11-09 Javier Miranda <miranda@adacore.com> |
| |
| * exp_disp.adb (Expand_Interface_Thunk): Replace substraction of |
| offset-to-top field by addition. |
| (Make_Secondary_DT): Initialize the offset-to-top field with a negative |
| offset. |
| * exp_ch3.adb (Build_Offset_To_Top_Function): Build functions that |
| return a negative offset-to-top value. |
| (Initialize_Tag): Invoke runtime services Set_Dynamic_Offset_To_Top and |
| Set_Static_Offset_To_Top passing a negative offet-to-top value; |
| initialize also the offset-to-top field with a negative offset. |
| * libgnat/a-tags.adb (Base_Address): Displace the pointer by means of |
| an addition since the offset-to-top field is now a negative value. |
| (Displace): Displace the pointer to the object means of a substraction |
| since it is now a negative value. |
| (Set_Dynamic_Offset_to_top): Displace the pointer to the object by |
| means of a substraction since it is now a negative value. |
| |
| 2017-11-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gnat1drv.adb (Gnat1drv): Call Errout.Finalize (Last_Call => True) |
| before Errout.Output_Messages also in the case of compilation errors. |
| |
| 2017-11-09 Javier Miranda <miranda@adacore.com> |
| |
| * doc/gnat_ugn/the_gnat_compilation_model.rst (Interfacing with C++ at |
| the Class Level): Fix error interfacing with C strings. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2017-11-09 Jerome Lambourg <lambourg@adacore.com> |
| |
| * system-qnx-aarch64.ads: Fix the priority constants. |
| * s-osinte__qnx.ads: Fix constants for handling the locking protocols |
| and scheduling. |
| * s-osinte__qnx.adb: New file , prevents the use of priority 0 that |
| corresponds to an idle priority on QNX. |
| |
| 2017-11-09 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_prag.adb, sem_util.adb, sem_elab.adb: Fix minor typos in |
| comments. |
| |
| 2017-11-09 Piotr Trojanek <trojanek@adacore.com> |
| |
| * lib-xref-spark_specific.adb (Add_SPARK_Xrefs): Ignore loop parameters |
| in expression funtions that are expanded into variables. |
| |
| 2017-11-09 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_util.adb: Minor whitespace cleanup. |
| |
| 2017-11-09 Jerome Lambourg <lambourg@adacore.com> |
| |
| * libgnarl/s-taprop__qnx.adb: Refine aarch64-qnx. Use the POSIX |
| s-taprop version rather than a custom one. |
| * sigtramp-qnx.c (aarch64-qnx): Implement the signal trampoline. |
| |
| 2017-11-08 Piotr Trojanek <trojanek@adacore.com> |
| |
| * lib-xref.ads, lib-xref-spark_specific.adb |
| (Traverse_Compilation_Unit): Move declaration to package body. |
| |
| 2017-11-08 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * exp_spark.adb (Expand_SPARK_N_Object_Renaming_Declaration): Obtain |
| the type of the renaming from its defining entity, rather then the |
| subtype mark as there may not be a subtype mark. |
| |
| 2017-11-08 Jerome Lambourg <lambourg@adacore.com> |
| |
| * adaint.c, s-oscons-tmplt.c, init.c, libgnat/system-qnx-aarch64.ads, |
| libgnarl/a-intnam__qnx.ads, libgnarl/s-intman__qnx.adb, |
| libgnarl/s-osinte__qnx.ads, libgnarl/s-qnx.ads, |
| libgnarl/s-taprop__qnx.adb, s-oscons-tmplt.c, sigtramp-qnx.c, |
| terminals.c: Initial port of GNAT for aarch64-qnx |
| |
| 2017-11-08 Elisa Barboni <barboni@adacore.com> |
| |
| * exp_util.adb (Find_DIC_Type): Move... |
| * sem_util.ads, sem_util.adb (Find_DIC_Type): ... here. |
| |
| 2017-11-08 Justin Squirek <squirek@adacore.com> |
| |
| * sem_res.adb (Resolve_Allocator): Add info messages corresponding to |
| the owner and corresponding coextension. |
| |
| 2017-11-08 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_aggr.adb (Resolve_Delta_Aggregate): Divide into the |
| following separate procedures. |
| (Resolve_Delta_Array_Aggregate): Previous code form |
| Resolve_Delta_Aggregate. |
| (Resolve_Delta_Record_Aggregate): Extend previous code to cover latest |
| ARG decisions on the legality rules for delta aggregates for records: |
| in the case of a variant record, components from different variants |
| cannot be specified in the delta aggregate, and this must be checked |
| statically. |
| |
| 2017-11-08 Piotr Trojanek <trojanek@adacore.com> |
| |
| * spark_xrefs.ads (SPARK_Scope_Record): Remove File_Num component. |
| * lib-xref-spark_specific.adb (Add_SPARK_Scope): Skip initialization of |
| removed component. |
| |
| 2017-11-08 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_ch4.adb: Minor typo fix. |
| |
| 2017-11-08 Piotr Trojanek <trojanek@adacore.com> |
| |
| * spark_xrefs.ads (SPARK_Scope_Record): Remove Spec_File_Num and |
| Spec_Scope_Num components. |
| * spark_xrefs.adb (dspark): Skip pretty-printing to removed components. |
| * lib-xref-spark_specific.adb (Add_SPARK_Scope): Skip initialization of |
| removed components. |
| (Collect_SPARK_Xrefs): Skip setting proper values of removed |
| components. |
| |
| 2017-11-08 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_ch4.adb (Expand_N_Type_Conversion): Add test that the selector |
| name is a discriminant in check for unconditional accessibility |
| violation within instances. |
| |
| 2017-11-08 Piotr Trojanek <trojanek@adacore.com> |
| |
| * lib-xref-spark_specific.adb (Add_SPARK_Xrefs): Remove special-case |
| for constants (with variable input). |
| (Is_Constant_Object_Without_Variable_Input): Remove. |
| |
| 2017-11-08 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * exp_ch9.adb, sem_disp.adb, sem_util.adb: Minor reformatting. |
| |
| 2017-11-08 Piotr Trojanek <trojanek@adacore.com> |
| |
| * spark_xrefs.ads (Rtype): Remove special-casing of constants for SPARK |
| cross-references. |
| (dspark): Remove hardcoded table bound. |
| |
| 2017-11-08 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch4.adb (Analyze_Aggregate): For Ada2020 delta aggregates, use |
| the type of the base of the construct to determine the type (or |
| candidate interpretations) of the delta aggregate. This allows the |
| construct to appear in a context that expects a private extension. |
| * sem_res.adb (Resolve): Handle properly a delta aggregate with an |
| overloaded base. |
| |
| 2017-11-08 Piotr Trojanek <trojanek@adacore.com> |
| |
| * spark_xrefs.ads (SPARK_Xref_Record): Replace file and scope indices |
| with Entity_Id of the reference. |
| * spark_xrefs.adb (dspark): Adapt pretty-printing routine. |
| * lib-xref-spark_specific.adb (Add_SPARK_Xrefs): Store Entity_Id of the |
| reference, not the file and scope indices. |
| |
| 2017-11-08 Arnaud Charlet <charlet@adacore.com> |
| |
| * errout.ads (Current_Node): New. |
| * errout.adb (Error_Msg): Use Current_Node. |
| * par-ch6.adb, par-ch7.adb, par-ch9.adb, par-util.adb: Set Current_Node |
| when relevant. |
| * style.adb: Call Error_Msg_N when possible. |
| |
| 2017-11-08 Piotr Trojanek <trojanek@adacore.com> |
| |
| * spark_xrefs.ads (SPARK_Scope_Record): Rename Scope_Id component to |
| Entity. |
| * lib-xref-spark_specific.adb, spark_xrefs.adb: Propagate renaming of |
| the Scope_Id record component. |
| |
| 2017-11-08 Piotr Trojanek <trojanek@adacore.com> |
| |
| * spark_xrefs.ads (SPARK_File_Record): Remove string components. |
| * spark_xrefs.adb (dspark): Remove pretty-printing of removed |
| SPARK_File_Record components. |
| * lib-xref-spark_specific.adb (Add_SPARK_File): Do not store string |
| representation of files/units. |
| |
| 2017-11-08 Piotr Trojanek <trojanek@adacore.com> |
| |
| * lib-xref.ads, lib-xref-spark_specific.adb (Traverse_Declarations): |
| Remove Inside_Stubs parameter. |
| |
| 2017-11-08 Piotr Trojanek <trojanek@adacore.com> |
| |
| * spark_xrefs.ads (SPARK_Xref_Record): Referenced object is now |
| represented by Entity_Id. |
| (SPARK_Scope_Record): Referenced scope (e.g. subprogram) is now |
| represented by Entity_Id; this information is not repeated as |
| Scope_Entity. |
| (Heap): Moved from lib-xref-spark_specific.adb, to reside next to |
| Name_Of_Heap_Variable. |
| * spark_xrefs.adb (dspark): Adapt debug routine to above changes in |
| data types. |
| * lib-xref-spark_specific.adb: Adapt routines for populating SPARK |
| scope and xrefs tables to above changes in data types. |
| |
| 2017-11-08 Justin Squirek <squirek@adacore.com> |
| |
| * sem_ch8.adb (Mark_Use_Clauses): Add condition to always mark the |
| primitives of generic actuals. |
| (Mark_Use_Type): Add recursive call to properly mark class-wide type's |
| base type clauses as per ARM 8.4 (8.2/3). |
| |
| 2017-11-08 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch6.adb (Analyze_Generic_Subprobram_Body): Validate |
| categorization dependency of the body, as is done for non-generic |
| units. |
| (New_Overloaded_Entity, Visible_Part_Type): Remove linear search |
| through declarations (Simple optimization, no behavior change). |
| |
| 2017-11-08 Piotr Trojanek <trojanek@adacore.com> |
| |
| * spark_xrefs.ads (SPARK_Xref_Record): Remove inessential components. |
| (SPARK_Scope_Record): Remove inessential components. |
| * spark_xrefs.adb (dspark): Remove pretty-printing of removed record |
| components. |
| * lib-xref-spark_specific.adb (Add_SPARK_Scope): Remove setting of |
| removed record components. |
| (Add_SPARK_Xrefs): Remove setting of removed record components. |
| |
| 2017-11-08 Piotr Trojanek <trojanek@adacore.com> |
| |
| * lib-xref-spark_specific.adb (Add_SPARK_Xrefs): Remove dead check for |
| empty entities. |
| |
| 2017-11-08 Javier Miranda <miranda@adacore.com> |
| |
| * sem_disp.adb (Is_Inherited_Public_Operation): Extend the |
| functionality of this routine to handle multiple levels of derivations. |
| |
| 2017-11-08 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * einfo.adb: Elist36 is now used as Nested_Scenarios. |
| (Nested_Scenarios): New routine. |
| (Set_Nested_Scenarios): New routine. |
| (Write_Field36_Name): New routine. |
| * einfo.ads: Add new attribute Nested_Scenarios along with occurrences |
| in entities. |
| (Nested_Scenarios): New routine along with pragma Inline. |
| (Set_Nested_Scenarios): New routine along with pragma Inline. |
| * sem_elab.adb (Find_And_Process_Nested_Scenarios): New routine. |
| (Process_Nested_Scenarios): New routine. |
| (Traverse_Body): When a subprogram body is traversed for the first |
| time, find, save, and process all suitable scenarios found within. |
| Subsequent traversals of the same subprogram body utilize the saved |
| scenarios. |
| |
| 2017-11-08 Piotr Trojanek <trojanek@adacore.com> |
| |
| * lib-xref-spark_specific.adb (Add_SPARK_Scope): Remove detection of |
| protected operations. |
| (Add_SPARK_Xrefs): Simplify detection of empty entities. |
| * get_spark_xrefs.ads, get_spark_xrefs.adb, put_spark_xrefs.ads, |
| put_spark_xrefs.adb, spark_xrefs_test.adb: Remove code for writing, |
| reading and testing SPARK cross-references stored in the ALI files. |
| * lib-xref.ads (Output_SPARK_Xrefs): Remove. |
| * lib-writ.adb (Write_ALI): Do not write SPARK cross-references to the |
| ALI file. |
| * spark_xrefs.ads, spark_xrefs.adb (pspark): Remove, together |
| with description of the SPARK xrefs ALI format. |
| * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Remove get_spark_refs.o |
| and put_spark_refs.o. |
| |
| 2017-11-08 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * exp_ch4.adb (Apply_Accessibility_Check): Do not finalize the object |
| when the associated access type is subject to pragma |
| No_Heap_Finalization. |
| * exp_intr.adb (Expand_Unc_Deallocation): Use the available view of the |
| designated type in case it comes from a limited withed unit. |
| |
| 2017-11-08 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * exp_ch3.adb (Expand_N_Object_Declaration): Save and restore relevant |
| SPARK-related flags. Add ??? comment. |
| * exp_util.adb (Insert_Actions): Add an entry for node |
| N_Variable_Reference_Marker. |
| * sem.adb (Analyze): Add an entry for node N_Variable_Reference_Marker. |
| * sem_ch8.adb (Find_Direct_Name): Add constant Is_Assignment_LHS. Build |
| and record a variable reference marker for the current name. |
| (Find_Expanded_Name): Add constant Is_Assignment_LHS. Build and record |
| a variable reference marker for the current name. |
| * sem_elab.adb (Build_Variable_Reference_Marker): New routine. |
| (Extract_Variable_Reference_Attributes): Reimplemented. |
| (Info_Scenario): Add output for variable references and remove output |
| for variable reads. |
| (Info_Variable_Read): Removed. |
| (Info_Variable_Reference): New routine. |
| (Is_Suitable_Scenario): Variable references are now suitable scenarios |
| while variable reads are not. |
| (Output_Active_Scenarios): Add output for variable references and |
| remove output for variable reads. |
| (Output_Variable_Read): Removed. |
| (Output_Variable_Reference): New routine. |
| (Process_Variable_Read): Removed. |
| (Process_Variable_Reference): New routine. |
| (Process_Variable_Reference_Read): New routine. |
| * sem_elab.ads (Build_Variable_Reference_Marker): New routine. |
| * sem_res.adb (Resolve_Actuals): Build and record a variable reference |
| marker for the current actual. |
| * sem_spark.adb (Check_Node): Add an entry for node |
| N_Variable_Reference_Marker. |
| * sem_util.adb (Within_Subprogram_Call): Moved to the library level. |
| * sem_util.ads (Within_Subprogram_Call): Moved to the library level. |
| * sinfo.adb (Is_Read): New routine. |
| (Is_Write): New routine. |
| (Target): Updated to handle variable reference markers. |
| (Set_Is_Read): New routine. |
| (Set_Is_Write): New routine. |
| (Set_Target): Updated to handle variable reference markers. |
| * sinfo.ads: Add new attributes Is_Read and Is_Write along with |
| occurrences in nodes. Update attribute Target. Add new node |
| kind N_Variable_Reference_Marker. |
| (Is_Read): New routine along with pragma Inline. |
| (Is_Write): New routine along with pragma Inline. |
| (Set_Is_Read): New routine along with pragma Inline. |
| (Set_Is_Write): New routine along with pragma Inline. |
| * sprint.adb (Sprint_Node_Actual): Add an entry for node |
| N_Variable_Reference_Marker. |
| |
| 2017-11-08 Arnaud Charlet <charlet@adacore.com> |
| |
| * sem_util.adb (Subprogram_Name): Append suffix for overloaded |
| subprograms. |
| |
| 2017-11-08 Yannick Moy <moy@adacore.com> |
| |
| * sem_ch8.adb (Use_One_Type, Update_Use_Clause_Chain): Do not report |
| about unused use-type or use-package clauses inside inlined bodies. |
| |
| 2017-11-08 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_elab.adb (Ensure_Prior_Elaboration): Add new parameter |
| In_Partial_Fin along with a comment on its usage. Do not guarantee the |
| prior elaboration of a unit when the need came from a partial |
| finalization context. |
| (In_Initialization_Context): Relocated to Process_Call. |
| (Is_Partial_Finalization_Proc): New routine. |
| (Process_Access): Add new parameter In_Partial_Fin along with a comment |
| on its usage. |
| (Process_Activation_Call): Add new parameter In_Partial_Fin along with |
| a comment on its usage. |
| (Process_Activation_Conditional_ABE_Impl): Add new parameter |
| In_Partial_Fin along with a comment on its usage. Do not emit any ABE |
| diagnostics when the activation occurs in a partial finalization |
| context. |
| (Process_Activation_Guaranteed_ABE_Impl): Add new parameter |
| In_Partial_Fin along with a comment on its usage. |
| (Process_Call): Add new parameter In_Partial_Fin along with a comment |
| on its usage. A call is within a partial finalization context when it |
| targets a finalizer or primitive [Deep_]Finalize, and the call appears |
| in initialization actions. Pass this information down to the recursive |
| steps of the Processing phase. |
| (Process_Call_Ada): Add new parameter In_Partial_Fin along with a |
| comment on its usage. Remove the guard which suppresses the generation |
| of implicit Elaborate[_All] pragmas. This is now done in |
| Ensure_Prior_Elaboration. |
| (Process_Call_Conditional_ABE): Add new parameter In_Partial_Fin along |
| with a comment on its usage. Do not emit any ABE diagnostics when the |
| call occurs in a partial finalization context. |
| (Process_Call_SPARK): Add new parameter In_Partial_Fin along with a |
| comment on its usage. |
| (Process_Instantiation): Add new parameter In_Partial_Fin along with a |
| comment on its usage. |
| (Process_Instantiation_Ada): Add new parameter In_Partial_Fin along |
| with a comment on its usage. |
| (Process_Instantiation_Conditional_ABE): Add new parameter |
| In_Partial_Fin along with a comment on its usage. Do not emit any ABE |
| diagnostics when the instantiation occurs in a partial finalization |
| context. |
| (Process_Instantiation_SPARK): Add new parameter In_Partial_Fin along |
| with a comment on its usage. |
| (Process_Scenario): Add new parameter In_Partial_Fin along with a |
| comment on its usage. |
| (Process_Single_Activation): Add new parameter In_Partial_Fin along |
| with a comment on its usage. |
| (Traverse_Body): Add new parameter In_Partial_Fin along with a comment |
| on its usage. |
| |
| 2017-11-08 Arnaud Charlet <charlet@adacore.com> |
| |
| * sem_ch13.adb: Add optional parameter to Error_Msg. |
| |
| 2017-11-08 Jerome Lambourg <lambourg@adacore.com> |
| |
| * fname.adb (Is_Internal_File_Name): Do not check the 8+3 naming schema |
| for the Interfaces.* hierarchy as longer unit names are now allowed. |
| |
| 2017-11-08 Arnaud Charlet <charlet@adacore.com> |
| |
| * sem_util.adb (Subprogram_Name): Emit sloc for the enclosing |
| subprogram as well. Support more cases of entities. |
| (Append_Entity_Name): Add some defensive code. |
| |
| 2017-11-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/misc.c (gnat_post_options): Clear warn_return_type. |
| |
| 2017-10-31 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/82785 |
| * gcc-interface/Makefile.in (m68k/Linux): Fix typo. |
| |
| 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. |
| * 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 |
| attributes. |
| (Analyze_Task_Type_Declaration): Save certain elaboration-related |
| 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 |
| 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. |
| * 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. |
| * 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. |
| * 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 |
| 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. |
| (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: |
| 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: |
| 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> |
| |
| * 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: |
| 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> |
| 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. |
| |
| Copyright (C) 2017 Free Software Foundation, Inc. |
| |
| Copying and distribution of this file, with or without modification, |
| are permitted in any medium without royalty provided the copyright |
| notice and this notice are preserved. |