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