-2017-12-21 Eric Botcazou <ebotcazou@adacore.com>
+2018-04-04 Piotr Trojanek <trojanek@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.
+ * libgnarl/a-reatim.ads (Clock_Time): Remove External aspect.
+ * libgnarl/a-taside.ads (Tasking_State): Likewise.
+ * libgnat/a-calend.ads (Clock_Time): Likewise.
-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>
+2018-04-04 Yannick Moy <moy@adacore.com>
- * exp_attr.adb (Is_Inline_Floating_Point_Attribute): Fix comment.
- * libgnat/s-fatgen.adb (Model): Use Machine attribute.
- (Truncation): Likewise.
+ * sem_ch6.adb (Analyze_Procedure_Call): Refine test to recognize prefix
+ call notation in inlined call in GNATprove mode.
-2017-12-15 Bob Duff <duff@adacore.com>
+2018-05-21 Hristian Kirtchev <kirtchev@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.
+ * einfo.adb (Is_External_State): An abstract state is also external
+ when it is declared with option "synchronous".
+ * einfo.ads: Update the documentation of synthesized attribute
+ Is_External_State.
+ * sem_util.adb (Find_Simple_Properties): New routine.
+ (Is_Enabled_External_Property): New routine.
+ (State_Has_Enabled_Property): Reimplemented. The two flavors of option
+ External have precedence over option Synchronous when determining
+ whether a property is in effect.
-2017-12-15 Bob Duff <duff@adacore.com>
+2018-04-04 Yannick Moy <moy@adacore.com>
- * types.ads, exp_ch6.adb, libgnat/s-regexp.ads, opt.ads: Partly revert
- r255414, committed by mistake.
+ * sem_eval.adb (Static_Length): Take into account case of variable of
+ subtype string literal.
-2017-12-14 Eric Botcazou <ebotcazou@adacore.com>
+2018-04-04 Olivier Hainque <hainque@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>
+ * libgnat/s-objrea.ads (Get_Memory_Bounds): Rename as Get_Xcode_Bounds.
+ (Object_Section): Rename Flag_Alloc component as Flag_Xcode.
+ * libgnat/s-objrea.adb (Get_Xcode_Bounds): Adjust to new subprogram and
+ component name.
+ (Get_Section, ELF case): Set Flag_Xcode from SHF_EXECINSTR.
+ * libgnat/s-dwalin.adb (Open): Adjust to the Get_Memory_Bounds name
+ change.
- * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Minor typo fix
- and reformatting.
- * gnat_ugn.texi: Regenerate.
+2018-04-04 Olivier Hainque <hainque@adacore.com>
+
+ * libgnat/s-dwalin.ads (Dwarf_Context): Change type of Load_Address to
+ Address, and type of Low, High to Storage_Offset.
+ (Low): Rename as Low_Address and convey that the return value is a
+ runtime reference accounting for a load address.
+ * libgnat/s-dwalin.adb (Read_Aranges_Entry): Adjust to the
+ address/offset type changes.
+ (Aranges_Lookup): Likewise.
+ (Symbolic_Address): Likewise.
+ (Symbolic_Traceback): Likewise.
+ (Dump_Cache): Likewise.
+ (Is_Inside): Likewise.
+ (Open): Likewise.
+ (Set_Load_Address): Likewise.
+ (Low_Address): Likewise, and account for C.Load_Address.
+ * libgnat/s-trasym__dwarf.adb (Lt): Use Low_Address instead of Low.
+ (Multi_Module_Symbolic_Traceback): Compare address in traceback
+ with module Low_Address instead of Low.
+
+2018-04-04 Olivier Hainque <hainque@adacore.com>
+
+ * libgnat/s-dwalin.ads (Dwarf_Context): Rename Load_Slide as
+ Load_Address.
+ * libgnat/s-dwalin.adb (Is_Inside): Adjust accordingly.
+ (Set_Load_Address): Likewise.
+ (Symbolic_Traceback): Likewise.
+
+2018-04-04 Olivier Hainque <hainque@adacore.com>
+
+ * libgnat/s-trasym__dwarf.adb (Add_Module_To_Cache): Expect a
+ Load_Address argument and pass it down to Init_Module.
+ * libgnat/s-tsmona__linux.adb (Build_Cache_For_All_Modules): Pass
+ lm.l_addr as the Load_Address to Add_Module_To_Cache.
+
+2018-04-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * einfo.adb (Has_Discriminants): Stronger assertion.
+ (Set_Has_Discriminants): Stronger assertion.
+ * sem_ch13.adb (Push_Scope_And_Install_Discriminants): Adapt to respect
+ the stronger assertion on Has_Discriminant.
+ (Uninstall_Discriminants_And_Pop_Scope): Same as above.
+ * sem_util.adb (New_Copy_Tree): Same as above.
+ * sem_ch7.adb (Generate_Parent_References): Prevent calls to
+ Has_Discriminant on non-type entities that might happen when the
+ compiled code has errors.
+ * sem_ch3.adb (Derived_Type_Declaration): Only call
+ Set_Has_Discriminant on type entities.
+
+2018-04-04 Arnaud Charlet <charlet@adacore.com>
+
+ * exp_unst.adb (Unnest_Subprogram): Unnest all subprograms relevant for
+ code generation.
+
+2018-04-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * lib.ads: Fix typo in enumeration in comment.
+
+2018-04-04 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_attr.adb (Analyze_Attribute, case Scalar_Storage_Order): The
+ attribute reference is legal within a generic unit when the prefix is a
+ formal private type.
+
+2018-04-04 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * exp_ch7.adb (Establish_Transient_Scope): Code cleanup. Do not
+ delegate the secondary stack management when there is no suitable
+ transient context, and the transient scope was intended to manage the
+ secondary stack because this causes premature reclamation. Change the
+ transient scope creation logic by special casing assignment statements
+ of controlled components for type initialization procedures.
+ (Find_Node_To_Be_Wrapped): Renamed to Find_Transient_Context. Update
+ the comment on usage.
+ (Find_Transient_Context): Change the initinte loop into a while loop.
+ Iterations schemes and iterator specifications are not valid transient
+ contexts because they rely on special processing. Assignment statements
+ are now treated as a normal transient context, special cases are
+ handled by the caller. Add special processing for pragma Check.
+ (Is_OK_Construct): Removed. Its functionality has been merged in
+ routine Find_Transient_Context.
+ * sem_ch5.adb (Check_Call): Reimplemented. Add code to properly
+ retrieve the subprogram being invoked. Use a more accurate predicate
+ (Requires_Transient_Scope) to determine that the function will emply
+ the secondary stack.
-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.
+2018-04-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * ada_get_targ.adb: Fix subprogram body headers.
+ * adabkend.adb: Likewise.
+ * checks.adb: Likewise.
+ * exp_ch3.adb: Likewise.
+ * exp_ch5.adb: Likewise.
+ * exp_ch9.adb: Likewise.
+ * exp_dist.adb: Likewise.
+ * exp_tss.adb: Likewise.
+ * inline.adb: Likewise.
+ * lib-writ.adb: Likewise.
+ * lib-xref-spark_specific.adb: Likewise.
+ * libgnarl/s-osinte__darwin.adb: Likewise.
+ * libgnarl/s-stusta.adb: Likewise.
+ * libgnarl/s-taprop__solaris.adb: Likewise.
+ * libgnarl/s-tposen.adb: Likewise.
+ * libgnarl/s-vxwext__kernel-smp.adb: Likewise.
+ * libgnarl/s-vxwext__kernel.adb: Likewise.
+ * libgnat/a-btgbso.adb: Likewise.
+ * libgnat/a-cfdlli.adb: Likewise.
+ * libgnat/a-cfhama.adb: Likewise.
+ * libgnat/a-cfinve.adb: Likewise.
+ * libgnat/a-cimutr.adb: Likewise.
+ * libgnat/a-coboho.adb: Likewise.
+ * libgnat/a-cofove.adb: Likewise.
+ * libgnat/a-cofuve.adb: Likewise.
+ * libgnat/a-comutr.adb: Likewise.
+ * libgnat/a-exexda.adb: Likewise.
+ * libgnat/a-tags.adb: Likewise.
+ * libgnat/a-tideau.adb: Likewise.
+ * libgnat/a-wtdeau.adb: Likewise.
+ * libgnat/a-ztdeau.adb: Likewise.
+ * libgnat/g-alleve.adb: Likewise.
+ * libgnat/s-excdeb.adb: Likewise.
+ * libgnat/s-parint.adb: Likewise.
+ * libgnat/s-shasto.adb: Likewise.
+ * libgnat/s-traceb__hpux.adb: Likewise.
+ * prepcomp.adb: Likewise.
+ * sem_ch4.adb: Likewise.
+ * sem_ch6.adb: Likewise.
+ * sem_dist.adb: Likewise.
+ * sem_prag.adb: Likewise.
+ * sem_util.adb: Likewise.
+ * sinfo.adb: Likewise.
+ * switch.adb: Likewise.
+
+2018-05-04 John Marino <gnugcc@marino.st>
+
+ PR ada/85635
+ * link.c (BSD platforms): Add missing backslash.
+
+2018-04-27 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/85540
+ * init.c (__gnat_handle_vms_condition): Add missing parentheses.
+
+2018-04-25 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/85007
* gnat_ugn.texi: Regenerate.
-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>
+2018-03-23 Eric Botcazou <ebotcazou@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.
+ PR ada/85007
+ * gnatlink.adb (Gnatlink): Remove handling of -b switch.
+ * doc/gnat_ugn/building_executable_programs_with_gnat.rst (gnatlink):
+ Remove documentation of -b switch.
-2017-12-05 Bob Duff <duff@adacore.com>
+2018-03-23 Eric Botcazou <ebotcazou@adacore.com>
- * sem_res.adb (Resolve_Allocator): Avoid coextension processing for an
- allocator that is the expansion of a build-in-place function call.
+ PR ada/85036
+ * gnatlink.adb (Process_Args): Drop existing link switches if multiple
+ switches are passed for --LINK.
-2017-12-05 Olivier Hainque <hainque@adacore.com>
+2018-03-12 Eric Botcazou <ebotcazou@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.
+ PR ada/82813
+ * gcc-interface/misc.c (gnat_post_options): Disable string overflow
+ warnings.
-2017-12-05 Sebastian Huber <sebastian.huber@embedded-brains.de>
+2018-03-10 Eric Botcazou <ebotcazou@adacore.com>
- * gcc-interface/Makefile.in (RTEMS): Define EH_MECHANISM.
+ * gcc-interface/trans.c (node_has_volatile_full_access) <N_Identifier>:
+ Consider only entities for objects.
-2017-12-04 Sebastian Huber <sebastian.huber@embedded-brains.de>
+2018-03-07 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.
+ * gcc-interface/Makefile.in (OSCONS_CPP): Remove redundant
+ $(GNATLIBCFLAGS).
+ (OSCONS_EXTRACT): Add $(GNATLIBCFLAGS_FOR_C).
-2017-12-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
+2018-03-06 Eric Botcazou <ebotcazou@adacore.com>
- * libgnarl/s-osinte__rtems.ads (pthread_cond_t): Use correct size and
- alignment.
- (pthread_mutex_t): Likewise.
- (pthread_rwlock_t): Likewise.
+ * gcc-interface/trans.c (convert_with_check): Fix typo in the condition
+ guarding the overflow check emitted for the upper bound of a floating-
+ point conversion.
-2017-11-28 Jakub Jelinek <jakub@redhat.com>
+2018-03-06 Eric Botcazou <ebotcazou@adacore.com>
- * gcc-interface/trans.c (Case_Statement_to_gnu): Build SWITCH_EXPR
- using build2 instead of build3.
+ * gcc-interface/utils.c (def_builtin_1): Bail out on error_mark_node.
-2017-11-23 Eric Botcazou <ebotcazou@adacore.com>
+2018-02-28 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.
+ * libgnat/i-cexten.ads (Float_128): New type.
-2017-11-23 Mike Stump <mikestump@comcast.net>
- Eric Botcazou <ebotcazou@adacore.com>
+2018-02-02 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.
+ * gcc-interface/decl.c (array_type_has_nonaliased_component): Return
+ false if the component type is a pointer.
-2017-11-20 Eric Botcazou <ebotcazou@adacore.com>
+2018-01-11 Gary Dismukes <dismukes@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.
+ * exp_ch3.adb (Default_Initialize_Object): Call New_Copy_Tree on the
+ result of Get_Simple_Init_Value and pass the source location of the
+ object declaration's object_definition.
-2017-11-16 Doug Rupp <rupp@adacore.com>
+2018-01-11 Ed Schonberg <schonberg@adacore.com>
- * gcc-interface/Makefile.in: Merge Aarch64 and ARM "ifeq" blocks.
+ * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Handle
+ properly object declarations with initializations that are
+ build-in-place function calls, when there is an address specification,
+ either as an aspect specification or an explicit attribute
+ specification clause, for the initialized object.
+ * freeze.adb (Check_Address_Clause): Do not remove side-effects from
+ initial expressions in the case of a build-in-place call.
-2017-11-16 Steve Baird <baird@adacore.com>
+2018-01-11 Piotr Trojanek <trojanek@adacore.com>
- * debug.adb: Update another comment to indicate gnat2scil's use of the
- -gnatd.7 switch.
+ * sem_eval.adb (Is_Null_Range): Retrieve the full view when called on a
+ private (sub)type; refactor to avoid early return statement.
+ (Not_Null_Range): Same as above.
-2017-11-16 Bob Duff <duff@adacore.com>
+2018-01-11 Hristian Kirtchev <kirtchev@adacore.com>
- * exp_ch6.adb (Expand_Call_Helper): Avoid creating a transient scope in
- the case of nested build-in-place calls.
+ * freeze.adb (Freeze_Entity): Ensure that a Ghost type is not
+ concurrent, nor effectively volatile.
+ * ghost.adb (Check_Ghost_Type): New routine.
+ * ghost.ads (Check_Ghost_Type): New routine.
+ * sem_util.adb (Is_Declaration): Reimplemented. The routine can now
+ consider specific subsets of declarations.
+ (Is_Declaration_Other_Than_Renaming): Removed. Its functionality is
+ replicated by Is_Declaration.
+ * sem_util.ads (Is_Declaration): New parameter profile. Update the
+ comment on usage.
+ (Is_Declaration_Other_Than_Renaming): Removed.
-2017-11-16 Joel Brobecker <brobecker@adacore.com>
+2018-01-11 Hristian Kirtchev <kirtchev@adacore.com>
- * doc/gnat_ugn/gnat_utility_programs.rst: Document the switches
- available in gnatsymbolize.
+ * sem_ch5.adb (Analyze_Assignment): Assignments to variables that act
+ as Part_Of consituents of single protected types are illegal when they
+ take place inside a protected function.
+ (Diagnose_Non_Variable_Lhs): Use Within_Function to check for an
+ enclosing function.
+ (Is_Protected_Part_Of_Constituent): New routine.
+ (Within_Function): New routine.
-2017-11-16 Steve Baird <baird@adacore.com>
+2018-01-11 Arnaud Charlet <charlet@adacore.com>
- * debug.adb: Update comment to indicate gnat2scil's use of the -gnatd.7
- switch.
+ Bump copyright notices to 2018.
-2017-11-16 Gary Dismukes <dismukes@adacore.com>
+2018-01-11 Hristian Kirtchev <kirtchev@adacore.com>
- * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst, sem_ch6.adb,
- sem_elab.adb: Minor editorial corrections.
- * gnat_ugn.texi: Regenerate.
+ * binde.adb, par-ch6.adb, par-ch9.adb, sem_ch12.adb, sem_ch13.adb:
+ Minor reformatting.
-2017-11-16 Joel Brobecker <brobecker@adacore.com>
+2018-01-11 Justin Squirek <squirek@adacore.com>
- * doc/gnat_ugn/gnat_utility_programs.rst (GNAT UGN): Add
- gnatsymbolize documentation.
- * gnat_ugn.texi: Regenerate.
+ * par-ch6.adb (Scan_Body_Or_Expression_Function): Add additional check
+ to make sure a given expression function is properly parenthesized.
-2017-11-16 Steve Baird <baird@adacore.com>
+2018-01-11 Hristian Kirtchev <kirtchev@adacore.com>
- * sem_ch3.adb (Build_Derived_Record_Type): Replace all uses of
- "Scope (Parent_Type)" with "Scope (Parent_Base)".
+ * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Check the
+ categorization of a subprogram body which does not complete a previous
+ declaration.
-2017-11-16 Hristian Kirtchev <kirtchev@adacore.com>
+2018-01-11 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.
+ * sem_ch10.adb (Check_Private_Child_Unit): Ensure that the enclosing
+ scope of package Ada is Standard.
-2017-11-16 Sylvain Dailler <dailler@adacore.com>
+2018-01-11 Ed Schonberg <schonberg@adacore.com>
- * sem_util.adb (Get_Enum_Lit_From_Pos): Add a condition for Pos
- lower than 0.
+ * sem_ch13.adb (Replace_Type_Ref): Handle properly reference to a
+ subcomponent of the current entity when building the body for a dynamic
+ predicate function for a record with composite subcomponents.
-2017-11-16 Bob Duff <duff@adacore.com>
+2018-01-11 Hristian Kirtchev <kirtchev@adacore.com>
- * sem_ch13.adb (Check_Expr_Constants): Avoid error message in case of
- System'To_Address.
+ * exp_aggr.adb (Convert_Aggr_In_Object_Decl): Update the call to
+ Establish_Transient_Scope.
+ (Convert_To_Assignments): Update the call to Establish_Transient_Scope.
+ (Expand_Array_Aggregate): Update the call to Establish_Transient_Scope.
+ * exp_ch6.adb (Expand_Call_Helper): Update the call to
+ Establish_Transient_Scope.
+ (Make_Build_In_Place_Call_In_Object_Declaration): Update the call to
+ Establish_Transient_Scope.
+ * exp_ch7.adb (Establish_Transient_Scope): Restructured. Delegate the
+ management of the secondary stack to an enclosing scope if there is no
+ suitable construct to wrap, and the transient scope was intended to
+ manage the secondary stack.
+ (Find_Node_To_Be_Wrapped): Restructured. A case_statement_alternative
+ is a valid boundary for a transient expression which comes from the
+ statements of the alternative, otherwise alternatives cannot be
+ wrapped. Assignments of controlled objects which have controlled
+ actions suppressed now stop the traversal as there is no point in
+ looking for an enclosing construct. Add several N_xxx_Body choices to
+ the termination conditions for completeness.
+ * exp_ch7.ads (Establish_Transient_Scope): Update the parameter profile
+ and the associated comment on usage.
+ * exp_smem.adb (Add_Shared_Var_Lock_Procs): Update the call to
+ Establish_Transient_Scope.
+ (Add_Write_After): Update the call to Establish_Transient_Scope.
+ * sem_res.adb (Check_Initialization_Call): Removed.
+ (Resolve_Actuals): Account for additional cases where finalization
+ actions are required by utilizing predicate Needs_Finalization rather
+ than Is_Controlled.
+ (Resolve_Call): Type initialization procedures can now utilize
+ transient scopes to manage the secondary stack, thus preventing leaks
+ during initialization. Remove the previous kludgy algorithm which
+ attempts to manage the secondary stack at the object creation site.
-2017-11-16 Yannick Moy <moy@adacore.com>
+2018-01-11 Jerome Lambourg <lambourg@adacore.com>
- * sem_elab.adb (Include): Fix mode of parameter Curr to out.
+ * libgnat/g-soliop__qnx.ads: New.
+ * adaint.c, adaint.h, cstreams.c, s-oscons-tmplt.c, sysdep.c: Update
+ for QNX.
-2017-11-16 Piotr Trojanek <trojanek@adacore.com>
+2018-01-11 Bob Duff <duff@adacore.com>
- * sem_util.ads, sem_util.adb (Is_CCT_Instance): Allow calls where
- Context_Id denotes a record type.
+ * par-ch9.adb (P_Protected_Operation_Declaration_Opt): Give an error if
+ a null procedure occurs in a protected definition.
-2017-11-16 Hristian Kirtchev <kirtchev@adacore.com>
+2018-01-11 Bob Duff <duff@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.
+ * binderr.ads, namet.ads: Minor reformatting.
-2017-11-09 Hristian Kirtchev <kirtchev@adacore.com>
+2018-01-11 Bob Duff <duff@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.
+ * doc/gnat_ugn/gnat_utility_programs.rst: Improve documentation of
+ xml2gnat.
-2017-11-09 Bob Duff <duff@adacore.com>
+2018-01-11 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").
+ * binde.adb (Force_Elab_Order): Give an error if there are duplicate
+ unit names.
-2017-11-09 Ed Schonberg <schonberg@adacore.com>
+2018-01-11 Ed Schonberg <schonberg@adacore.com>
- * sem_ch12.adb (Analyze_Subprogram_Instantiation): Correct use of
- uninitialized variable uncovered by Codepeer.
+ * sem_ch6.adb (Freeze_Expr_Types): If an access value is the
+ controlling argument of a dispatching call. freeze the corresponding
+ designated type.
-2017-11-09 Arnaud Charlet <charlet@adacore.com>
+2018-01-11 Ben Brosgol <brosgol@adacore.com>
- * namet.adb: Replace pragma Assume by pragma Assert to fix bootstrap.
+ * doc/Makefile: Add Sphinx option -W to treat warnings as errors.
-2017-11-09 Javier Miranda <miranda@adacore.com>
+2018-01-11 Ben Brosgol <brosgol@adacore.com>
- * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
- (Static_Dispatch_Tables): Minor rewording.
+ * doc/gnat_rm/implementation_defined_aspects.rst: Minor type/wording
+ corrections.
* 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.
+2018-01-11 Ed Schonberg <schonberg@adacore.com>
-2017-11-09 Ed Schonberg <schonberg@adacore.com>
+ * sem_ch12.adb (Check_Fixed_Point_Type): Do not apply check if the
+ formsl type corresponding to the actual fixed point type is private,
+ because in this case there can be no suspicious arithmetic operations
+ in the generic unless they reference a formal subprogram. Clarify
+ warning.
- * 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.
+2018-01-11 Javier Miranda <miranda@adacore.com>
-2017-11-09 Javier Miranda <miranda@adacore.com>
+ * exp_util.adb (Remove_Side_Effects): No action done for functions
+ returning class-wide types since it requires generating code using
+ 'reference and the CCG target has no secondary stack.
+ * gnat1drv.adb: Disable building static dispatch tables when generating
+ C code.
- * 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.
+2018-01-11 Piotr Trojanek <trojanek@adacore.com>
-2017-11-09 Bob Duff <duff@adacore.com>
+ * libgnat/a-direio.ads, libgnat/a-sequio.ads, libgnat/a-ststio.ads,
+ libgnat/a-textio.ads, libgnat/a-witeio.ads, libgnat/a-ztexio.ads
+ (File_Type): Add Default_Initial_Condition aspect.
- * 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.
+2018-01-11 Pascal Obry <obry@adacore.com>
-2017-11-09 Yannick Moy <moy@adacore.com>
+ * libgnat/s-os_lib.adb (Normalize_Pathname): New implementation.
- * exp_disp.adb (Make_DT): Default initialize Ifaces_List and
- Ifaces_Comp_List.
+2018-01-11 Bob Duff <duff@adacore.com>
-2017-11-09 Pascal Obry <obry@adacore.com>
+ * doc/gnat_ugn/gnat_utility_programs.rst: Rewrite gnatpp documentation
+ to match what the Libadalang-based version does.
+ * doc/gnat_ugn/about_this_guide.rst: Update reference.
- * 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).
+2018-01-11 Hristian Kirtchev <kirtchev@adacore.com>
-2017-11-09 Yannick Moy <moy@adacore.com>
+ * sem_res.adb (Uses_SS): A controlled type requires the secondary stack
+ if it contains at least one component declaration employing a function
+ call returning on the secondary stack.
- * 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.
+2018-01-11 Yannick Moy <moy@adacore.com>
-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.
+ Update description of restriction SPARK_05 with SPARK 2014.
* 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>
+2018-01-11 Vasiliy Fofanov <fofanov@adacore.com>
+
+ * doc/gnat_ugn/gnat_utility_programs.rst: Fix layout.
+
+2018-01-11 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * exp_aggr.adb, exp_ch9.adb, exp_util.adb, sem_aggr.adb, sem_ch3.adb,
+ sem_res.adb, sem_util.adb: Minor reformatting.
+
+2018-01-11 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_prag.adb (Analyze_Pragma, case Predicate): Indicate that the type
+ has a delayed aspect which must be processed at the point the type is
+ frozen. This mimics what is done when the predicate is provided by a
+ source aspect.
+
+2018-01-11 Doug Rupp <rupp@adacore.com>
+
+ * init.c (vxworks): Add macro checks for __aarch64__.
+
+2018-01-11 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * exp_util.adb (Add_Failure_Expression): New routine.
+ (Make_Predicate_Check): Reimplement the handling of Predicate_Failure.
+ * sem_util.adb (Is_Current_Instance): Code cleanup.
+
+2018-01-11 Patrick Bernardi <bernardi@adacore.com>
+
+ * libgnat/s-parame*.adb, libgnat/s-parame*.ads: Remove unneeded
+ Default_Sec_Stack_Size.
+ * libgnat/s-secsta.adb (SS_Allocate): Handle the fixed secondary stack
+ limit check so that the integer index does not overflow. Check the
+ dynamic stack allocation does not cause the secondary stack pointer to
+ overflow.
+ (SS_Info): Align colons.
+ (SS_Init): Cover the case when bootstraping with an old compiler that
+ does not set Default_SS_Size.
+
+2018-01-11 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch3.adb (Add_Internal_Interface_Entities): When checking the
+ legality of an inherited operation that may require overriding, ignore
+ primitive_wrappers that correspond to explicit operations that override
+ an interface primitive.
+ * exp_util.adb (Build_Class_Wide_Expression, Replace_Entity): If the
+ operation to which the class-wide expression applies is a protected op.
+ with a primitive_wrapper, verify that the updated inherited expression
+ does not contain an internal call to a protected function. This
+ completes the implementation of AI12-0166.
+
+2018-01-11 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * ali.adb: Document the remaining letters available for ALI lines.
+ (Scan_ALI): A with clause is internal when it is encoded on a 'Z' line.
+ * ali.ads: Update type With_Record. Field
+ Implicit_With_From_Instantiation is no longer in use. Add field
+ Implicit_With.
+ * csinfo.adb (CSinfo): Remove the setup for attribute
+ Implicit_With_From_Instantiation.
+ * lib-writ.adb (Collect_Withs): Correct the logic which marks a unit as
+ either implicitly or explicitly withed.
+ (Is_Implicit_With_Clause): New routine.
+ (Write_ALI): Rename array Implicit_With to Has_Implicit_With to avoid
+ confusion with the with clause attribute by the same name.
+ (Write_With_Lines): Update the emission of 'W', 'Y', and 'Z' headers.
+ * rtsfind.adb (Maybe_Add_With): Code cleanup.
+ * sem_ch8.adb (Present_System_Aux): Code cleanup.
+ * sem_ch10.adb (Expand_With_Clause): Mark the with clause as generated
+ for a parent unit.
+ (Implicit_With_On_Parent): Mark the with clause as generated for a
+ parent unit.
+ * sem_ch12.adb (Inherit_Context): With clauses inherited by an
+ instantiation are no longer marked as Implicit_With_From_Instantiation
+ because they are already marked as implicit.
+ * sem_elab.adb (Ensure_Prior_Elaboration_Static): Remove the kludge
+ which marks implicit with clauses as related to an instantiation.
+ * sinfo.adb (Implicit_With_From_Instantiation): Removed.
+ (Parent_With): New routine.
+ (Set_Implicit_With_From_Instantiation): Removed.
+ (Set_Parent_With): New routine.
+ * sinfo.ads: Update the documentation of attribute Implicit_With.
+ Remove attribute Implicit_With_From_Instantiation along with
+ occurrences in nodes. Add attribute Parent_With along with occurrences
+ in nodes.
+ (Implicit_With_From_Instantiation): Removed along with pragma Inline.
+ (Parent_With): New routine along with pragma Inline.
+ (Set_Implicit_With_From_Instantiation): Removed along with pragma Inline.
+ (Set_Parent_With): New routine along with pragma Inline.
+
+2018-01-11 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * sem_util.adb (Find_Enclosing_Scope): Return the unique defining
+ entity when the enclosing construct is a body.
+
+2018-01-11 Patrick Bernardi <bernardi@adacore.com>
+
+ * exp_ch9.adb (Expand_N_Task_Type_Declaration): Simplified
+ Secondary_Stack_Size handling as a pragma is now generated for the
+ corresponding aspect instead of an attribute. Pragma expression is
+ relocated instead of evaluated. Discriminant of the corresponding
+ record type is referenced rather than the type discriminant.
+ (Create_Secondary_Stack_For_Task, Make_Task_Create_Call): Update
+ Secondary_Stack_Size rep item checks to only look for the pragma rep.
+ * sem_ch13.adb (Analyze_One_Aspect): Transform
+ Aspect_Secondary_Stack_Size into a pragma instead of an attribute
+ because the attribute does not have visibility on a task type's
+ discriminants when the type's definition is expanded.
+ (Analyze_Attribute_Definition_Clause): Remove handling of
+ Attribute_Secondary_Stack_Size.
+ * snames.adb-tmpl, snames.ads-tmpl: Remove
+ Attribute_Secondary_Stack_Size, no longer used.
+
+2018-01-11 Justin Squirek <squirek@adacore.com>
- * exp_util.adb: (Process_Statements_For_Controlled_Objects): Clarify
- which node kinds can legitimately be ignored, and raise Program_Error
- for others.
+ * sem_ch8.adb: Minor comment fix.
-2017-10-19 Hristian Kirtchev <kirtchev@adacore.com>
+2018-01-11 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.
+ * exp_ch4.adb (Process_Action): Do not abandon the inspection of an
+ individual action because the action may denote a complex expression,
+ such as a case statement, which in turn may contain additional
+ transient objects.
-2017-10-19 Bob Duff <duff@adacore.com>
+2018-01-11 Ed Schonberg <schonberg@adacore.com>
- * exp_ch6.adb (Is_Build_In_Place_Result_Type): Enable build-in-place
- for a narrow set of controlled types.
+ * sem_aggr.adb (Resolve_Iterated_Component_Association): Perform
+ analysis on a copy of the expression with a copy of the index variable,
+ because full expansion will rewrite construct into a loop with the
+ original loop variable.
+ * exp_aggr.adb (Gen_Assign): Defer analysis and resolution if the
+ expression is an iterated component association. Full analysis takes
+ place when construct is rewritten as a loop.
+ (In_Place_Assign_OK, Safe_Component): An iterated_component_association
+ is not safe for in-place assignment.
+ * sem_util.adb (Remove_Entity): Handle properly the case of an isolated
+ entity with no homonym and no other entity in the scope.
-2017-10-19 Eric Botcazou <ebotcazou@adacore.com>
+2018-01-11 Justin Squirek <squirek@adacore.com>
- * sinput.ads (Line_Start): Add pragma Inline.
- * widechar.ads (Is_Start_Of_Wide_Char): Likewise.
+ * sem_prag.adb (Analyze_Pragma:Pragma_Loop_Variant): Modify error
+ message to be printed on the pragma argument identifier.
-2017-10-19 Bob Duff <duff@adacore.com>
+2018-01-11 Hristian Kirtchev <kirtchev@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.
+ * exp_util.adb (Build_Invariant_Procedure_Declaration): Set the last
+ entity of the generated invariant procedure in order to construct a
+ proper entity chain.
-2017-10-18 Eric Botcazou <ebotcazou@adacore.com>
+2018-01-11 Piotr Trojanek <trojanek@adacore.com>
- * gcc-interface/misc.c (gnat_tree_size): Move around.
+ * sem_ch13.adb (Build_Predicate_Functions): Fix minor issues in
+ comment.
- * gcc-interface/utils.c (max_size): Deal with SSA names.
+2018-01-11 Arnaud Charlet <charlet@adacore.com>
-2017-10-17 Jakub Jelinek <jakub@redhat.com>
+ * einfo.ads, einfo.adb (Activation_Record_Component,
+ Set_Activation_Record_Component, Set_Is_Uplevel_Referenced_Entity):
+ Allow E_Discriminant.
- * gcc-interface/misc.c (gnat_tree_size): New function.
- (LANG_HOOKS_TREE_SIZE): Redefine.
+2018-01-10 Eric Botcazou <ebotcazou@adacore.com>
-2017-10-14 Hristian Kirtchev <kirtchev@adacore.com>
+ * gcc-interface/decl.c (gnat_to_gnu_component_type): Apply the check
+ for atomic access once the component size is taken into account and
+ also do it if the component type is Atomic or Volatile_Full_Access.
- * 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.
+2018-01-04 Eric Botcazou <ebotcazou@adacore.com>
-2017-10-14 Eric Botcazou <ebotcazou@adacore.com>
+ * gnatvsn.ads: Bump copyright year.
- * 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.
+2018-01-03 Richard Sandiford <richard.sandiford@linaro.org>
+ Alan Hayward <alan.hayward@arm.com>
+ David Sherwood <david.sherwood@arm.com>
-2017-10-14 Ed Schonberg <schonberg@adacore.com>
+ * gcc-interface/misc.c (enumerate_modes): Treat GET_MODE_BITSIZE
+ as polynomial.
- * 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.
+2018-01-03 Richard Sandiford <richard.sandiford@linaro.org>
+ Alan Hayward <alan.hayward@arm.com>
+ David Sherwood <david.sherwood@arm.com>
-2017-10-14 Hristian Kirtchev <kirtchev@adacore.com>
+ * gcc-interface/misc.c (enumerate_modes): Treat GET_MODE_PRECISION
+ as polynomial.
- * 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.
+2018-01-03 Richard Sandiford <richard.sandiford@linaro.org>
+ Alan Hayward <alan.hayward@arm.com>
+ David Sherwood <david.sherwood@arm.com>
-2017-10-14 Gary Dismukes <dismukes@adacore.com>
+ * gcc-interface/utils.c (gnat_types_compatible_p): Handle
+ polynomial TYPE_VECTOR_SUBPARTS.
- * exp_util.adb, freeze.adb, sem_aggr.adb, sem_util.ads, sem_util.adb,
- sem_warn.adb: Minor reformattings.
+2018-01-03 Richard Sandiford <richard.sandiford@linaro.org>
+ Alan Hayward <alan.hayward@arm.com>
+ David Sherwood <david.sherwood@arm.com>
-2017-10-14 Ed Schonberg <schonberg@adacore.com>
+ * gcc-interface/misc.c (enumerate_modes): Handle polynomial
+ GET_MODE_NUNITS.
- * 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.
+2018-01-03 Jakub Jelinek <jakub@redhat.com>
-2017-01-01 Jakub Jelinek <jakub@redhat.com>
+ Update copyright years.
- * gnat_ugn.texi: Bump @copying's copyright year.
- * gnat_rm.texi: Likewise.
+ * gnat_ugn.texi: Bump @copying's copyright year.
+ * gnat_rm.texi: Likewise.
\f
-Copyright (C) 2017 Free Software Foundation, Inc.
+Copyright (C) 2018 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright