| 2019-12-22 Maciej W. Rozycki <macro@wdc.com> |
| |
| * gcc-interface/Makefile.in (toolexeclibdir): New variable. |
| |
| 2019-12-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (Pragma_to_gnu) <Pragma_Warnings>: Push a |
| diagnostics state for pragma Warnings (Off) before turning off all |
| the warnings and only pop it for pragma Warnings (On). |
| |
| 2019-12-18 Justin Squirek <squirek@adacore.com> |
| |
| * sem_ch6.adb (Analyze_Function_Return): Modify handling of |
| extended return statements to check accessibility of access |
| discriminants. |
| (Check_Aggregate_Accessibility): Removed. |
| (Check_Return_Obj_Accessibility): Added to centralize checking |
| of return aggregates and subtype indications in the case of an |
| extended return statement. |
| |
| 2019-12-18 Arnaud Charlet <charlet@adacore.com> |
| |
| * libgnat/s-regpat.adb (Parse_Literal, Parse_Piece): Ensure |
| Expr_Flags is always fully initialized. |
| |
| 2019-12-18 Arnaud Charlet <charlet@adacore.com> |
| |
| * libgnat/s-atopar.ads, libgnat/s-atopex.ads (Atomic_Type): Can |
| now be marked Atomic. This requires marking the unit Ada 202x. |
| |
| 2019-12-18 Arnaud Charlet <charlet@adacore.com> |
| |
| * libgnat/a-nbnbin.ads, libgnat/a-nbnbin.adb, |
| libgnat/a-nbnbre.ads, libgnat/a-nbnbre.adb: Replace |
| Optional_Big_* types by a simple check and exception raise in |
| Get_Bignum. |
| (Set_Bignum): Arg should be 'out' and not 'in out'. |
| (Invalid_Big_Integer, No_Big_Real): Removed. |
| (Is_Valid): Now convention Intrinsic. |
| |
| 2019-12-18 Piotr Trojanek <trojanek@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_pragmas.rst, |
| doc/gnat_rm/obsolescent_features.rst, |
| doc/gnat_ugn/gnat_and_program_execution.rst, exp_attr.adb, |
| exp_ch9.adb, init.c, libgnat/s-valrea.adb, par-ch6.adb, |
| sem_attr.adb, sem_ch4.adb, sem_util.ads: Fix trivial typos. |
| * gnat_rm.texi, gnat_ugn.texi: Regenerate. |
| |
| 2019-12-18 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_res.adb (Resolve_Type_Conversion): Add handling for access |
| types with designated operand and target types that are |
| referenced in places that have a limited view of an interface |
| type by retrieving the nonlimited view when it exists. Add ??? |
| comments related to missing limited_with_clause handling for |
| Target (in the non-access case). |
| |
| 2019-12-18 Ed Schonberg <schonberg@adacore.com> |
| |
| * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada_2020 |
| the keyword WITH can indicate the start of aspect specifications |
| and not a private type extension. |
| * sem_ch12.adb (Analyze_Formal_Type): Indicate that it is a |
| first subtype. |
| (Instantiate_Type): New procedure |
| Check_Shared_Variable_Control_Aspects to verify matching rules |
| between formal and actual types. Note that an array type with |
| aspect Atomic_Components is considered compatible with an array |
| type whose component type is Atomic, even though the array types |
| do not carry the same aspect. |
| * sem_ch13.adb (Analyze_One_Aspect): Allow shared variable |
| control aspects to appear on formal types. |
| (Rep_Item_Too_Early): Exclude aspects on formal types. |
| * sem_prag.adb (Mark_Type): Handle properly pragmas that come |
| from aspects on formal types. |
| (Analyze_Pragma, case Atomic_Components): Handle formal types. |
| |
| 2019-12-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * cstand.adb (Create_Standard): Remove duplicate line and |
| adjust. |
| |
| 2019-12-18 Javier Miranda <miranda@adacore.com> |
| |
| * debug.adb: Document -gnatd_K as a reserved switch for the |
| detection of known problem issues of previous releases. |
| |
| 2019-12-18 Ghjuvan Lacambre <lacambre@adacore.com> |
| |
| * par-ch13.adb: Check if declarations allow aspect |
| specifications. |
| |
| 2019-12-18 Piotr Trojanek <trojanek@adacore.com> |
| |
| * einfo.ads (Is_Ghost_Entity): Fix typo in comment. |
| |
| 2019-12-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * layout.adb (Layout_Type): In the case of composite types, do |
| not copy the Esize onto the RM_Size if the latter is not set. |
| * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: |
| Also cap the alignment if an Object_Size clause has been |
| specified. Pass VAR_DECL in the call to validate_size for the |
| Esize of a type. |
| (validate_size): Be prepared to give an error on an Object_Size |
| clause. |
| |
| 2019-12-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * einfo.ads (Handling of Type'Size Value): Add references to the |
| introduction of Object_Size in Ada 2020. |
| * sem_eval.adb (Subtypes_Statically_Match): Likewise. |
| |
| 2019-12-18 Bob Duff <duff@adacore.com> |
| |
| * sem_ch3.adb (Derive_Subprogram): Do not set the |
| Requires_Overriding flag in the above-mentioned case. |
| |
| 2019-12-18 Bob Duff <duff@adacore.com> |
| |
| * sem_ch8.adb (Note_Redundant_Use): It was already checking for |
| a use clause in the visible part of the child. Add an additional |
| check for a use clause in the context clause of the child. |
| |
| 2019-12-16 Bob Duff <duff@adacore.com> |
| |
| * errout.adb (Handle_Serious_Error): Disable the above-mentioned |
| warnings. |
| |
| 2019-12-16 Bob Duff <duff@adacore.com> |
| |
| * errout.adb, errout.ads: Improve comments. |
| |
| 2019-12-16 Bob Duff <duff@adacore.com> |
| |
| * sem_util.ads: Minor comment fix. |
| |
| 2019-12-16 Bob Duff <duff@adacore.com> |
| |
| * errout.ads, errout.adb (Is_Size_Too_Small_Message): Check for |
| "size for" instead of "size for& too small, minimum allowed is |
| ^". |
| |
| 2019-12-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Set only |
| the RM_Size on the subtype built for a Component_Size clause |
| when the component type is a biased integer type. |
| |
| 2019-12-16 Arnaud Charlet <charlet@adacore.com> |
| |
| * socket.c: Shutdown warning. |
| |
| 2019-12-16 Arnaud Charlet <charlet@adacore.com> |
| |
| * libgnarl/s-tataat.ads (Deallocator): Mark as Favor_Top_Level. |
| |
| 2019-12-16 Arnaud Charlet <charlet@adacore.com> |
| |
| * libgnat/s-aotase.adb, libgnat/s-aotase.ads, |
| libgnat/s-atoope.ads, libgnat/s-atopar.adb, |
| libgnat/s-atopar.ads, libgnat/s-atopex.adb, |
| libgnat/s-atopex.ads: New files. |
| * libgnat/s-atopri.ads: Add new intrinsics. |
| * Makefile.rtl: Add new runtime files. |
| * impunit.adb: Add new units to Ada 2020 list. |
| |
| 2019-12-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * freeze.adb (Check_Strict_Alignment): Remove new check on |
| Has_Aliased_Components for array types. |
| |
| 2019-12-16 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch4.adb (Try_Container_Indexing): In the case of a derived |
| container type, use the base type to look for candidate indexing |
| operations, because the object may be a constrained subtype or |
| itype with no explicit declaration. Candidate indexing |
| operations are found in the same scope and list of declarations |
| as the declaration of the base type. |
| |
| 2019-12-16 Ed Schonberg <schonberg@adacore.com> |
| |
| * scng.adb (Scan): In Ada2020, a left-bracket indicates the |
| start of an homogenous aggregate. |
| * par-ch4.adb (P_Reduction_Attribute_Reference): New procedure. |
| (P_Aggregate): Recognize Ada2020 bracket-delimited aggregates. |
| (P_Primary): Ditto. |
| * par-util.adb (Comma_Present): Return false on a right bracket |
| in Ada2020, indicating the end of an aggregate. |
| * snames.ads-tmpl: Introduce Name_Reduce and Attribute Reduce. |
| * sinfo.ads, sinfo.adb (Is_Homogeneous_Aggregate): New flag on |
| aggregates, to designate an Ada2020 array or container aggregate |
| that is bracket-delimited in the source. |
| * sem_attr.adb (Analyze_Attribute): For attribute Reduce, verify |
| that two arguments are present, and verify that the prefix is a |
| stream or an object that is iterable (array or contrainer). |
| (Resolve_Attribute): For attribute Reduce, resolve initial value |
| with the type of the context. Type-checking of element type of |
| prefix is performed after expansion. |
| * exp_attr.adb (Expand_N_Attribute_Reference): For attribute |
| Reduce, expand into a loop: a) If prefix is an aggregate with a |
| single iterated component association, use its iterator |
| specification to construct a loop, b) If prefix is a name, build |
| a loop using an element iterator loop. |
| * scans.ads: Add brackets tokens. |
| |
| 2019-12-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.c (gnat_to_gnu_entity): Adjust calls to |
| validate_size. |
| (gnat_to_gnu_component_type): Likewise. |
| (gnat_to_gnu_field): Likewise and pass string for error messages. |
| (components_need_strict_alignment): Remove test on Is_Aliased and |
| add test for the independence of the component. |
| (validate_size): Add S1 and S2 string parameters and use them to |
| give better error messages for fields. Tweak a couple of messages. |
| * einfo.ads (Has_Independent_Components): Document more cases. |
| (Is_Independent): Likewise. |
| (Strict_Alignment): Document new semantics. |
| * exp_ch9.adb (Install_Private_Data_Declarations): Also set the |
| Is_Independent flag along with Is_Aliased on the renaming |
| entity. |
| * freeze.adb (Size_Known): Remove always-false test and add test |
| for the strict-alignment on the record type. Remove redundant |
| tests and add test for the strict-alignment on the component |
| type. |
| (Check_Strict_Alignment): Set the flag if the type is by-ref and |
| remove now redundant conditions. Set the flag on an array type |
| if it has aliased components. In the record type case, do not |
| set type for C_Pass_By_Copy convention. |
| (Freeze_Array_Type): Move code checking for conflicts between |
| representation aspects and clauses to before specific handling |
| of packed array types. Give a warnind instead of an error for a |
| conflict with pragma Pack. Do not test Has_Pragma_Pack for the |
| specific handling of packed array types. |
| (Freeze_Record_Type): Move error checking of representation |
| clause to... |
| (Freeze_Entity): ...here after Check_Strict_Alignment is called. |
| * sem_aggr.adb (Array_Aggr_Subtype): Also set the Is_Independent |
| flag along with Is_Aliased on the Itype. |
| * sem_ch13.adb (Check_Record_Representation_Clause): Do not set |
| the RM size for a strict-alignment type. |
| * sem_ch3.adb (Add_Interface_Tag_Components): Also set the |
| Is_Independent flag along with Is_Aliased on the tag. |
| (Add_Interface_Tag_Components): Likewise on the offset. |
| (Analyze_Component_Declaration): Likewise on the component. |
| (Analyze_Object_Declaration): Likewise on the object. |
| (Constrain_Array): Likewise on the array. |
| (Record_Type_Declaration: Likewise on the tag. |
| (Array_Type_Declaration): Also set the |
| Has_Independent_Components flag along with |
| Has_Aliased_Components on the array. |
| (Copy_Array_Base_Type_Attributes): Copy |
| Has_Independent_Components. |
| (Copy_Array_Subtype_Attributes): Copy Is_Atomic, Is_Independent |
| and Is_Volatile_Full_Access. |
| (Analyze_Iterator_Specification): Set Is_Independent on the loop |
| variable according to Independent_Components on the array. |
| * sem_ch5.adb: Likewise. |
| * sem_ch6.adb (Process_Formals): Also set the Is_Independent |
| flag along with Is_Aliased on the formal. |
| |
| 2019-12-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch8.adb (Analyze_Object_Renaming): Set Atomic, Independent |
| and Volatile_Full_Access aspects on the entity of the renaming |
| the same way as the Volatile aspect is set. |
| * sem_util.ads (Is_Atomic_Object_Entity): Move declaration to... |
| (Is_Independent_Object): New function. |
| (Is_Volatile_Full_Access_Object): Likewise. |
| * sem_util.adb (Is_Atomic_Object_Entity): ...here. |
| (Prefix_Has_Atomic_Components): Minor tweak. |
| (Is_Atomic_Object): Test Is_Atomic on the Etype uniformly. |
| (Is_Atomic_Or_VFA_Object): Call Is_Volatile_Full_Access_Object. |
| (Is_Independent_Object): New predicate. |
| (Is_Subcomponent_Of_Atomic_Object): Remove redundant test. |
| (Is_Volatile_Full_Access_Object): New predicate. |
| (Is_Volatile_Prefix): Rename into... |
| (Prefix_Has_Volatile_Components): ... and call |
| Is_Volatile_Object. |
| (Object_Has_Volatile_Components): Delete. |
| (Is_Volatile_Object): Simplify. |
| * gcc-interface/trans.c (node_is_volatile_full_access): Adjust |
| comment. |
| |
| 2019-12-16 Bob Duff <duff@adacore.com> |
| |
| * par.adb: Add Scopes function to do range checking on the scope |
| stack. Call Scopes all over the parser. Add |
| SIS_Aspect_Import_Seen flag. |
| * par-ch6.adb (P_Subprogram): Initialize SIS_Aspect_Import_Seen |
| to False at the start, and check it at the end. |
| * par-ch13.adb (Get_Aspect_Specifications): Set |
| SIS_Aspect_Import_Seen to True when appropriate. |
| * par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb, |
| par-ch5.adb, par-ch7.adb, par-ch9.adb, par-endh.adb, |
| par-util.adb: Call Scopes. |
| |
| 2019-12-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_prag.adb (Atomic_Components): Remove local variable and |
| fix consistency issues. Call Component_Type on the Etype of E. |
| (Independent_Components): Remove local variable. |
| * sem_util.adb (Is_Subcomponent_Of_Atomic_Object): Properly deal |
| with prefixes that are access values. |
| * gcc-interface/trans.c (atomic_acces_t): New enumeral type. |
| (node_is_atomic) <N_Indexed_Component>: Test the prefix. |
| (node_has_volatile_full_access): Rename into... |
| (node_is_volatile_full_access): ...this. |
| (node_is_component): New predicare. |
| (gnat_strip_type_conversion): Delete. |
| (outer_atomic_access_required_p): Likewise. |
| (atomic_access_required_p): Rename into... |
| (get_atomic_access): ...this. Implement the 3 different semantics |
| of Atomic and Volatile_Full_Access. |
| (simple_atomic_access_required_p): New predicate. |
| (Call_to_gnu): Remove outer_atomic_access parameter and change the |
| type of atomic_access parameter to atomic_acces_t. Replace call to |
| atomic_access_required_p with simple_atomic_access_required_p for |
| the in direction and call get_atomic_access for the out direction |
| instead of [outer_]atomic_access_required_p. |
| (lhs_or_actual_p): Constify local variables. |
| (present_in_lhs_or_actual_p): Likewise. |
| (gnat_to_gnu) <N_Identifier>: Replace call to atomic_access_required_p |
| with simple_atomic_access_required_p. |
| <N_Explicit_Dereference>: Likewise. |
| <N_Indexed_Component>: Likewise. |
| <N_Selected_Component>: Likewise. |
| <N_Assignment_Statement>: Call get_atomic_access for the name instead |
| of [outer_]atomic_access_required_p. Adjust call to Call_to_gnu. |
| <N_Function_Call>: Adjust call to Call_to_gnu. |
| (get_controlling_type): Fix typo in comment. |
| |
| 2019-12-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * fe.h (Ada_Version_Type): New typedef. |
| (Ada_Version): Declare. |
| * opt.ads (Ada_Version_Type): Add Convention C and WARNING line. |
| (Ada_Version): Add WARNING line. |
| (Exception_Mechanism_Type): Likewise. |
| |
| 2019-12-16 Gary Dismukes <dismukes@adacore.com> |
| |
| * checks.adb, sem_util.adb: Minor reformatting and U.S. spelling |
| adjustment. |
| |
| 2019-12-16 Bob Duff <duff@adacore.com> |
| |
| * sem_ch10.adb (Analyze_Subunit): Give an error if the subunit |
| is not a proper body. This hides the confusing "duplicate body" |
| message that was previously given. |
| |
| 2019-12-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Document |
| third special case of renamings requiring special handling. |
| (Evaluation_Required): Return true for an atomic or VFA prefix. |
| |
| 2019-12-16 Ed Schonberg <schonberg@adacore.com> |
| |
| * checks.adb (Apply_Float_Conversion_Check): Use node of type |
| conversion and not its parent, when inserting the declaration |
| for the temporary that hold the result of the conversion. |
| Previously the declaration was inserted above the parent of the |
| conversion, apparently as a small optimization for the |
| subsequent traversal in Insert_Actions. Unfortunately a similar |
| optimization takes place in Insert_Actions, assuming that the |
| insertion point must be above the expression that creates the |
| actions to insert. This is not correct in the presence of |
| conditional expressions (i.e. since Ada2012), where the |
| insertion must be in the list of actions attached to the current |
| alternative. |
| |
| 2019-12-16 Bob Duff <duff@adacore.com> |
| |
| * sem_attr.adb (Analyze_Attribute): Use Known_RM_Size. But we |
| still need Size_Known_At_Compile_Time, because when the size |
| really is known, sometimes only one or the other of these is |
| True. |
| |
| 2019-12-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_util.adb (Is_Atomic_Or_VFA_Object): Also return true for |
| components whose type is Volatile_Full_Access or which are |
| subject to the aspect/pragma individually. |
| * sem_util.ads (Is_Atomic_Object_Entity): Small comment fix. |
| |
| 2019-12-16 Yannick Moy <moy@adacore.com> |
| |
| * exp_ch6.adb: Fix comment. |
| * sem_res.adb (Resolve_Call): Do not check No_Recursion |
| restriction or indirectly No_Secondary_Stack restriction, when |
| inside an ignored ghost subprogram. |
| |
| 2019-12-16 Arnaud Charlet <charlet@adacore.com> |
| |
| * impunit.adb: Add a-nbnbin, a-nbnbre, a-nubinu to Ada 2020 |
| units. |
| * Makefile.rtl: Enable new file. |
| * libgnat/a-nbnbin.adb, libgnat/a-nbnbin.ads, |
| libgnat/a-nbnbre.adb, libgnat/a-nbnbre.ads, |
| libgnat/a-nubinu.ads: New files. Provide default standalone |
| implementation of Ada.Numerics.Big_Numbers.Big_* based on |
| System.Generic_Bignum. |
| * libgnat/a-nbnbin__gmp.adb: Alternate implementation of |
| Ada.Numerics.Big_Numbers.Big_Integers based on GMP. Not enabled |
| for now. |
| * libgnat/s-bignum.ads, libgnat/s-bignum.adb: Now a simple |
| wrapper on top of s-genbig.ads. |
| * libgnat/s-genbig.ads, libgnat/s-genbig.adb: New files, making |
| s-bignum generic for reuse in Ada.Numerics.Big_Numbers. |
| |
| 2019-12-16 Bob Duff <duff@adacore.com> |
| |
| * doc/gnat_ugn/building_executable_programs_with_gnat.rst: |
| Correct documentation of -gnatw_C switch |
| * gnat_ugn.texi: Regenerate. |
| |
| 2019-12-16 Joel Brobecker <brobecker@adacore.com> |
| |
| * doc/gnat_ugn/building_executable_programs_with_gnat.rst |
| (_Switches_for_gnatbind): Reword the section explaining the |
| impact of -minimal on debugging. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2019-12-16 Gary Dismukes <dismukes@adacore.com> |
| |
| * libgnat/g-exptty.adb, libgnat/g-exptty.ads: Typo fixes and |
| minor reformatting. |
| |
| 2019-12-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch6.adb (Requires_Atomic_Or_Volatile_Copy): New predicate. |
| (Expand_Actuals): Use it to decide whether to add call by copy |
| code as per the RM C.6(19) clause. |
| * fe.h (Is_Atomic_Object): Remove. |
| (Is_Volatile_Object): Likewise. |
| * sem_util.ads (Is_Atomic_Object): Remove WARNING note. |
| (Is_Volatile_Object): Likewise. |
| * gcc-interface/trans.c (atomic_or_volatile_copy_required_p): Delete. |
| (Call_to_gnu): Do not implement the RM C.6(19) clause. |
| |
| 2019-12-16 Ghjuvan Lacambre <lacambre@adacore.com> |
| |
| * sem_ch12.adb (Validate_Access_Subprogram_Instance): Add |
| Can_Never_Be_Null checks. |
| |
| 2019-12-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_pragmas.rst (VFA): Document |
| extension of the no-aliasing rule to any subcomponent. |
| * freeze.adb (Freeze_Object_Declaration): Small comment tweak. |
| (Freeze_Record_Type): Do not deal with delayed aspect |
| specifications for components here but... |
| (Freeze_Entity): ...here instead. |
| * sem_ch12.adb (Instantiate_Object): Improve wording of errors |
| given for legality rules in C.6(12) and implement the new rule |
| in C.6(13). |
| * sem_res.adb (Resolve_Actuals): Likewise. |
| * sem_prag.adb (Check_Atomic_VFA): New procedure implementing |
| the new legality rules in C.6(13). |
| (Process_Atomic_Independent_Shared_Volatile): Call |
| Check_Atomic_VFA to check the legality rules. Factor out code |
| marking types into... |
| (Mark_Type): ...this new procedure. |
| (Check_VFA_Conflicts): Do not check the legality rules here. |
| (Pragma_Atomic_Components): Call Check_Atomic_VFA on component |
| type. |
| * sem_util.ads (Is_Subcomponent_Of_Atomic_Object): Declare. |
| * sem_util.adb (Is_Subcomponent_Of_Atomic_Object): New |
| predicate. |
| * gnat_rm.texi: Regenerate. |
| |
| 2019-12-13 Gary Dismukes <dismukes@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_pragmas.rst: Minor |
| rewording of one sentence. |
| * gnat_rm.texi: Regenerate. |
| |
| 2019-12-13 Arnaud Charlet <charlet@adacore.com> |
| |
| * exp_unst.adb (Unnest_Subprogram): Account for trees produced |
| by Annex E constructs. |
| |
| 2019-12-13 Ghjuvan Lacambre <lacambre@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_pragmas.rst: Update |
| Initialize_Scalars documentation. |
| * gnat_rm.texi: Regenerate. |
| |
| 2019-12-13 Javier Miranda <miranda@adacore.com> |
| |
| * sem_ch13.adb (Analyze_Aspect_Specification): Processing a |
| precondition, if the expression is of the form A and then B, do |
| not generate separate Pre/Post aspects for the separate clases |
| when we are processing a generic unit. Required to avoid |
| reporting spurious visibility errors on the instantiations. |
| |
| 2019-12-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_res.adb (Resolve_Actuals): Give canonical error for |
| illegal case of atomic/volatile parameter also if the formal is |
| aliased. |
| |
| 2019-12-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_util.ads (Is_Atomic_Object): Mention relevant RM clauses. |
| * sem_util.adb (Is_Atomic_Object): For an indexed component, |
| only look at the Has_Atomic_Components aspect of the prefix and |
| do not recurse on it; for a selected component, do not look at |
| the prefix. |
| (Is_Atomic_Or_VFA_Object): Minor tweak. |
| |
| 2019-12-13 Arnaud Charlet <charlet@adacore.com> |
| |
| * libgnat/a-calfor.ads, libgnat/a-calfor.adb (Split_Duration): |
| New procedure. |
| (Split, Image): Use Split_Duration. Update Image spec. |
| |
| 2019-12-13 Javier Miranda <miranda@adacore.com> |
| |
| * exp_unst.adb (Unnest_Subprogram): Generate an extra temporary |
| to facilitate the C backend processing dereferences. |
| |
| 2019-12-13 Javier Miranda <miranda@adacore.com> |
| |
| * sem_prag.adb (Analyze_Pragma): Propagate the |
| Linker_Section_Attribute to the ultimate alias of the subprogram |
| to facilitate the C backend processing this attribute. |
| |
| 2019-12-13 Yannick Moy <moy@adacore.com> |
| |
| * sem_util.adb (Original_Aspect_Pragma_Name): Go through |
| Original_Node for pragma. |
| |
| 2019-12-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_aggr.adb, exp_unst.adb: Minor fix typo in comment. |
| |
| 2019-12-13 Steve Baird <baird@adacore.com> |
| |
| * sem_res.adb (Resolve, Valid_Conversion): Add Base_Type call |
| when testing whether a type is a general access type. |
| |
| 2019-12-13 Javier Miranda <miranda@adacore.com> |
| |
| * exp_ch4.adb (Expand_N_Unchecked_Type_Conversion): Generate an |
| extra temporary for cases unsupported by the C backend. |
| |
| 2019-12-13 Steve Baird <baird@adacore.com> |
| |
| * einfo.ads: Correct comment for Derived_Type_Link to reflect |
| that fact that this function is now used for more than just |
| generation of warnings. |
| * sem_ch3.adb (Build_Derived_Type): Do not call |
| Set_Derived_Type_Link if the derived type and the parent type |
| are in different compilation units. Such a derivation cannot be |
| a problematic "early" derivation (identifying these is what the |
| Derived_Type_Link attribute is used for) and we don't like |
| inter-unit references that go in the opposite direction of |
| semantic dependencies. |
| * sem_ch13.adb (Is_Type_Related_Rep_Item): A new function, |
| analogous to the existing function Is_Operational_Item. |
| (Rep_Item_Too_Late): Generate a hard error (with same text as |
| the warning that was previously being generated) if the |
| AI12-0109 legality rule is violated. |
| |
| 2019-12-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_pragmas.rst: Minor tweak to |
| Volatile_Full_Access wording in GNAT RM. |
| * gnat_rm.texi: Regenerate. |
| |
| 2019-12-13 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_attr.adb (Expand_N_Attribute_Reference, |
| Attribute_Address): Suppress generation of a call to |
| Base_Address in the case where the Address attribute is being |
| used to initialize a corresponding component of an activation |
| record. |
| (Is_Unnested_Component_Init): New function to determine whether |
| an attribute reference for Address is used to initialized a |
| component of an activation record object that corresponds to the |
| object denoted by the prefix of the attribute (an assignment |
| used in support of unnesting for back ends like LLVM). |
| |
| 2019-12-13 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_res.adb (Resolve): IF an entity reference is overloaded |
| because its type has an Implicit_Dereference aspect, we must |
| examine the discriminants of the type to determine whether an |
| explicit dereference must be inserted for use in code |
| generation. Previously this was done for other expressions but |
| not for entity references by themselves. This was sufficient to |
| handle uses of the aspect in container handling and iteration, |
| but not more generally. |
| |
| 2019-12-13 Javier Miranda <miranda@adacore.com> |
| |
| * exp_disp.ads (Expand_Interface_Thunk): Adding one formal (the |
| interface type). |
| * exp_disp.adb (Expand_Interface_Thunk): Using the added formal |
| to ensure the correct profile of the thunk generated for |
| predefined primitives; in addition, the added formal is also |
| used to perform a check that ensures that the controlling type |
| of the thunk is the one expected by the GCC backend. |
| (Make_Secondary_DT, Register_Primitive): Adding the new formal |
| to the calls to Expand_Interface_Thunk. |
| * exp_ch6.adb (Register_Predefined_DT_Entry): Adding the new |
| formal to the call to Expand_Interface_Thunk. |
| * exp_intr.adb (Expand_Unc_Deallocation): When deallocating a |
| controlled type and the call to unchecked deallocation is |
| performed with a pointer to one of the convered interface types, |
| displace the pointer to the object to reference the base of the |
| object to deallocate its memory. |
| * gcc-interface/trans.c (maybe_make_gnu_thunk): Assert that the |
| controlling type of the thunk is an interface type. |
| |
| 2019-12-13 Bob Duff <duff@adacore.com> |
| |
| * exp_attr.adb (Is_Available): Remove this function, and replace |
| all calls with RTE_Available. RTE_Available will return True if |
| "not Configurable_Run_Time_Mode". Remove the "???" comment. |
| |
| 2019-12-13 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch7.adb (Analyze_Package_Body_Helper): Do not call |
| Declare_Inherited_Private_Subprograms on s child body: the |
| required operations have already been created when analyzing the |
| corresponding package declaration. This prevents a redeclaration |
| of inehrited operation, and a crash when inserting the new |
| operation in the current scope. |
| |
| 2019-12-13 Yannick Moy <moy@adacore.com> |
| |
| * sem_prag.adb (Analyze_Depends_In_Decl_Part, |
| Analyze_Global_In_Decl_Part, |
| Analyze_Refined_Depends_In_Decl_Part, |
| Analyze_Refined_Global_In_Decl_Part, Check_Missing_Part_Of): |
| Skip redundant checking involving visibility inside |
| instantiations. |
| |
| 2019-12-13 Yannick Moy <moy@adacore.com> |
| |
| * sem_res.adb (Resolve_Call): Prevent inlining inside while loop |
| conditions. |
| * sem_util.adb, sem_util.ads (In_While_Loop_Condition): New |
| query function. |
| |
| 2019-12-13 Bob Duff <duff@adacore.com> |
| |
| * impunit.ads: Add Ada_202X_Unit. |
| * impunit.adb: Add a table Non_Imp_File_Names_2X analogous to |
| the other tables. Add code to search this table. |
| * opt.ads: Add Warn_On_Ada_202X_Compatibility flag, currently |
| always True. |
| * sem_ch10.adb (Analyze_With_Clause): Give a warning if an Ada |
| 2020 unit is with-ed when Ada_Version < Ada_2020. Change 'if' |
| to 'case': Full coverage rules rule. |
| |
| 2019-12-13 Bob Duff <duff@adacore.com> |
| |
| * rtsfind.ads: Minor comment fix. |
| |
| 2019-12-13 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_util.adb (Scope_Within): For the case of checking for a |
| task type procedure, check the Implementation_Base_Type of Curr. |
| (Scope_Within_Or_Same): For the case of checking for a task type |
| procedure, check the Implementation_Base_Type of Curr. |
| |
| 2019-12-13 Arnaud Charlet <charlet@adacore.com> |
| |
| * impunit.adb (Non_Imp_File_Names_12): Add |
| Ada.Containers.Vectors.Generic_Parallel_Sorting. |
| |
| 2019-12-13 Justin Squirek <squirek@adacore.com> |
| |
| * sem_res.adb (Resolve_Allocator): Add calls to |
| Check_Cond_Expr_Accessibility when a conditional expression is |
| found. |
| (Check_Allocator_Discrim_Accessibility_Exprs): Created to |
| recursively traverse a potentially compound conditional |
| expression and perform accessibility checks for each |
| alternative. |
| * sem_util.adb (Dynamic_Accessibility_Level): Avoid use of |
| original node of the expression in question so we can handle |
| dynamic accessibility in the limited case of a constant folded |
| conditional expression. |
| |
| 2019-12-13 Steve Baird <baird@adacore.com> |
| |
| * exp_ch4.adb (Expand_N_Op_Eq.Is_Equality): Move this function |
| from within Expand_N_Op_Eq.Find_Equality out to immediately |
| within Expand_N_Op_Eq in order to give it greater visibility. |
| Add a new Typ parameter (defaulted to Empty) which, if |
| non-empty, means the function will return False in the case of |
| an equality op for some other type. |
| * (Expand_N_Op_Eq.User_Defined_Primitive_Equality_Op): A new |
| function. Given an untagged record type, finds the corresponding |
| user-defined primitive equality op (if any). May return Empty. |
| Ignores visibility. |
| * (Expand_N_Op): For Ada2012 or later, check for presence of a |
| user-defined primitive equality op before falling back on the |
| usual predefined component-by-component comparison. If found, |
| then call the user-defined op instead. |
| |
| 2019-12-13 Justin Squirek <squirek@adacore.com> |
| |
| * sem_ch6.adb (Check_Overriding_Indicator): Modify condition to |
| take into account the modification of the Is_Hidden flag within |
| generic instances. |
| (Verify_Overriding_Indicator): Add an exception for controlled |
| primitives within an instance. |
| |
| 2019-12-13 Ed Schonberg <schonberg@adacore.com> |
| |
| * sinfo.ads, sinfo.adb (Aspect_On_Partial_View, |
| Set_Aspect_On_Partial_View): New flag for use by SPARK, to |
| indicate whether an aspect that appears on a type declaration |
| applies to the partial view of that type. |
| * sem_ch13.adb (Analyze_Aspect_Specification): Set new flag |
| appropriately. |
| |
| 2019-12-12 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch13.adb (Same_Reprewentation): if the actual in a call is |
| a generic actual type, use its bsae type to determine whether a |
| change of representastion may be necessary for proper parameter |
| passing. |
| |
| 2019-12-12 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_type.adb (Find_Unique_Type): A call to the universal |
| access equality operator requires one operand to be a universal |
| access, and the other to be an access type. There is no |
| requirement, as previously implied by this routine, that |
| pool-specific access types were illegal in this context. |
| |
| 2019-12-12 Steve Baird <baird@adacore.com> |
| |
| * sem_ch6.adb |
| (New_Overloaded_Entity.Check_Conforming_Paramters): Add new |
| Conformance_Type parameter. With the value of |
| Subtype_Conformant, the behavior of Check_Conforming_Parameters |
| is unchanged. The call in Matching_Entry_Or_Subprogram to |
| instead passes in Type_Conformant. This corresponds to the use |
| of "type conformant" in Ada RM 9.4(11.4/3). |
| (New_Overloaded_Entity.Has_Matching_Entry_Or_Subprogram): Add |
| new Normalized_First_Parameter_Type function to help in ignoring |
| the distinction between protected and access-to-protected first |
| parameters when checking prefixed-view profile matching. Replace |
| computations of the type of the first parameter with calls to |
| this function as appropriate. |
| |
| 2019-12-12 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch5.adb: (Analyze_Iterator_Specification): If the |
| iteration is over a slice, complete the resolution of its |
| bounds, which may be aebitrary expressions. The previous |
| pre-analysis may have created itypes for the slice but has not |
| performed the expansion that for example may introduce actions |
| that specify explicit dereferences and run-time checks. |
| |
| 2019-12-12 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch8.adb: Improve error message for dispatching subprogram |
| formals. |
| |
| 2019-12-12 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_ch9.adb (Build_Protected_Entry): Set the Scope of the new |
| block to be the entity of the procedure created for the entry. |
| |
| 2019-12-12 Steve Baird <baird@adacore.com> |
| |
| * sem_ch10.adb (Install_With_Clause): Check for the case of a |
| circular dependency involving a predefined (or GNAT-defined) |
| unit and handle that case by generating an appropropriate error |
| message. |
| |
| 2019-12-12 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_ch4.adb, sem_res.adb: Minor reformatting. |
| |
| 2019-12-12 Justin Squirek <squirek@adacore.com> |
| |
| * sem_ch4.adb (Analyze_One_Call): Add condition to check for |
| incorrectly resolved hidden controlled primitives. |
| |
| 2019-12-12 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_res.adb: Fix processing of standard predefined operators. |
| |
| 2019-12-12 Piotr Trojanek <trojanek@adacore.com> |
| |
| * libgnarl/a-dispat.ads (Yield): Update Global contract. |
| |
| 2019-12-12 Piotr Trojanek <trojanek@adacore.com> |
| |
| * libgnat/g-altive.ads: Fix typo in comment. |
| * bindo-graphs.adb: Fix repeated words in comment. |
| * exp_ch4.adb: Likewise. |
| * exp_ch5.adb: Likewise. |
| * exp_ch7.adb: Likewise. |
| * exp_pakd.adb: Likewise. |
| * exp_unst.adb: Likewise. |
| * exp_util.adb: Likewise. |
| * freeze.adb: Likewise. |
| * inline.adb: Likewise. |
| * layout.adb: Likewise. |
| * sem_ch12.adb: Likewise. |
| * sem_ch13.adb: Likewise. |
| * sem_ch4.adb: Likewise. |
| * sem_ch9.adb: Likewise. |
| * sem_elab.adb: Likewise. |
| * doc/gnat_ugn/gnat_and_program_execution.rst: Fix repeated |
| words in user documentation. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2019-12-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_attr.adb (Expand_Size_Attribute): Look directly at the |
| prefix to detect the bit-packed slices. Apply the checks last |
| in case the attribute needs to be processed by the back-end. |
| * exp_ch4.adb (Expand_N_Slice): Do not create a temporary for |
| a prefix of the Size attribute. |
| |
| 2019-12-12 Steve Baird <baird@adacore.com> |
| |
| * sem_ch12.adb |
| (Instantiate_Type.Validate_Derived_Type_Instance): Implement the |
| legality check of AI12-0036 |
| |
| 2019-12-12 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch10.adb (Analyze_Subunit): Fix spurious visibility error |
| on subunit with optimization. |
| |
| 2019-12-12 Arnaud Charlet <charlet@adacore.com> |
| |
| * raise-gcc.c (__gnat_personality_v0): Define for SEH. |
| |
| 2019-12-12 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_ch9.adb (Build_Protected_Entry): Analyze the block created |
| to hold the declarations and statements of the protected entry |
| body right after it's created, and then call Reset_Scopes_To on |
| that block to reset the Scope of nested entities to the block |
| scope. |
| (Reset_Scope): Add handling for N_Freeze_Entity nodes, calling |
| Reset_Scopes recursively on the Actions of such nodes. Also, for |
| subprogram bodies that are encountered that might not have a |
| separate declaration (such as type init procedures), reset the |
| Scope of the subprogram's entity. |
| |
| 2019-12-12 Justin Squirek <squirek@adacore.com> |
| |
| * sem_attr.adb (Analyze_Attribute): Add error message for |
| invalid usage of Attribute_Result. |
| |
| 2019-12-12 Bob Duff <duff@adacore.com> |
| |
| * sem_attr.adb (Eval_Attribute): Never mark T'Descriptor_Size as |
| static, even if T is a static subtype, because otherwise we will |
| request the value of the attribute, which will crash because we |
| have not evaluated it. |
| |
| 2019-12-12 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_ch5.adb (Expand_N_Assognment_Statement): Extend the |
| processing involving private types with unknown discriminants to |
| handle the case where the full view of the type is an |
| unconstrained array type. |
| |
| 2019-12-12 Bob Duff <duff@adacore.com> |
| |
| * sem_ch4.adb (Transform_Object_Operation): Deal properly with |
| prefix notation in instances. |
| |
| 2019-12-12 Claire Dross <dross@adacore.com> |
| |
| * libgnat/a-cofove.adb, libgnat/a-cfinve.adb (Find_Index): Use |
| Extended_Index for call to Last. |
| |
| 2019-12-12 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_ch3.adb, sem_util.adb: Minor reformatting. |
| |
| 2019-12-12 Bob Duff <duff@adacore.com> |
| |
| * doc/gnat_ugn/gnat_utility_programs.rst: Update gnatmetric |
| documentation for average lengths |
| |
| 2019-12-12 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch3.adb (Constrain_Access): Remove obsolete comments and |
| warning concerning component types of an access type whose |
| designated type is a constrained record type. (Such constraints |
| were previously ignored). Set scope of itype for component to |
| the scope of the enclosing record. |
| * sem_ch4.adb: Remove call to Set_Ekind. |
| * sem_util.adb (Build_Actual_Subtype_Of_Component): Handle |
| components whose type is an access to a constrained |
| discriminant, where the constraints may be given by the |
| discriminants of the enclosing type. New subprogram |
| Build_Access_Record_Constraint. |
| |
| 2019-12-12 Justin Squirek <squirek@adacore.com> |
| |
| * exp_ch6.adb (Expand_Call_Helper): Added null case for |
| 'Loop_Entry, 'Old, and 'Result when calculating whether to |
| create extra accessibility parameters. |
| * sem_util.adb (Dynamic_Accessibility_Level): Added null case |
| for 'Loop_Entry, 'Old, and 'Result when calculating |
| accessibility level based on access-valued attributes. Also |
| added special handling for uses of 'Loop_Entry when used in its |
| indexed component form. |
| |
| 2019-12-12 Arnaud Charlet <charlet@adacore.com> |
| |
| * raise-gcc.c: Remove references to VMS |
| |
| 2019-12-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * atree.ads, comperr.ads, debug.ads, einfo.ads, elists.ads, |
| err_vars.ads, errout.ads, exp_ch11.ads, exp_code.ads, |
| exp_dbug.ads, exp_tss.ads, exp_util.ads, lib.ads, namet.ads, |
| nlists.ads, opt.ads, repinfo.ads, restrict.ads, scos.ads, |
| sem_aggr.ads, sem_aux.ads, sem_eval.ads, sem_util.ads, |
| sinfo.ads, sinput.ads, stringt.ads, targparm.ads, types.ads, |
| urealp.ads warnsw.ads: Add WARNING line(s) in commentary. |
| * atree.h, elists.h, namet.h, nlists.h, repinfo.h, scos.h, |
| stringt.h, types.h, uintp.h, urealp.h: Tidy up. |
| * fe.h: Likewise. Document WARNING mark. |
| |
| 2019-12-12 Dmitriy Anisimkov <anisimko@adacore.com> |
| |
| * libgnat/g-comlin.ads (Get_Argument): New routine similar to |
| original Get_Argument but with one more out parameter |
| End_Of_Arguments. |
| (Get_Arguments): Comment improved. |
| * libgnat/g-comlin.adb (Get_Argument): Implementation taken from |
| original Get_Argument and improved. |
| (Get_Argument): Calls new routine Get_Argument with additional |
| parameter. |
| |
| 2019-12-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/utils.c (potential_alignment_gap): Delete. |
| (rest_of_record_type_compilation): Do not call above function. Use |
| the alignment of the field instead of that of its type, if need be. |
| When the original field has variable size, always lower the alignment |
| of the pointer type. Reset the bit-field status of the new field if |
| it does not encode a bit-field. |
| |
| 2019-12-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/utils.c (fold_convert_size): New function. |
| (fold_bit_position): Invoke it to do further folding. |
| |
| 2019-12-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.c (gnat_to_gnu_subprog_type): With the Copy-In/ |
| Copy-Out mechanism, do not promote the mode of the return type to an |
| integral mode if it contains a field on a non-integral type and even |
| demote it for 64-bit targets. |
| |
| 2019-11-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/92362 |
| * gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Definition_Clause>: |
| Use a temporary instead of clobbering the result with a freeze node. |
| |
| 2019-11-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/92575 |
| * expect.c (__gnat_expect_poll [VMS, HPUX]): Fix typo. |
| |
| 2019-11-06 Eric Botcazou <ebotcazou@adacore.com> |
| Alexandre Oliva <oliva@adacore.com> |
| |
| * gcc-interface/misc.c (callgraph_info_file): Delete. |
| |
| 2019-10-27 Jakub Jelinek <jakub@redhat.com> |
| |
| * locales.c (iso_3166): Add missing comma after "United-States". |
| |
| 2019-10-15 Arnaud Charlet <charlet@adacore.com> |
| |
| * Makefile.rtl (a-except.o): Put -O1 earlier so that it can be |
| overriden if needed by other variables. |
| |
| 2019-10-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/91995 |
| * sem_ch8.adb (Chain_Use_Clause): Remove second argument in calls |
| to Defining_Entity. |
| * sem_elab.adb (Find_Unit_Entity): Likewise. Deal with N_Subunit |
| here in lieu of in Defining_Entity. |
| * sem_util.ads (Defining_Entity): Remove 2nd and 3th parameters. |
| * sem_util.adb (Defining_Entity): Remove 2nd and 3th parameters, |
| and adjust accordingly. Deal with N_Compilation_Unit. |
| |
| 2019-10-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.c (elaborate_reference_1): Specifically deal with |
| pointer displacement. |
| |
| * gcc-interface/decl.c (components_to_record): Use proper name. |
| |
| * gcc-interface/trans.c (Sloc_to_locus): Use standard types. |
| |
| 2019-10-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.c (gnat_to_gnu_field): Adjust again the packing |
| for a field without strict alignment and with an oversized clause. |
| |
| 2019-10-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.c (annotate_value) <INTEGER_CST>: Really test the |
| sign of the value when deciding to build a NEGATE_EXPR. |
| <PLUS_EXPR>: Remove redundant line. |
| <BIT_AND_EXPR>: Do the negation here. |
| |
| 2019-10-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.c (Gigi_Equivalent_Type) <E_Array_Subtype>: New |
| case. Return the base type if the subtype is not constrained. |
| |
| 2019-10-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Named_{Integer|Real}>: |
| New case to deal with the definition of named numbers. |
| <E_Variable>: Minor tweaks. Set DECL_IGNORED_P on the CONST_DECL |
| if a corresponding variable is built. |
| * gcc-interface/trans.c (gnat_to_gnu) <N_Integer_Literal>: Return |
| error_mark_node instead of aborting on overflow for named numbers. |
| <N_Number_Declaration>: Reuse the <N_Object_Declaration> case and |
| deal with error_mark_node specifically. |
| * gcc-interface/utils.c (create_var_decl): Do not set DECL_IGNORED_P |
| on CONST_DECLs. |
| (gnat_write_global_declarations): Output global constants. |
| |
| 2019-10-10 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_ch7.adb (Check_Unnesting_In_Decls_Or_Stmts): When |
| encountering a loop at the top level of a package declaration |
| list (that is, within the declarations of a package spec or |
| body) that has nested subprograms, call Unnest_Loop to create a |
| new library-level procedure that will contain the loop, to allow |
| for proper handling of up-level references from within nested |
| subprograms, such as to loop parameters. |
| (Unnest_Loop): New procedure that takes a loop statement and |
| creates a new procedure body to enclose the loop statement, |
| along with generating a call to the procedure. |
| |
| 2019-10-10 Arnaud Charlet <charlet@adacore.com> |
| |
| * freeze.adb (Freeze_Subprogram): Ensure constructor is a C++ |
| constructor. |
| |
| 2019-10-10 Gary Dismukes <dismukes@adacore.com> |
| |
| * libgnat/a-ststio.ads (File_Type): Apply pragma |
| Preelaborable_Initialization to the type. |
| |
| 2019-10-10 Yannick Moy <moy@adacore.com> |
| |
| * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Do not peek |
| under private types whose completion is SPARK_Mode Off. |
| |
| 2019-10-10 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_ch4.adb, sem_cat.adb, sem_ch12.adb, sem_ch3.adb, |
| sem_ch6.adb, sem_prag.adb, sem_util.adb, sem_util.ads: Minor |
| typo fixes. |
| |
| 2019-10-10 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_warn.adb (Warn_On_Useless_Assignment): Do not warn if the |
| second assignment is at the same source position as the first. |
| |
| 2019-10-10 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_util.adb (Enclosing_Subprogram): Handle the case of |
| E_Entry_Family, returning the entry family's associated |
| Protected_Body_Subprogram (as was already done for E_Entry). |
| * exp_ch9.adb (Expand_N_Accept_Statement): Call Reset_Scopes_To |
| on the block created for an accept statement to reset the scopes |
| of any local entities to the block scope. |
| |
| 2019-10-10 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch12.adb (Analyze_Formal_Package_Declaration): Propagate |
| an aspect specification for Abstract_State from generic package |
| to formal package, so that it is available when analyzing the |
| constructed formal. |
| |
| 2019-10-10 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch6.adb (Set_Actual_Subtypes): Put the freeze node of the |
| actual subtype after its declaration when the type of the formal |
| has a predicate. |
| |
| 2019-10-10 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Do not use |
| the Esize of the component to compute its layout, but only the |
| Component_Clause. Do not issue a warning for the _Tag |
| component. Also set the Esize of the component at the end of |
| the layout. |
| (Analyze_Record_Representation_Clause): Remove Hbit local |
| variable. Lay out the Original_Record_Component only if it's |
| distinct from the component. |
| (Check_Record_Representation_Clause): Fix off-by-one bug for the |
| Last_Bit of the artificial clause built for the _Tag component. |
| |
| 2019-10-10 Bob Duff <duff@adacore.com> |
| |
| * treepr.ads, treepr.adb (ppar): New procedure. |
| |
| 2019-10-10 Bob Duff <duff@adacore.com> |
| |
| * sem_aggr.adb (Resolve_Aggregate): Add missing cases in the |
| Others_Allowed => True case -- N_Case_Expression_Alternative and |
| N_If_Expression. Use Nkind_In. |
| * atree.adb, atree.ads, sinfo.adb, sinfo.ads (Nkind_In): New |
| 16-parameter version. |
| |
| 2019-10-10 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_aggr.adb (Resolve_Array_Aggregate): Set properly the |
| Predicated_Parent link of an itype created for an aggregate, so |
| that the predicate_function of the parent can support proofs on |
| the object that it initializes. |
| |
| 2019-10-10 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch3.adb (Analyze_Number_Declaration): Set |
| Debug_Info_Needed in the case where the expression is an integer |
| literal. |
| |
| 2019-10-10 Yannick Moy <moy@adacore.com> |
| |
| * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Add subprograms |
| with deep parameter or result type as not candidates for |
| inlining. |
| |
| 2019-10-10 Vadim Godunko <godunko@adacore.com> |
| |
| * libgnat/g-exptty.ads (TTY_Process_Descriptor): Set default |
| value for Process. |
| |
| 2019-10-10 Bob Duff <duff@adacore.com> |
| |
| * sem_prag.adb (Defer_Compile_Time_Warning_Error_To_BE): In |
| addition to saving the pragma for further processing, copy the |
| pragma into the main unit if necessary. |
| |
| 2019-10-10 Bob Duff <duff@adacore.com> |
| |
| * einfo.ads, einfo.adb (Invariants_Ignored): New flag on types. |
| This leaves just one unused flag. |
| * sem_prag.adb (Invariant): Set the flag if appropriate. |
| * exp_util.adb (Make_Invariant_Call): Check the flag. |
| |
| 2019-10-10 Arnaud Charlet <charlet@adacore.com> |
| |
| * gnat1drv.adb (Gnat1drv): Skip code generation when handling an |
| incomplete unit with -gnatceg. |
| |
| 2019-10-10 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_ch7.adb (Check_Unnesting_Elaboration_Code): Various |
| cleanups. |
| (Set_Elab_Proc): New procedure to create the defining identifier |
| for a procedure created to encapsulate top-level blocks |
| occurring as a part of library package elaboration. |
| (First_Local_Scope): Function replaced by |
| Reset_Scopes_To_Elab_Proc. |
| (Reset_Scopes_To_Elab_Proc): New recursive procedure based on |
| First_Local_Scope, which it replaces, that is called to traverse |
| the statements of a library package body to locate top-level |
| blocks and determine whether they contain nested subprograms |
| that might address library-level objects of the package. Such |
| blocks (and loops) and certain top-level subprograms within the |
| statements will have their Scope reset here to match an |
| encapsulating procedure created by |
| Check_Unnesting_Elaboration_Code that will contain the |
| statements. |
| (Check_Unnesting_In_Decls_Or_Stmts): Code for handling blocks |
| factored out into Unnest_Block. Add handling for package |
| declarations and bodies, making recursive calls for |
| visible/private declarations, body declarations, statements, and |
| exception handlers. Also remove test for Is_Compilation_Unit: |
| caller tests for Is_Library_Level_Entity instead. Also, this |
| proc's name was changed from Check_Unnesting_In_Declarations. |
| (Check_Unnesting_In_Handlers): New procedure to traverse a |
| sequence of exception handlers, calling |
| Check_Unnesting_In_Decls_Or_Stmts on the statements of each |
| handler. |
| (Expand_N_Package_Body): Call Check_Unnesting_* routines only |
| when Unnest_Subprogram_Mode is set and the current scope is a |
| library-level entity (which includes packages and instantiations |
| nested directly within a library unit). |
| (Expand_N_Package_Declaration): Call Check_Unnesting_* routines |
| only when Unnest_Subprogram_Mode is set and the current scope is |
| a library-level entity (which includes packages and |
| instantiations nested directly within a library unit). |
| (Unnest_Block): New procedure factored out of |
| Check_Unnesting_In_Decls_Or_Stmts, for creating a new procedure |
| to replace a block statement and resetting the Scope fields of |
| the block's top-level entities. |
| |
| 2019-10-10 Anthony Leonardo Gracio <leonardo@adacore.com> |
| |
| * doc/gnat_ugn/about_this_guide.rst, |
| doc/gnat_ugn/building_executable_programs_with_gnat.rst, |
| doc/gnat_ugn/getting_started_with_gnat.rst, |
| doc/gnat_ugn/gnat_and_program_execution.rst, errout.ads, |
| exp_ch3.adb, gnatls.adb, impunit.adb, lib-writ.ads, opt.ads, |
| sem_ch7.adb, sem_prag.adb, sem_res.adb, sem_warn.adb, |
| terminals.c: Replace GPS by GNAT Studio. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2019-10-10 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_ch6.adb (Expand_Simple_Function_Return_Statement): If the |
| function to which the return statement applies is an |
| Ignored_Ghost_Function, do not indicate that it uses the |
| secondary stack when the return type is unconstrained. |
| |
| 2019-10-10 Bob Duff <duff@adacore.com> |
| |
| * libgnat/a-cbdlli.adb, libgnat/a-cbhama.adb, |
| libgnat/a-cbhase.adb, libgnat/a-cbmutr.adb, |
| libgnat/a-cborma.adb, libgnat/a-cborse.adb, |
| libgnat/a-cdlili.adb, libgnat/a-cidlli.adb, |
| libgnat/a-cihama.adb, libgnat/a-cihase.adb, |
| libgnat/a-cimutr.adb, libgnat/a-ciorma.adb, |
| libgnat/a-ciorse.adb, libgnat/a-cobove.adb, |
| libgnat/a-cohama.adb, libgnat/a-cohase.adb, |
| libgnat/a-coinve.adb, libgnat/a-comutr.adb, |
| libgnat/a-conhel.adb, libgnat/a-convec.adb, |
| libgnat/a-coorma.adb, libgnat/a-coorse.adb (Reference, |
| Constant_Reference): Use Busy instead of Lock, so we forbid |
| tampering with cursors, rather than tampering with elements. |
| |
| 2019-10-10 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_cat.adb (Set_Categorization_From_Pragma): Do not modify |
| any visibility settings if there are no compilation_unit pragmas |
| following the package declaration. Add comments for future |
| cleanup. |
| |
| 2019-10-10 Patrick Bernardi <bernardi@adacore.com> |
| |
| * bindgen.adb (System_Secondary_Stack_Package_In_Closure): |
| Renamed flag System_Secondary_Stack_Used to be clearer of what |
| it represents. |
| (Gen_Adainit): Refactor secondary stack related code to make it |
| clearer. |
| * rtsfind.adb (Load_RTU): Don't set Sec_Stack_Used flag here |
| (RTE): Set Sec_Stack_Used if the System.Secondary_Stack is |
| referenced, but not if we're ignoring ghost code. |
| |
| 2019-10-10 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_prag.adb (Analyze_Global_In_Decl_Part): Simplify previous |
| test, just like in a recent commit we simplified a similar test |
| for Depends contract. |
| |
| 2019-10-04 Joseph Myers <joseph@codesourcery.com> |
| |
| * gcc-interface/utils.c (flag_isoc2x): New variable. |
| |
| 2019-10-01 Maciej W. Rozycki <macro@wdc.com> |
| |
| * gcc-interface/Makefile.in (ADA_RTL_DSO_DIR): New variable. |
| (install-gnatlib): Use it in place of ADA_RTL_OBJ_DIR for shared |
| library installation. |
| |
| 2019-10-01 Maciej W. Rozycki <macro@wdc.com> |
| |
| * gcc-interface/Make-lang.in (ada.install-common): Split into... |
| (gnat-install-tools, gnat-install-lib): ... these. |
| |
| 2019-09-26 Alexandre Oliva <oliva@adacore.com> |
| |
| * gcc-interface/decl.c (components_to_record): Set |
| DECL_SIZE_UNIT for zero-sized fields. |
| |
| 2019-09-26 Arnaud Charlet <charlet@adacore.com> |
| |
| * osint.adb (OS_Time_To_GNAT_Time): Remove dependency on To_C/To_Ada |
| |
| 2019-09-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * libgnarl/s-osinte__solaris.ads (sysconf): Declare. |
| (SC_NPROCESSORS_ONLN): Define. |
| * libgnarl/s-tasinf__solaris.ads (Number_Of_Processors): Declare. |
| * libgnarl/s-tasinf__solaris.adb (N_CPU): New variable. |
| (Number_Of_Processors): New function. |
| |
| 2019-09-23 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (Regular_Loop_to_gnu): Do not rotate the loop |
| if -Og is enabled. |
| (build_return_expr): Do not perform NRV if -Og is enabled. |
| (Subprogram_Body_to_gnu): Likewise. |
| (gnat_to_gnu) <N_Simple_Return_Statement>: Likewise. |
| (Handled_Sequence_Of_Statements_to_gnu): Do not inline finalizers if |
| -Og is enabled. |
| * gcc-interface/utils.c (convert_to_index_type): Return early if -Og |
| is enabled. |
| |
| 2019-09-23 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (gnat_compile_time_expr_list): New variable. |
| (Pragma_to_gnu): Rename local variable. Save the (first) expression |
| of pragma Compile_Time_{Error|Warning} for later processing. |
| (Compilation_Unit_to_gnu): Process the expressions saved above. |
| |
| 2019-09-23 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (Attribute_to_gnu): Test Can_Use_Internal_Rep |
| on the underlying type of the node. |
| (Call_to_gnu): Likewise with the type of the prefix. |
| |
| 2019-09-23 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.c (components_to_record): Do not reorder fields |
| in packed record types if they contain fixed-size fields that cannot |
| be laid out in a packed manner. |
| |
| 2019-09-19 Tom Tromey <tromey@adacore.com> |
| |
| * gcc-interface/misc.c (gnat_get_type_bias): Return the bias |
| when -fgnat-encodings=gdb. |
| |
| 2019-09-19 Steve Baird <baird@adacore.com> |
| |
| * sem_prag.adb (Preferred_String_Type): A new function. Given an |
| expression, determines whether the preference rules defined for |
| the third-and-later arguments of pragma Annotate suffice to |
| determine the type of the expression. If so, then the preferred |
| type is returned; if not then Empty is returned. Handles |
| concatenations. |
| (Analyze_Pragma): Replace previous code, which dealt only with |
| string literals, with calls to the new Preferred_String_Type |
| function, which also handles concatenations. |
| * doc/gnat_rm/implementation_defined_pragmas.rst: Update |
| documentation for pragma Annotate. |
| * gnat_rm.texi: Regenerate. |
| |
| 2019-09-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_util.adb (Is_Possibly_Unaligned_Slice): Do not return true |
| on pure alignment considerations if the target does not require |
| the strict alignment of memory accesses. |
| |
| 2019-09-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch12.adb (Check_Private_View): Add a comment to indicate |
| future work. |
| |
| 2019-09-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.adb (Has_Mutable_Components): Look at the underlying |
| type of components to find out whether they are mutable. |
| |
| 2019-09-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch12.adb (Instantiate_Package_Body): Check that the body |
| has not already been instantiated when the body of the parent |
| was being loaded. |
| |
| 2019-09-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_util.adb (In_Instance): Test whether the current unit has |
| been analyzed instead of being on the scope stack to detect the |
| case of actuals of an instantiation of a generic child unit done |
| as a compilation unit. |
| |
| 2019-09-19 Dmitriy Anisimkov <anisimko@adacore.com> |
| |
| * libgnat/g-socket.ads, libgnat/g-socket.adb |
| (Create_Socket_Pair): New routine. |
| * libgnat/g-socthi.ads (OS_Has_Socketpair): Boolean constant. |
| (C_Socketpair): New imported routine. |
| * libgnat/g-socthi__mingw.ads, libgnat/g-socthi__vxworks.ads |
| (Default_Socket_Pair_Family): New constant. |
| (C_Socketpair): New routine. |
| * libgnat/g-socthi__mingw.adb, libgnat/g-socthi__vxworks.adb |
| (C_Socketpair): Is separated in anouther file. |
| * libgnat/g-sthcso.adb (C_Socketpair): Non UNIX implementation. |
| * libgnat/g-stsifd__sockets.adb: Reuse C_Socketpair. |
| |
| 2019-09-19 Yannick Moy <moy@adacore.com> |
| |
| * sem_prag.adb (Analyze_Depends_In_Decl_Part): Simplify previous |
| test. |
| |
| 2019-09-19 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch7.adb (Install_Parent_Private_Declarations): If a |
| generic child unit is instantiated within a sibling child unit, |
| the analysis of its private part requires that the private part |
| of the ancestor be available, as is done when the context |
| includes an instance of the ancestor. |
| |
| 2019-09-19 Yannick Moy <moy@adacore.com> |
| |
| * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Add special |
| case for traversal functions. |
| |
| 2019-09-19 Yannick Moy <moy@adacore.com> |
| |
| * sem_prag.adb (Analyze_Global_In_Decl_Part): Do not issue an |
| error when a constant of an access type is used as output in a |
| Global contract. |
| (Analyze_Depends_In_Decl_Part): Do not issue an error when a |
| constant of an access type is used as output in a Depends |
| contract. |
| |
| 2019-09-19 Arnaud Charlet <charlet@adacore.com> |
| |
| * exp_attr.adb: Remove obsolete comment. |
| |
| 2019-09-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch3.adb (Build_Derived_Access_Type): If this is an access- |
| to-subprogram type, copy Can_Use_Internal_Rep from the parent. |
| |
| 2019-09-19 Yannick Moy <moy@adacore.com> |
| |
| * gcc-interface/Make-lang.in: Remove references to sem_spark. |
| * sem_spark.adb, sem_spark.ads: Remove unit. |
| |
| 2019-09-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_attr.adb (Is_Inline_Floating_Point_Attribute): Treat |
| Machine_Rounding as an alias for Rounding. |
| * sem_res.adb (Simplify_Type_Conversion): Likewise. |
| |
| 2019-09-19 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_unst.adb (Unnest_Subprogram): Bypass the transformation of |
| up-level references unless Opt.Generate_C_Code is enabled. |
| |
| 2019-09-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch4.adb (Expand_Array_Equality): If optimization is |
| enabled, generate a simple conjunction of comparisons for the |
| specific case of constrained 1-dimensional 2-element arrays. |
| Fix formatting. |
| |
| 2019-09-19 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_dbug.ads, exp_dbug.adb (Get_Homonym_Number): Remove. |
| (Append_Homonym_Number): Use Homonym_Number instead of |
| Get_Homonym_Number. |
| * exp_util.ads, exp_util.adb (Homonym_Number): Mirror style of |
| the removed Get_Homonym_Number routine, i.e. initialize local |
| objects at declaration and refine the type of result. |
| * sem_util.adb (Add_Homonym_Suffix): Use Homonym_Number instead |
| of Get_Homonym_Number. |
| |
| 2019-09-19 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Simplify |
| handling of expressions in predicates when the context is a |
| generic unit. |
| |
| 2019-09-19 Bob Duff <duff@adacore.com> |
| |
| * sem_attr.adb (Resolve_Attribute): Make sure the secondary |
| stack is properly managed in the case of a 'Range attribute in a |
| loop. |
| |
| 2019-09-19 Raphael Amiard <amiard@adacore.com> |
| |
| * libgnat/a-cfhase.ads (Set): Add comments to public primitives. |
| |
| 2019-09-19 Raphael Amiard <amiard@adacore.com> |
| |
| * libgnat/a-cbhama.ads, libgnat/a-cbhase.ads, |
| libgnat/a-chtgop.ads (Clear): Refine comments |
| |
| 2019-09-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch12.adb (Restore_Private_Views): Comment out new code |
| that clear the Is_Generic_Actual_Type also on the full view. |
| |
| 2019-09-19 Bob Duff <duff@adacore.com> |
| |
| * exp_ch3.adb (Rewrite_As_Renaming): Return False if there are |
| any aspect specifications, because otherwise Insert_Actions |
| blows up. |
| |
| 2019-09-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Add |
| Bit_Packed_Array parameter and documet it. Always insert a copy |
| if it is set True. |
| (Expand_Actuals): Adjust the calls to |
| Add_Simple_Call_By_Copy_Code. |
| |
| 2019-09-19 Bob Duff <duff@adacore.com> |
| |
| * xref_lib.adb (Get_Symbol_Name): If we reach EOF in the first |
| loop without finding the symbol, return "???". Otherwise, it's |
| an infinite loop. |
| (Parse_EOL): Assert that we're not already at EOF. Remove |
| processing of LF/CR -- there are no operating systems that use |
| that. |
| |
| 2019-09-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch6.adb (Is_Legal_Copy): Also return false for an aliased |
| formal and a formal passed by reference in convention Ada. Add |
| missing guard to the existing test on Is_Valued_Procedure. |
| |
| 2019-09-19 Bob Duff <duff@adacore.com> |
| |
| * rtsfind.ads (RTE_Available): Improve comment. |
| |
| 2019-09-18 Bob Duff <duff@adacore.com> |
| |
| * exp_ch5.adb (Expand_Assign_Array_Loop_Or_Bitfield): Move call |
| to RTE_Available later, so it doesn't disturb the elab order. |
| The RE_Copy_Bitfield entity is defined in package |
| System.Bitfields which has a dependency on package |
| System.Bitfield_Utils, which has it its spec: |
| pragma Elaborate_Body; |
| The query on RTE_Available forces loading and analyzing |
| System.Bitfields and all its withed units. |
| |
| 2019-09-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * checks.ads (Alignment_Warnings_Record): Add P component. |
| * checks.adb (Apply_Address_Clause_Check): Be prepared to kill |
| the warning also if the clause is of the form X'Address. |
| (Validate_Alignment_Check_Warning): Kill the warning if the |
| clause is of the form X'Address and the alignment of X is |
| compatible. |
| |
| 2019-09-18 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_res.adb (Set_Mixed_Node_Expression): If a conditional |
| expression has universal_real alternaitves and the context is |
| Universal_Fixed, as when it is an operand in a fixed-point |
| multiplication or division, resolve the expression with a |
| visible fixed-point type, which must be unique. |
| |
| 2019-09-18 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch3.adb (Constrain_Component_Type): For a discriminated |
| type, handle the case of a constraint given by a conversion of a |
| discriminant of the enclosing type. Necessary when compiling a |
| discriminated task for a restricted run-time, when the generated |
| Secondary_Stack component may be set by means of an aspect on |
| the task type. |
| |
| 2019-09-18 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_aggr.adb (Expand_Record_Aggregate, Rewrite_Discriminant): |
| After rewriting a reference to an outer discriminant as a |
| selected component of the enclosing object, analyze the selected |
| component to ensure that the entity of the selector name is |
| properly set. This is necessary when the aggregate appears |
| within an expression that may have been analyzed already. |
| |
| 2019-09-18 Justin Squirek <squirek@adacore.com> |
| |
| * sem_ch8.adb (Use_One_Type): Add guard to prevent warning on a |
| reundant use package clause where there is no previous |
| use_clause in the chain. |
| |
| 2019-09-18 Justin Squirek <squirek@adacore.com> |
| |
| * exp_ch4.adb (Expand_N_Type_Conversion): Add calculation of an |
| alternative operand for the purposes of generating accessibility |
| checks. |
| |
| 2019-09-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.adb (Build_Array_Aggr_Code): In STEP 1 (c), duplicate |
| the expression and reset the Loop_Actions for each loop |
| generated for an others choice. |
| |
| 2019-09-18 Justin Squirek <squirek@adacore.com> |
| |
| * einfo.adb, einfo.ads (Minimum_Accessibility): Added new field. |
| (Set_Minimum_Accessibility): Added to set new field. |
| (Minimum_Accessibility): Added to fetch new field. |
| * exp_ch6.adb (Expand_Subprogram_Call): Modify calls to fetch |
| accessibility levels to the new subprogram Get_Accessibility |
| which handles cases where minimum accessibility might be needed. |
| * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Add section to |
| generate a Minimum_Accessibility object within relevant |
| subprograms. |
| * sem_util.adb, sem_util.ads (Dynamic_Accessibility_Level): |
| Additional documentation added and modify section to use new |
| function Get_Accessibility. |
| (Get_Accessibility): Added to centralize processing of |
| accessibility levels. |
| |
| 2019-09-18 Steve Baird <baird@adacore.com> |
| |
| * sem_util.ads (Interval_Lists): A new visible package. This |
| package is visible because it is also intended for eventual use |
| in Sem_Eval.Subtypes_Statically_Compatible when that function is |
| someday upgraded to handle static predicates correctly. This |
| new package doesn't really need to be visible for now, but it |
| still seems like a good idea. |
| * sem_util.adb (Gather_Components): Implement AI12-0086 via the |
| following strategy. The existing code knows how to take a static |
| discriminant value and identify the corresponding variant; in |
| the newly-permitted case of a non-static value of a static |
| subtype, we arbitrarily select a value of the subtype and find |
| the corresponding variant using the existing code. Subsequently, |
| we check that every other value of the discriminant's subtype |
| corresponds to the same variant; this is done using the newly |
| introduced Interval_Lists package. |
| (Interval_Lists): Provide a body for the new package. |
| |
| 2019-09-18 Javier Miranda <miranda@adacore.com> |
| |
| * exp_ch4.adb (Expand_N_Op_Eq): The frontend assumes that we can |
| do a bit-for-bit comparison of two access to protected |
| subprogram pointers. However, there are two reasons why we may |
| not be able to do that: (1) there may be padding bits for |
| alignment before the access to subprogram, and (2) the access to |
| subprogram itself may not be compared bit-for- bit because the |
| activation record part is undefined: two pointers are equal iff |
| the subprogram addresses are equal. This patch fixes it by |
| forcing a field-by-field comparison. |
| * bindgen.adb (Gen_Adainit): The type No_Param_Proc is defined |
| in the library as having Favor_Top_Level, but when we create an |
| object of that type in the binder file we don't have that |
| pragma, so the types are different. This patch fixes this issue. |
| * libgnarl/s-interr.adb, libgnarl/s-interr__hwint.adb, |
| libgnarl/s-interr__sigaction.adb, libgnarl/s-interr__vxworks.adb |
| (Is_Registered): This routine erroneously assumes that the |
| access to protected subprogram is two addresses. We need to |
| create the same record that the compiler makes to ensure that |
| any padding is the same. Then we have to look at just the first |
| word of the access to subprogram. This patch fixes this issue. |
| |
| 2019-09-18 Bob Duff <duff@adacore.com> |
| |
| * exp_ch5.adb (Expand_Assign_Array_Loop_Or_Bitfield): The call |
| to Copy_Bitfield is now enabled. |
| (Expand_Assign_Array_Bitfield): Multiply 'Length times |
| 'Component_Size "by hand" instead of using 'Size. |
| |
| 2019-09-18 Vasiliy Fofanov <fofanov@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_pragmas.rst: Fix minor |
| formatting issue. |
| |
| 2019-09-18 Javier Miranda <miranda@adacore.com> |
| |
| * exp_disp.adb (Make_DT, Make_Secondary_DT): Remove generation |
| of alignment representation clause for the following tables: |
| Predef_Prims, Iface_DT, TSD, ITable, DT. |
| |
| 2019-09-18 Steve Baird <baird@adacore.com> |
| |
| * sem_eval.adb (Expr_Value): Do not fail "the type of a null |
| literal must be an access type" assertion if errors have already |
| been posted on the given node. |
| |
| 2019-09-18 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_dbug.ads, exp_dbug.adb (Get_Homonym_Number): Refine type |
| from Nat to Pos. |
| * sem_util.adb (Add_Homonym_Suffix): Refine type of a local |
| variable. |
| |
| 2019-09-18 Yannick Moy <moy@adacore.com> |
| |
| * exp_dbug.adb (Append_Homonym_Number): Use new function |
| Get_Homonym_Number. |
| (Get_Homonym_Number): New function to return the homonym number. |
| (Qualify_Entity_Name): Remove special case for GNATprove. |
| * exp_dbug.ads (Get_Homonym_Number): Make the new function |
| public for use in GNATprove. |
| * frontend.adb (Frontend): Do not qualify names in GNATprove |
| mode. |
| * sem_util.adb (Unique_Name): Append homonym suffix where needed |
| for entities which have local homonyms in the same scope. |
| |
| 2019-09-18 Nicolas Roche <roche@adacore.com> |
| |
| * libgnat/s-valrea.adb (Scan_Integral_Digits): New procedure. |
| (Scan_Decimal_Digits): New procedure. |
| (As_Digit): New function. |
| (Scan_Real): Use Scan_Integral_Digits and Scan_Decimal_Digits. |
| |
| 2019-09-18 Claire Dross <dross@adacore.com> |
| |
| * exp_attr.adb (Expand_N_Attribute_Reference): Call routine from |
| Exp_Util to know the value of the Constrained attribute in the |
| static case. |
| * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Make |
| implicit dereferences inside the Constrained attribute explicit. |
| * exp_util.ads, exp_util.adb |
| (Attribute_Constrained_Static_Value): New routine to compute the |
| value of a statically known reference to the Constrained |
| attribute. |
| |
| 2019-09-18 Vadim Godunko <godunko@adacore.com> |
| |
| * libgnat/g-expect.adb (Expect_Internal): Don't include invalid |
| file descriptors into the set of file descriptors for Poll. |
| Raise Process_Died exception when computed set of file |
| descriptors to monitor is empty. |
| |
| 2019-09-18 Frederic Konrad <konrad@adacore.com> |
| |
| * adaint.c: Include dosFsLib.h and vwModNum.h for VxWorks 6. |
| (__gnat_rename): Map S_dosFsLib_FILE_NOT_FOUND to ENOENT. |
| |
| 2019-09-18 Steve Baird <baird@adacore.com> |
| |
| * freeze.adb (Freeze_Object_Declaration): Do not call |
| Check_Large_Modular_Array when the object declaration being |
| frozen is an ignored ghost entity. |
| |
| 2019-09-18 Tom Tromey <tromey@adacore.com> |
| |
| * make.adb (Initialize): Fix typo. |
| |
| 2019-09-18 Olivier Hainque <hainque@adacore.com> |
| |
| * libgnat/s-win32.ads (DWORD_PTR): New type, pointer size |
| unsigned int. |
| (SYSTEM_INFO): Use it for dwActiveProcessorMask. |
| |
| 2019-09-18 Arnaud Charlet <charlet@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_pragmas.rst: Improve doc on |
| Warning_As_Error. |
| * gnat_rm.texi: Regenerate. |
| |
| 2019-09-18 Arnaud Charlet <charlet@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_characteristics.rst, |
| doc/gnat_rm/implementation_defined_pragmas.rst, |
| doc/gnat_rm/implementation_of_specific_ada_features.rst: Remove |
| remaining references to VMS support |
| * gnat_rm.texi: Regenerate. |
| |
| 2019-09-18 Arnaud Charlet <charlet@adacore.com> |
| |
| * libgnat/s-stausa.adb: Fix a typo |
| |
| 2019-09-18 Bob Duff <duff@adacore.com> |
| |
| * libgnat/a-cbhama.adb, libgnat/a-cbhase.adb, |
| libgnat/a-cbmutr.adb, libgnat/a-cborma.adb, |
| libgnat/a-cborse.adb, libgnat/a-cobove.adb (Copy): Avoid reading |
| the uninitialized variable C in the Checks = False case. Change |
| variable to be a constant. |
| |
| 2019-09-18 Claire Dross <dross@adacore.com> |
| |
| * libgnat/a-cofuma.adb (Remove, Elements_Equal_Except, |
| Keys_Included, Keys_Included_Except): Rename loop indexes and |
| global constants from I to J. |
| |
| 2019-09-18 Arnaud Charlet <charlet@adacore.com> |
| |
| * exp_unst.adb (Unnest_Subprograms): Refine previous change. |
| |
| 2019-09-17 Claire Dross <dross@adacore.com> |
| |
| * libgnat/a-cofuma.ads, libgnat/a-cofuma.adb (Remove): New |
| function which returns a copy of the input container without a |
| given mapping. |
| |
| 2019-09-17 Yannick Moy <moy@adacore.com> |
| |
| * libgnat/s-arit64.adb (Double_Divide): Correctly handle the |
| special case when rounding. |
| |
| 2019-09-17 Javier Miranda <miranda@adacore.com> |
| |
| * sem_ch3.adb (Complete_Private_Subtype): Propagate attributes |
| Has_Attributes and Predicate_Function to the cloned subtype. |
| |
| 2019-09-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem.adb (Do_Analyze): Save Style_Check_Max_Line_Length on |
| entry and restore it on exit instead of recomputing it. |
| |
| 2019-09-17 Tom Tromey <tromey@adacore.com> |
| |
| * exp_dbug.ads: Update character type comment. |
| |
| 2019-09-17 Yannick Moy <moy@adacore.com> |
| |
| * libgnat/s-arit64.adb (Double_Divide): Simplify needlessly |
| complex computation. Fix comments. |
| (Scaled_Divide): Fix comments. Explain why implementation does |
| not suffer from bugs in Algorithm D from 2nd Edition of TAOCP. |
| |
| 2019-09-17 Yannick Moy <moy@adacore.com> |
| |
| * libgnat/s-arit64.adb (Scaled_Divide): Add protection against |
| undesirable wrap-around. |
| |
| 2019-09-17 Yannick Moy <moy@adacore.com> |
| |
| * libgnat/s-arit64.adb (Double_Divide): Fix two possible |
| overflows. |
| |
| 2019-09-17 Dmitriy Anisimkov <anisimko@adacore.com> |
| |
| * make_util.ads (On_Windows): Move... |
| * osint.ads (On_Windows): There. |
| * osint.adb (OS_Time_To_GNAT_Time): If odd incremented on |
| Windows before conversion to Time_Stamp_Type. |
| |
| 2019-09-17 Yannick Moy <moy@adacore.com> |
| |
| * sem_spark.adb (Check_Declaration): Do not check the assignment |
| from an illegal declaration. |
| |
| 2019-09-17 Bob Duff <duff@adacore.com> |
| |
| * doc/gnat_ugn/gnat_and_program_execution.rst: Clarify |
| documentation. |
| * gnat_ugn.texi: Regenerate. |
| * libgnat/s-stausa.ads: Clarify comments. |
| |
| 2019-09-17 Steve Baird <baird@adacore.com> |
| |
| * sem_util.adb (Wrong_Type): In deciding to suppress a message, |
| it is not enough for In_Instance to be True; in addition, |
| In_Generic_Actual (Expr) must be False. |
| * sem_type.adb (In_Generic_Actual): Fix bug where traversal of |
| parents skips every other node. |
| |
| 2019-09-17 Claire Dross <dross@adacore.com> |
| |
| * sem_spark.adb (Get_Observed_Or_Borrowed_Expr): If the |
| definition of a local borrower contains calls to traversal |
| functions, the borrowed expression is the first parameter of the |
| first traversal function call in the definition. |
| |
| 2019-09-17 Ed Falis <falis@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_pragmas.rst: Remove |
| section. |
| * gnat_rm.texi, gnat_ugn.texi: Regenerate. |
| |
| 2019-09-17 Vadim Godunko <godunko@adacore.com> |
| |
| * libgnat/g-exptty.ads (Close_Input): New subprogram. |
| * libgnat/g-exptty.adb (Close_Input): New subprogram. |
| (Close): Move close of TTY to Close_Input. |
| * terminals.c (__gnat_close_tty): Set file descriptors to |
| invalid value after close. |
| |
| 2019-09-17 Vadim Godunko <godunko@adacore.com> |
| |
| * libgnat/g-expect.adb (Expect_Internal): Try to call 'poll' few |
| times. |
| |
| 2019-09-17 Vadim Godunko <godunko@adacore.com> |
| |
| * libgnat/g-expect.ads, libgnat/g-expect.adb (Close_Input): New |
| subprogram. |
| (Get_Command_Output): Call Close_Input to close input stream. |
| (Expect_Internal): Likewise. |
| (Close): Likewise. |
| * libgnat/g-exptty.adb (Close): Likewise. |
| |
| 2019-09-17 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_util.ads, sem_util.adb (Is_Attribute_Old): New utility |
| routine. |
| |
| 2019-09-17 Yannick Moy <moy@adacore.com> |
| |
| * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Add handling |
| for dispatching operations. |
| |
| 2019-09-17 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): In a |
| generic context, for a Predicate aspect, use |
| Preanalyze_Spec_Expression to verify conformance. |
| |
| 2019-09-17 Javier Miranda <miranda@adacore.com> |
| |
| * sem_ch3.adb (Constrain_Corresponding_Record): Propagate |
| attribute Is_Tagged_Type. |
| |
| 2019-09-17 Javier Miranda <miranda@adacore.com> |
| |
| * exp_ch3.adb (Build_Record_Init_Proc): Do not generate code to |
| adjust the tag component when the record is initialized with a |
| raise expression. |
| * sem_aggr.adb (Valid_Limited_Ancestor): Return True for |
| N_Raise_Expression nodes. |
| (Valid_Ancestor_Type): Return True for raise expressions. |
| * sem_ch3.adb (Analyze_Component_Declaration): Do not report an |
| error when a component is initialized with a raise expression. |
| * sem_ch4.adb (Analyze_Qualified_Expression): Do not report an |
| error when the aggregate has a raise expression. |
| |
| 2019-09-17 Piotr Trojanek <trojanek@adacore.com> |
| |
| * ali.ads: Fix casing in comment. |
| * ali-util.ads, ali-util.adb (Read_Withed_ALIs): Remove |
| Ignore_Errors parameter; it was only set to non-default value of |
| True when running in GNATprove_Mode and wrongly reset to False |
| when calling this routine recursively. Now in GNATprove mode we |
| want it to be always True, so in fact it is equivalent to |
| GNATProve_Mode flag itself (which was already used in this |
| routine). |
| |
| 2019-09-17 Arnaud Charlet <charlet@adacore.com> |
| |
| * adaint.c (_REENTRANT, _THREAD_SAFE): Only define if needed. |
| |
| 2019-09-17 Arnaud Charlet <charlet@adacore.com> |
| |
| * libgnat/s-bitfie.ads (Val_Bits, Val_Bytes): Define from |
| Long_Long_Integer'Size. |
| |
| 2019-09-17 Javier Miranda <miranda@adacore.com> |
| |
| * exp_ch6.ads (Needs_BIP_Task_Actuals): New subprogram. |
| * exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call): Code |
| cleanup. |
| (Check_Number_Of_Actuals): New subprogram. |
| (Make_Build_In_Place_Call_In_Allocator): Adding assertion. |
| (Make_Build_In_Place_Call_In_Anonymous_Context): Adding |
| assertion. |
| (Make_Build_In_Place_Call_In_Assignment): Adding assertion. |
| (Make_Build_In_Place_Call_In_Object_Declaration): Code cleanup |
| plus assertion addition. |
| (Needs_BIP_Task_Actuals): New subprogram. |
| * sem_ch6.adb (Create_Extra_Formals): Rely on |
| Needs_BIP_Task_Actuals() to check if the master of the tasks to |
| be created, and the caller's activation chain formals are |
| needed. |
| |
| 2019-09-17 Bob Duff <duff@adacore.com> |
| |
| * libgnat/s-bituti.adb (Get_Val_2, Set_Val_2): Use new routines |
| for getting and setting a Val_2, avoiding touching the second |
| half when that half might not exist. |
| * exp_ch5.adb (Expand_Assign_Array_Loop_Or_Bitfield): Correct |
| tests for potential volatile or independent components. In |
| particular, do not call Prefix unless we know it's a slice. |
| |
| 2019-09-17 Dmitriy Anisimkov <anisimko@adacore.com> |
| |
| * gsocket.h: Include sys/un.h. |
| * s-oscons-tmplt.c (AF_UNIX): New constant generation. |
| (SIZEOF_sockaddr_un): Idem. |
| * libgnat/g-socket.ads (Family_Type): New value Family_Unix |
| added. |
| (Family_Inet_4_6): New subtype only for network families. |
| (Sock_Addr_Type): Add Unbounded_String field for Family_Unix |
| variant. |
| (Unix_Socket_Address): Create Sock_Addr_Type from socket |
| pathname. |
| (Network_Socket_Address): Create Sock_Addr_Type from |
| Inet_Addr_Type and Port_Type parameters. |
| * libgnat/g-socket.adb: Support local unix address in socket |
| routines. |
| (Get_Address_Info): Disable warning about Result may be |
| referenced before it has a value. Remove duplicated code to exit |
| from Look_For_Supported. |
| * libgnat/g-sothco.ads (Unix_Name_Length): New constant defining |
| maximum number of characters in local socket address path. |
| (Sockaddr): Add variant for Family_Unix address family. Move |
| Sin_Port and Sin_Family to Family_Inet section. Add Sin6_Port |
| and Sin6_Family to Family_Inet6 section. |
| (Set_Address): Add out parameter Length to return valuable |
| Sockaddr data length. |
| (Get_Address): Add input parameter Length to set valuable |
| Sockaddr data length. |
| * libgnat/g-sothco.adb: Support local unix address in socket |
| routines. |
| |
| 2019-09-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_attr.adb (Expand_Size_Attribute): Chain the special cases |
| on the back-end path and rewrite the attribute appled to slices |
| of bit-packed arrays into the product of the Length and the |
| Compoent_Size attributes of the slices. |
| * exp_ch5.adb (Expand_Assign_Array_Bitfield): Use Size attribute |
| directly to compute the bitfield's size. |
| |
| 2019-09-17 Bob Duff <duff@adacore.com> |
| |
| * exp_ch5.adb (Expand_Assign_Array_Loop_Or_Bitfield): Add tests |
| for potential volatile or independent components. |
| * libgnat/s-bituti.adb (Copy_Small_Bitfield, |
| Copy_Large_Bitfield): Move declarations to more appropriate |
| place. |
| |
| 2019-09-13 Maciej W. Rozycki <macro@wdc.com> |
| |
| * make.adb (Scan_Make_Arg): Also accept `--sysroot=' for the |
| compiler and the linker. |
| |
| 2019-08-30 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.c (maybe_saturate_size): New function. |
| (gnat_to_gnu_entity): Invoke it on the Esize of types before sending |
| it for back-annotations. |
| * gcc-interface/trans.c: Fix typo. |
| |
| 2019-08-30 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/ada-tree.h (DECL_FORCED_BY_REF_P): New macro. |
| * gcc-interface/decl.c (gnat_to_gnu_param): Set it on parameters |
| whose mechanism was forced to by-reference. |
| * gcc-interface/trans.c (Call_to_gnu): Do not issue a warning about a |
| misaligned actual parameter if it is based on a CONSTRUCTOR. Remove |
| obsolete warning for users of Starlet. Issue a warning if a temporary |
| is make around the call for a parameter with DECL_FORCED_BY_REF_P set. |
| (addressable_p): Return true for REAL_CST and ADDR_EXPR. |
| |
| 2019-08-30 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (gnat_to_gnu): Do not set the location on an |
| expression used for a tag. |
| |
| 2019-08-30 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/gigi.h (aggregate_type_contains_array_p): Declare. |
| * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: For an |
| extension, test Has_Record_Rep_Clause instead of Has_Specified_Layout. |
| (adjust_packed): Return 0 if the type of the field is an aggregate |
| type that contains (or is) a self-referential array. |
| (type_has_variable_size): Delete. |
| * gcc-interface/utils.c (inish_record_type): Constify a variable. |
| (aggregate_type_contains_array_p): Add parameter SELF_REFERENTIAL. |
| <RECORD_TYPE>: Pass it in the recursive call. |
| <ARRAY_TYPE>: If it is true, return true only if the array type is |
| self-referential. |
| (create_field_decl): Streamline the setting of the alignment on the |
| field. Pass false to aggregate_type_contains_array_p. |
| |
| 2019-08-30 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (lvalue_required_p) <N_Slice>: Adjust GNU_TYPE |
| in the recursive call. |
| <N_Selected_Component>: Likewise. |
| |
| 2019-08-30 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/utils.c (build_template): Deal with parameters |
| passed by pointer to component of multi-dimensional arrays. |
| |
| 2019-08-30 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.c (annotate_value) <CALL_EXPR>: Inline the call |
| also if List_Representation_Info is greater than 3. |
| |
| 2019-08-30 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Size>: Add assertion. |
| |
| 2019-08-30 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/gigi.h (gigi_checking_assert): New macro. |
| * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Type>: |
| Remove redundant test and adjust comments. Minor tweaks. |
| * gcc-interface/trans.c (Call_to_gnu): Do not generate range checks, |
| instead assert that the Do_Range_Check flag is not set. Adjust call |
| to convert_with_check. |
| (gnat_to_gnu): Likewise. |
| (assoc_to_constructor): Likewise. |
| (pos_to_constructor): Likewise. Remove GNAT_COMPONENT_TYPE parameter. |
| (emit_range_check): Delete. |
| (convert_with_check): Remove RANGE_P parameter and adjust. Do a single |
| overflow check for modular types. |
| |
| 2019-08-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/91283 |
| * gcc-interface/misc.c (gnat_post_options): Set flag_excess_precision |
| instead of flag_excess_precision_cmdline. |
| |
| 2019-08-21 Vadim Godunko <godunko@adacore.com> |
| |
| * libgnat/g-expect.adb (Expect_Internal): Attempt to read |
| several times when 'read' returns non-positive. |
| |
| 2019-08-21 Piotr Trojanek <trojanek@adacore.com> |
| |
| * einfo.adb (Is_Discriminal): Remove extra parens. |
| (Is_Constant_Object): Simplify by reusing Ekind_In. |
| (Is_Prival): Remove extra parens. |
| * checks.adb, exp_ch4.adb, sem_ch3.adb, sem_spark.adb: Minor |
| reformattings. |
| |
| 2019-08-21 Claire Dross <dross@adacore.com> |
| |
| * libgnat/a-cofove.ads (Vector): Add an Iterable aspect to allow |
| iteration. |
| (Iter_First, Iter_Next): Primitives used for iteration. |
| |
| 2019-08-21 Yannick Moy <moy@adacore.com> |
| |
| * sem_ch3.adb (Analyze_Subtype_Declaration): Inherit RM_Size |
| field for formal type parameters in generic instantiations. |
| |
| 2019-08-21 Yannick Moy <moy@adacore.com> |
| |
| * sem_spark.adb: Update references to the SPARK RM. |
| |
| 2019-08-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * repinfo.adb (List_Array_Info): In -gnatR4 mode, set the |
| relevant flag on the component type here instead of... |
| (List_Object_Info): Likewise for the object type. |
| (List_Entities): ...here. In -gnatR4 mode, recurse into |
| entities local to a record type. |
| (List_Component_Layout): In -gnatR4 mode, mark the type as |
| relevant. |
| |
| 2019-08-21 Bob Duff <duff@adacore.com> |
| |
| * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-bitutil.o and |
| s-biutin.o. |
| * exp_ch5.adb (Expand_Assign_Array_Bitfield): New function to |
| generate a call to Copy_Bitfield. This is disabled for now. |
| (Expand_Assign_Array_Loop_Or_Bitfield): New function to decide |
| whether to call Expand_Assign_Array_Bitfield. |
| (Expand_Assign_Array): Call Expand_Assign_Array_Loop_Or_Bitfield |
| instead of Expand_Assign_Array_Loop. |
| * libgnat/s-bitfie.ads, libgnat/s-bituti.adb, |
| libgnat/s-bituti.ads: New units. |
| * rtsfind.ads: Add enum literals for accessing Copy_Bitfield. |
| |
| 2019-08-21 Piotr Trojanek <trojanek@adacore.com> |
| |
| * bindo-graphs.ads (Iterate_Edges_To_Successors): Fix typo in |
| pragma Inline. |
| * bindo-graphs.adb (Delete_Edge): Fix layout in parameter list. |
| |
| 2019-08-21 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_ch3.adb (Build_Master): Suppress call to |
| Build_Class_Wide_Master in the case where the |
| access-to-limited-class-wide type was created for a component in |
| an entry's formal parameter |
| block (Is_Parameter_Block_Component_Type), to prevent a master |
| from being created for such access types generated by the front |
| end in a task spec for entry formals in a parameter block. Add |
| a ??? about whether this suppression should be done more |
| generally (such as by using Comes_From_Source). |
| |
| 2019-08-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch6.adb (Expand_N_Extended_Return_Statement): In the case |
| of a built-in-place function that doesn't need a BIP_Alloc_Form |
| parameter but returns unconstrained, build the return |
| consistently using the function's result subtype. Remove bypass |
| added in previous change. |
| |
| 2019-08-21 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_prag.adb (Max_Entry_Queue_Length): Do not substitute |
| expression of the pragma argument with its value during |
| analysis. |
| * sem_util.adb (Get_Max_Queue_Length): Compute value of the |
| pragma argument when needed. |
| |
| 2019-08-21 Yannick Moy <moy@adacore.com> |
| |
| * checks.adb (Install_Null_Excluding_Check): Do not install |
| check in GNATprove mode. |
| |
| 2019-08-21 Yannick Moy <moy@adacore.com> |
| |
| * sem_spark.adb (Process_Path): Do nothing on address of |
| subprogram. |
| |
| 2019-08-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_util.adb (Finalize_Address): Deal consistently with |
| subtypes of private protected types. |
| |
| 2019-08-21 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_util.adb (Corresponding_Runtime_Package): Use high-level |
| Is_Protected_Type. |
| * sem_ch8.adb (Analyze_Renamed_Entry): Likewise. |
| * sem_ch9.adb (Analyze_Requeue): Likewise. |
| |
| 2019-08-21 Javier Miranda <miranda@adacore.com> |
| |
| * sem_util.adb (Update_Named_Associations): Update |
| First_Named_Actual when the subprogram call has a single named |
| actual. |
| |
| 2019-08-21 Joel Brobecker <brobecker@adacore.com> |
| |
| * doc/Makefile (mk_empty_dirs): New (PHONY) rule. |
| (%.html, %.pdf, %.txt, %.info, %.texinfo): Add dependencies on |
| mk_empty_dirs. |
| |
| 2019-08-21 Justin Squirek <squirek@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_pragmas.rst: Modify |
| documentation to reflect expected behavior. |
| * gnat_rm.texi: Regenerate. |
| * sem_prag.adb (Analyze_Pragma): Modify handling of pragma |
| Max_Entry_Queue_Length to not reject integer values of negative |
| one. |
| * sem_util.adb (Get_Max_Queue_Length): Add processing for values |
| of negative one to fit within the current scheme. |
| |
| 2019-08-20 Arnaud Charlet <charlet@adacore.com> |
| |
| * exp_unst.adb (Unnest_Subprograms, Unnest_Subprogram): Take |
| inlining (-gnatn) into account. |
| |
| 2019-08-20 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case |
| Storage_Size): If the expression for Storage_Size is not static |
| it may depend on characterstics of another type that may bot be |
| frozen yet, so the elaboration of the expression for the aspect |
| must be attached directly to the freeze actions of the type to |
| which it applies. |
| |
| 2019-08-20 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_util.adb (Build_DIC_Procedure_Declaration): Set the last |
| entity of the generated Default_Initial_Condition procedure in |
| order to construct a proper entity chain. |
| |
| 2019-08-20 Yannick Moy <moy@adacore.com> |
| |
| * exp_spark.adb (Expand_SPARK_N_Slice_Or_Indexed_Component): |
| Renaming of function to apply to slices as well. |
| (Expand_SPARK): Expand prefix of slices of access type. |
| |
| 2019-08-20 Bob Duff <duff@adacore.com> |
| |
| * exp_aggr.adb (Expand_Array_Aggregate): Use build-in-place in |
| the nonlimited case in STEP 4. This improves the efficiency of |
| things like (1 .. 1000 => <>). We still generate some code for |
| that, unfortunately, but it is much improved. |
| (Aggr_Assignment_OK_For_Backend): Return false if <> components |
| are present. |
| |
| 2019-08-20 Bob Duff <duff@adacore.com> |
| |
| * exp_ch6.adb (Needs_BIP_Alloc_Form): Call |
| Requires_Transient_Scope rather than checking constrainedness |
| and so forth. We have previously improved |
| Requires_Transient_Scope to return False in various cases, |
| notably a limited record with an access discriminant. This |
| change takes advantage of that to avoid using the secondary |
| stack for functions returning such types. |
| (Make_Build_In_Place_Call_In_Allocator): Be consistent by |
| calling Needs_BIP_Alloc_Form rather than Is_Constrained and so |
| forth. |
| * sem_ch4.adb (Analyze_Allocator): The above change causes the |
| compiler to generate code that is not legal Ada, in particular |
| an uninitialized allocator for indefinite subtype. This is |
| harmless, so we suppress the error message in this case. |
| |
| 2019-08-20 Gary Dismukes <dismukes@adacore.com> |
| |
| * ali.adb, ali.ads, aspects.adb, checks.ads, checks.adb, |
| doc/gnat_rm/implementation_defined_pragmas.rst, |
| doc/gnat_ugn/building_executable_programs_with_gnat.rst, |
| einfo.ads, exp_aggr.adb, exp_ch11.adb, exp_ch3.ads, exp_ch4.adb, |
| exp_disp.adb, inline.adb, libgnat/a-locale.ads, |
| libgnat/s-soflin.ads, par_sco.adb, repinfo.adb, sem_ch5.adb, |
| sem_disp.adb, sem_elab.adb, sem_eval.adb, sem_spark.adb, |
| sem_spark.ads, sinfo.ads: Minor reformattings, typo fixes and |
| and rewordings. |
| |
| 2019-08-20 Dmitriy Anisimkov <anisimko@adacore.com> |
| |
| * adaint.c (__gnat_to_gm_time): On _WIN32, don't round time up |
| to even second. |
| |
| 2019-08-20 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch3.adb (Analyze_Object_Declaration): If actual type is |
| private and distinct from nominal type in declaration, propagate |
| flags Is_Constr_Subt_For_U_Nominal and _UN_Aliased to full view |
| of private type. |
| |
| 2019-08-20 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_attr.adb (Expand_Loop_Entry_Attribute): When expanding a |
| loop entry attribute for a while_loop we construct a function |
| that incorporates the expanded condition of the loop. The itypes |
| that may be generated in that expansion must carry the scope of |
| the constructed function for proper handling in gigi. |
| |
| 2019-08-20 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_disp.adb (Build_Class_Wide_Check, Replace_Formals): When a |
| dispatching call tp a subprogram with a class-wide precondition |
| occurrs in the same declarative part as the ancestor subprogram |
| being called, the`expression for the precondition has not been |
| analyzed yet. Such a call may appear, e.g. in an expression |
| function. In that case, the replacement of formals by actuals in |
| the call cannot use the formal entities of the subprogram being |
| called, and the occurrence of the formals in the expression must |
| be located by name (Chars fields) as would be done at a later |
| freeze point, when the expression is resolved in the context of |
| the subprogram itself. |
| |
| 2019-08-20 Bob Duff <duff@adacore.com> |
| |
| * sem_prag.adb (Persistent_BSS): If an initialization is present |
| because of Initialize_Scalars or Normalize_Scalars, generate an |
| implicit pragma Suppress_Initialization to remove that, because |
| initialization is not allowed for these variables. Other |
| initializations remain illegal. |
| |
| 2019-08-20 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_ch3.adb (OK_For_Limited_Init_In_05): In the case of type |
| conversions, apply the recursive call to the Original_Node of |
| the expression Exp rather than the Expression of the |
| Original_Node, in the case where Exp has been rewritten; |
| otherwise, when Original_Node is the same as Exp, apply the |
| recursive call to the Expression. |
| (Check_Initialization): Revise condition for special check on |
| type conversions of limited function calls to test Original_Node |
| (avoiding spurious errors on expanded unchecked conversions |
| applied to build-in-place dispatching calls). |
| |
| 2019-08-20 Patrick Bernardi <bernardi@adacore.com> |
| |
| * exp_aggr.adb (Expand_Record_Aggregate): Always convert a |
| record Aggregate to assignment statements if the option |
| Aggregate_Individually_Assign is set. |
| * opt.ads (Aggregate_Individually_Assign): New option. |
| * par-prag.adb (Prag): Add Pragma_Aggregate_Individually_Assign. |
| * sem_prag.adb (Analyze_Pragma): Likewise. |
| * snames.ads-tmpl: Add Pragma_Aggregate_Individually_Assign and |
| Name_Aggregate_Individually_Assign. |
| * doc/gnat_rm/implementation_defined_pragmas.rst: Document |
| pragma Aggregate_Individually_Assign. |
| * gnat_rm.texi: Regenerate. |
| |
| 2019-08-20 Bob Duff <duff@adacore.com> |
| |
| * par-ch4.adb: Minor wording change in error messages. |
| * sem_aggr.adb (Resolve_Delta_Aggregate): Emit an error for Ada |
| versions prior to Ada 2020. |
| |
| 2019-08-20 Bob Duff <duff@adacore.com> |
| |
| * freeze.adb (Is_Atomic_VFA_Aggregate): Make the temp for |
| initialization of the atomic variable be constant. This is |
| cleaner, and might improve efficiency. |
| |
| 2019-08-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * repinfo.adb (List_Record_Info): In -gnatR4 mode, set the |
| relevant flag on the implicit base type of a record subtype. |
| |
| 2019-08-20 Bob Duff <duff@adacore.com> |
| |
| * sem_eval.adb (Expr_Value): Implement the case of an unchecked |
| conversion of a static expression. |
| |
| 2019-08-20 Bob Duff <duff@adacore.com> |
| |
| * sem_ch13.adb (Is_Null_Array): New function, used to detect the |
| null array case; used to warn about uncheckedly converting to a |
| zero-sized array. It is unfortunate that we can't just check |
| the size, and warn on all cases of converting from a |
| nonzero-sized type to a zero-sized one. That's because "0" means |
| two different things: "size is zero" and "size is unknown". |
| Until we fix that design flaw, we need this more targeted fix. |
| |
| 2019-08-20 Bob Duff <duff@adacore.com> |
| |
| * libgnat/a-cborma.adb, libgnat/a-cborse.adb (Clear): Repeatedly |
| call Delete. This avoids clearing the free list, which |
| substantially speeds up future Delete operations. |
| |
| 2019-08-20 Bob Duff <duff@adacore.com> |
| |
| * sem_ch13.adb (Component_Order_Check): New procedure to check |
| for out-of-order clauses. |
| * warnsw.ads, warnsw.adb: New -gnatw_r switch. |
| * doc/gnat_ugn/building_executable_programs_with_gnat.rst: |
| Document new switch. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2019-08-20 Bob Duff <duff@adacore.com> |
| |
| * sem_ch13.adb (Object_Size): Give an error for zero. It really |
| rubs me the wrong way that we don't honor "for T'Object_Size use |
| 0;", but it's not important enough to fix. In any case, if we're |
| not going to obey the clause, we should give an error. |
| |
| 2019-08-20 Bob Duff <duff@adacore.com> |
| |
| * errout.adb (Error_Msg_Internal): Set Warn_Err in case of |
| Is_Style_Msg. |
| * erroutc.adb (Output_Msg_Text): Do Warnings_Treated_As_Errors |
| processing and [warning-as-error] modification for style |
| messages. Clean up code, simplify, remove unnecessary block |
| statement, add renaming of table entry. |
| * erroutc.ads (Warning_Treated_As_Error): Fix comment: no such |
| thing as Set_Warning_As_Error. |
| * opt.ads: Clean up comments and move related declarations near |
| each other. |
| * par-prag.adb: Process Warning_As_Error. This is necessary |
| because many style warning happen during parsing. |
| * sem_prag.adb: Use new Acquire_Warning_Match_String. |
| * sem_util.ads, sem_util.adb (Acquire_Warning_Match_String): New |
| function shared by par-prag.adb and sem_prag.adb. Replaces the |
| procedure in sem_prag.adb. Avoid use of global variables. |
| * stringt.ads, stringt.adb (To_String): New function to convert |
| String_Id to String. |
| * doc/gnat_rm/implementation_defined_pragmas.rst: Document the |
| new feature. |
| * gnat_rm.texi: Regenerate. |
| |
| 2019-08-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * lib.ads: Add with clause for GNAT.HTable. |
| Add pragma Inline for Is_Loaded and alphabetize the list. |
| (Unit_Name_Table_Size): New constant. |
| (Unit_Name_Header_Num): New subtype. |
| (Unit_Name_Hash): New function declaration. |
| (Unit_Names): New simple hash table. |
| (Init_Unit_Name): New procedure declaration. |
| * lib.adb (Set_Unit_Name): Unregister the old name in the table, |
| if any, and then register the new name. |
| (Init_Unit_Name): New procedure. |
| (Is_Loaded): Reimplement using a lookup in the names table. |
| (Remove_Unit): Unregister the name. |
| (Unit_Name_Hash): New function. |
| * lib-load.adb (Create_Dummy_Package_Unit): Call Init_Unit_Name. |
| (Load_Unit): Use a lookup in the names table to find out whether |
| the unit has already been loaded. Call Init_Unit_Name and then |
| Remove_Unit if the loading has failed. |
| (Make_Child_Decl_Unit): Call Init_Unit_Name. |
| (Make_Instance_Unit): Likewise. |
| * lib-writ.adb (Ensure_System_Dependency): Likewise. |
| |
| 2019-08-20 Bob Duff <duff@adacore.com> |
| |
| * sem_ch13.adb (Record_Hole_Check): Initialize After_Last. |
| |
| 2019-08-20 Piotr Trojanek <trojanek@adacore.com> |
| |
| * impunit.adb (Get_Kind_Of_Unit): Revert change for adapting |
| this routine for gnatprove. |
| |
| 2019-08-20 Arnaud Charlet <charlet@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_pragmas.rst: Document |
| requirements for Pragma Lock_Free. |
| * gnat_rm.texi: Regenerate. |
| |
| 2019-08-20 Philippe Gil <gil@adacore.com> |
| |
| * bindgen.adb (Gen_Main): Set gnat_argc/gnat_argv to argc/argv |
| only when still uninitialized. |
| |
| 2019-08-20 Bob Duff <duff@adacore.com> |
| |
| * libgnat/g-comlin.ads (Exit_From_Command_Line): Fix |
| documentation for GNAT.Command_Line. |
| |
| 2019-08-20 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| PR ada/91492 |
| * gcc-interface/lang.opt (-fdump-scos): Add missing dot at the |
| end of the documentation. |
| |
| 2019-08-20 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * gcc-interface/misc.c (default_pass_by_ref): Update call to |
| pass_by_reference. |
| |
| 2019-08-19 Bob Duff <duff@adacore.com> |
| |
| * doc/gnat_rm/implementation_advice.rst: Fix documentation for |
| stream oriented attributes. |
| * gnat_rm.texi: Regenerate. |
| |
| 2019-08-19 Gary Dismukes <dismukes@adacore.com> |
| |
| * einfo.ads (E_Function, E_Procedure): Update comments to |
| reflect that Renamed_Entity is also used for nongeneric |
| subprograms. |
| |
| 2019-08-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_prag.adb (Is_Before_First_Decl): Deal with rewritten |
| pragmas. |
| |
| 2019-08-19 Bob Duff <duff@adacore.com> |
| |
| * sem_warn.adb (Warn_On_Unreferenced_Entity): Suppress warning |
| on formal parameters of dispatching operations. |
| |
| 2019-08-19 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_res.adb (Resolve_Call): A call to an expression function |
| freezes when expander is active, unless the call appears within |
| the body of another expression function, |
| |
| 2019-08-19 Dmitriy Anisimkov <anisimko@adacore.com> |
| |
| * libgnat/s-os_lib.ads, libgnat/s-os_lib.adb (To_Ada, To_C): New |
| routines. |
| |
| 2019-08-19 Bob Duff <duff@adacore.com> |
| |
| * exp_attr.adb (Attribute_Valid): Correct the handling of |
| private types where the full type is modular. System.Address is |
| an example. Otherwise, we convert uncheckedly to a signed type, |
| so we get an incorrect range 0 .. -1, for which all values will |
| fail. The 'Valid attribute is illegal for such types, but we |
| generate such illegal attribute_references for 'Valid_Scalars, |
| and we generate 'Valid_Scalars when the -gnateV switch is used. |
| Rename Btyp --> PBtyp to avoid hiding the outer Btyp, which was |
| confusing. |
| * libgnat/a-except.adb: Set the Exception_Raised component. |
| Otherwise, we have incorrect reads of invalid data. |
| |
| 2019-08-19 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * libgnat/a-cgaaso.ads, libgnat/a-cgarso.ads, |
| libgnat/a-cogeso.ads, libgnat/a-contai.ads, |
| libgnat/a-locale.ads: Import documentation from the RM. |
| |
| 2019-08-19 Jerome Guitton <guitton@adacore.com> |
| |
| * Makefile.rtl (system.o): New target to add generation of |
| target properties. |
| * gcc-interface/Makefile.in (install-gnatlib): Install |
| ada_target_properties. |
| |
| 2019-08-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * inline.adb (Add_Inlined_Body): Do not special-case instances |
| that are compilation units. |
| (Add_Pending_Instantiation): Likewise. |
| (Instantiate_Body): Skip instantiations that are compilation |
| units and have already been performed. |
| * sem_ch12.adb (Needs_Body_Instantiated): Do not special-case |
| instances that are compilation units. |
| (Load_Parent_Of_Generic): Be prepared for parent that is a |
| compilation unit but whose instantiation node has not been |
| replaced. |
| |
| 2019-08-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * inline.adb (Initialize, Lock): Deal with |
| Called_Pending_Instantiations. |
| |
| 2019-08-19 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch6.adb (Check_Synchronized_Overriding): Complete |
| predicate that applies legality check in 9.4 (11.9/2): if an |
| inherited subprogram is implemented by a protected procedure or |
| entry, its first paarameter must be out, in_out or |
| access_to_varible. |
| |
| 2019-08-19 Javier Miranda <miranda@adacore.com> |
| |
| PR ada/65696 |
| * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): |
| Adding formal to specify how many predefined primitives are |
| inherited from the parent type. |
| * exp_disp.adb (Number_Of_Predefined_Prims): New subprogram. |
| (Make_Secondary_DT): Compute the number of predefined primitives |
| of all tagged types (including tagged types not defined at |
| library level). Previously we unconditionally relied on the |
| Max_Predef_Prims constant value when building the dispatch |
| tables of tagged types not defined at library level (thus |
| consuming more memory for their dispatch tables than required). |
| (Make_DT): Compute the number of predefined primitives that must |
| be inherited from their parent type when building the dispatch |
| tables of tagged types not defined at library level. Previously |
| we unconditionally relied on the Max_Predef_Prims constant value |
| when building the dispatch tables of tagged types not defined at |
| library level (thus copying more data than required from the |
| parent type). |
| |
| 2019-08-19 Bob Duff <duff@adacore.com> |
| |
| * sem_ch13.adb (Record_Hole_Check): Procedure to check for holes |
| that incudes processing type extensions. A type extension is |
| processed by first calling Record_Hole_Check recursively on the |
| parent type to compute the bit number after the last component |
| of the parent. |
| |
| 2019-08-19 Gary Dismukes <dismukes@adacore.com> |
| |
| * checks.adb (Length_Mismatch_Info_Message): New function in |
| Selected_Length_Checks to return a message indicating the |
| element counts for the mismatched lengths for a failed |
| compile-time length check. |
| (Plural_Or_Singular_Ending): Support function in |
| Length_Mismatch_Info_Message to return either "" or "s", for |
| concatenating to the end of words. |
| (Selected_Length_Checks): Pass the result of |
| Length_Mismatch_Info_Message as an extra warning message to |
| Compile_Time_Constraint_Error to indicate the mismatched lengths |
| for a failed compile-time length check. |
| * sem_util.ads (Compile_Time_Constraint_Error): Add an optional |
| message formal (Extra_Msg), defaulted to the empty string. |
| * sem_util.adb (Compile_Time_Constraint_Error): Output an extra |
| message following the main warning message (when Extra_Msg is |
| not the empty string). |
| |
| 2019-08-19 Patrick Bernardi <bernardi@adacore.com> |
| |
| * socket.c: Removed the redefinition of getaddrinfo, getnameinfo |
| and freeaddrinfo to internal VxWorks kernel calls because they |
| are, well, internal kernel calls and cannot be called from RTPs. |
| VxWorks provides the necessary components to call these routines |
| directly. |
| |
| 2019-08-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_dist.adb (Is_Generic_Actual_Subtype): New predicate. |
| (Build_From_Any_Call, Build_To_Any_Call, Build_TypeCode_Call): |
| Use it instead of Is_Generic_Actual_Type flag to detect subtypes |
| representing generic actual types. |
| |
| 2019-08-19 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_warn.adb (Check_References, Generic_Body_Formal): When a |
| formal parameter of a generic subprogram is not referenced in |
| the body, place the corresponding warning on the corresponding |
| entity in the specification of the generic body, as is done for |
| non-generic subprograms. |
| |
| 2019-08-19 Bob Duff <duff@adacore.com> |
| |
| * errout.ads (Size_Too_Small_Message): New constant. |
| * errout.adb, freeze.adb, sem_ch13.adb: Use it. |
| |
| 2019-08-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_dist.adb (Build_Package_Stubs): Do not specifically visit |
| the declarations of an N_Subprogram_Instantiation node. |
| |
| 2019-08-19 Bob Duff <duff@adacore.com> |
| |
| * doc/gnat_ugn/gnat_utility_programs.rst: Document missing |
| metrics switches. |
| |
| 2019-08-19 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_ch12.adb (Get_Unit_Instantiation_Node): Simplify Nkind_In |
| membership test. |
| * sem.adb (Depends_On_Main): Whitespace cleanup; only assign a |
| local variable if needed. |
| |
| 2019-08-19 Claire Dross <dross@adacore.com> |
| |
| * sem_spark.ads, sem_spark.adb (Is_Pledge_Function): New |
| parameter of the generic. Function used to decide whether a |
| function is a pledge function. |
| (Check_Not_Borrowed): Disable check inside the second parameter |
| of a pledge function for the path borrowed by the first |
| parameter. Also disable checks for entities inside a Global |
| contract. |
| |
| 2019-08-19 Joffrey Huguet <huguet@adacore.com> |
| |
| * libgnat/a-cfdlli.ads, libgnat/a-cfhama.ads, |
| libgnat/a-cfinve.ads, libgnat/a-cforma.ads, |
| libgnat/a-cofove.ads, libgnat/a-cofuma.ads, |
| libgnat/a-cofuve.ads: Add formal function parameter "=" (L, R : |
| Element_Type) to the generic packages. |
| |
| 2019-08-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * opt.ads: Clean up left-overs of earlier implementation in |
| comment: |
| |
| 2019-08-19 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch3.adb (Derived_Enumeration_Type): Do no freeze anonymous |
| base type if the bounds in the derived type declaration are |
| literals of the type. |
| |
| 2019-08-19 Yannick Moy <moy@adacore.com> |
| |
| * sem_res.adb (Resolve_Call): Check non-aliasing rules before |
| GNATprove inlining. |
| |
| 2019-08-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * inline.adb (Add_Inlined_Body): Do not add pending |
| instantiations. |
| * sem_ch12.adb (Needs_Body_Instantiated): New predicate. |
| (Analyze_Package_Instantiation): Use it to decide whether to add |
| a pending instantiation for the body of the package. |
| |
| 2019-08-19 Olivier Hainque <hainque@adacore.com> |
| |
| * gcc-interface/trans.c (Acc_Loop_to_gnu): Return the openacc |
| BIND_EXPR node we have constructed on purpose. Remove unused |
| variable. |
| |
| 2019-08-19 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * gcc-interface/lang.opt (fdump-scos): Define. |
| * gcc-interface/misc.c (gnat_handle_option): Handle |
| OPT_fdump_scos. |
| |
| 2019-08-14 Joffrey Huguet <huguet@adacore.com> |
| |
| * libgnat/a-cofuba.ads: Add a Length attribute to type |
| Container. Add a type Array_Base which replaces the previous |
| Elements attribute of Container. |
| (Content_Init): New subprogram. It is used to initialize the |
| Base attribute of Container. |
| * libgnat/a-cofuba.adb (Resize): New subprogram. It is used to |
| resize the underlying array of a container if necessary. |
| (=, <=, Find, Get, Intersection, Length, Num_Overlaps, Set, |
| Union): Update to match changes in type declarations. |
| (Add): Modify body to damp the time and space cost in a specific |
| case. |
| (Content_Init): New subprogram. It is used to initialize the |
| Base attribute of Container. |
| (Remove): Modify body to damp the time and space cost in a |
| specific case. |
| |
| 2019-08-14 Bob Duff <duff@adacore.com> |
| |
| * sem_ch13.adb (Get_Alignment_Value): Return 1 for Alignment 0, |
| and do not give an error. |
| * doc/gnat_rm/representation_clauses_and_pragmas.rst: Update the |
| corresponding documentation. |
| * gnat_rm.texi: Regenerate. |
| |
| 2019-08-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * inline.adb (Add_Pending_Instantiation): Fix off-by-one error |
| in the comparison against the maximum number of instantiations. |
| |
| 2019-08-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * inline.adb (Add_Pending_Instantiation): Use greater-or-equal |
| in the comparison against the maximum number of instantiations. |
| |
| 2019-08-14 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_aux.adb (Next_Rep_Item): If a node in the rep chain |
| involves a Ghost aspect it may have been replaced by a null |
| statement; use the original node to find next Rep_Item. |
| * repinfo.adb (List_Entities): Do not list an Ignored |
| Ghost_Entity, for which information may have been deleted. |
| |
| 2019-08-14 Bob Duff <duff@adacore.com> |
| |
| * sem_prag.ads, sem_prag.adb |
| (Process_Compile_Time_Warning_Or_Error): In parameterless |
| version, improve detection of whether we are in a generic unit |
| to cover the case of an instance within a generic unit. |
| (Process_Compile_Time_Warning_Or_Error): Rename the |
| two-parameter version to be |
| Validate_Compile_Time_Warning_Or_Error, and do not export it. |
| Issue a warning if the condition is not known at compile time. |
| The key point is that the warning must be given only for pragmas |
| deferred to the back end, because the back end discovers |
| additional values that are known at compile time. Previous |
| changes in this ticket have enabled this by deferring to the |
| back end without checking for special cases such as 'Size. |
| (Validate_Compile_Time_Warning_Or_Error): Rename to be |
| Defer_Compile_Time_Warning_Error_To_BE. |
| * warnsw.ads, warnsw.adb (Warn_On_Unknown_Compile_Time_Warning): |
| Add new switches -gnatw_c and -gnatw_C to control the above |
| warning. |
| * doc/gnat_ugn/building_executable_programs_with_gnat.rst: |
| Document new switches. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2019-08-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch12.adb (Might_Inline_Subp): Rework comment and restrict |
| the shortcut based on Is_Inlined to the back-end inlining case. |
| |
| 2019-08-14 Bob Duff <duff@adacore.com> |
| |
| * inline.adb (Check_And_Split_Unconstrained_Function): Ignore |
| protected functions to get rid of spurious error. The |
| transformation done by this procedure triggers legality errors |
| in the generated code in this case. |
| |
| 2019-08-14 Bob Duff <duff@adacore.com> |
| |
| * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Defer |
| processing to the back end in all cases where the pragma's |
| condition is not known at compile time during the front end |
| (except in generics), as opposed to detecting 'Size attributes |
| and the like. This ensures that we take advantage of whatever |
| can be compile-time known after running the back end, as opposed |
| to having the front end guess what the back end can do. Remove |
| a little duplicated code at the call site. |
| * gnat1drv.adb (Post_Compilation_Validation_Checks): Unlock the |
| Elists while in Validate_Compile_Time_Warning_Errors, because it |
| does analysis and name resolution, which sometimes involves |
| adding Elists. |
| |
| 2019-08-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * einfo.ads (Is_Called): Document new usage on E_Package |
| entities. |
| * einfo.adb (Is_Called): Accept E_Package entities. |
| (Set_Is_Called): Likewise. |
| * exp_ch6.adb (Expand_Call_Helper): Move code dealing with |
| instances for back-end inlining to Add_Inlined_Body. |
| * inline.ads: Remove with clauses for Alloc and Table. |
| (Pending_Instantiations): Move to... |
| * inline.adb: Add with clauses for Alloc, Uintp, Table and |
| GNAT.HTable. |
| (Backend_Instances): New variable. |
| (Pending_Instantiations): ...here. |
| (Called_Pending_Instantiations): New table. |
| (Node_Table_Size): New constant. |
| (Node_Header_Num): New subtype. |
| (Node_Hash): New function. |
| (To_Pending_Instantiations): New hash table. |
| (Add_Inlined_Body): Bail out early for subprograms in the main |
| unit or subunit. Likewise if the Is_Called flag is set. If the |
| subprogram is an instance, invoke Add_Inlined_Instance. Call |
| Set_Is_Called earlier. If the subrogram is within an instance, |
| invoke Add_Inlined_Instance. Also deal with the case where the |
| call itself is within an instance. |
| (Add_Inlined_Instance): New procedure. |
| (Add_Inlined_Subprogram): Remove conditions always fulfilled. |
| (Add_Pending_Instantiation): Move the defence against ludicruous |
| number of instantiations to here. When back-end inlining is |
| enabled, associate an instantiation with its index in table and |
| mark a few selected kinds of instantiations as always needed. |
| (Initialize): Set Backend_Instances to No_Elist. |
| (Instantiate_Body): New procedure doing the work extracted |
| from... |
| (Instantiate_Bodies): ...here. When back-end inlining is |
| enabled, loop over Called_Pending_Instantiations instead of |
| Pending_Instantiations. |
| (Is_Nested): Minor tweak. |
| (List_Inlining_Info): Also list the contents of |
| Backend_Instances. |
| * sem_ch12.adb (Might_Inline_Subp): Return early if Is_Inlined |
| is set and otherwise set it before returning true. |
| (Analyze_Package_Instantiation): Remove the defence against |
| ludicruous number of instantiations. Invoke |
| Remove_Dead_Instance instead of doing the removal manually if |
| there is a guaranteed ABE. |
| |
| 2019-08-14 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_ch3.adb (Predef_Spec_Or_Body): For an equality operation |
| of an interface type, create an expression function (that |
| returns False) rather than declaring an abstract function. |
| * freeze.adb (Check_Inherited_Conditions): Set Needs_Wrapper to |
| False unconditionally at the start of the loop creating wrappers |
| for inherited operations. |
| |
| 2019-08-14 Bob Duff <duff@adacore.com> |
| |
| * table.adb: Assert that the table is not locked when increasing |
| Last, even if it doesn't cause reallocation. In other words, |
| assert that on operations that MIGHT cause reallocation. |
| * table.ads: Fix comment accordingly. |
| |
| 2019-08-14 Arnaud Charlet <charlet@adacore.com> |
| |
| * doc/gnat_ugn/gnat_and_program_execution.rst: Remove |
| documentation of gnatelim. |
| |
| 2019-08-14 Bob Duff <duff@adacore.com> |
| |
| * sem_prag.adb (Validate_Compile_Time_Warning_Error): Attach the |
| warning to the Sloc of the first pragma argument, rather than to |
| the pragma itself. This is to make pragmas processed after the |
| back end use the same Sloc as pragmas processed earlier, in the |
| front end. There's no reason for this discrepancy, and it |
| hinders further work on this ticket. |
| |
| 2019-08-14 Bob Duff <duff@adacore.com> |
| |
| * sem.ads (Inside_A_Generic): Remove the ??? comment. |
| |
| 2019-08-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * inline.ads (Pending_Descriptor): Delete. |
| * inline.adb (Initialize): Do not initialize it. |
| * sem_ch12.adb (Delay_Descriptors): Delete. |
| (Analyze_Package_Instantiation): Call |
| Set_Delay_Subprogram_Descriptors instead of Delay_Descriptors |
| throughout. |
| |
| 2019-08-14 Bob Duff <duff@adacore.com> |
| |
| * exp_aggr.adb (Init_Hidden_Discriminants): Avoid processing the |
| wrong discriminant, which could be of the wrong type. |
| |
| 2019-08-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch12.adb (Analyze_Instance_And_Renamings): Do not reset |
| the Is_Generic_Instance flag previously set on the package |
| generated for the instantiation of a generic subprogram. |
| |
| 2019-08-14 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_ch4.adb (Expand_N_Quantified_Expression): Freeze |
| explicitly the type of the loop parameter. |
| |
| 2019-08-14 Javier Miranda <miranda@adacore.com> |
| |
| * sem_util.adb (New_Copy_Tree.Copy_Node_With_Replacement): |
| Update the Chars attribute of identifiers. |
| |
| 2019-08-14 Yannick Moy <moy@adacore.com> |
| |
| * sem_spark.adb, sem_spark.ads (Is_Legal): New function exposed |
| for use in GNATprove, to test legality rules not related to |
| permissions. |
| (Check_Declaration_Legality): Extract the part of |
| Check_Declaration that checks rules not related to permissions. |
| (Check_Declaration): Call the new Check_Declaration_Legality. |
| (Check_Type_Legality): Rename of Check_Type. Introduce |
| parameters to force or not checking, and update a flag detecting |
| illegalities. |
| (Check_Node): Ignore attribute references in statement position. |
| |
| 2019-08-14 Yannick Moy <moy@adacore.com> |
| |
| * sem_spark.adb (Check_Old_Loop_Entry): New procedure to check |
| correct use of Old and Loop_Entry. |
| (Check_Node): Check subprogram contracts. |
| (Check_Pragma): Check Loop_Variant. |
| (Check_Safe_Pointers): Apply checking to library-level |
| subprogram declarations as well, in order to check their |
| contract. |
| |
| 2019-08-14 Yannick Moy <moy@adacore.com> |
| |
| * sem_spark.adb (Is_Subpath_Expression): Take into account |
| conversion and qualification. |
| |
| 2019-08-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch7.adb (Install_Private_Declarations) |
| <Swap_Private_Dependents>: Do not rely solely on the |
| Is_Child_Unit flag on the unit to recurse. |
| (Uninstall_Declarations) <Swap_Private_Dependents>: New |
| function. Use it to recurse on the private dependent entities |
| for child units. |
| |
| 2019-08-14 Javier Miranda <miranda@adacore.com> |
| |
| * exp_aggr.adb (Is_CCG_Supported_Aggregate): Return False for |
| arrays with bounds not known at compile time. |
| |
| 2019-08-14 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_util.adb (New_Copy_Tree, Visit_Entity): A quantified |
| expression includes the implicit declaration of the loop |
| parameter. When a quantified expression is copied during |
| expansion, for example when building the precondition code from |
| the generated pragma, a new loop parameter must be created for |
| the new tree, to prevent duplicate declarations for the same |
| symbol. |
| |
| 2019-08-14 Yannick Moy <moy@adacore.com> |
| |
| * sem_disp.adb (Check_Dispatching_Operation): Update assertion |
| for the separate declarations created in GNATprove mode. |
| * sem_disp.ads (Is_Overriding_Subprogram): Update comment. |
| * sem_elab.adb (SPARK_Processor): Fix test for checking of |
| overriding primitives. |
| |
| 2019-08-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * inline.adb (Add_Inlined_Body): Tweak comments. |
| (List_Inlining_Info): Also list information about non-main |
| units. |
| |
| 2019-08-14 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_ch4.adb (Analyze_Selected_Component): In the case where |
| the prefix is of a concurrent type, and the selected entity |
| matching the selector is the first private declaration of the |
| type (such as the first local variable in a task's body), set |
| Is_Private_Op. |
| |
| 2019-08-14 Piotr Trojanek <trojanek@adacore.com> |
| |
| * einfo.adb (Is_Generic_Actual_Subprogram): Replace repeated |
| calls to Ekind with Ekind_In. |
| |
| 2019-08-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR middle-end/91421 |
| * gcc-interface/trans.c (gigi): Call set_decl_buillt_in_function. |
| (Call_to_gnu): Use DECL_FE_FUNCTION_CODE instead of DECL_FUNCTION_CODE. |
| |
| 2019-08-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * ali.ads (Linker_Option_Record): Remove Original_Pos component. |
| * ali.adb (Scan_ALI): Do not set it. |
| |
| 2019-08-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch3.adb (Build_Derived_Concurrent_Type): Add a couple of |
| local variables and use them. When the derived type fully |
| constrains the parent type, rewrite it as a subtype of an |
| implicit (unconstrained) derived type instead of the other way |
| around. |
| (Copy_And_Build): Deal with concurrent types and use predicates. |
| (Build_Derived_Private_Type): Build the full derivation if |
| needed for concurrent types too. |
| (Build_Derived_Record_Type): Add marker comment. |
| (Complete_Private_Subtype): Use predicates. |
| |
| 2019-08-13 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch3.adb (Check_Generic_Ancestor): New subprogram, |
| aubsidiary to Build_Derived_Record_Type. to enforce the rule |
| that a type extension declared in a generic body cznnot have an |
| ancestor that is a generic formal (RM 3.9.1 (4/2)). The rule |
| applies to all ancestors of the type, including interface |
| progenitors. |
| |
| 2019-08-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch3.adb (Build_Underlying_Full_View): Delete. |
| (Complete_Private_Subtype): Do not set the full view on the |
| private subtype here. If the full base is itself derived from |
| private, do not re-derive the parent type but instead constrain |
| an existing underlying full view. |
| (Prepare_Private_Subtype_Completion): Do not get to the |
| underlying full view, if any. Set the full view on the private |
| subtype here. |
| (Process_Full_View): Likewise. |
| * sem_ch12.adb (Check_Generic_Actuals): Also set |
| Is_Generic_Actual_Type on the full view if the type of the |
| actual is private. |
| (Restore_Private_Views): Also reset Is_Generic_Actual_Type on |
| the full view if the type of the actual is private. |
| * sem_eval.adb (Subtypes_Statically_Match): Remove bypass for |
| generic actual types. |
| |
| 2019-08-13 Javier Miranda <miranda@adacore.com> |
| |
| * sem_res.adb (Resolve_Selected_Component): When the type of the |
| component is an access to a class-wide type and the type of the |
| context is an access to a tagged type the relevant type is that |
| of the component (since in such case we may need to generate |
| implicit type conversions or dispatching calls). |
| |
| 2019-08-13 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Preanalyze |
| expression, rather do a full analysis, to prevent unwanted |
| removal of side effects which mask the intent of the expression. |
| |
| 2019-08-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * impunit.adb (Non_Imp_File_Names_95): Add |
| GNAT.Branch_Prediction. |
| |
| 2019-08-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch6.adb: Remove with and use clauses for Sem_Ch12. |
| (Expand_Call_Helper): Swap the back-end inlining case and the |
| special front-end expansion case. In back-end inlining mode, do |
| not invoke Add_Inlined_Body unless the call may be inlined. |
| * inline.ads (Add_Pending_Instantiation): New function moved |
| from... |
| * inline.adb (Add_Inlined_Body): Simplify comment. Turn test on |
| the enclosing unit into assertion. |
| (Add_Pending_Instantiation): New function moved from... |
| * sem_ch12.ads (Add_Pending_Instantiation): ...here. |
| * sem_ch12.adb (Add_Pending_Instantiation): ...here. |
| |
| 2019-08-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem.adb (Do_Analyze): Recompute Style_Check_Max_Line_Length |
| after restoring Style_Max_Line_Length. |
| |
| 2019-08-13 Arnaud Charlet <charlet@adacore.com> |
| |
| * sem_ch13.adb (Check_Iterator_Functions): Protect against |
| cascaded errors. |
| |
| 2019-08-13 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch8.adb (Analyze_Subprogram_Renaming): Do no suppress mode |
| conformance checks on child unit instance that is a compilation |
| unit. |
| |
| 2019-08-13 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_dbug.adb (Fully_Qualify_Name): Add full name qualification |
| for the E_Exception case. |
| |
| 2019-08-13 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_aggr.adb (Aggr_Size_OK): Compute the aggregate size using |
| universal arithmetic, to avoid situations where the size |
| computation overflows. |
| |
| 2019-08-13 Justin Squirek <squirek@adacore.com> |
| |
| * repinfo.adb (List_Scalar_Storage_Order): Modify conditionals |
| for displaying ordering to always be triggered when -gnatR4 is |
| in effect. |
| |
| 2019-08-13 Justin Squirek <squirek@adacore.com> |
| |
| * aspects.adb, aspects.ads: Register new aspect. |
| * par-prag.adb (Prag): Register new pragma |
| * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing |
| for new aspect similar to Aspect_Max_Entry_Queue_Length. |
| * sem_prag.adb, sem_prag.ads (Analyze_Pragma): Register new |
| pragma and set it to use the same processing as |
| Pragma_Max_Queue_Length. |
| * snames.ads-tmpl: Move definition of |
| Name_Max_Entry_Queue_Length so that it can be processed as a |
| pragma in addition to a restriction and add an entry for the |
| pragma itself. |
| |
| 2019-08-13 Yannick Moy <moy@adacore.com> |
| |
| * sem_ch4.adb (Analyze_Allocator): Do not insert subtype |
| declaration for allocator inside a spec expression. |
| |
| 2019-08-13 Yannick Moy <moy@adacore.com> |
| |
| * sem_res.adb (Resolve_Call): Do not inline calls inside record |
| types. |
| |
| 2019-08-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch4.adb (Analyze_One_Call): Remove bypass for type |
| mismatch in nested instantiations. |
| * sem_ch8.adb (Find_Nearer_Entity): New function. |
| (Find_Renamed_Entity): Use it to disambiguate the candidates for |
| the renaming generated for an instantiation when it is |
| ambiguous. |
| |
| 2019-08-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gnat1drv.adb (Adjust_Global_Switches): Do not set |
| Back_End_Inlining in ASIS mode either. |
| |
| 2019-08-13 Olivier Hainque <hainque@adacore.com> |
| |
| * libgnat/s-win32.ads: Define size_t and fix the MapViewOfFile |
| binding to use it instead of DWORD for the dwNumberOfBytesToMap |
| argument. |
| * libgnat/g-sercom__mingw.adb (Read): State which definition of |
| size_t to fetch in call to Last_Index. |
| |
| 2019-08-13 Arnaud Charlet <charlet@adacore.com> |
| |
| * gcc-interface/Make-lang.in: Remove unused TRACE variable. Pass |
| LN_S to relevant gnatlib targets. |
| * gcc-interface/Makefile.in: Systematically pass LN_S to |
| relevant gnatlib targets. |
| |
| 2019-08-13 Yannick Moy <moy@adacore.com> |
| |
| * sem_dim.adb (Analyze_Dimension, |
| Analyze_Dimension_Array_Aggregate, Analyze_Dimension_Call, |
| Analyze_Dimension_Extension_Or_Record_Aggregate): Return |
| immediately when inside an inlined body. |
| * sem_res.adb (Resolve_Call): Remove special checking now done |
| inside Analyze_Dimension_Call. |
| |
| 2019-08-13 Justin Squirek <squirek@adacore.com> |
| |
| * exp_ch4.adb (Expand_N_Allocator): Add condition to detect |
| library-level object declarations |
| |
| 2019-08-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/gnat_ugn/building_executable_programs_with_gnat.rst |
| (-gnateT): Document Double_Float_Alignment parameter and fix |
| description of Double_Scalar_Alignment parameter. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2019-08-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch6.adb (Expand_Call_Helper): If back-end inlining is |
| enabled, also instantiate the body of a generic unit containing |
| a subprogram subject to aspect/pragma Inline_Always at |
| optimization level zero. |
| * sem_ch12.adb (Might_Inline_Subp): Minor tweak. |
| (Analyze_Package_Instantiation): Do not instantiate the package |
| body because of inlining considerations if the instantiation is |
| done in a generic unit. Move around similar condition involving |
| the main unit. Add test on Back_End_Inlining to processing for |
| front-end inlining. |
| |
| 2019-08-13 Javier Miranda <miranda@adacore.com> |
| |
| * exp_disp.adb (Make_Secondary_DT): Handle record type |
| derivations that have interface components located at fixed |
| positions and interface components located at variable offset. |
| The offset of components located at fixed positions is computed |
| using the dummy object (similar to the case where all the |
| interface components are located at fixed positions). |
| (Make_DT): Build the dummy object for all tagged types that |
| implement interface types (that is, build it also for types with |
| variable size components), and use the dummy object to compute |
| the offset of all tag components located at fixed positions when |
| initializing the Interface_Table object. |
| |
| 2019-08-13 Justin Squirek <squirek@adacore.com> |
| |
| * gnatcmd.adb (GNATCmd): Add constant for new compiler switch |
| --help-ada, and include usage subprogram. Add line to usage help |
| explaining the new flag. |
| (GNATCmd_Usage): Rename from locally declared Usage so as not to |
| confuse with the newly imported version. Add new argument case |
| for --help-ada and add bug report email to implicit display of |
| help without the --help flag so as to unify output between the |
| two cases. |
| |
| 2019-08-13 Dmitriy Anisimkov <anisimko@adacore.com> |
| |
| * libgnat/g-comlin.adb (Getopt): Quote unrecognized switch in |
| Invalid_Switch exception message. |
| |
| 2019-08-13 Yannick Moy <moy@adacore.com> |
| |
| * sem_util.adb (Traverse_More_Func): Take into account |
| Loop_Actions inside N_Iterated_Component_Association nodes. |
| * sinfo.ads: Document correctly Loop_Actions as a field of nodes |
| of kind N_Iterated_Component_Association. |
| |
| 2019-08-13 Claire Dross <dross@adacore.com> |
| |
| * libgnat/a-cfinve.adb, libgnat/a-cofove.adb (Find_Index, |
| Reverse_Find_Index): Use bigger type to avoid range check |
| failure at the last loop iteration. |
| |
| 2019-08-12 Dmitriy Anisimkov <anisimko@adacore.com> |
| |
| * libgnat/g-socket.adb (Is_IPv6_Address): Check that no less |
| then 2 colons in IPv6 numeric address. |
| |
| 2019-08-12 Dmitriy Anisimkov <anisimko@adacore.com> |
| |
| * libgnat/g-comlin.ads, libgnat/g-comlin.adb (Getopt): Add |
| parameter Quiet. Need to do not output error messages to |
| console. Invalid_Switch exception generation surrounded by an |
| error message. |
| |
| 2019-08-12 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_ch6.adb (Expand_Actuals. Add_Call_By_Copy_Code): Add code |
| to generate proper checks when an actual for an in-out or out |
| parameter has a non-null access type. No constraints are |
| applied to an inbound access parameter, but on exit a not-null |
| check must be performed if the type of the actual requires it. |
| |
| 2019-08-12 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_util.adb (Is_Expaned_Priority_Attribute): Check whether |
| call comes from a rewritten attribute before comparing name with |
| Get_Ceiling run-time subprogram. |
| |
| 2019-08-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_util.ads (Component_May_Be_Bit_Aligned): Small comment |
| tweaks. |
| (Possible_Bit_Aligned_Component): Likewise. |
| (Type_May_Have_Bit_Aligned_Components): Likewise. |
| * exp_util.adb (Component_May_Be_Bit_Aligned): Likewise. |
| (Possible_Bit_Aligned_Component): Likewise. |
| (Type_May_Have_Bit_Aligned_Components): Likewise. |
| |
| 2019-08-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch4.adb (Expand_N_Op_Eq): Expand the array equality if |
| either operand is a possibly unaligned slice. |
| * exp_ch6.adb (Expand_Simple_Function_Return): Do not generate a |
| copy for a possibly unaligned object if it is represented as a |
| scalar. |
| * exp_util.adb (Is_Possibly_Unaligned_Slice): Do not always |
| return false if the target doesn't have strict alignment. |
| |
| 2019-08-12 Bob Duff <duff@adacore.com> |
| |
| * sem_ch12.adb (Instantiate_Package_Body): Remove suppression of |
| checks in instances of internal units. |
| * sem_ch6.adb (Analyze_Function_Return): Do not generate a |
| constraint check on an extended_return_statement if the subtype |
| of the return object in the statement is identical to the return |
| subtype of the function. |
| |
| 2019-08-12 Bob Duff <duff@adacore.com> |
| |
| * libgnat/a-cbmutr.adb (Is_Reachable): Declare Idx to be of the |
| base subtype. Clearly it makes no sense to loop "while Idx >= |
| 0", if Idx is of a nonnegative subtype. |
| |
| 2019-08-12 Bob Duff <duff@adacore.com> |
| |
| * libgnat/a-tifiio.adb (Put_Scaled): Prevent AA from being |
| negative, since Field is range 0 .. something. |
| |
| 2019-08-12 Bob Duff <duff@adacore.com> |
| |
| * doc/gnat_ugn/gnat_utility_programs.rst (gnatmetric, gnatpp, |
| gnatstub): Remove documentation for Ada language version |
| switches, and note that they are no longer needed. |
| |
| 2019-08-12 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_ch5.adb (Prepare_Param_Spec_Loop): Set the parents of the |
| copied low and high bounds in the case where the loop range is |
| given by a discrete_subtype_indication, to prevent hanging (or |
| Assert_Failure) in Insert_Actions. |
| |
| 2019-08-12 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch6.adb (heck_Untagged_Equality): Verify that user-defined |
| equality has the same profile as the predefined equality before |
| applying legality rule in RM 4.5.2 (9.8). |
| |
| 2019-08-12 Bob Duff <duff@adacore.com> |
| |
| * libgnat/a-except.ads: Update obsolete comment, still making |
| clear that this is a variant. Add explicit default for Id |
| component of Exception_Occurrence, because that value is used. |
| Define Null_Occurrence less redundantly. |
| * libgnat/a-einuoc.adb: Minor simplification of code. |
| |
| 2019-08-12 Justin Squirek <squirek@adacore.com> |
| |
| * libgnat/a-dhfina.adb, libgnat/a-dhfina.ads (Is_Simple_Name, |
| Is_Root_Directory, Is_Parent_Directory, |
| Is_Current_Directory_Name, Is_Relative_Name, Initial_Directory, |
| Relative_Name, Compose): Add implementation and documentation. |
| * libgnat/a-direct.adb (Containing_Directory): Modify routine to |
| use routines from Ada.Directories.Hierarchical_File_Names and |
| remove incorrect special case for parent directories. |
| (Fetch_Next_Entry): Add check for current directory and parent |
| directory and ignore them under certain circumstances. |
| (Simple_Nmae): Add check for null result from |
| Simple_Name_Internal and raise Name_Error. |
| (Simple_Name_Internal): Add explicit check for root directories, |
| sanitize trailing directory separators, and modify behavior so |
| that current and parent directories are considered valid |
| results. |
| * Makefile.rtl: Add entry to GNATRTL_NONTASKING_OBJS. |
| |
| 2019-08-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * freeze.adb (Freeze_Entity): Give the same error for an |
| Object_Size clause on a variable-sized type as for a Size |
| clause. |
| |
| 2019-08-12 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_prag.adb (Analyze_Pragma, Pragma_Suppress_Initialization): |
| For private types, set the Suppress_Initialization flag on the |
| Full_View of the entity rather than the entity's base type. |
| |
| 2019-08-12 Yannick Moy <moy@adacore.com> |
| |
| * aspects.adb, aspects.ads (Aspect_No_Caching): New aspect. |
| * contracts.adb, contracts.ads (Add_Contract_Item): Add handling |
| of No_Caching. |
| (Analyze_Object_Contract): Add handling of No_Caching. |
| * einfo.adb, einfo.ads |
| (Get_Pragma): Add handling of No_Caching. |
| * doc/gnat_rm/implementation_defined_aspects.rst, |
| doc/gnat_rm/implementation_defined_pragmas.rst: Document new |
| aspect/pragma. |
| * gnat_rm.texi: Regenerate. |
| * par-prag.adb (Prag): New pragma Pragma_No_Caching. |
| * sem_ch13.adb (Analyze_Aspect_Specifications, |
| Check_Aspect_At_Freeze_Point): Add handling of No_Caching. |
| * sem_prag.adb (Analyze_Pragma): Deal with pragma No_Caching. |
| * sem_prag.ads (Analyze_External_Property_In_Decl_Part): Now |
| applies to No_Caching. |
| * sem_util.adb, sem_util.ads (Is_Effectively_Volatile): Add |
| handling of No_Caching. |
| (No_Caching_Enabled): New query function. |
| * snames.ads-tmpl: New names for pragma. |
| |
| 2019-08-12 Yannick Moy <moy@adacore.com> |
| |
| * sem_util.adb, sem_util.ads (Traverse_More_Func, |
| Traverse_More_Proc): Add formal parameter for Itypes traversal. |
| |
| 2019-08-12 Yannick Moy <moy@adacore.com> |
| |
| * exp_attr.adb, exp_attr.ads (Expand_Size_Attribute): New |
| procedure to share part of the attribute expansion with |
| GNATprove mode. |
| (Expand_N_Attribute_Reference): Extract part of the |
| Size/Object_Size expansion in the new procedure |
| Expand_Size_Attribute. |
| * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Expand |
| Size/Object_Size attributes using the new procedure |
| Expand_Size_Attribute. |
| |
| 2019-08-12 Yannick Moy <moy@adacore.com> |
| |
| * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Only |
| expand Enum_Rep attribute when its parameter is a literal. |
| |
| 2019-08-12 Justin Squirek <squirek@adacore.com> |
| |
| * sem_eval.adb (Check_Non_Static_Context): Add a condition to |
| determine if a range violation constitues a warning or an error. |
| (Out_Of_Range): Add a condition to determine if a range |
| violation constitues a warning or an error. |
| |
| 2019-08-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch4.adb (Real_Range_Check): Do not rewrite the conversion |
| node but its expression instead, after having fetched its |
| current value. Clear the Do_Range_Check flag on entry. Return |
| early for a rewritten float-to-float conversion. Remove |
| redundant local variable. Suppress all checks when inserting |
| the temporary and do not reanalyze the node. |
| |
| 2019-08-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sprint.ads: Minor comment tweak. |
| |
| 2019-08-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * checks.adb (Insert_Valid_Check): Do not retrieve the |
| Do_Range_Check flag from the Original_Node but from the |
| Validated_Object. Remove useless bypass for floating-point |
| types. |
| |
| 2019-08-12 Yannick Moy <moy@adacore.com> |
| |
| * sem_util.adb, sem_util.ads (Traverse_More_Func, |
| Traverse_More_Proc): New traversal subprograms. |
| |
| 2019-08-12 Jerome Lambourg <lambourg@adacore.com> |
| |
| * libgnarl/s-taprop__vxworks.adb (Abort_Handler): Only call |
| s-tpopsp.Self when actually needed. |
| |
| 2019-08-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch4.adb (Discrete_Range_Check): Return if checks are |
| suppressed. |
| |
| 2019-08-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_res.adb: Add with & use clause for Sem_Mech and |
| alphabetize. |
| (Resolve_Actuals): Do not apply a scalar range check for the |
| source of a conversion whose result is passed by reference to a |
| valued procedure. |
| |
| 2019-08-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * checks.adb (Insert_Valid_Check): Reset the Do_Range_Check flag |
| on the validated object. |
| * exp_ch6.adb (Add_Call_By_Copy_Code): Reset the Do_Range_Check |
| flag on the actual here, as well as on the Expression if the |
| actual is a N_Type_Conversion node. |
| (Add_Validation_Call_By_Copy_Code): Generate the incoming range |
| check if needed and reset the Do_Range_Check flag on the |
| Expression if the actual is a N_Type_Conversion node. |
| (Expand_Actuals): Do not reset the Do_Range_Check flag here. |
| Generate the incoming range check for In parameters here instead |
| of... |
| (Expand_Call_Helper): ...here. Remove redudant condition. |
| * sem_res.adb (Resolve_Actuals): Use local variable A_Typ and |
| remove obsolete comments. |
| (Resolve_Type_Conversion): Do not force the Do_Range_Check flag |
| on the operand if range checks are suppressed. |
| |
| 2019-08-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * checks.adb (Activate_Range_Check): Remove redundant argument. |
| (Generate_Range_Check): Likewise. |
| (Apply_Float_Conversion_Check): Reset the Do_Range_Check flag on |
| entry and remove redundant condition. |
| |
| 2019-08-02 Alexandre Oliva <oliva@adacore.com> |
| |
| * libgnat/a-exexpr.adb (Begin_Handler_v1, End_Handler_v1): New. |
| (Claimed_Cleanup): New. |
| (Begin_Handler, End_Handler): Document. |
| * gcc-interface/trans.c (gigi): Switch to exception handler |
| ABI #1. |
| (Exception_Handler_to_gnu_gcc): Save the original cleanup |
| returned by begin handler, pass it to end handler, and use |
| EH_ELSE_EXPR to pass a propagating exception to end handler. |
| (gnat_to_gnu): Leave the exception pointer alone for reraise. |
| (add_cleanup): Handle EH_ELSE_EXPR, require it by itself. |
| |
| 2019-07-23 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations, |
| Freeze_Entity_Checks): Include Aspect_CPU with other aspects |
| whose expresssion may depend on a discriminant, and thus require |
| that components of the type be made visible. |
| |
| 2019-07-23 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * checks.adb (Convert_And_Check_Range): Add Suppress parameter |
| and pass it in the call to Insert_Actions. Rename local |
| variable. |
| (Generate_Range_Check): Minor comment fixes. Pass Range_Check |
| in the first call to Convert_And_Check_Range and All_Checks in |
| the second call. |
| * exp_ch4.adb (Expand_N_Type_Conversion): Reset the |
| Do_Overflow_Check flag in the float-to-float case too if there |
| is also a range check. |
| |
| 2019-07-23 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * checks.adb (Activate_Overflow_Check): Remove redundant |
| argument. |
| * exp_ch4.adb (Discrete_Range_Check): Reset the overflow flag. |
| (Expand_N_Type_Conversion): Do not reset it here. |
| |
| 2019-07-23 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * repinfo.adb (List_Component_Layout): Pass Decimal to UI_Write. |
| (Write_Val): Likewise. |
| |
| 2019-07-23 Ed Schonberg <schonberg@adacore.com> |
| |
| * aspects.ads: New table Operational_Aspect, used to distinguish |
| between aspects that are view-specific, such as those related to |
| iterators, and representation aspects that apply to all views of |
| a type. |
| * aspects.adb (Find_Aspect): If the aspect being sought is |
| operational, do not ecamine the full view of a private type to |
| retrieve it. |
| * sem_ch5.adb (Analyze_Iterator_Specification): Improve error |
| message when the intended domain of iteration does not implement |
| the required iterator aspects. |
| |
| 2019-07-23 Yannick Moy <moy@adacore.com> |
| |
| * sem_spark.ads (Is_Local_Context): New function. |
| * sem_spark.adb (Check_Declaration): Issue errors on violations |
| of SPARK RM 3.10(4) |
| (Process_Path): Do not issue error on borrow/observe during |
| elaboration, as these are caught by the new rule. |
| |
| 2019-07-23 Yannick Moy <moy@adacore.com> |
| |
| * exp_ch7.adb (Create_Finalizer): Force finalizer not to be |
| Ghost enabled. |
| * exp_dbug.adb (Get_External_Name): Explain special case of |
| Ghost finalizer. |
| |
| 2019-07-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * repinfo.adb (List_Entities): Also list compiled-generated |
| types present as Etype of objects. |
| |
| 2019-07-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sinfo.ads: Update the documentation about the |
| Do_Division_Check, Do_Overflow_Check and Do_Range_Check flags. |
| |
| 2019-07-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch4.adb (Expand_N_Type_Conversion): Beef up comment. |
| (Fixup_Universal_Fixed_Operation): Set the base type instead of |
| the type of the enclosing type conversion on the operation. |
| |
| 2019-07-22 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_ch4.adb (Expand_N_In): Do not suggest the use of attribute |
| 'Valid as a replacement for a range check on a discrete type |
| when the bounds of the range are given by type conversions, |
| because in such a case there are distinct types involved and the |
| subbested attribute replacement would be misplaced. |
| |
| 2019-07-22 Yannick Moy <moy@adacore.com> |
| |
| * sem_spark.adb (Get_Root_Object, Is_Path_Expression, |
| Is_Subpath_Expression): Add parameter Is_Traversal to adapt |
| these functions to the case of paths returned from a traversal |
| function. |
| (Read_Indexes): Handle the case of an if-expression or |
| case-expression. |
| (Check_Statement): Check Emit_Messages only when issuing an |
| error message. This is important as Emit_Messages may store the |
| information that an error was detected. |
| |
| 2019-07-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * checks.adb (Apply_Type_Conversion_Checks): Do not set |
| Do_Range_Check flag on conversions from fixed-point types |
| either. |
| * exp_attr.adb: Add use and with clause for Expander. |
| (Expand_N_Attribute_Reference) <Fixed_Value, Integer_Value>: Set |
| the Conversion_OK flag and do not generate overflow/range checks |
| manually. |
| * exp_ch4.adb (Expand_N_Qualified_Expression): Remove |
| superfluous clearing of Do_Range_Check flag. |
| (Discrete_Range_Check): New procedure to generate a range check |
| for discrete types. |
| (Real_Range_Check): Remove redundant local variable and adjust. |
| Remove useless shortcut. Clear Do_Range_Check flag on all |
| paths. |
| (Expand_N_Type_Conversion): Remove redundant test on |
| Conversion_OK. Call Discrete_Range_Check to generate range |
| checks on discrete types. Remove obsolete code for |
| float-to-integer conversions. Add code to generate range checks |
| for conversions involving fixed-point types. |
| |
| 2019-07-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sprint.ads: Fix pasto in comment. |
| |
| 2019-07-22 Javier Miranda <miranda@adacore.com> |
| |
| * sem_res.adb (Resolve_Actuals): Replace code that displaces the |
| pointer to an allocated object to reference its secondary |
| dispatch table by a type conversion (which takes care of |
| handling all cases). |
| |
| 2019-07-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sprint.adb (Sprint_Node_Actual) |
| <N_Decimal_Fixed_Point_Definition>: Swap a couple of spaces. |
| (Write_Itype): Minor consistency fixes throughout. Add support |
| for printing ordinary and decimal fixed-point types and |
| subtypes. |
| |
| 2019-07-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_attr.adb (Expand_Loop_Entry_Attribute): Beef up comment. |
| |
| 2019-07-22 Ed Schonberg <schonberg@adacore.com> |
| |
| * libgnat/s-valboo.ads, libgnat/s-valcha.ads, |
| libgnat/s-valdec.ads, libgnat/s-valenu.ads, |
| libgnat/s-valint.ads, libgnat/s-vallld.ads, |
| libgnat/s-vallli.ads, libgnat/s-valllu.ads, |
| libgnat/s-valrea.ads, libgnat/s-valuns.ads, |
| libgnat/s-valwch.ads: Change categorization of packages that |
| implement attribute 'Value from Pure to Preelaborate, to prevent |
| undesirable optimizations when the evaluation of the attribute |
| raises Constraint_Error, but subsequent use of the result of |
| this evsaluation is removed by a subsequent optimization. |
| |
| 2019-07-22 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_warn.adb (Check_References): Do not emit s warning on a |
| referenced entity with no explicit assignment if the type of the |
| entity has Preelaborable_Initialixation, such as |
| Exception_Occurrence. |
| |
| 2019-07-22 Javier Miranda <miranda@adacore.com> |
| |
| * exp_ch4.adb (Size_In_Storage_Elements): Improve the expansion |
| to handle array indexes that are modular type. |
| (Expand_N_Allocator): For 32-bit targets improve the generation |
| of the runtime check associated with large arrays supporting |
| arrays initialized with a qualified expression. |
| * libgnat/s-imenne.adb (Image_Enumeration_8, |
| Image_Enumeration_16, Image_Enumeration_32): Define the index of |
| Index_Table with range Natural'First .. Names'Length since in |
| the worst case all the literals of the enumeration type would be |
| single letter literals and the Table built by the frontend would |
| have as many components as the length of the names string. As a |
| result of this enhancement, the internal tables declared using |
| Index_Table have a length closer to the real needs, thus |
| avoiding the declaration of large arrays on 32-bit CCG targets. |
| |
| 2019-07-22 Yannick Moy <moy@adacore.com> |
| |
| * sem_ch3.adb (Constrain_Access): Issue a message about ignored |
| constraint. |
| |
| 2019-07-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch8.adb (End_Use_Type): Reset the In_Use flag on the |
| class-wide type if the type is tagged. |
| (Use_One_Type): Add commentary on the handling of the class-wide |
| type. |
| |
| 2019-07-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * einfo.ads (Is_For_Access_Subtype): Delete. |
| (Set_Is_For_Access_Subtype): Likewise. |
| * einfo.adb (Is_For_Access_Subtype): Likewise. |
| (Set_Is_For_Access_Subtype): Likewise. |
| (Write_Entity_Flags): Do not write Is_For_Access_Subtype. |
| * exp_ch4.adb (Expand_N_Selected_Component): Do not deal with |
| it. |
| * exp_spark.adb (Expand_SPARK_N_Selected_Component): Likewise. |
| * sem_ch4.adb (Analyze_Explicit_Dereference): Likewise. |
| * sem_ch3.adb (Build_Discriminated_Subtype): Do not build a |
| special private subtype for access-to-record subtypes. |
| |
| 2019-07-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch3.adb (Complete_Private_Subtype): Rework the setting of |
| the Etype of the full view for full base types that cannot |
| contain any discriminant. Remove code and comment about it in |
| the main path. |
| |
| 2019-07-22 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch3.adb (Convert_Bound): Subsidiary of |
| Floating_Point_Type_Declaration, to handle properly range |
| specifications with bounds that may include static constants of |
| a given type rather than real literals. |
| |
| 2019-07-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_aggr.adb (Rewrite_Bound): Be prepared for discriminals |
| too. |
| (Rewrite_Range;): Minor tweak. |
| (Resolve_Record_Aggregate): For a component with default |
| initialization whose expression is an array aggregate, also |
| rewrite the bounds of the component associations, if any. |
| |
| 2019-07-22 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_ch5.adb (Expand_N_Case_Statement): In the case where a |
| case statement is rewritten as an equivalent if statement, |
| inherit the From_Condition_Expression flag from the case |
| statement. |
| |
| 2019-07-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch8.adb (Check_Constrained_Object): Further extend the |
| special optimization to all limited types. |
| |
| 2019-07-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_attr.adb (Expand_N_Attribute_Reference) |
| <Attribute_Enum_Val>: Set No_Truncation on the |
| N_Unchecked_Type_Conversion built around the argument passed to |
| the attribute. |
| |
| 2019-07-22 Nicolas Roche <roche@adacore.com> |
| |
| * libgnat/s-valrea.adb (Scan_Real): Ignore non significative |
| digits to avoid converging to infinity in some cases. |
| |
| 2019-07-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnat/g-encstr.adb (Encode_Wide_String): Fix oversight. |
| (Encode_Wide_Wide_String): Likewise. |
| |
| 2019-07-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_warn.adb (Find_Var): Bail out for a function call with an |
| Out or In/Out parameter. |
| |
| 2019-07-22 Nicolas Roche <roche@adacore.com> |
| |
| * terminals.c (__gnat_tty_waitpid): Support both blocking and |
| not blocking mode. |
| * libgnat/g-exptty.ads (Is_Process_Running): New function. |
| * libgnat/g-exptty.adb (Close): Don't try to interrupt/terminate |
| a process if it is already dead. |
| |
| 2019-07-22 Ed Schonberg <schonberg@adacore.com> |
| |
| * freeze.adb (Freeze_Fixed_Point_Type): When freezing a |
| fixed-point subtype, check whether the parent type declarastion |
| includes an aspect specification for the 'Small type attribute, |
| and inherit the specified value. |
| |
| 2019-07-22 Javier Miranda <miranda@adacore.com> |
| |
| * freeze.adb (Freeze_Subprogram): Check that C++ constructors |
| must have external or link name. |
| |
| 2019-07-22 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_res.adb (Resolve_Selected_Component): If the prefix has a |
| deferred reference, generate the correct reference now, to |
| indicate that the previous assignment is used. This prevents |
| spurious warnings on useless assignments when compiling with all |
| warnings enabled. when there is a subsequent call in the same |
| stqtement list, in which the prefix of the selected component is |
| the actual for an out parameter. |
| |
| 2019-07-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_attr.adb (Expand_Loop_Entry_Attribute): Copy the condition |
| of a while loop instead of simply relocating it. |
| |
| 2019-07-18 Arnaud Charlet <charlet@adacore.com> |
| |
| * Makefile.rtl, expect.c, env.c, aux-io.c, mkdir.c, initialize.c, |
| cstreams.c, raise.c, tracebak.c, adadecode.c, init.c, raise-gcc.c, |
| argv.c, adaint.c, adaint.h, ctrl_c.c, sysdep.c, rtinit.c, cio.c, |
| seh_init.c, exit.c, targext.c: Introduce a "STANDALONE" mode where C |
| runtime files do not have any dependency on GCC include files. |
| Remove unnecessary includes. |
| Remove remaining references to VMS in runtime C file. |
| * runtime.h: new File. |
| |
| 2019-07-13 Andreas Schwab <schwab@linux-m68k.org> |
| |
| * Makefile.rtl: Use g-sercom__linux.adb for all linuxes. |
| |
| 2019-07-11 Piotr Trojanek <trojanek@adacore.com> |
| |
| * lib-writ.adb (Ensure_System_Dependency, |
| Up_To_Date_ALI_File_Exists, Write_ALI): Replace low-level access |
| to table with a high-level query. |
| |
| 2019-07-11 Piotr Trojanek <trojanek@adacore.com> |
| |
| * checks.adb: Fix typo in comment. |
| * sem.adb (Semantics): Avoid repeated calls to |
| In_Extended_Main_Source_Unit by reusing an already-cached |
| result. |
| * sem_util.adb (First_Global): Fix style. |
| |
| 2019-07-11 Yannick Moy <moy@adacore.com> |
| |
| * sem_res.adb (Resolve_Call): Do not perform dimensionality |
| checking on inlined bodies. |
| |
| 2019-07-11 Yannick Moy <moy@adacore.com> |
| |
| * debug.adb: Flip meaning of debug switch -gnatdF. |
| |
| 2019-07-11 Yannick Moy <moy@adacore.com> |
| |
| * sem_eval.adb (Is_Same_Value): Add special case for rewritten |
| Loop_Entry attribute. |
| |
| 2019-07-11 Claire Dross <dross@adacore.com> |
| |
| * gnat1drv.adb: SPARK checking rules for pointer aliasing are |
| moved to GNATprove backend. |
| * sem_spark.ads, sem_spark.adb (Sem_SPARK): Is now a generic |
| unit. Takes as parameters: |
| - Retysp which is used to query the most underlying type |
| visible in SPARK. We do not introduce aliasing checks for |
| types which are not visibly deep. |
| - Component_Is_Visible_In_SPARK is used to avoid doing pointer |
| aliasing checks on components which are not visible in SPARK. |
| - Emit_Messages returns True in the second phase of SPARK |
| analysis. Error messages for failed aliasing checks are only |
| output in this case. |
| Additionally, errors on constructs not supported in SPARK are |
| removed as duplicates of marking errors. Components are stored |
| in the permission map using their original component to avoid |
| inconsistencies between components of different views of the |
| same type. |
| (Check_Expression): Handle delta constraints. |
| (Is_Deep): Exported so that we can check for SPARK restrictions |
| on deep types inside SPARK semantic checkings. |
| (Is_Traversal_Function): Exported so that we can check for SPARK |
| restrictions on traversal functions inside SPARK semantic |
| checkings. |
| (Check_Call_Statement, Read_Indexes): Check wether we are |
| dealing with a subprogram pointer type before querying called |
| entity. |
| (Is_Subpath_Expression): Image attribute can appear inside a |
| path. |
| (Check_Loop_Statement): Correct order of statements in the loop. |
| (Check_Node): Ignore raise nodes. |
| (Check_Statement): Use Last_Non_Pragma to get the object |
| declaration in an extended return statement. |
| |
| 2019-07-11 Patrick Bernardi <bernardi@adacore.com> |
| |
| * bindgen.adb (Gen_Main): Do not generate a reference to |
| Ada_Main_Program_Name when the Minimal_Binder flag is set. |
| (Gen_Output_File_Ada): Do not output GNAT_Version and |
| Ada_Main_Program_Name info if Minimal_Binder flag is set. |
| * bindusg.adb: Add documentation for new -minimal switch. |
| * gnatbind.adb (Scan_Bind_Arg): Scan -minimal switch. |
| * opt.ads: Add new global flag Minimal_Binder to indicate if the |
| binder should not produce global variables. |
| * doc/gnat_ugn/building_executable_programs_with_gnat.rst: |
| Update documentation with new binder -minimal switch. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2019-07-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * Makefile.rtl: Add warning note about compilation flags and |
| capitalize. |
| |
| 2019-07-11 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_ch9.adb (Expand_N_Protected_Type_Declaaration): New |
| subsidiary routine Replace_Access_Definition, to handle properly |
| a protected type PT one of whose private components is of type |
| access PT. |
| |
| 2019-07-11 Dmitriy Anisimkov <anisimko@adacore.com> |
| |
| * libgnat/g-socket.ads (Level_Type): Add enumerators for |
| IP_Protocol_For_ICMP, IP_Protocol_For_IGMP, |
| IP_Protocol_For_RAW_Level. |
| * libgnat/g-socket.adb (Levels): Handle them. |
| * s-oscons-tmplt.c: Import socket protocols defined in |
| netinet/in.h. |
| |
| 2019-07-11 Claire Dross <dross@adacore.com> |
| |
| * libgnat/a-cfhama.adb, libgnat/a-cfhase.adb (Free): Do not |
| reset the Has_Element flag if no element is freed. |
| |
| 2019-07-11 Arnaud Charlet <charlet@adacore.com> |
| |
| * errno.c: Remove obsolete support for MaRTE OS. |
| |
| 2019-07-11 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_ch4.adb (Expand_N_Type_Conversion): If a predicate check |
| is generated, analyze it with range check suppressed, because |
| that check has been previously applied. |
| * exp_ch5.adb (Expand_N_Assignment_Statement): If the RHS is a |
| type conversion to the type of the LHS, do not apply a predicate |
| check to the RHS because it will have been generated already |
| during its expansion. |
| * exp_ch6.adb (Can_Fold_Predicate_Call): Extend processing to |
| handle a predicate check on a constant entity whose value is |
| static. |
| |
| 2019-07-11 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * bindo.adb: Remove the documentation of switch -d_N because it |
| is no longer in use. |
| * bindo-graphs.ads, bindo-graphs.adb (Is_Spec_Before_Body_Edge): |
| New routine. |
| * bindo-writers.adb (Write_Dependency_Edge): Add the missing |
| case of a spec-before-body edge. |
| |
| 2019-07-11 Dmitriy Anisimkov <anisimko@adacore.com> |
| |
| * libgnat/g-socket.ads (Mode_Type): Add a Socket_Raw enumerator. |
| * libgnat/g-socket.adb (Modes): Handle Socket_Raw. |
| |
| 2019-07-11 Justin Squirek <squirek@adacore.com> |
| |
| * exp_ch9.adb (Build_Private_Protected_Declaration): Add |
| exception for the moving of pragmas to internally generated |
| specs for pragma Unreferenced. |
| |
| 2019-07-11 Bob Duff <duff@adacore.com> |
| |
| * doc/gnat_ugn/gnat_utility_programs.rst: Fix inconsistent |
| documentation for gnatmetric. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2019-07-11 Bob Duff <duff@adacore.com> |
| |
| * doc/gnat_ugn/gnat_utility_programs.rst: Document gnatpp's |
| --spaces-only switch. |
| |
| 2019-07-11 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_util.adb (Null_Status): Assume that an erroneous construct |
| has an undefined null status. |
| |
| 2019-07-11 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * checks.adb, exp_ch6.adb, gnat1drv.adb, sem_aux.adb, |
| sem_ch2.adb, sem_ch8.adb, sem_res.adb: Minor reformatting. |
| |
| 2019-07-11 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_ch8.adb (Analyze_Object_Renaming): Obtain the object being |
| renamed using routine Get_Object_Name which takes care of |
| various name forms. |
| (Get_Object_Name): New routine. |
| |
| 2019-07-11 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_ch6.adb (Can_Fold_Predicate_Call): New function, |
| subsidiary of Expand_Call_Helper, to compute statically a |
| predicate check when the argument is a static integer. |
| |
| 2019-07-11 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_res.adb (Resolve_Op_Not): Do not rewrite an equality |
| operator into a function call when the operator is intrinsic. |
| |
| 2019-07-11 Thomas Quinot <quinot@adacore.com> |
| |
| * sem_prag.adb (Analyze_Pragma, case pragma Check): Do not call |
| Set_SCO_Pragma_Enabled for the dynamic predicate case. |
| |
| 2019-07-11 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * exp_util.ads, exp_util.adb (Needs_Finalization): Move to |
| Sem_Util. |
| * sem_ch9.adb (Analyze_Protected_Definition): Code cleanup. Mark |
| the protected type as having controlled components when it |
| contains at least one such component. |
| * sem_util.ads, sem_util.adb (Needs_Finalization): New |
| function. |
| |
| 2019-07-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * alloc.ads (Rep_JSON_Table_Initial): New constant. |
| (Rep_JSON_Table_Increment): Likewise. |
| * debug.adb: Document -gnatd_j switch. |
| * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add |
| repinfo-input.o. |
| * gnat1drv.adb: Add with clause for Repinfo.Input. |
| Add with and use clauses for Sinput. |
| (Read_JSON_Files_For_Repinfo): New procedure. |
| (Gnat1drv1): Deal with -gnatd_j switch. |
| * repinfo-input.ad[sb]: New unit. |
| * snames.ads-tmpl (Name_Discriminant): New constant. |
| (Name_Operands): Likewise. |
| |
| 2019-07-11 Justin Squirek <squirek@adacore.com> |
| |
| * checks.adb (Apply_Accessibility_Check): Add check for constant |
| folded conditions on accessibility checks. |
| |
| 2019-07-11 Arnaud Charlet <charlet@adacore.com> |
| |
| * libgnarl/g-thread.ads, libgnarl/g-thread.adb (Get_Thread): |
| Update comments. Add new version taking a Task_Id. |
| |
| 2019-07-11 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * bindo.adb: Update the section of switches and debugging |
| elaboration issues. |
| * bindo.ads: Add type Elaboration_Phase. |
| * bindo-augmentors.adb: Add use clause for |
| Bindo.Writers.Phase_Writers. |
| (Augment_Library_Graph): Signal the start and end of the |
| aubmentation phase. |
| * bindo-builders.adb: Add with and use clause for Bindo.Writers. |
| Add use clause for Bindo.Writers.Phase_Writers. |
| (Build_Invocation_Graph): Signal the start and end of the |
| invocation graph construction phase. |
| (Build_Library_Graph): Signal the start and end of the library |
| graph construction phase. |
| * bindo-diagnostics.adb: Add use clause for |
| Bindo.Writers.Phase_Writers. |
| (Diagnose_Cycle): Signal the start and end of the cycle |
| diagnostic phase. |
| * bindo-elaborators.adb: Add use clause for |
| Bindo.Writers.Phase_Writers. |
| (Elaborate_Units): Signal the start and end of the unit |
| elaboration phase. |
| * bindo-graphs.adb: Add use clause for |
| Bindo.Writers.Phase_Writers. |
| (Find_Components): Signal the start and end of the component |
| discovery phase. |
| (Find_Cycles): Signal the start and end of the cycle discovery |
| phase. |
| * bindo-units.adb: Add with and use clause for Bindo.Writers. |
| Add use clause for Bindo.Writers.Phase_Writers. |
| (Collect_Elaborable_Units): Signal the start and end of the unit |
| collection phase. |
| * bindo-validators.adb: Add with and use clause for |
| Bindo.Writers. Add use clause for Bindo.Writers.Phase_Writers. |
| (Validate_Cycles, Validate_Elaboration_Order, |
| Validate_Invocation_Graph, Validate_Library_Graph): Signal the |
| start and end of the libray graph validation phase. |
| * bindo-writers.ads, bindo-writers.adb: Add new nested package |
| Phase_Writers. |
| * debug.adb: Update the documentation of switch d_S. |
| |
| 2019-07-11 Yannick Moy <moy@adacore.com> |
| |
| * sem_res.adb (Check_Argument_Order): Special case calls to |
| operators. |
| |
| 2019-07-10 Dmitriy Anisimkov <anisimko@adacore.com> |
| |
| * libgnat/s-ststop.adb: Remove System.Strings.Stream_Ops |
| dependence on System.Streams.Stream_IO. |
| |
| 2019-07-10 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch2.adb (Analyze_Integer_Literal): Preserve the type of |
| the literal if prior analysis determined that its type is a |
| modular integer type. |
| |
| 2019-07-10 Doug Rupp <rupp@adacore.com> |
| |
| * init.c: Do not attempt to re-arm guard page on x86_64-vx7(r2). |
| |
| 2019-07-10 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch8.adb (Check_Constrained_Object): A record that is |
| limited because of the presence of a limited component is |
| constrained, and no subtype indiciation needs to be created for |
| it, just as is the case for declared limited records. |
| |
| 2019-07-10 Yannick Moy <moy@adacore.com> |
| |
| * sem_aux.adb, sem_aux.ads (Is_Protected_Operation): New |
| function to determine if a subprogram is protected. |
| * sem_spark.adb (Setup_Protected_Components): New procedure to |
| add protected components to the environment. |
| (Check_Callable_Body): Call the new Setup_Protected_Components. |
| (Check_Package_Spec): Merge local environment with enclosing one |
| when done. |
| |
| 2019-07-10 Claire Dross <dross@adacore.com> |
| |
| * sem_spark.adb (Check_Expression): Allow digits constraints as |
| input. |
| (Illegal_Global_Usage): Pass in the entity. |
| (Is_Subpath_Expression): New function to allow different nodes |
| as inner parts of a path expression. |
| (Read_Indexes): Allow concatenation and aggregates with box |
| expressions. Allow attributes Update and Loop_Entry. |
| (Check_Expression): Allow richer membership test. |
| (Check_Node): Ignore bodies of generics. |
| (Get_Root_Object): Allow concatenation and attributes. |
| |
| 2019-07-10 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_ch6.adb (Check_Discriminant_Conformance): Use Find_Type to |
| discover the type of a full view discriminant. |
| |
| 2019-07-10 Arnaud Charlet <charlet@adacore.com> |
| |
| * doc/gnat_ugn/gnat_and_program_execution.rst: Improve gnatmem's |
| doc for the depth switch. |
| |
| 2019-07-10 Bob Duff <duff@adacore.com> |
| |
| * doc/gnat_ugn/gnat_utility_programs.rst: Document gnatpp's |
| --source-line-breaks switch. |
| |
| 2019-07-10 Justin Squirek <squirek@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_attributes.rst: Add mention |
| of 'Image attribute with 'Img's entry to mention additional |
| added 2012 usage of Obj'Image. |
| * doc/gnat_rm/implementation_defined_pragmas.rst: Correct |
| mispelling of Async_Writers. |
| * gnat_rm.texi: Regenerate. |
| * sem_prag.adb (Analyze_Pragma): Correct mispelling of |
| Async_Writers. |
| * sem_util.adb (State_Has_Enabled_Property): Correct mispelling |
| of Async_Writers. |
| |
| 2019-07-10 Simon Buist <buist@adacore.com> |
| |
| * sem_util.ads (Child_Prefix): New constant. |
| * sem_util.adb (Unique_Name): Add a special prefix to child |
| units that have a nested subprogram or package. |
| |
| 2019-07-10 Arnaud Charlet <charlet@adacore.com> |
| |
| * sfn_scan.adb (Scan_SFN_Pragmas): Add pragma Assert. |
| |
| 2019-07-10 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_ch3.adb (Check_Nonoverridable_Aspects): Correct the |
| spelling in certain error messages. |
| (Check_Pragma_Implemented): Correct the spelling in certain |
| error messages. |
| |
| 2019-07-10 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add g-brapre. |
| * libgnat/g-brapre.ads: New package specification. |
| * doc/gnat_rm/the_gnat_library.rst: Document it. |
| * gnat_rm.texi: Regenerate. |
| |
| 2019-07-10 Yannick Moy <moy@adacore.com> |
| |
| * osint-c.adb (Set_File_Name): Always add extension for multiple |
| units per file mode. |
| |
| 2019-07-10 Corentin Gay <gay@adacore.com> |
| |
| * sysdep.c: Put include directive for 'vxWorks.h' before any |
| other VxWorks headers. |
| |
| 2019-07-10 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_attributes.rst |
| (Scalar_Storage_Order): Minor tweaks. Add note about debuggers. |
| * gnat_rm.texi: Regenerate. |
| |
| 2019-07-10 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * exp_ch4.adb (Expand_N_Case_Expression): Mark the generated |
| assignments to the temporary result as being OK because the |
| expansion of case expressions is correct by construction. |
| (Is_Copy_Type): Update the predicate to match the comment |
| within. |
| |
| 2019-07-10 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * bindo-graphs.adb, bindo.adb, debug.adb, exp_ch6.adb, |
| sem_ch10.adb, sem_ch13.adb, sem_ch3.adb, sem_ch4.adb, |
| sem_ch6.adb, sem_ch7.adb, sem_res.adb, sem_spark.adb, |
| sem_util.adb, warnsw.ads: Minor reformatting. |
| |
| 2019-07-10 Joffrey Huguet <huguet@adacore.com> |
| |
| * libgnat/a-strbou.ads, libgnat/a-strfix.ads, |
| libgnat/a-strunb.ads, libgnat/a-strunb__shared.ads: Add global |
| contracts, contract cases, preconditions and postconditions to |
| procedures and functions. |
| |
| 2019-07-10 Doug Rupp <rupp@adacore.com> |
| |
| * sysdep.c (__gnat_is_file_not_found_error): Reformulate to also |
| work for vxworks7r2 SR0610. |
| |
| 2019-07-10 Doug Rupp <rupp@adacore.com> |
| |
| * env.c (__gnat_environ): Reformulate to also work for |
| vxworks7r2 SR0610. |
| |
| 2019-07-10 Patrick Bernardi <bernardi@adacore.com> |
| |
| * Makefile.rtl: Handle vxworks7r2 ppc target |
| |
| 2019-07-10 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * bindo.adb: Update the section on switches. |
| * bindo-graphs.adb |
| (Add_Cycle, Add_Vertex_And_Complement): Remove. |
| (Create): The graph no longer needs a set of recorded cycles |
| because the cycles are not rediscovered in permuted forms. |
| (Cycle_End_Vertices): New routine. |
| (Destroy): The graph no longer needs a set of recorded cycles |
| because the cycles are not rediscovered in permuted forms. |
| (Destroy_Library_Graph_Vertex): Move to the library level. |
| (Find_All_Cycles_Through_Vertex, Find_All_Cycles_With_Edge): |
| Remove. |
| (Find_Cycles_From_Successor, Find_Cycles_From_Vertex, |
| Find_Cycles_In_Component, Has_Elaborate_All_Edge): New routines. |
| (Insert_And_Sort): Remove. |
| (Is_Elaborate_Body_Edge): Use predicate |
| Is_Vertex_With_Elaborate_Body. |
| (Is_Recorded_Cycle): Remove. |
| (Is_Vertex_With_Elaborate_Body): New routine. |
| (Normalize_And_Add_Cycle): Remove. |
| (Precedence): Rename to xxx_Precedence, where xxx relates to the |
| input. These versions better reflect the desired input |
| precedence. |
| (Record_Cycle): New routine. |
| (Remove_Vertex_And_Complement, Set_Is_Recorded_Cycle): Remove. |
| (Trace_xxx): Update all versions to use debug switch -d_t. |
| (Trace_Component): New routine. |
| (Trace_Eol): Removed. |
| (Trace_Vertex): Do not output the component as this information |
| is already available when the component is traced. |
| (Unvisit, Visit): New routine. |
| * bindo-graphs.ads: Add new instance LGV_Lists. Remove instance |
| RC_Sets. Update the structure of type Library_Graph_Attributes |
| to remove the set of recorded cycles. |
| (Destroy_Library_Graph_Vertex): Move to the library level. |
| * bindo-writers.adb (Write_Component_Vertices): Output |
| information about the number of vertices. |
| * debug.adb: Document the use of binder switch -d_t. Update the |
| use of binder switch -d_T. |
| |
| 2019-07-10 Yannick Moy <moy@adacore.com> |
| |
| * sem_spark.adb (Get_Root_Object): Replace precondition by error |
| message. |
| (Read_Indexes): Replace precondition by error message. |
| (Check_Callable_Body): Check only traversal function returns an |
| anonymous access type. |
| (Check_Expression): Issue error on unexpected expression as |
| path. |
| * sem_util.adb (First_Global): Fix access to global on |
| entry/task. |
| |
| 2019-07-10 Javier Miranda <miranda@adacore.com> |
| |
| * exp_ch6.adb (Is_Class_Wide_Interface_Type): New subprogram. |
| (Expand_Call_Helper): Handle non-limited views when we check if |
| any formal is a class-wide interface type. |
| * exp_disp.adb (Expand_Interface_Actuals): Handle non-limited |
| views when we look for interface type formals to force "this" |
| displacement. |
| |
| 2019-07-10 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_res.adb (Resolve_Equality_Op): Do not replace the resolved |
| operator by its alias if expander is not active, because the |
| operand type may not be frozen yet and its inherited operations |
| have not yet been created. |
| |
| 2019-07-10 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * bindo-elaborators.adb (Elaborate_Units): Set attribute |
| Elab_Position of all elaborated units. |
| (Set_Unit_Elaboration_Positions): New routine. |
| |
| 2019-07-10 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_util.adb: Reformatting and a typo fix. |
| |
| 2019-07-10 Yannick Moy <moy@adacore.com> |
| |
| * exp_util.adb (Remove_Side_Effects): Prefer renamings for |
| objects of possible owning type in GNATprove mode. |
| |
| 2019-07-09 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch3.adb (Analyze_Object_Declaration): If the object type |
| is a composite type that has a dynamic predicate and, the |
| expression in the declaration is an aggregate, the generated |
| predicate check must appear after the expanded code for the |
| aggregate, which will appear after the rewritten object |
| declarastion. |
| |
| 2019-07-09 Justin Squirek <squirek@adacore.com> |
| |
| * sem_eval.adb (Expr_Value_E): Add conditional to correctly |
| handle constant enumerated character types. |
| |
| 2019-07-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnarl/s-osinte__mingw.ads (CRITICAL_SECTION): Use proper |
| type for SpinCount component. |
| |
| 2019-07-09 Justin Squirek <squirek@adacore.com> |
| |
| * exp_ch4.adb (Expand_N_Allocator): Add conditional to detect |
| the presence of anoymous access type allocators and issue a |
| warning if the appropriate warning flag is enabled. |
| * warnsw.ads: Add new warning flag for anonymous allocators |
| * warnsw.adb (All_Warnings, Restore_Warnings, Save_Warnings, |
| Set_Underscore_Warning_Switch): Register new flags. |
| (WA_Warnings): Register new flag as an "all warnings" switch |
| * usage.adb, |
| doc/gnat_ugn/building_executable_programs_with_gnat.rst: |
| Document new warning switches -gnatw_a and -gnatw_A. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2019-07-09 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch4.adb (Diagnose_Call): Improve error recovery when a |
| local subprogram name hides a possible candidate name declared |
| in a child package in the context of the current unit. |
| * sem_ch6.adb (Process_Formals): Protect against malformed |
| formal types when the parameter type does not denote an entity. |
| |
| 2019-07-09 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * bindo-augmentors.adb (Visit_Elaboration_Root): Do not start a |
| DFS from an elaboration root whose corresponding unit lacks |
| elaboration code. This behavior mimics that of the old |
| elaboration order mechanism. |
| * bindo-graphs.adb (Find_All_Cycles_Through_Vertex): Move the |
| vertex tracing within the functional branches of the routine. |
| This prevents spurious trace output. |
| (Has_No_Elaboration_Code): New routine. |
| (Trace_Cycle, Trace_Edge): Update the various Ids to use the |
| "standard" trace format. |
| * bindo-graphs.ads (Has_No_Elaboration_Code): New routine. |
| * bindo-units.ads, bindo-units.adb (Has_No_Elaboration_Code): |
| New routine. |
| |
| 2019-07-09 Piotr Trojanek <trojanek@adacore.com> |
| |
| * ali.ads, bindo-graphs.adb, bindo-validators.adb, clean.adb, |
| doc/gnat_ugn/elaboration_order_handling_in_gnat.rst, einfo.ads, |
| exp_aggr.adb, exp_ch13.adb, exp_ch4.adb, exp_ch5.adb, |
| exp_ch6.adb, exp_ch7.adb, exp_ch9.adb, exp_pakd.adb, |
| fname-uf.ads, gnatlink.adb, inline.adb, lib.ads, make.adb, |
| namet.ads, opt.ads, par-ch4.adb, par-ch6.adb, par-labl.adb, |
| prep.adb, sem_aggr.adb, sem_ch13.adb, sem_ch4.adb, sem_ch5.adb, |
| sem_ch6.adb, sem_ch6.ads, sem_ch7.adb, sem_ch8.adb, sem_dim.adb, |
| sem_disp.adb, sem_prag.adb, sem_res.adb, sem_warn.adb, |
| sinfo.ads: Replace ". " with ". ". Minor reformatting and typo |
| corrections. |
| * gnat_ugn.texi: Generate. |
| |
| 2019-07-09 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * bindo.ads: Move type Precedence_Kind from the private to the |
| visible part of the unit. |
| * bindo-augmentors.adb: Remove the use of global data as it is |
| bad practice. |
| (Augment_Library_Graph): Update the parameter profile. |
| (Is_Visited, Set_Is_Visited): Remove. |
| (Visit_Elaboration_Root, Visit_Elaboration_Roots): Update the |
| parameter profile and comment on usage. |
| (Visit_Vertex): Likewise. Also keep track of which invocation |
| edge activates a task. |
| * bindo-augmentors.ads (Augment_Library_Graph): Update the |
| parameter profile and comment on usage. |
| * bindo-builders.adb (Create_Forced_Edge, |
| Create_Spec_And_Body_Edge, Create_With_Edge): Update the call to |
| Add_Edge. |
| * bindo-diagnostics.adb: Add with end use clauses for Restrict |
| and Rident. |
| (Output_Dynamic_Model_Suggestions): Remove. |
| (Output_Invocation_Related_Suggestions): New routine. |
| (Output_Suggestions): Output all invocation-related suggestions |
| together. |
| * bindo-elaborators.adb: Remove types Comparator_Ptr and |
| Predicate_Ptr. |
| (Find_Best_Vertex): Update the parameter profile. |
| * bindo-graphs.adb (Activates_Task): New routine. |
| (Add_Body_Before_Spec_Edge): Update the call to |
| Add_Edge_With_Return. |
| (Add_Edge): Update the parameter profile and the call to |
| Add_Edge_With_Return. |
| (Add_Edge_With_Return): Update the parameter profile and comment |
| on usage. |
| (At_Least_One_Edge_Satisfies): New routine. |
| (Contains_Elaborate_All_Edge): Reimplement. |
| (Contains_Static_Successor_Edge, Contains_Task_Activation): New |
| routine. |
| (Contains_Weak_Static_Successor): Remove. |
| (Is_Static_Successor_Edge): New routine. |
| * bindo-graphs.ads: Add types LGE_Predicate_Ptr, |
| LGV_Comparator_Ptr, and LGV_Predicate_Ptr. Update type |
| Library_Graph_Edge_Attributes to capture whether an invocation |
| edge activates a task. Update the value of |
| No_Library_Graph_Edge_Attributes. |
| (Activates_Task): Update the parameter profile and comment on |
| usage. |
| (Contains_Static_Successor_Edge, Contains_Task_Activation): New |
| routines. |
| (Contains_Weak_Static_Successor): Remove. |
| * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: |
| Update the documentation to reflect the new task-related advice. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2019-07-09 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_util.adb (Containing_Package_With_Ext_Axioms): Replace |
| low-level Ekind test with a high-level wrapper. |
| |
| 2019-07-09 Arnaud Charlet <charlet@adacore.com> |
| |
| * libgnat/s-memory.adb: Disable calls to Abort defer/undefer |
| when ZCX_By_Default. |
| |
| 2019-07-09 Javier Miranda <miranda@adacore.com> |
| |
| * sem_ch13.adb (Rep_Item_Too_Early): Representation clauses are |
| not allowed for a derivation of a generic type. Extend the |
| current test to check that none of the parents is a generic |
| type. |
| |
| 2019-07-09 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * exp_ch9.adb, exp_util.adb, repinfo.adb, sem_ch12.adb, |
| sem_prag.adb, sem_res.adb, sem_spark.adb, sem_util.adb: Minor |
| reformatting. |
| |
| 2019-07-09 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_res.adb (Resolve_Equality_Op): If the node was overloaded, |
| set properly the entity to which the node has been resolved. The |
| original entity is the first one found during analysis, and is |
| not necessarily the resolved one. |
| (Resolve_Op_Not): If the argument of negation is an overloaded |
| equality operation, call its resolution directly given that the |
| context type does not participate in overload resolution. |
| |
| 2019-07-09 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * bindo.adb: Remove with and use clauses for Debug. Add with |
| and use clauses for Opt. |
| (Find_Elaboration_Order): Enable the v4.0 elaboration order. The |
| v3.0 mechanism is now available under binder switch -H. |
| * bindusg.adb (Display): Enable switch -H. |
| * debug.adb: Free compiler switch -gnatd_G. Free binder switch |
| -d_N. |
| * sem_elab.adb: Update the section on switches to remove |
| -gnatd_G. |
| (Invocation_Graph_Recording_OK): The invocation graph is now |
| unconditionally recorded in ALI files. |
| * switch-b.adb (Scan_Binder_Switches): Scan switch -H. |
| * doc/gnat_ugn/building_executable_programs_with_gnat.rst: |
| Update the documentation on compiler switches related to |
| elaboration. Update the documentation on binder switches to |
| include switch -H. |
| * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update |
| the documentation on elaboration order handling in GNAT. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2019-07-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * repinfo.adb (List_Entities): Disregard formals altogether. |
| (List_Name): Properly escape the double quote in the JSON |
| output. |
| |
| 2019-07-09 Javier Miranda <miranda@adacore.com> |
| |
| * exp_util.adb (Remove_Side_Effects): Preserve the |
| Do_Range_Check flag. |
| |
| 2019-07-09 Yannick Moy <moy@adacore.com> |
| |
| * sinfo.ads: Refine comment for Do_Range_Check. |
| |
| 2019-07-09 Yannick Moy <moy@adacore.com> |
| |
| * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Expand |
| attribute reference on Enum_Rep. |
| |
| 2019-07-09 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch12.adb (Instantiate_Formal_Package): Handle properly the |
| case where the actual for a formal package in an instance is the |
| current instance of an enclosing generic package. |
| (Check_Formal_Packages): If the formal package declaration is |
| box-initialized or lacks associations altogether, no internal |
| instance was created to verify conformance, and there is no |
| validating package to remove from tree. |
| |
| 2019-07-09 Yannick Moy <moy@adacore.com> |
| |
| * freeze.adb (Build_Renamed_Body): Do not set body to inline in |
| GNATprove mode. |
| |
| 2019-07-09 Yannick Moy <moy@adacore.com> |
| |
| * exp_util.adb (Expand_Subtype_From_Expr): Still expand the type |
| of static expressions in GNATprove_Mode. |
| * sem_ch3.adb (Analyze_Object_Declaration): Remove obsolete |
| special case for GNATprove_Mode. |
| |
| 2019-07-09 Piotr Trojanek <trojanek@adacore.com> |
| |
| * doc/gnat_rm/the_gnat_library.rst, |
| doc/gnat_ugn/building_executable_programs_with_gnat.rst, |
| erroutc.adb, libgnat/g-comlin.adb, libgnat/g-comlin.ads, |
| libgnat/g-regexp.ads, libgnat/g-regpat.ads, |
| libgnat/g-spipat.ads, libgnat/s-os_lib.ads, |
| libgnat/s-regexp.ads: Reword "wild card" to "wildcard". |
| * gnat_rm.texi, gnat_ugn.texi: Regenerate. |
| |
| 2019-07-09 Yannick Moy <moy@adacore.com> |
| |
| * sem_spark.adb (Check_Expression): Handle correctly implicit |
| assignments as part of allocators and (extension) aggregates. |
| (Get_Root_Object): Adapt for new path expressions. |
| (Is_Path_Expression): Return True for (extension) aggregate. |
| |
| 2019-07-09 Piotr Trojanek <trojanek@adacore.com> |
| |
| * einfo.ads: Fix a typo. |
| |
| 2019-07-09 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_util.adb (Scope_Within_Or_Same): Handle properly task |
| bodies and protected bodies, so that local variables within have |
| their proper scopes after these constructs have been rewritten |
| during expansion. This patch resembles but is not identical to |
| the code in Scope_Within. |
| |
| 2019-07-09 Arnaud Charlet <charlet@adacore.com> |
| |
| * gnat1drv.adb (Adjust_Global_Switches): Set |
| Dynamic_Elaboration_Checks to True in CodePeer mode. |
| |
| 2019-07-09 Yannick Moy <moy@adacore.com> |
| |
| * sem_spark.adb (Get_Perm_Or_Tree): Issue an error when |
| encountering unknown global variable. |
| |
| 2019-07-09 Yannick Moy <moy@adacore.com> |
| |
| * sem_spark.adb (Check_Expression): Change signature to take an |
| Extended_Checking_Mode, for handling read permission checking of |
| sub-expressions in an assignment. |
| (Check_Parameter_Or_Global): Adapt to new behavior of |
| Check_Expression for mode Assign. |
| (Check_Safe_Pointers): Do not analyze generic bodies. |
| (Check_Assignment): Separate checking of the target of an |
| assignment. |
| |
| 2019-07-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * repinfo.ads (JSON format): Adjust. |
| * repinfo.adb (Need_Blank_Line): Rename to... |
| (Need_Separator): ...this. |
| (Blank_Line): Rename to... |
| (Write_Separator): ...this and add JSON specific handling. |
| (List_Array_Info): Adjust to above renaming. |
| (List_Object_Info): Likewise. |
| (List_Record_Info): Likewise. |
| (List_Subprogram_Info): Likewise. |
| (List_Type_Info): Likewise. |
| (List_Entities): Do not set Need_Blank_Line. |
| (List_Rep_Info): Set Need_Separator and add JSON specific |
| handling. Output a single JSON stream in the normal case. |
| |
| 2019-07-09 Arnaud Charlet <charlet@adacore.com> |
| |
| * doc/gnat_ugn/the_gnat_compilation_model.rst: Update doc on |
| -fdump-ada-spec now that we generate Ada 2012. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2019-07-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * repinfo.adb (List_Common_Type_Info): New procedure extracted |
| from... |
| (List_Type_Info): ...here. Call it for the common information, |
| start with a blank line and output the linker section at the |
| end, if any. |
| (List_Mechanisms): Rename to... |
| (List_Subprogram_Info): ...this. |
| (List_Array_Info): Call List_Common_Type_Info. |
| (List_Entities): Adjust to above change and renaming. |
| (List_Record_Info): Call List_Common_Type_Info. |
| |
| 2019-07-08 Dmitriy Anisimkov <anisimko@adacore.com> |
| |
| * libgnat/g-sercom.ads |
| (Serial_Port_Descriptor): New type. |
| (Serial_Port): Add a comment, make it hold a |
| Serial_Port_Descriptor. |
| (To_Ada, To_C): New procedures. |
| (Port_Data, Port_Data_Access): Remove types. |
| * libgnat/g-sercom.adb (To_Ada): New stub. |
| * libgnat/g-sercom__linux.adb, libgnat/g-sercom__mingw.adb: |
| Update implementations accordingly. |
| * s-oscons-tmplt.c: Bind Serial_Port_Descriptor to |
| System.Win32.HANDLE on Windows, and to Interfaces.C.int on |
| Linux. Add "Interfaces.C." prefix for other basic integer type |
| bindings. |
| * xoscons.adb (Output_Info): Remove the "Interfaces.C." prefix |
| for subtypes generation. |
| |
| 2019-07-08 Arnaud Charlet <charlet@adacore.com> |
| |
| * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst: |
| Update documentation on No_Exceptions restriction. |
| * gnat_rm.texi: Regenerate. |
| |
| 2019-07-08 Dmitriy Anisimkov <anisimko@adacore.com> |
| |
| * libgnat/s-os_lib.adb: Do not call __gnat_kill for Invalid_Pid. |
| |
| 2019-07-08 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_util.adb (Enclosing_Package_Or_Subprogram): Do not expect |
| package and subprogram bodies. |
| |
| 2019-07-08 Bob Duff <duff@adacore.com> |
| |
| * doc/gnat_ugn/gnat_utility_programs.rst: Remove documentation |
| of ignored GNATpp switch. |
| |
| 2019-07-08 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_pragmas.rst: |
| Update the documentation of pragma Initialize_Scalars. |
| * gnat_rm.texi: Regenerate. |
| |
| 2019-07-08 Javier Miranda <miranda@adacore.com> |
| |
| * exp_ch4.adb (Tagged_Membership): Fix regression silently |
| introduced in r260738 that erroneouslusy causes the evaluation |
| to True of the membership test when the left operand of the |
| membership test is a class-wide interface object and the right |
| operand is a type that implements such interface type. |
| |
| 2019-07-08 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do not |
| register an address clause when its prefix denotes a generic |
| formal object. |
| |
| 2019-07-08 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * bindo-diagnostics.adb (Diagnose_Cycle): Capture the presence |
| of an Elaborate_All edge before iterating over the edges of the |
| cycle. |
| (Output_Elaborate_Body_Transition): Update the parameter profile |
| and the comment on usage. Add a missing case where the edge is |
| within the context of an Elaborate_All. |
| (Output_Transition): Update the call to |
| Output_Elaborate_Body_Transition. |
| * bindo-graphs.ads, bindo-graphs.adb |
| (Contains_Elaborate_All_Edge): New routine. |
| |
| 2019-07-08 Piotr Trojanek <trojanek@adacore.com> |
| |
| * lib-xref-spark_specific.adb (Create_Heap): Set dummy Etype for |
| the fake __HEAP entity. |
| |
| 2019-07-08 Daniel Mercier <mercier@adacore.com> |
| |
| * gnat1drv.adb: Suppress warnings on memory representation in |
| CodePeer compiler mode. |
| |
| 2019-07-08 Nicolas Roche <roche@adacore.com> |
| |
| * rtinit.c (__gnat_runtime_initialize): Remove dependency on |
| CommandLineToArgvW. |
| |
| 2019-07-08 Doug Rupp <rupp@adacore.com> |
| |
| * Makefile.rtl: Handle vxworks7r2 in x86_64 and x86 vxworks7. |
| |
| 2019-07-08 Dmitriy Anisimkov <anisimko@adacore.com> |
| |
| * Makefile.rtl: Use g-sercom__linux.adb for all linuxes. |
| |
| 2019-07-08 Yannick Moy <moy@adacore.com> |
| |
| * expander.adb (Expand): Do not reset Analyzed flag always. |
| * sem_eval.adb (Fold_Ureal): Mark node as analyzed. |
| |
| 2019-07-08 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_ch9.adb (Expand_N_Timed_Entry_Call): Do not insert twice |
| the assignment statement that computes the delay value, to |
| prevent improper tree sharing when the value is a type |
| conversion and Float_Overflow checks are enabled. |
| |
| 2019-07-08 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * bindo.adb: Update the section on terminology to include new |
| concepts. Update the section on switches to include new |
| entries. |
| * bindo.ads: Add type Precedence_Kind. |
| * bindo-builders.adb: Add with and use clauses for Debug and |
| Bindo.Validators. Add use clauses for |
| Bindo.Validators.Invocation_Graph_Validators and |
| Bindo.Validators.Library_Graph_Validators. |
| (Build_Invocation_Graph): Validate the graph immediately after |
| it was built. |
| (Build_Library_Graph): Update the parameter profile. The |
| creation of the graph is now elaboration model-agnostic. |
| Validate the graph immediately after it was built. |
| (Create_With_Edge): Create regular with edges for Elaborate and |
| Elaborate_All edges when the appropriate debug switches are in |
| effect. |
| * bindo-builders.ads (Build_Library_Graph): Update the parameter |
| profile. |
| * bindo-diagnostics.adb (Diagnose_Cycle): Track the presence of |
| an Elaborate_All edge throughout the inspection of the cycle's |
| edges. |
| (Output_Dynamic_Model_Suggestions): Output the suggestion only |
| when the cycle contains at least one weak edge where the |
| successor was statically elaborated. |
| (Output_Elaborate_Body_Transition, Output_Forced_Transition, |
| Output_With_Transition): Update the assertions. |
| * bindo-elaborators.adb: Remove use clauses for |
| Bindo.Validators.Invocation_Graph_Validators and |
| Bindo.Validators.Library_Graph_Validators. Remove strings |
| Add_To_All_Candidates_Msg and Add_To_Comp_Candidates_Msg. |
| Remove type String_Ptr. |
| (Add_Vertex, Add_Vertex_If_Elaborable, Create_All_Candidates_Set |
| Create_Component_Candidates_Set): Remove. |
| (Create_Component_Vertex_Sets, Create_Vertex_Sets): New routine. |
| (Elaborate_Component): Update the parameter profile and the |
| comment on usage. Reimplement the elaboration of a component. |
| The algorithm will now attempt to elaborate as many vertices |
| possible. If this is not possible, and a weakly elaborable |
| vertex is available use unit was compiled using the dynamic |
| model, the algorithm will elaborate it. |
| (Elaborate_Library_Graph): Reimplement the elaboration of the |
| graph. The algorithm will now attempt to elaborate as many |
| vertices along with their components as possible. If this is not |
| possible, and a weakly elaborable vertex is available use unit |
| was compiled using the dynamic model, the algorithm will |
| elaborate it along with its component. |
| (Elaborate_Units): Merge with the functionality of |
| Elaborate_Units_Common. |
| (Elaborate_Units_Common, Elaborate_Units_Dynamic, |
| Elaborate_Units_Static): Remove. |
| (Elaborate_Vertex): Update the parameter profile and the comment |
| on usage. Reimplemented. |
| (Find_Best_Candidate): Remove. |
| (Find_Best_Elaborable_Vertex, Find_Best_Vertex, |
| Find_Best_Weakly_Elaborable_Vertex, Has_Elaborable_Body, |
| Insert_Elaborable_Successor, Insert_Vertex): New routines. |
| (Is_Better_Candidate): Remove. |
| (Is_Better_Elaborable_Vertex, |
| Is_Better_Weakly_Elaborable_Vertex, |
| Is_Suitable_Elaborable_Vertex, |
| Is_Suitable_Weakly_Elaborable_Vertex): New routines. |
| (Trace_Candidate_Vertices): Remove. |
| (Trace_Component): Output the number of strong and weak |
| predecessors. |
| (Trace_Unelaborated_Vertices): Remove. |
| (Trace_Vertex): Output the number of strong and weak |
| predecessors. |
| (Trace_Vertices): New routine. |
| (Update_Successor, Update_Successors): Update the parameter |
| profile and the comment on usage. |
| * bindo-graphs.adb: Remove type Precedence_Kind. |
| (Add_Edge_With_Return): Update the increment of pending |
| predecessors. |
| (Add_Vertex): Provide default values for strong and weak |
| predecessors. |
| (Complementary_Vertex): Move the initial declaration to the |
| spec. Update the parameter profile and the comment on usage. |
| (Contains_Weak_Static_Successor): New routine. |
| (Create): Update the parameter profile. The creation of the |
| graph is now elaboration model-agnostic. |
| (Decrement_Pending_Predecessors): Update the parameter profile |
| and the comment on usage. Reimplemented. |
| (Delete_Edge): Update the decrement of pending predecesors. |
| (Has_Elaborate_Body): Do not treat a vertex as being subject to |
| Elaborate_Body when a debug switch is in effect. |
| (Increment_Pending_Predecessors): Update the parameter profile |
| and the comment on usage. Reimplemented. |
| (Is_Elaborable_Component): Reimplemented. |
| (Is_Elaborable_Vertex): Move the initial declaration to the |
| spec. Reimplemented. |
| (Is_Elaborate_Body_Pair): New routine. |
| (Is_Dynamically_Elaborated): Update the parameter profile. |
| Reimplemented. |
| (Is_Weakly_Elaborable_Vertex): New routine. |
| (Pending_Predecessors): Removed. |
| (Pending_Predecessors_For_Elaboration, |
| Pending_Strong_Predecessors, Pending_Weak_Predecessors, |
| Update_Pending_Predecessors): New routines. |
| (Update_Pending_Predecessors_Of_Components): Update the |
| increment of pending predecessors. |
| * bindo-graphs.ads: Update the components of type |
| Component_Attributes. Update the components of type |
| Library_Graph_Attributes. Update the components of type |
| Library_Graph_Vertex_Attributes. Update the initialization of |
| No_Component_Attributes. Update the initialization of |
| No_Library_Graph_Vertex_Attributes. |
| (Complementary_Vertex, Contains_Weak_Static_Successor): New |
| routines. |
| (Create): Update the parameter profile and the comment on usage. |
| (Decrement_Pending_Predecessors, Is_Dynamically_Elaborated): |
| Update the parameter profile and the comment on usage. |
| (Is_Elaborate_Body_Pair, Is_Weakly_Elaborable_Vertex): New |
| routines. |
| (Pending_Predecessors): Removed. |
| (Pending_Predecessors_For_Elaboration, |
| Pending_Strong_Predecessors, Pending_Weak_Predecessors): New |
| routines. |
| * bindo-writers.adb (Write_Components): Moved from the spec. |
| (Write_Component): Output the strong and weak predecessors. |
| (Write_Library_Graph): Output the components as part of the |
| graph. |
| (Write_Library_Graph_Vertex): Output the strong and weak |
| predecessors. |
| * bindo-writers.ads (Write_Components): Moved to the body. |
| * debug.adb: Add and document new GNATbind switches -d_a, -d_b, |
| -d_e. |
| * bindo-validators.adb: Minor reformattings. |
| |
| 2019-07-08 Bob Duff <duff@adacore.com> |
| |
| * libgnat/g-sercom.ads, libgnat/g-sercom__linux.adb (Data_Rate): |
| Support additional data rates. |
| |
| 2019-07-08 Olivier Hainque <hainque@adacore.com> |
| |
| * gcc-interface/trans.c (Compilation_Unit_to_gnu): Don't request |
| DECL_ARTIFICIAL_P on elab proc declarations. |
| |
| 2019-07-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * repinfo.adb (List_Record_Info): Declare Incomplete_Layout and |
| Not_In_Extended_Main local exceptions. |
| (List_Structural_Record_Layout): For an extension, raise the |
| former if the parent subtype has not been built and the latter |
| if it is not declared in the main source unit. Fall back to the |
| flat layout if either exception has been raised. |
| |
| 2019-07-08 Ed Schonberg <schonberg@adacore.com> |
| |
| * libgnat/a-strfix.adb (Delete): The RM describes the semantics |
| of Delete as equivalent to that of Replace_String with a null |
| argument. As a result, deleting a null string that starts past |
| the end of its argument is a noop and must not raise |
| Index_Error. |
| |
| 2019-07-08 Javier Miranda <miranda@adacore.com> |
| |
| * exp_disp.adb (Register_Primitive): When registering a |
| primitive in the secondary dispatch table, handle primitive |
| inherited through several levels of type derivation (required to |
| properly handle inherited 'null' primitive). |
| |
| 2019-07-08 Bob Duff <duff@adacore.com> |
| |
| * doc/gnat_ugn/gnat_utility_programs.rst: Document handling of |
| preprocessor directives in GNATpp. |
| |
| 2019-07-08 Javier Miranda <miranda@adacore.com> |
| |
| * gnat1drv.adb (Post_Compilation_Validation_Checks: |
| Validate_Compile_Time_Warning_Errors is now located in sem_prag |
| (instead of sem_ch13). |
| * sem_ch13.ads (Validate_Compile_Time_Warning_Error, |
| Validate_Compile_Time_Warning_Errors): Move to sem_prag. |
| * sem_ch13.adb |
| (Compile_Time_Warnings_Errors): Move to sem_prag. |
| (Initialize): Remove initialization of table |
| Compile_Time_Warning_Errors. |
| (Validate_Compile_Time_Warning_Error, |
| Validate_Compile_Time_Warning_Errors): Move to sem_prag. |
| * sem_prag.ads (Validate_Compile_Time_Warning_Errors): New |
| procedure. |
| * sem_prag.adb (Initialize): Initialize table |
| Compile_Time_Warning_Errors. |
| |
| 2019-07-08 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch13.adb (Analyze_Aspect_Specifications): For a |
| pre/postcondition of a generic subprogram declaration, do not |
| use Relocate_Node on the aspect expression to construct the |
| corresponding attribute specification, to prevent tree anomalies |
| when the expression is a call with named actual parameters. |
| |
| 2019-07-08 Javier Miranda <miranda@adacore.com> |
| |
| * sem_attr.adb (Analyze_Attribute [Attribute_Size]): For pragmas |
| used to report user defined compile time warning or errors |
| handle 'Size for types with known static RM size. |
| |
| 2019-07-08 Justin Squirek <squirek@adacore.com> |
| |
| * exp_imgv.adb (Build_Enumeration_Image_Tables): Default SSO for |
| the building of image tables. |
| (Expand_Image_Attribute): Minor cleanup. |
| |
| 2019-07-08 Dmitriy Anisimkov <anisimko@adacore.com> |
| |
| * libgnat/g-socket.ads, libgnat/g-socket.adb: Improve |
| documentation. |
| (Get_Socket_Option, Set_Socket_Option): Remove default value for |
| the Level formal. |
| |
| 2019-07-08 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): For an |
| unanalized aspect in a generic context that has not been |
| analyzed yet, if the aspect applies to a type, place the type on |
| the scope stack to make its components visible, before checking |
| conformance with the version of the expression analyzed at the |
| freeze point. |
| |
| 2019-07-05 Justin Squirek <squirek@adacore.com> |
| |
| * checks.adb (Apply_Accessibility_Check): Add logic to fetch the |
| function result accessibility level if one is required within |
| the generated check. |
| * exp_ch6.adb (Needs_Result_Accessibility_Level): Modify |
| controlling elsif block to handle more cases such as anonymous |
| access results and disable checking for coextensions. |
| |
| 2019-07-05 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch9.adb (Analyze_Accept_Statement): If this is an illegal |
| accept statement for an enclosing entry abandon analysis to |
| prevent scope mismatches and potential infinite loops in |
| compiler. |
| |
| 2019-07-05 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * ali.adb (For_Each_Invocation_Construct, |
| For_Each_Invocation_Relation): New version. |
| (Scan_ALI): Initialize field Invocation_Graph_Encoding. |
| (Set_Invocation_Graph_Encoding): Update the setting of the |
| invocation graph encoding. |
| * ali.ads: Move field Invocation_Graph_Encoding from Unit_Record |
| to ALI_Record because the encoding applies to the whole ALI, |
| rather than one of the units (spec or body) for which the ALI |
| file was created. |
| (For_Each_Invocation_Construct, For_Each_Invocation_Relation): |
| New version. |
| * bindo.adb: Update the section on switches. Complete the |
| section of debugging elaboration order issues. |
| (Find_Elaboration_Order): Prepare the routine for the switch |
| from the old to the new elaboration order mechanism. |
| * bindo-diagnostics.adb (Find_And_Output_Invocation_Paths): |
| Manage a visited set used by Visit_Vertex. |
| (Output_All_Cycles_Suggestions, |
| Output_Dynamic_Model_Suggestions): Clarify the nature of the |
| suggested switch. |
| (Output_Elaborate_Body_Transition): Update the diagnostic to |
| emit a better message. |
| (Output_Forced_Suggestions, Output_Full_Encoding_Suggestions): |
| Clarify the nature of the suggested switch. |
| (Visit_Vertex): Update the parameter profile to add a set of |
| invokers visited during the transition. This set prevents |
| infinite exploration of the graph in case the invocations are |
| recursive. |
| * bindo-elaborators.adb: Add a use clause for |
| Bindo.Writers.Dependency_Writers. |
| (Elaborate_Units_Common): Output the library graph after it has |
| been augmented with invocation edges. Output just the components |
| instead of outputting the whole library graph again. |
| (Elaborate_Units_Dynamic, Elaborate_Units_Static): Output the |
| dependencies as expressed in the library graph. |
| * bindo-units.adb (Invocation_Graph_Encoding): Update the |
| extraction of the invocation graph encoding. |
| * bindo-writers.adb: Add with and use clauses for Binderr and |
| Butil. |
| (palgc, plgc): New debug routine. |
| (Write_Components): Moved to the spec. Add a header for the |
| output. |
| (Write_Dependencies, Write_Dependencies_Of_Vertex, |
| Write_Dependency_Edge): New routine. |
| (Write_Elaboration_Order): Update the logic to follow the format |
| of Binde's order output. |
| (Write_Library_Graph): Do not output the components every time |
| the graph is written. |
| (Write_Unit): Output the invocation graph encoding of the unit. |
| Output the invocation constructs and relations for the unit |
| only. |
| * bindo-writers.ads (Write_Components): Moved from the body. |
| (Write_Dependencies): New routine. |
| * bindusg.adb: Prepare the routine for the switch from the old |
| to the new elaboration order mechanism. |
| * debug.adb: Binder switch -d_O is now not associated with any |
| functionality. |
| * einfo.adb (Is_Elaboration_Target): The attribute applies to |
| packages, as specified by the comment on the attribute usage. |
| * opt.ads: Add a global flag which controls the choice between |
| the new and the legacy elaboration order mechanism. |
| * sem_elab.adb: Add Package_Target to type Target_Kind. |
| (Build_Elaborate_Body_Procedure, Build_Elaborate_Procedure, |
| Build_Elaborate_Spec_Procedure, Check_Elaboration_Scenarios, |
| Check_SPARK_Model_In_Effect): Use Main_Unit_Entity to obtain the |
| entity of the main unit. |
| (Create_Package_Rep): New routine. |
| (Create_Target_Rep): Add processing for packages. |
| (Declaration_Placement_Of_Node, Has_Prior_Elaboration): Use |
| Main_Unit_Entity to obtain the entity of the main |
| unit. |
| (Invocation_Graph_Recording_OK): Prepare the routine for the |
| switch from the old to the new elaboration order mechanism. |
| (Main_Unit_Entity): New routine. |
| (Meet_Elaboration_Requirement, |
| Process_Conditional_ABE_Variable_Reference): Use |
| Main_Unit_Entity to obtain the entity of the main unit. |
| (Process_Invocation_Instantiation): New routine. |
| (Process_Invocation_Scenario): Add processing for |
| instantiations. |
| * switch-b.adb (Scan_Binder_Switches): Prepare the routine for |
| the switch from the old to the new elaboration order mechanism. |
| |
| 2019-07-05 Joffrey Huguet <huguet@adacore.com> |
| |
| * libgnat/a-textio.adb: Add abstract state refinment. |
| * libgnat/a-textio.ads: Add File_System abstract state. Add |
| global contracts, contract cases, preconditions and |
| postconditions to procedures and functions. |
| (Set_Input, Set_Output, Set_Error, Standard_Input, |
| Standard_Output, Standard_Error, Current_Input, Current_Output, |
| Current_Error): Turn SPARK_Mode off. |
| (Get_Line): Turn SPARK_Mode off on Get_Line functions. |
| * libgnat/a-tideio.ads, libgnat/a-tienio.ads, |
| libgnat/a-tifiio.ads, libgnat/a-tiflio.ads, |
| libgnat/a-tiinio.ads, libgnat/a-timoio.ads: Add global |
| contracts, contract cases, preconditions and postconditions to |
| procedures and functions. |
| |
| 2019-07-05 Arnaud Charlet <charlet@adacore.com> |
| |
| * doc/gnat_ugn/platform_specific_information.rst: Refresh doc on |
| installing from the command line on Windows. Remove obsolete |
| part. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2019-07-05 Vasiliy Fofanov <fofanov@adacore.com> |
| |
| * libgnat/a-wichha.ads (Is_Alphanumeric): Replace comment with |
| the correct one. Also capitalize references to False |
| throughout. |
| |
| 2019-07-05 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch4.adb (Expand_N_Indexed_Component): Do not expand actual |
| parameters of function calls here either. |
| |
| 2019-07-05 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * bindo-units.adb, checks.adb, exp_attr.adb, exp_ch3.adb, |
| exp_ch4.adb, exp_pakd.adb, lib-writ.adb, libgnat/g-traceb.adb, |
| libgnat/g-traceb.ads, libgnat/s-stratt.ads, sem_aux.ads, |
| sem_util.adb: Minor reformatting. |
| |
| 2019-07-05 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch13.adb (Build_Predicate_Functions): If a subtype that |
| carries a static predicate aspect is frozen immediately after |
| its declaration, ensure that the generated function body created |
| for predicate checking is inserted after the corresponding |
| subprogram declaration, which is created at the point the |
| declaration is elaborated. |
| |
| 2019-07-05 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * exp_ch7.adb (Cleanup_Record): Use the underlying type when |
| checking for components with tasks. |
| |
| 2019-07-05 Arnaud Charlet <charlet@adacore.com> |
| |
| * libgnarl/s-osinte__linux.ads: Link with -lrt before -lpthread. |
| |
| 2019-07-05 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Add explicit |
| range checks when the index type of the bit-packed array is an |
| enumeration type with a non-standard representation, |
| |
| 2019-07-05 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_res.adb (Is_Control_Flow_Statement): Delay statements |
| contain an expression, which in turn may have side effects and |
| affect the infinite recursion. As a result, delay statements |
| should not be treated specially. |
| |
| 2019-07-05 Arnaud Charlet <charlet@adacore.com> |
| |
| * libgnarl/s-linux.ads, libgnarl/s-linux__alpha.ads, |
| libgnarl/s-linux__android.ads, libgnarl/s-linux__hppa.ads, |
| libgnarl/s-linux__mips.ads, libgnarl/s-linux__riscv.ads, |
| libgnarl/s-linux__sparc.ads: Fix typos in comments. |
| |
| 2019-07-05 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_res.adb (Check_Infinite_Recursion): Reimplemented. |
| (Enclosing_Declaration_Or_Statement, |
| Invoked_With_Different_Arguments, Is_Conditional_Statement, |
| Is_Control_Flow_Statement, Is_Immediately_Within_Body, |
| Is_Raise_Idiom, Is_Raise_Statement, Is_Sole_Statement, |
| Preceded_By_Control_Flow_Statement, |
| Within_Conditional_Statement): New routines. |
| |
| 2019-07-05 Javier Miranda <miranda@adacore.com> |
| |
| * exp_ch4.adb (Expand_N_Type_Conversion): Do not apply an |
| accessibility check when the conversion is an access to |
| class-wide interface type and it is an actual parameter. |
| * exp_ch6.adb (Expand_Call_Helper): Add documentation on the |
| accessibility level of an anonymous allocator defining the value |
| of an access parameter. |
| * sem_util.ads, sem_util.adb (Dynamic_Accessibility_Level): Add |
| support for an anonymous allocator whose type is that of a |
| stand-alone object of an anonymous access to object type. |
| |
| 2019-07-05 Piotr Trojanek <trojanek@adacore.com> |
| |
| * einfo.ads, sem_res.adb: Typo fixes in comments. |
| |
| 2019-07-05 Bob Duff <duff@adacore.com> |
| |
| * exp_ch6.adb (Is_Build_In_Place_Function): Narrow the check for |
| Has_Foreign_Convention to the imported case only. If a |
| build-in-place function is exported, and called from Ada code, |
| build-in-place protocols should be used. |
| |
| 2019-07-05 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_util.adb (Encloing_Subprogram): If Enclosing_Dynamic_Scope |
| is a loop, continue climbing the scope stack to find the |
| enclosing subprogram. |
| (Gather_Components): Handle properly a choice in a record |
| aggregate that is given by a subtype with a static predicate. |
| |
| 2019-07-05 Javier Miranda <miranda@adacore.com> |
| |
| * debug.adb (-gnatd.K): Leave available this switch. |
| * contracts.adb (Build_And_Analyze_Contract_Only_Subprograms): |
| Remove. |
| * scil_ll.ads, scil_ll.adb (Contract_Only_Body_Flag, |
| Contract_Only_Body_Nodes, Get_Contract_Only_Body, |
| Is_Contract_Only_Body, Set_Contract_Only_Body): Remove. |
| |
| 2019-07-05 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * libgnat/a-strunb.ads: Import documentation from the RM |
| |
| 2019-07-05 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * libgnat/a-strfix.ads: Import documentation from the RM |
| |
| 2019-07-05 Yannick Moy <moy@adacore.com> |
| |
| * adabkend.adb (Scan_Back_End_Switches): Accept -Og and -Ofast |
| switches. |
| |
| 2019-07-05 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * ali.adb: Relocate types Invocation_Construct_Record, |
| Invocation_Relation_Record, and Invocation_Signature_Record to |
| the body of ALI. Relocate tables Invocation_Constructs, |
| Invocation_Relations, and Invocation_Signatures to the body of |
| ALI. Remove type Body_Placement_Codes. Add new types |
| Declaration_Placement_Codes, and |
| Invocation_Graph_Encoding_Codes. Update the literals of type |
| Invocation_Graph_Line_Codes. |
| (Add_Invocation_Construct): Update the parameter profile. Add an |
| invocation construct built from all attributes provided. |
| (Add_Invocation_Relation): Update the parameter profile. Add an |
| invocation relation built from all attributes provided. |
| (Body_Placement): New routine. |
| (Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind): |
| Removed. |
| (Code_To_Declaration_Placement_Kind, |
| Code_To_Invocation_Graph_Encoding_Kind, Column, |
| Declaration_Placement_Kind_To_Code, Extra, |
| For_Each_Invocation_Construct, For_Each_Invocation_Relation, |
| Invocation_Graph_Encoding, |
| Invocation_Graph_Encoding_Kind_To_Code, Invoker, Kind, Line, |
| Locations, Name): New routine. |
| (Scan_Invocation_Construct_Line): Reimplement the scanning |
| mechanism. |
| (Scan_Invocation_Graph_Attributes_Line): New routine. |
| (Scan_Invocation_Graph_Line): Use a case statement to dispatch. |
| (Scan_Invocation_Relation_Line): Reimplement the scanning |
| mechanism. |
| (Scope): New routine. |
| (Set_Invocation_Graph_Encoding, Signature, Spec_Placement, |
| Target): New routine. |
| * ali.ads: Add new type Invocation_Graph_Encoding_Kind. Add |
| component Invocation_Graph_Encoding to type Unit_Record. |
| Relocate various types and data structures to the body of ALI. |
| (Add_Invocation_Construct, Add_Invocation_Relation): Update the |
| parameter profile. |
| (Body_Placement): New routine. |
| (Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind): |
| Removed. |
| (Code_To_Declaration_Placement_Kind, |
| Code_To_Invocation_Graph_Encoding_Kind, Column, |
| Declaration_Placement_Kind_To_Code, Extra, |
| For_Each_Invocation_Construct, For_Each_Invocation_Relation, |
| Invocation_Graph_Encoding, |
| Invocation_Graph_Encoding_Kind_To_Code, Invoker, Kind, Line, |
| Locations, Name, Scope, Set_Invocation_Graph_Encoding, |
| Signature, Spec_Placement, Target): New routine. |
| * bindo.adb: Add with clause for Binde. Add with and use |
| clauses for Debug. Update the documentation. Add new switches. |
| (Find_Elaboration_Order): Dispatch to the proper elaboration |
| mechanism. |
| * bindo-augmentors.adb: |
| Remove with and use clauses for GNAT and GNAT.Sets. Remove |
| membership set VS. Update the parameter profiles of most |
| routines to use better parameter names. Update the |
| implementation of most routine to use the new parameter names. |
| Remove various redundant assertions. |
| * bindo-builders.adb: Use better names for instantiated data |
| structures. Update all references to these names. Update the |
| parameter profiles of most routines to use better parameter |
| names. Update the implementation of most routine to use the new |
| parameter names. |
| (Build_Library_Graph): Update the parameter profile. Update the |
| call to Create. |
| (Create_Vertex): Reimplemented. |
| (Declaration_Placement_Vertex): New routine. |
| * bindo-builders.ads (Build_Library_Graph): Update the parameter |
| profile and comment on usage. |
| * bindo-diagnostics.adb: Almost a new unit. |
| * bindo-diagnostics.ads: Add a use clause for |
| Bindo.Graphs.Invocation_Graphs. Remove package |
| Cycle_Diagnostics. |
| (Diagnose_Circularities): New routine. |
| * bindo-elaborators.adb: Remove the with and use clauses for |
| Binderr and GNAT.Sets. Remove the use clause for |
| Bindo.Diagnostics.Cycle_Diagnostics. Remove membership set VS. |
| Update the parameter profiles of most routines to use better |
| parameter names. Update the implementation of most routine to |
| use the new parameter names. (Elaborate_Units_Common): Update |
| the parameter profile. Pass an infication to the library graph |
| builder whether the dynamic model is in effect. |
| (Elaborate_Units_Dynamic, Elaborate_Units_Static): Use |
| Diagnose_Circularities to provide diagnostics. |
| (Update_Successor): Use routine In_Same_Component to determine |
| whether the predecessor and successor reside in different |
| components. |
| * bindo-graphs.adb: Add with and use clauses for Butil, Debug, |
| Output, and Bindo.Writers. Remove with and use clauses for |
| GNAT.Lists. Update the parameter profiles of most routines to |
| use better parameter names. Update the implementation of most |
| routine to use the new parameter names. Remove various |
| redundant assertions. Remove doubly linked list EL. Add new |
| type Precedence_Kind. |
| (Add_Cycle): New routine. |
| (Add_Vertex): Update the parameter profile. Update the creation |
| of vertex attributes. |
| (Add_Vertex_And_Complement, Body_Vertex, Column, |
| Complementary_Vertex, Copy_Cycle_Path, Cycle_Kind_Of): New |
| routines. |
| (Destroy_Invocation_Graph_Edge, Destroy_Library_Graph_Cycle, |
| Destroy_Library_Graph_Edge, Extra, File_Name, |
| Find_All_Cycles_Through_Vertex, Find_All_Cycles_With_Edge, |
| Find_Cycles, Find_First_Lower_Precedence_Cycle, |
| Get_LGC_Attributes, Has_Next, Hash_Library_Graph_Cycle, |
| Hash_Library_Graph_Cycle_Attributes, Highest_Precedence_Cycle, |
| Highest_Precedence_Edge, In_Same_Component, Insert_And_Sort, |
| Invocation_Edge_Count, Invocation_Graph_Encoding, |
| Is_Cycle_Initiating_Edge, Is_Cyclic_Edge, |
| Is_Cyclic_Elaborate_All_Edge, Is_Cyclic_Elaborate_Body_Edge, |
| Is_Cyclic_Elaborate_Edge, Is_Cyclic_Forced_Edge, |
| Is_Cyclic_Invocation_Edge, Is_Cyclic_With_Edge, |
| Is_Dynamically_Elaborated, Is_Elaborate_All_Edge, |
| Is_Elaborate_Body_Edge, Is_Elaborate_Edge: New routines. |
| (Is_Existing_Predecessor_Successor_Relation): Removed. |
| (Is_Forced_Edge, Is_Invocation_Edge, Is_Recorded_Cycle, |
| Is_Recorded_Edge, Is_With_Edge, Iterate_Edges_Of_Cycle, Kind, |
| Length): New routine. |
| (Lib_Vertex): Removed. |
| (Line, Links_Vertices_In_Same_Component, |
| Maximum_Invocation_Edge_Count, Next, Normalize_And_Add_Cycle, |
| Normalize_Cycle_Path, Number_Of_Cycles, Path, Precedence, |
| Remove_Vertex_And_Complement, Sequence_Next_Cycle): New routines. |
| (Sequence_Next_IGE_Id): Renamed to Sequence_Next_Edge. |
| (Sequence_Next_IGV_Id): Renamed to Sequence_Next_Vertex. |
| (Sequence_Next_LGE_Id): Renamed to Sequence_Next_Edge. |
| (Sequence_Next_LGV_Id): Renamed to Sequence_Next_Vertex. |
| (Set_Is_Existing_Predecessor_Successor_Relation): Removed. |
| (Set_Is_Recorded_Cycle, Set_Is_Recorded_Edge, |
| Set_LGC_Attributes, Spec_Vertex, Trace_Cycle, Trace_Edge, |
| Trace_Eol, Trace_Vertex): New routines. |
| * bindo-graphs.ads: Add with and use clauses for Types and |
| GNAT.Lists. Update the parameter profiles of most routines to |
| use better parameter names. Update the implementation of most |
| routine to use the new parameter names. Add the new |
| instantiated data structures IGE_Lists, IGV_Sets, LGC_Lists, |
| LGE_Lists, LGE_Sets, LGV_Sets, and RC_Sets. Add new type |
| Library_Graph_Cycle_Id along with an empty and initial value. |
| Remove component Lib_Vertex and add new components Body_Vertex |
| and Spec_Vertex to type Invocation_Graph_Vertex_Attributes. Add |
| new type Library_Graph_Cycle_Kind. Add new iterators |
| All_Cycle_Iterator and Edges_Of_Cycle_Iterator. Add new type |
| Library_Graph_Cycle_Attributes. Add new components |
| Cycle_Attributes, Cycles, and Dynamically_Elaborated to type |
| Library_Graph_Attributes. |
| (Body_Vertex, Column, Destroy_Invocation_Graph_Edge, |
| Destroy_Library_Graph_Cycle_Attributes, |
| Destroy_Library_Graph_Edge, Extra, File_Name, Find_Cycles, |
| Has_Elaborate_All_Cycle, Has_Next, Hash_Library_Graph_Cycle, |
| Hash_Library_Graph_Cycle_Attributes, Highest_Precedence_Cycle, |
| In_Same_Component, Invocation_Edge_Count, |
| Invocation_Graph_Encoding, Is_Dynamically_Elaborated, |
| Is_Elaborate_All_Edge, Is_Elaborate_Body_Edge, |
| Is_Elaborate_Edge, Is_Forced_Edge, Is_Invocation_Edge, |
| Is_With_Edge, Iterate_All_Cycles, Iterate_Edges_Of_Cycle, Kind): |
| New routines. |
| (Length, Lib_Vertex, (Line, Next, Number_Of_Cycles, Present, |
| Same_Library_Graph_Cycle_Attributes, Spec_Vertex): New routines. |
| * bindo-units.adb (File_Name, Invocation_Graph_Encoding): New |
| routines. |
| * bindo-units.ads: Add new instantiated data structure |
| Unit_Sets. |
| (File_Name, Invocation_Graph_Encoding): New routine. |
| * bindo-validators.adb: Remove with and use clauses for GNAT and |
| GNAT.Sets. Remove membership set US. Update the parameter |
| profiles of most routines to use better parameter names. Update |
| the implementation of most routine to use the new parameter |
| names. |
| (Validate_Cycle, Validate_Cycle_Path, Validate_Cycles, |
| Validate_Invocation_Graph_Vertex): Remove the validation of |
| component Lib_Vertex. Add the validation of components |
| Body_Vertex and Spec_Vertex. |
| (Write_Error): New routine. |
| * bindo-validators.ads (Validate_Cycles): New routine. |
| * bindo-writers.adb: Update the parameter profiles of most |
| routines to use better parameter names. Update the |
| implementation of most routine to use the new parameter names. |
| (Write_Cycle, Write_Cyclic_Edge, Write_Cycles): New routines. |
| (Write_Invocation_Graph_Vertex): Remove the output of component |
| Lib_Vertex. Add the output of components Body_Vertex and |
| Spec_Vertex. |
| * bindo-writers.ads (Write_Cycles): New routine. |
| * debug.adb: Use binder switches -d_C and -d_P, add |
| documentation on their usage. |
| * gnatbind.adb: Remove with and use clauses for Binde. Delegate |
| the choice of elaboration mechanism to Bindo. |
| * lib-writ.adb (Column, Extra, Invoker, Kind, Line, Locations, |
| Name, Placement, Scope, Signature, Target): Removed. |
| (Write_Invocation_Graph): Moved at the top level. |
| (Write_Invocation_Graph_Attributes): New routine. |
| (Write_Invocation_Relation, Write_Invocation_Signature): Moved |
| at the top level. |
| * lib-writ.ads: Add a documentation section on invocation graph |
| attributes. |
| * sem_elab.adb (Body_Placement_Of): New routine. |
| (Declare_Invocation_Construct): Update the call to |
| Add_Invocation_Construct. |
| (Declaration_Placement_Of_Node): New routine. |
| (Get_Invocation_Attributes): Correct the retrieval of the |
| enclosing subprogram where the postcondition procedure lives. |
| (Placement_Of, Placement_Of_Node): Removed. |
| (Record_Invocation_Graph): Record the encoding format used. |
| (Record_Invocation_Graph_Encoding): New routine. |
| (Record_Invocation_Relation): Update the call to |
| Add_Invocation_Relation. |
| (Spec_Placement_Of): Removed. |
| * libgnat/g-lists.ads, libgnat/g-lists.adb (Equal): New routine. |
| |
| 2019-07-05 Ed Schonberg <schonberg@adacore.com> |
| |
| * checks.adb (Apply_Predicate_Check): Except within the |
| subprogram body that defines the formal, do not apply predicate |
| check on a formal IN parameter: such a check is redundant and |
| its expansion can lead to out-of-scope references when it is |
| originates in a function call in a precondition, |
| |
| 2019-07-05 Yannick Moy <moy@adacore.com> |
| |
| * sem_res.adb (Resolve_Call): Cannot inline in quantified |
| expressions. |
| * sem_util.adb, sem_util.ads (In_Quantified_Expression): New |
| function. |
| |
| 2019-07-05 Bob Duff <duff@adacore.com> |
| |
| * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst: |
| Fix typo. |
| * gnat_rm.texi: Regenerate. |
| |
| 2019-07-05 Bob Duff <duff@adacore.com> |
| |
| * exp_attr.adb (Input): Take the No_Stream_Optimizations |
| restriction into account. |
| |
| 2019-07-05 Claire Dross <dross@adacore.com> |
| |
| * libgnat/a-cofove.ads, libgnat/a-cofove.adb: Definite formal |
| vectors are now always bounded so that they do not need to be |
| limited anymore. |
| |
| 2019-07-05 Dmitriy Anisimkov <anisimko@adacore.com> |
| |
| * libgnat/g-traceb.ads, libgnat/g-traceb.adb (Call_Chain): New |
| function. |
| |
| 2019-07-04 James Clarke <jrtc27@debian.org> |
| |
| * libgnarl/s-osinte__kfreebsd-gnu.ads (clockid_t): Make type |
| definition public. |
| (CLOCK_REALTIME): Make value public. |
| |
| 2019-07-04 Javier Miranda <miranda@adacore.com> |
| |
| * exp_tss.adb (Init_Proc): Adding missing support for access to |
| subprograms and access to protected subprograms of non-default |
| C++ constructors. |
| |
| 2019-07-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gnat1drv.adb (Adjust_Global_Switches): Use proper interface to |
| set the validity settings in CodePeer mode. |
| * par-load.adb (Load): Remove all code dealing with validity |
| settings. |
| * validsw.ads (Validity_Check_Copies): Alphabetize. |
| * validsw.adb (Reset_Validity_Check_Options): Set all options to |
| off. |
| (Save_Validity_Check_Options): Save all options. |
| |
| 2019-07-04 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * exp_ch3.adb, exp_ch4.adb, exp_ch4.ads, exp_ch5.adb, |
| exp_ch7.adb, exp_ch9.adb, exp_ch11.adb, exp_unst.adb, |
| rtsfind.ads, sem_attr.adb, sem_ch10.adb, sem_ch12.adb, |
| sem_ch13.adb, sem_dim.adb, sem_disp.adb, xref_lib.adb: Minor |
| reformatting. |
| |
| 2019-07-04 Joffrey Huguet <huguet@adacore.com> |
| |
| * libgnarl/a-taside.ads: Add assertion policy to ignore |
| preconditions. |
| (Abort_Task, Is_Terminated, Is_Callable): Add preconditions. |
| |
| 2019-07-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_pragmas.rst: Fix |
| capitalization and parenthesis glitches. |
| * gnat_rm.texi: Regenerate. |
| |
| 2019-07-04 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch10.adb (Remove_Context_Clauses): Handle properly the |
| removal of a limited_with_clause which appears in the library |
| unit oF the main unit, when some other unit in the context has a |
| regular with_clause on the same unit, to prevent spurious |
| visibility errors in the subsequent analysis of pending instance |
| bodies. |
| |
| 2019-07-04 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_elab.adb: Add new type Elaboration_Phase_Status along with |
| a global to keep track of the elaboration phase status. |
| Initialize all internal data structures to Nil for services |
| Elaborated_Units, Internal_Representation, and Scenario_Storage. |
| (Build_Call_Marker): Do not create a call marker when the |
| elaboration phase is not active. |
| (Build_Variable_Reference_Marker): Do not create a call marker |
| when the elaboration phase is not active. |
| (Check_Elaboration_Scenarios): Destroy all internal structures |
| when the elaboration phase does not have to run. Do not execute |
| when the elaboration phase is not active. |
| (Elaboration_Phase_Active): New routine. |
| (Finalize_All_Data_Structures): New routine. |
| (Initialize): Initialize all internal data structures and signal |
| that the elaboration phase has started. |
| (Initialize_All_Data_Structures): New routine. |
| (Initialize_Elaborated_Units): Initialize all internal data |
| structures. |
| (Initialize_Internal_Representation): Initialize all internal |
| data structures. |
| (Initialize_Scenario_Storage): Initialize all internal data |
| structures. |
| (Kill_Elaboration_Scenario): Do not execute when the elaboration |
| phase is not active. |
| (Set_Elaboration_Phase): New routine. |
| (Update_Elaboration_Scenario): Do not execute when the |
| elaboration phase is not active. |
| |
| 2019-07-04 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_ch6.adb (Analyze_Subprogram_Body_Helper): The special |
| treatment of calling Mask_Unfrozen_Types must also be done in |
| the case of an Ignored_Ghost_Entity, because Expander_Active is |
| False in that case. |
| |
| 2019-07-04 Yannick Moy <moy@adacore.com> |
| |
| * sem_prag.adb (Check_Library_Level_Entity): Update for new rule |
| on SPARK_Mode. |
| |
| 2019-07-04 Justin Squirek <squirek@adacore.com> |
| |
| * sem_disp.adb (Check_Controlling_Formals): Obtain the full view |
| before type comparison. |
| |
| 2019-07-04 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_ch4.ads, exp_ch4.adb (Build_Eq_Call): New visible |
| subprogram, extracted from Expand_Composite_Equality, to handle |
| properly the composition of equality for variant record types. |
| * exp_ch3.adb (MAke_Eq_If): Use Build_Eq_Call for each |
| component, to handle properly the case of a component with a |
| user-defined equality. Revert to predefined equality if the |
| user-defined operation is abstract, to maintain compatibility |
| with older versions, |
| |
| 2019-07-04 Justin Squirek <squirek@adacore.com> |
| |
| * exp_ch3.adb (Build_Initialization_Call): Fixup |
| *_skip_null_excluding_check argument to handle new default. |
| (Init_Formals): Make *_skip_null_excluding_check formal default |
| to False |
| * exp_ch4.adb (Expand_N_Allocator): Add comment to note heavy |
| code duplication |
| |
| 2019-07-04 Bob Duff <duff@adacore.com> |
| |
| * sem_ch3.adb (Access_Definition): Do not create a master unless |
| Tasking_Allowed. Otherwise, this fails on restricted runtimes. |
| |
| 2019-07-04 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_util.adb (Propagate_DIC_Attributes): Do not propagate the |
| Default_Initial_Condition attributes to an incomplete type. |
| |
| 2019-07-04 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_attr.adb (Check_Array_Type): An array type attribute such |
| as 'First can be applied to an unconstrained array tyope when |
| the attribute reference appears within an aspect specification |
| and the prefix is a current instance, given that the prefix of |
| the attribute will become a formal of the subprogram that |
| implements the aspect (typically a predicate check). |
| |
| 2019-07-04 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_util.adb (Yields_Synchronized_Object): Fix typos in |
| comments. |
| |
| 2019-07-04 Yannick Moy <moy@adacore.com> |
| |
| * sem_util.adb (Yields_Synchronized_Object): Adapt to new SPARK |
| rule. |
| |
| 2019-07-04 Yannick Moy <moy@adacore.com> |
| |
| * sem_spark.adb (Check_Statement): Only check permission of |
| object in extended return when it is of a deep type. |
| |
| 2019-07-04 Justin Squirek <squirek@adacore.com> |
| |
| * sem_ch12.adb (Perform_Appropriate_Analysis): Added for |
| selecting which type of analysis based on wheither the |
| instantiation is a generic at the library-level. In which case |
| expansion during analysis. |
| (Preanalyze_Actuals): Modify calls to Analyze to use the new |
| routine. |
| |
| 2019-07-04 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_unst.adb: Handle conditional expressions. |
| |
| 2019-07-04 Yannick Moy <moy@adacore.com> |
| |
| * sem_spark.adb (Check_Package_Spec, Check_Package_Body): Only |
| analyze parts of the code marked in SPARK. |
| |
| 2019-07-04 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * erroutc.adb, exp_aggr.adb, inline.adb, opt.adb, sem_ch3.adb: |
| Minor reformatting. |
| |
| 2019-07-04 Yannick Moy <moy@adacore.com> |
| |
| * sem_spark.adb (Explanation, Get_Expl): New functions to get |
| the explanation for a permission mismatch. |
| (Perm_Error, Perm_Mismatch, Perm_Error_Loop_Exit): Take |
| explanation into account for issuing a more precise error |
| message. |
| (Set_Perm_Prefixes, Set_Perm_Extensions, |
| Set_Perm_Extensions_Move): Pass suitable argument for the |
| explanation node. |
| |
| 2019-07-04 Arnaud Charlet <charlet@adacore.com> |
| |
| * exp_aggr.adb (In_Place_Assign_OK): Moved to top level and add |
| support for record aggregates. |
| (Component_Check): Use Is_CCG_Supported_Aggregate instead of a |
| similar local predicate. |
| (Convert_To_Assignments): Take advantage of In_Place_Assign_OK |
| predicate when possible. |
| (Is_CCG_Supported_Aggregate): Return False for records with |
| representation clauses and fix the logic for dealing with nested |
| aggregates. |
| |
| 2019-07-04 Piotr Trojanek <trojanek@adacore.com> |
| |
| * opt.adb (Set_Config_Switches): Keep assertions policy as |
| enabled when analysing internal units in GNATprove mode. |
| |
| 2019-07-04 Arnaud Charlet <charlet@adacore.com> |
| |
| * exp_ch4.adb (Expand_Short_Circuit_Operator): Strip |
| N_Variable_Reference_Marker when checking for the presence of |
| actions. |
| |
| 2019-07-04 Arnaud Charlet <charlet@adacore.com> |
| |
| * exp_aggr.adb (Check_Component): Take into account type |
| conversions. |
| |
| 2019-07-04 Dmitriy Anisimkov <anisimko@adacore.com> |
| |
| * doc/gnat_ugn/platform_specific_information.rst: Document |
| Windows socket timeout particularity. |
| * gnat_ugn.texi: Regenerate. |
| * gsocket.h: Include versionhelpers.h. |
| * socket.c (__gnat_minus_500ms): New function. |
| * libgnat/g-sothco.ads (Minus_500ms_Windows_Timeout): New |
| imported function. |
| * libgnat/g-socket.adb (Set_Socket_Option): Refactor to remove |
| 500ms from the requested timeout only on old Windows version. |
| |
| 2019-07-04 Thomas Quinot <quinot@adacore.com> |
| |
| * get_scos.adb: Remove bogus, dead code. |
| |
| 2019-07-04 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_dim.adb (Analyze_Dimension_Array_Aggregate): If the |
| component is an entity name, its dimensions are those of its |
| type. |
| |
| 2019-07-03 Bob Duff <duff@adacore.com> |
| |
| * doc/gnat_ugn/gnat_utility_programs.rst: Document new flags in |
| GNATpp. |
| |
| 2019-07-03 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * binde.adb: Remove with clause for System.OS_Lib. |
| (Force_Elab_Order): Refactor the majority of the code in Butil. |
| Use the new forced units iterator to obtain unit names. |
| * bindo-builders.adb: Add with and use clauses for Binderr, |
| Butil, Opt, Output, Types, GNAT, and GNAT.Dynamic_HTables. Add |
| a hash table which maps units to line number in the forced |
| elaboration order file. |
| (Add_Unit): New routine. |
| (Build_Library_Graph): Create forced edges between pairs of |
| units listed in the forced elaboration order file. |
| (Create_Forced_Edge, Create_Forced_Edges, Destroy_Line_Number, |
| Duplicate_Unit_Error, Hash_Unit, Internal_Unit_Info, |
| Is_Duplicate_Unit, Missing_Unit_Info): New routines. |
| * bindo-graphs.adb (Is_Internal_Unit, Is_Predefined_Unit): |
| Refactor some of the behavior to Bindo-Units. |
| * bindo-graphs.ads: Enable the enumeration literal for forced |
| edges. |
| * bindo-units.adb, bindo-units.ads (Is_Internal_Unit, |
| Is_Predefined_Unit): New routines. |
| * butil.adb: Add with and use clauses for Opt, GNAT, and |
| System.OS_Lib. Add with clause for Unchecked_Deallocation. |
| (Has_Next, Iterate_Forced_Units, Next, Parse_Next_Unit_Name, |
| Read_Forced_Elab_Order_File): New routines. |
| * butil.ads: Add with and use clauses for Types. Add new |
| iterator over the units listed in the forced elaboration order |
| file. |
| (Has_Next, Iterate_Forced_Units, Next): New routine. |
| * namet.adb, namet.ads (Present): New routine. |
| |
| 2019-07-03 Bob Duff <duff@adacore.com> |
| |
| * sem_ch3.adb (Access_Definition): The code was creating a |
| master in the case where the designated type is a class-wide |
| interface type. Create a master in the noninterface case as |
| well. That is, create a master for all limited class-wide types. |
| |
| 2019-07-03 Yannick Moy <moy@adacore.com> |
| |
| * erroutc.adb (Sloc_In_Range): New function to determine whether |
| the range of a pragma Warnings covers a location, taking |
| instantiations into account. |
| |
| 2019-07-03 Johannes Kanig <kanig@adacore.com> |
| |
| * osint.ads, osint.adb (Get_First_Main_File_Name): New routine |
| to access the first file provided on the command line. |
| |
| 2019-07-03 Ed Schonberg <schonberg@adacore.com> |
| |
| * inline.adb (Process_Formals_In_Aspects): New procedure within |
| Expand_Inlined_Call, to perform a replacement of references to |
| formals that appear in aspect specifications within the body |
| being inlined. |
| |
| 2019-07-03 Justin Squirek <squirek@adacore.com> |
| |
| * sem_ch8.adb (Analyze_Object_Renaming): Add call to search for |
| the appropriate actual subtype of the object renaming being |
| analyzed. |
| (Check_Constrained_Object): Minor cleanup. |
| |
| 2019-07-03 Yannick Moy <moy@adacore.com> |
| |
| * sem_spark.adb (Get_Observed_Or_Borrowed_Expr): New function to |
| return go through traversal function call. |
| (Check_Type): Consistently use underlying type. |
| (Get_Perm): Adapt for case of elaboration code where variables |
| are not declared in the environment. Remove incorrect handling |
| of borrow and observe. |
| |
| 2019-07-03 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * inline.adb (Build_Return_Object_Formal): New routine. |
| (Can_Split_Unconstrained_Function): Code clean up. |
| (Copy_Formals,Copy_Return_Object): New routines. |
| (Split_Unconstrained_Function): Code clean up and refactoring. |
| |
| 2019-07-03 Gary Dismukes <dismukes@adacore.com> |
| |
| * bindo-augmentors.adb, bindo-augmentors.ads, |
| bindo-builders.ads, bindo-elaborators.adb, sem_ch12.adb, |
| sem_ch13.adb, sem_spark.adb, sinfo.ads: Minor editorial |
| corrections and reformatting. |
| |
| 2019-07-03 Bob Duff <duff@adacore.com> |
| |
| * sem_warn.adb (Check_Infinite_Loop_Warning): Avoid the warning |
| if an Iterator_Specification is present. |
| |
| 2019-07-03 Bob Duff <duff@adacore.com> |
| |
| * doc/gnat_ugn/gnat_utility_programs.rst: Document default |
| new-line behavior. |
| |
| 2019-07-03 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * ali.adb: Add with and use clauses for GNAT, |
| GNAT.Dynamic_HTables, and Snames. Add a map from invocation |
| signature records to invocation signature ids. Add various |
| encodings of invocation-related attributes. Sort and update |
| table Known_ALI_Lines. |
| (Add_Invocation_Construct, Add_Invocation_Relation, |
| Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind, |
| Code_To_Invocation_Construct_Kind, Code_To_Invocation_Kind, |
| Code_To_Invocation_Graph_Line_Kind, Destroy, Hash): New |
| routines. |
| (Initialize_ALI): Sort the initialization sequence. Add |
| initialization for all invocation-related tables. |
| (Invocation_Construct_Kind_To_Code, |
| Invocation_Graph_Line_Kind_To_Code, Invocation_Kind_To_Code, |
| Invocation_Signature_Of, Present): New routines. |
| (Scan_ALI): Add the default values for invocation-related ids. |
| Scan invocation graph lines. |
| (Scan_Invocation_Graph_Line): New routine. |
| * ali.ads: Add with clause for GNAT.Dynamic_Tables. Add types |
| for invocation constructs, relations, and signatures. Add |
| tables for invocation constructs, relations, and signatures. |
| Update Unit_Record to capture invocation-related ids. Relocate |
| table Unit_Id_Tables and subtypes Unit_Id_Table, Unit_Id_Array |
| from Binde. |
| (Add_Invocation_Construct, Add_Invocation_Relation, |
| Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind, |
| Code_To_Invocation_Construct_Kind, Code_To_Invocation_Kind, |
| Code_To_Invocation_Graph_Line_Kind, |
| Invocation_Construct_Kind_To_Code, |
| Invocation_Graph_Line_Kind_To_Code, Invocation_Kind_To_Code, |
| Invocation_Signature_Of, Present): New routines. |
| * binde.adb: Add with and use clause for Types. Add use clause |
| for ALI.Unit_Id_Tables; |
| * binde.ads: Relocate table Unit_Id_Tables and subtypes |
| Unit_Id_Table, Unit_Id_Array to ALI. |
| * bindgen.adb: Remove with and use clause for ALI. |
| * bindgen.ads: Remove with and use clause for Binde. Add with |
| and use clause for ALI. |
| * bindo.adb, bindo.ads, bindo-augmentors.adb, |
| bindo-augmentors.ads, bindo-builders.adb, bindo-builders.ads, |
| bindo-diagnostics.adb, bindo-diagnostics.ads, |
| bindo-elaborators.adb, bindo-elaborators.ads, bindo-graphs.adb, |
| bindo-graphs.ads, bindo-units.adb, bindo-units.ads, |
| bindo-validators.adb, bindo-validators.ads, bindo-writers.adb, |
| bindo-writers.ads: New units. |
| * debug.adb: Use and describe GNAT debug switches -gnatd_F and |
| -gnatd_G. Add GNATbind debug switches in the ranges dA .. dZ, |
| d.a .. d.z, d.A .. d.Z, d.1 .. d.9, d_a .. d_z, d_A .. d_Z, and |
| d_1 .. d_9. Use and describe GNATbind debug switches -d_A, |
| -d_I, -d_L, -d_N, -d_O, -d_T, and -d_V. |
| * exp_util.adb, exp_util.ads (Exceptions_OK): Relocate to |
| Sem_Util. |
| * gnatbind.adb: Add with and use clause for Bindo. Use the new |
| Bindo elaboration order only when -d_N is in effect. |
| * lib-writ.adb |
| (Column, Extra, Invoker, Kind, Line, Locations, Name, Placement, |
| Scope, Signature, Target): New routines. |
| (Write_ALI): Output all invocation-related data. |
| (Write_Invocation_Graph): New routine. |
| * lib-writ.ads: Document the invocation graph ALI line. |
| * namet.adb, namet.ads (Present): New routines. |
| * sem_ch8.adb (Find_Direct_Name): Capture the status of |
| elaboration checks and warnings of an identifier. |
| (Find_Expanded_Name): Capture the status of elaboration checks |
| and warnings of an expanded name. |
| * sem_ch12.adb (Analyze_Generic_Package_Declaration): Ensure |
| that invocation graph-related data within the body of the main |
| unit is encoded in the ALI file. |
| (Analyze_Generic_Subprogram_Declaration): Ensure that invocation |
| graph-related data within the body of the main unit is encoded |
| in the ALI file. |
| (Analyze_Package_Instantiation): Perform minimal decoration of |
| the instance entity. |
| (Analyze_Subprogram_Instantiation): Perform minimal decoration |
| of the instance entity. |
| * sem_elab.adb: Perform heavy refactoring of all code. The unit |
| is now split into "services" which specialize in one area of ABE |
| checks. Add processing in order to capture invocation-graph |
| related attributes of the main unit, and encode them in the ALI |
| file. The Processing phase can now operate in multiple modes, |
| all described by type Processing_Kind. Scenarios and targets |
| are now distinct at the higher level, and carry their own |
| representations. This eliminates the need to constantly |
| recompute their attributes, and offers the various processors a |
| uniform interface. The various initial states of the Processing |
| phase are now encoded using type Processing_In_State, and |
| xxx_State constants. |
| * sem_elab.ads: Update the literals of type |
| Enclosing_Level_Kind. Add Inline pragmas on several routines. |
| * sem_prag.adb (Process_Inline): Ensure that invocation |
| graph-related data within the body of the main unit is encoded |
| in the ALI file. |
| * sem_util.adb (Enclosing_Generic_Body, Enclosing_Generic_Unit): |
| Code clean up. |
| (Exceptions_OK): Relocated from Sem_Util. |
| (Mark_Save_Invocation_Graph_Of_Body): New routine. |
| * sem_util.ads (Exceptions_OK): Relocated from Sem_Util. |
| (Mark_Save_Invocation_Graph_Of_Body): New routine. |
| * sinfo.adb (Is_Elaboration_Checks_OK_Node): Now applicable to |
| N_Variable_Reference_Marker. |
| (Is_Elaboration_Warnings_OK_Node): Now applicable to |
| N_Expanded_Name, N_Identifier, N_Variable_Reference_Marker. |
| (Is_Read): Use Flag4. |
| (Is_SPARK_Mode_On_Node): New applicable to |
| N_Variable_Reference_Marker. |
| (Is_Write): Use Flag5. |
| (Save_Invocation_Graph_Of_Body): New routine. |
| (Set_Is_Elaboration_Checks_OK_Node): Now applicable to |
| N_Variable_Reference_Marker. |
| (Set_Is_Elaboration_Warnings_OK_Node): Now applicable to |
| N_Expanded_Name, N_Identifier, N_Variable_Reference_Marker. |
| (Set_Is_SPARK_Mode_On_Node): New applicable to |
| N_Variable_Reference_Marker. |
| (Set_Save_Invocation_Graph_Of_Body): New routine. |
| * sinfo.ads: Update the documentation of attributes |
| Is_Elaboration_Checks_OK_Node, Is_Elaboration_Warnings_OK_Node, |
| Is_SPARK_Mode_On_Node. Update the flag usage of attributes |
| Is_Read, Is_Write. Add attribute Save_Invocation_Graph_Of_Body |
| and update its occurrence in nodes. |
| (Save_Invocation_Graph_Of_Body): New routine along with pragma |
| Inline. |
| (Set_Save_Invocation_Graph_Of_Body): New routine along with |
| pragma Inline. |
| * switch-b.adb (Scan_Binder_Switches): Refactor the scanning of |
| debug switches. |
| (Scan_Debug_Switches): New routine. |
| * libgnat/g-dynhta.adb, libgnat/g-dynhta.ads (Contains): New routine. |
| * libgnat/g-graphs.adb (Associate_Vertices): Update the use of |
| Component_Vertex_Iterator. |
| (Contains_Component, Contains_Edge, Contains_Vertex, Has_Next): |
| Reimplemented. |
| (Iterate_Component_Vertices): New routine. |
| (Iterate_Vertices): Removed. |
| (Next): Update the parameter profile. |
| (Number_Of_Component_Vertices, Number_Of_Outgoing_Edges): New |
| routines. |
| * libgnat/g-graphs.ads: Update the initialization of |
| No_Component. Add type Component_Vertex_Iterator. Remove type |
| Vertex_Iterator. |
| (Has_Next): Add new versions and remove old ones. |
| (Iterate_Component_Vertices): New routine. |
| (Iterate_Vertices): Removed. |
| (Next): Add new versions and remove old ones. |
| (Number_Of_Component_Vertices, Number_Of_Outgoing_Edges): New |
| routines. |
| * libgnat/g-sets.adb (Contains): Reimplemented. |
| * gcc-interface/Make-lang.in (GNATBIND_OBJS): Add |
| GNAT.Dynamic_HTables, GNAT.Graphs and Bindo units. |
| * rtsfind.ads: Remove extra space. |
| |
| 2019-07-03 Yannick Moy <moy@adacore.com> |
| |
| * sem_spark.adb: Add support for locally borrowing and observing |
| a path. |
| (Get_Root_Object): Add parameter Through_Traversal to denote |
| when we are interesting in getting to the traversed parameter. |
| (Is_Prefix_Or_Almost): New function to support detection of |
| illegal access to borrowed or observed paths. |
| (Check_Pragma): Add analysis of assertion pragmas. |
| |
| 2019-07-03 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch13.adb (Build_Predicate_Functions): In a generic context |
| we do not build the bodies of predicate fuctions, but the |
| expression in a static predicate must be elaborated to allow |
| case coverage checking within the generic unit. |
| (Build_Discrete_Static_Predicate): In a generic context, return |
| without building function body once the |
| Static_Discrete_Predicate expression for the type has been |
| constructed. |
| |
| 2019-07-03 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * bindgen.adb, inline.adb, layout.adb, sem_ch12.adb, |
| sem_ch13.adb, sem_ch7.adb, styleg.adb: Minor reformatting. |
| |
| 2019-07-03 Bob Duff <duff@adacore.com> |
| |
| * par-ch3.adb (P_Defining_Identifier): Call |
| Check_Defining_Identifier_Casing. |
| * style.ads, styleg.ads, styleg.adb |
| (Check_Defining_Identifier_Casing): New procedure to check for |
| mixed-case defining identifiers. |
| * stylesw.ads, stylesw.adb (Style_Check_Mixed_Case_Decls): New |
| flag for checking for mixed-case defining identifiers. |
| * doc/gnat_ugn/building_executable_programs_with_gnat.rst: |
| Document new feature. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2019-07-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/gnat_ugn/building_executable_programs_with_gnat.rst |
| (Warning message control): Document that -gnatw.z/Z apply to |
| array types. |
| * freeze.adb (Freeze_Entity): Give -gnatw.z warning for array |
| types as well, but not if the specified alignment is the minimum |
| one. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2019-07-03 Bob Duff <duff@adacore.com> |
| |
| * einfo.ads, exp_util.adb, layout.ads, sinfo.ads: Spell "laid" |
| correctly. |
| |
| 2019-07-03 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch13.adb (Analyze_Attribute_Definition_Clause): No error |
| message on attribute applied to a renaming when the renamed |
| object is an aggregate (from code reading). |
| (Check_Aspect_At_End_Of_Declarations): In a generic context |
| where freeze nodes are not generated, the original expression |
| for an aspect may need to be analyzed to precent spurious |
| conformance errors when compared with the expression that is |
| anakyzed at the end of the current declarative list. |
| |
| 2019-07-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * layout.adb (Layout_Type): Do not set the component size of an |
| array with a scalar component if the component type is |
| overaligned. |
| |
| 2019-07-03 Ed Schonberg <schonberg@adacore.com> |
| |
| * inline.adb (Make_Loop_Labels_Unique): New procedure to modify |
| the source code of subprograms that are inlined by the |
| front-end, to prevent accidental duplication between loop labels |
| in the inlined code and the code surrounding the inlined call. |
| |
| 2019-07-03 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update |
| the section on resolving elaboration circularities to eliminate |
| certain combinations of switches which together do not produce |
| the desired effect and confuse users. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2019-07-03 Arnaud Charlet <charlet@adacore.com> |
| |
| * bindgen.adb (Gen_Main): Disable generation of reference to |
| Ada_Main_Program_Name for CCG. |
| * bindusg.adb (Display): Add -G to the command-line usage for |
| gnatbind. |
| * opt.ads (Generate_C_Code): Update comment. |
| * switch-b.adb (Scan_Binder_Switches): Add handling for -G. |
| |
| 2019-07-03 Arnaud Charlet <charlet@adacore.com> |
| |
| * sem_ch7.adb (Has_Referencer): Do not consider inlined |
| subprograms when generating C code, which allows us to generate |
| static inline subprograms. |
| |
| 2019-07-03 Justin Squirek <squirek@adacore.com> |
| |
| * sem_ch6.adb (Check_Conformance): Add expression checking for |
| constant modifiers in anonymous access types (in addition to |
| "non-null" types) so that they are considered "matching" for |
| subsequent conformance tests. |
| |
| 2019-07-03 Arnaud Charlet <charlet@adacore.com> |
| |
| * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst: |
| Clarify wording on No_Multiple_Elaboration. |
| * gnat_rm.texi: Regenerate. |
| |
| 2019-07-03 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch8.adb (Find_Selected_Component): If the prefix is the |
| current instance of a type or subtype, complete the resolution |
| of the name by finding the component of the type denoted by the |
| selector name. |
| |
| 2019-07-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/gnat_rm/interfacing_to_other_languages.rst (Interfacing to C): |
| Document that boolean types with convention C now map to C99 bool. |
| * gnat_rm.texi: Regenerate. |
| |
| 2019-07-03 Javier Miranda <miranda@adacore.com> |
| |
| * exp_attr.adb (Expand_Min_Max_Attribute): Code cleanup: |
| removing code that it is now never executed in the CCG compiler |
| (dead code). |
| |
| 2019-07-02 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * libgnat/system-darwin-ppc.ads: Set Stack_Check_Probes True for |
| PPC Darwin. |
| |
| 2019-07-01 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch12.adb (Is_Defaulted): New predicate in |
| Check_Formal_Package_Intance, to skip the conformance of checks |
| on parameters of a formal package that are defaulted, |
| |
| 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * checks.adb, exp_ch9.adb, exp_unst.adb, sem_ch4.adb, |
| sem_prag.adb, sem_spark.adb: Minor reformatting. |
| |
| 2019-07-01 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_attr.adb (Analyze_Attribute, case Enum_Rep): Allow prefix |
| of attribute to be an attribute reference of a discrete type. |
| |
| 2019-07-01 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch12.adb (Analyze_Subprogram_Instantiation): Move up |
| handling of Has_Pragma_Inline_Always and deal with |
| Has_Pragma_No_Inline. |
| |
| 2019-07-01 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch3.adb (Build_Derived_Record_Type): If the parent type is |
| declared as a subtype of a private type with an inherited |
| discriminant constraint, its generated full base appears as a |
| record subtype, so we need to retrieve its oen base type so that |
| the inherited constraint can be applied to it. |
| |
| 2019-07-01 Yannick Moy <moy@adacore.com> |
| |
| * sem_spark.adb: Completely rework the algorithm for ownership |
| checking, as the rules in SPARK RM have changed a lot. |
| * sem_spark.ads: Update comments. |
| |
| 2019-07-01 Dmitriy Anisimkov <anisimko@adacore.com> |
| |
| * gsocket.h (Has_Sockaddr_Len): Use the offset of sin_family offset in |
| the sockaddr_in structure to determine the existence of length field |
| before the sin_family. |
| |
| 2019-07-01 Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_prag.adb (Analyze_Pragma, case Weak_External): Pragma only |
| applies to entities with run-time addresses, not to types. |
| |
| 2019-07-01 Piotr Trojanek <trojanek@adacore.com> |
| |
| * einfo.adb, sem_ch7.adb, sem_prag.adb, sem_util.adb: Update |
| references to the SPARK RM after the removal of Rule 7.1.4(5). |
| |
| 2019-07-01 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sysdep.c: Cleanup references to LynuxWorks in docs and |
| comments. |
| |
| 2019-07-01 Ed Schonberg <schonberg@adacore.com> |
| |
| * checks.adb (Insert_Valid_Check): Do not apply validity check |
| to variable declared within a protected object that uses the |
| Lock_Free implementation, to prevent unwarranted constant |
| folding, because entities within such an object msut be treated |
| as volatile. |
| |
| 2019-07-01 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch9.adb (Check_Inlining): Deal with Has_Pragma_No_Inline. |
| |
| 2019-07-01 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_unst.adb (Visit_Node, Check_Static_Type): Improve the |
| handling of private and incomplete types whose full view is an |
| access type, to detect additional uplevel references in dynamic |
| bounds. This is relevant to N_Free_Statement among others that |
| manipulate types whose full viww may be an access type. |
| |
| 2019-07-01 Pat Rogers <rogers@adacore.com> |
| |
| * doc/gnat_rm/representation_clauses_and_pragmas.rst: Correct |
| size indicated for R as a component of an array. |
| * gnat_rm.texi: Regenerate. |
| |
| 2019-07-01 Justin Squirek <squirek@adacore.com> |
| |
| * libgnat/s-win32.ads: Add definition for ULONG, modify |
| OVERLAPPED type, and add appropriate pragmas. |
| |
| 2019-07-01 Bob Duff <duff@adacore.com> |
| |
| * gnat1drv.adb (gnat1drv): Call Write_ALI if the main unit is |
| ignored-ghost. |
| |
| 2019-07-01 Yannick Moy <moy@adacore.com> |
| |
| * sem_ch4.adb (Operator_Check): Refine error message. |
| |
| 2019-07-01 Piotr Trojanek <trojanek@adacore.com> |
| |
| * libgnat/a-calend.ads: Revert "Global => null" contracts on |
| non-pure routines. |
| |
| 2019-07-01 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_attr.adb, libgnat/g-graphs.ads: Fix typos in comments: |
| componant -> component. |
| |
| 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * libgnat/g-graphs.adb: Use type Directed_Graph rather than |
| Instance in various routines. |
| * libgnat/g-graphs.ads: Change type Instance to Directed_Graph. |
| Update various routines that mention the type. |
| |
| 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * libgnat/g-sets.adb: Use type Membership_Set rathern than |
| Instance in various routines. |
| * libgnat/g-sets.ads: Change type Instance to Membership_Set. |
| Update various routines that mention the type. |
| |
| 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * libgnat/g-lists.adb: Use type Doubly_Linked_List rather than |
| Instance in various routines. |
| * libgnat/g-lists.ads: Change type Instance to |
| Doubly_Linked_List. Update various routines that mention the |
| type. |
| |
| 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * libgnat/g-dynhta.adb: Use type Dynamic_Hash_Table rather than |
| Instance in various routines. |
| * libgnat/g-dynhta.ads: Change type Instance to |
| Dynamic_Hash_Table. Update various routines that mention the |
| type. |
| |
| 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * exp_attr.adb, exp_ch7.adb, exp_unst.adb, sem_ch3.adb, |
| sem_util.adb, uintp.adb, uintp.ads: Minor reformatting. |
| |
| 2019-07-01 Javier Miranda <miranda@adacore.com> |
| |
| * exp_attr.adb (Expand_Min_Max_Attribute): Disable expansion of |
| 'Min/'Max on integer, enumeration, fixed point and floating |
| point types since the CCG backend now provides in file |
| standard.h routines to support it. |
| |
| 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * impunit.adb: Add GNAT.Graphs to list Non_Imp_File_Names_95. |
| * Makefile.rtl, gcc-interface/Make-lang.in: Register unit |
| GNAT.Graphs. |
| * libgnat/g-dynhta.adb: Various minor cleanups (use Present |
| rather than direct comparisons). |
| (Delete): Reimplement to use Delete_Node. |
| (Delete_Node): New routine. |
| (Destroy_Bucket): Invoke the provided destructor. |
| (Present): New routines. |
| * libgnat/g-dynhta.ads: Add new generic formal Destroy_Value. |
| Use better names for the components of iterators. |
| * libgnat/g-graphs.adb, libgnat/g-graphs.ads: New unit. |
| * libgnat/g-lists.adb: Various minor cleanups (use Present |
| rather than direct comparisons). |
| (Delete_Node): Invoke the provided destructor. |
| (Present): New routine. |
| * libgnat/g-lists.ads: Add new generic formal Destroy_Element. |
| Use better names for the components of iterators. |
| (Present): New routine. |
| * libgnat/g-sets.adb, libgnat/g-sets.ads (Destroy, Preset, |
| Reset): New routines. |
| |
| 2019-07-01 Dmitriy Anisimkov <anisimko@adacore.com> |
| |
| * libgnat/g-sothco.adb (Get_Address): Fix the case when AF_INET6 |
| is not defined. |
| |
| 2019-07-01 Ed Schonberg <schonberg@adacore.com> |
| |
| * exp_attr.adb (Expand_Attribute_Reference, case Invalid_Value): |
| Resolve result of call to Get_Simple_Init_Val, which may be a |
| conversion of a literal. |
| |
| 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * freeze.adb (Freeze_Expression): Remove the horrible useless |
| name hiding of N. Insert the freeze nodes generated by the |
| expression prior to the expression when the nearest enclosing |
| scope is transient. |
| |
| 2019-07-01 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix |
| formatting issues in the -gnatR section. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2019-06-30 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * gnatlink.adb (Link_Step): Remove duplicate -static-libgcc switches. |
| Push -shared-libgcc explicitly, when it is the target default (unless |
| overidden by the static flag). |
| When the user has put an instance of shared/static-libgcc do not push |
| a duplicate of this. |
| |
| 2019-06-29 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.c (gnat_to_gnu_entity): Beep up comment on SAVED, |
| and tweak comment on the assertion about the scopes of Itypes. Do not |
| skip the regular processing for Itypes that are E_Record_Subtype with |
| a Cloned_Subtype. Get the Cloned_Subtype for every E_Record_Subtype |
| if the type is dummy and hasn't got its own freeze node. |
| <E_Record_Subtype>: Save again the DECL of the Cloned_Subtype, if any. |
| <E_Access_Subtype>: Save again the DECL of the equivalent type. |
| (Gigi_Equivalent_Type) <E_Access_Subtype>: New case. |
| |
| 2019-06-29 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/utils.c (unchecked_convert): Tweak comment. Only skip |
| dereferences when padding to have the same size on both sides. Do it |
| for destination types with self-referential size too. |
| |
| 2019-06-29 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the |
| type requires strict alignment, then set the RM size to the type size. |
| Rework handling of alignment and sizes of tagged types in ASIS mode. |
| (validate_size): Rename local variable and remove special handling for |
| strict-alignment types. |
| * gcc-interface/utils.c (finish_record_type): Constify local variables |
| and use properly typed constants. |
| |
| 2019-06-29 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.c (gnat_to_gnu_field): Rework error messages for |
| fields requiring strict alignment, add explicit test on Storage_Unit |
| for position and size, and mention type alignment for position. |
| |
| 2019-06-29 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (mark_visited_r): Set TYPE_SIZES_GIMPLIFIED on |
| the main variant of a type, if any. |
| |
| 2019-06-29 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.c (set_nonaliased_component_on_array_type): Add |
| missing guard for the presence of TYPE_CANONICAL. |
| (set_reverse_storage_order_on_array_type): Likewise. |
| |
| 2019-06-29 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/gigi.h (make_packable_type): Remove default value. |
| (value_factor_p): Tweak prototype. |
| * gcc-interface/decl.c (gnat_to_gnu_entity): Add comment. |
| (gnat_to_gnu_component_type): Likewise. |
| (gnat_to_gnu_field): Likewise. Fetch the position of the field earlier |
| and simplify the condition under which the type is packed. Declare |
| local variable is_bitfield. Pass 1 as max_align to make_packable_type |
| if it is set to true. |
| (copy_and_substitute_in_layout): Pass 0 to make_packable_type. |
| * gcc-interface/utils.c (make_packable_array_type): New function. |
| (make_packable_type): Use it to rewrite the type of array field. |
| (maybe_pad_type): Pass align parameter to make_packable_type. |
| (create_field_decl): Minor tweaks. |
| (value_factor_p): Assert that FACTOR is a power of 2 and replace the |
| modulo computation by a masking operation. |
| |
| 2019-06-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.c (gnat_to_gnu_entity): Remove superfluous test |
| in previous change. |
| * gcc-interface/gigi.h (maybe_character_type): Fix formatting. |
| (maybe_character_value): Likewise. |
| |
| 2019-06-24 Jan Hubicka <jh@suse.cz> |
| |
| * gcc-interface/decl.c (gnat_to_gnu_entity): Check that |
| type is array or integer prior checking string flag. |
| * gcc-interface/gigi.h (maybe_character_type): Likewise. |
| (maybe_character_value): Likewise. |
| |
| 2019-06-24 Martin Sebor <msebor@redhat.com> |
| |
| * gcc-interface/utils.c (handle_nonnull_attribute): Quote attribute |
| name. |
| |
| 2019-06-18 Arnaud Charlet <charlet@adacore.com> |
| |
| PR ada/80590 |
| * sem_ch5.adb (Analyze_Loop_Statement): Avoid exception propagation |
| during normal processing. |
| |
| 2019-06-17 Arnaud Charlet <charlet@adacore.com> |
| |
| PR ada/80590 |
| * exp_ch9.adb (Expand_N_Delay_Relative_Statement): Swap the two |
| conditions to avoid a unnecessary exception propagation in the default |
| case. |
| |
| 2019-05-28 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/utils.c (handle_stack_protect_attribute): Move around. |
| |
| 2019-05-28 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_pragmas.rst (Machine_Attribute): |
| Document additional optional parameters. |
| * sem_prag.adb (Analyze_Pragma) <Pragma_Machine_Attribute>: Accept |
| more than one optional parameter. |
| * gcc-interface/decl.c (prepend_one_attribute_pragma): Alphabetize |
| the list of supported pragmas. Simplify the handling of parameters |
| and add support for more than one optional parameter. |
| * gcc-interface/utils.c (attr_cold_hot_exclusions): New constant. |
| (gnat_internal_attribute_table): Add entry for no_icf, noipa, flatten, |
| used, cold, hot, target and target_clones. |
| (begin_subprog_body): Do not create the RTL for the subprogram here. |
| (handle_noicf_attribute): New static function. |
| (handle_noipa_attribute): Likewise. |
| (handle_flatten_attribute): Likewise. |
| (handle_used_attribute): Likewise. |
| (handle_cold_attribute): Likewise. |
| (handle_hot_attribute): Likewise. |
| (handle_target_attribute): Likewise. |
| (handle_target_clones_attribute): Likewise. |
| |
| 2019-05-28 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (lvalue_required_for_attribute_p): Return 0 |
| for 'Size too. |
| (Identifier_to_gnu): Use the actual subtype for a reference to a |
| packed array in a return statement. |
| (Attribute_to_gnu) <Attr_Size>: Do not strip VIEW_CONVERT_EXPRs from |
| the prefix in every case. |
| |
| 2019-05-28 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (gnat_to_gnu): Remove superfluous tests on |
| Backend_Overflow_Checks_On_Target and rework comments. |
| |
| 2019-05-28 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (walk_nesting_tree): New static function. |
| (finalize_nrv): Use it to walk the entire nesting tree. |
| |
| 2019-05-28 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Remove |
| obsolete test on Is_For_Access_Subtype. |
| |
| 2019-05-28 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.c (components_to_record): Set a name on the type |
| created for the REP part, if any. |
| * gcc-interface/utils.c (finish_record_type): Only take the maximum |
| when merging sizes for a variant part at offset 0. |
| (merge_sizes): Rename has_rep parameter into max. |
| |
| 2019-05-28 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/utils.c (gnat_internal_attribute_table): Add support |
| for stack_protect attribute. |
| (handle_stack_protect_attribute): New static function. |
| |
| 2019-05-28 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.c (intrin_arglists_compatible_p): Do not return |
| false if the internal builtin uses a variable list. |
| |
| 2019-05-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (Call_to_gnu): Do not initialize the temporary |
| created out of addressability concerns if it's for the _Init parameter |
| of an initialization procedure. |
| |
| 2019-05-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/ada-builtin-types.def: New file. |
| * gcc-interface/ada-builtins.def: Likewise. |
| * gcc-interface/ada-tree.h (BUILT_IN_LIKELY): New macro. |
| (BUILT_IN_UNLIKELY): Likewise. |
| * gcc-interface/trans.c (independent_iterations_p): Initialize the |
| auto-vector to 16 elements. |
| (Call_to_gnu): Remove local variable and change the vector of actual |
| parameters to an auto-vector. Do not convert actual parameters to |
| the argument type for front-end built-in functions. Add support for |
| front-end built-in functions. |
| (build_noreturn_cond): Use internal instead of built-in function. |
| * gcc-interface/utils.c (c_builtin_type): Include ada-builtin-types.def |
| (install_builtin_function_types): Likewise. |
| (install_builtin_functions): Include ada-builtins.def first. |
| |
| 2019-05-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/utils.c (maybe_pad_type): Issue the warning for the |
| specific case of component types preferably. |
| |
| 2019-05-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (Identifier_to_gnu): Minor tweaks. |
| (gnat_to_gnu): Do not convert the result if it is a reference to an |
| unconstrained array used as the prefix of an attribute reference that |
| requires an lvalue. |
| |
| 2019-05-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (Gigi_Types_Compatible): New predicate. |
| (Identifier_to_gnu): Use it to assert that the type of the identifier |
| and that of its entity are compatible for gigi. Rename a couple of |
| local variables and separate the processing of the result type. |
| |
| 2019-05-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (Call_to_gnu): Use the unpadded type when |
| putting back an intermediate conversion the type of the actuals. |
| |
| 2019-05-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (gnat_to_gnu) <Shift operations>: Convert the |
| count to the unsigned version of its base type before proceeding. |
| |
| 2019-05-16 Martin Sebor <msebor@redhat.com> |
| |
| * gcc-interface/trans.c (check_inlining_for_nested_subprog): Quote |
| reserved names. |
| |
| 2019-05-08 Arnaud Charlet <charlet@adacore.com> |
| |
| * standard.ads.h: New file. |
| |
| 2019-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * gcc-interface/Makefile.in (install-gcc-specs): Use foreach. |
| Honor DESTDIR. |
| |
| 2019-04-29 Michael K. Darling <darlingm@gmail.com> |
| |
| * gnatvsn.ads: Bump Library_Version to 10. |
| |
| 2019-04-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| Bernd Edlinger <bernd.edlinger@hotmail.de> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89093 |
| * raise-gcc.c (TARGET_ATTRIBUTE): Define. |
| (continue_unwind, personality_body, PERSONALITY_FUNCTION): Add |
| TARGET_ATTRIBUTE. |
| |
| 2019-04-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnat/i-cexten.ads (CFloat_128): New type. |
| |
| 2019-03-22 Dmitriy Anisimkov <anisimko@adacore.com> |
| |
| PR ada/89583 |
| * libgnat/g-socket.adb (Bind_Socket, Connect_Socket, |
| Send_Socket): Fix the computation of structure lengths passed to |
| low level routines. |
| (Is_IPv6_Address): Fix the number of expected colons. |
| |
| 2019-03-11 Martin Liska <mliska@suse.cz> |
| |
| * gcc-interface/misc.c (gnat_post_options): Wrap option name in string |
| format message and fix GNU coding style. |
| |
| 2019-02-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (gnat_to_gnu) <N_Aggregate>: Minor tweak. |
| * gcc-interface/utils.c (convert): Do not pad when doing an unchecked |
| conversion here. Use TREE_CONSTANT throughout the function. |
| (unchecked_convert): Also pad if the source is a CONSTRUCTOR and the |
| destination is a more aligned array type or a larger aggregate type, |
| but not between original and packable versions of a type. |
| |
| 2019-02-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/utils.c (max_size) <tcc_unary>: Be prepared for an |
| operand with VOID_TYPE. |
| |
| 2019-02-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (elaborate_all_entities): Do not elaborate the |
| entities of a package renaming another one. |
| |
| 2019-02-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (Regular_Loop_to_gnu): Replace tests on |
| individual flag_unswitch_loops and flag_tree_loop_vectorize switches |
| with test on global optimize switch. |
| (Raise_Error_to_gnu): Likewise. |
| |
| 2019-02-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnarl/s-linux__sparc.ads (ETIMEDOUT): Set to correct value. |
| |
| 2019-02-06 Arnaud Charlet <charlet@adacore.com> |
| |
| * libgnarl/s-linux__x32.ads: Resync list of signals with s-linux.ads |
| |
| 2019-01-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * repinfo.adb (List_Component_Layout): Remove superfluous space for |
| zero-sized field. |
| * gcc-interface/ada-tree.h (TYPE_IS_EXTRA_SUBTYPE_P): New macro. |
| * gcc-interface/gigi.h (create_extra_subtype): Declare. |
| * gcc-interface/decl.c (TYPE_ARRAY_SIZE_LIMIT): Likewise. |
| (update_n_elem): New function. |
| (gnat_to_gnu_entity): Use create_extra_subtype to create extra subtypes |
| instead of doing it manually. |
| <E_Array_Type>: Use update_n_elem to compute the maximum size. Use the |
| index type instead of base type for the bounds. Set TYPE_ARRAY_MAX_SIZE |
| of the array to the maximum size. |
| <E_Array_Subtype>: Create an extra subtype using the index type of the |
| base array type for self-referential bounds. Use update_n_elem to |
| compute the maximum size. Set TYPE_ARRAY_MAX_SIZE of the array to the |
| maximum size. |
| (gnat_to_gnu_field): Clear DECL_NONADDRESSABLE_P on discriminants. |
| * gcc-interface/misc.c (gnat_get_alias_set): Return the alias set of |
| the base type for an extra subtype. |
| (gnat_type_max_size): Remove obsolete code. |
| * gcc-interface/trans.c (Attribute_to_gnu): Minor tweak. |
| (can_be_lower_p): Deal with pathological types. |
| * gcc-interface/utils.c (create_extra_subtype): New function. |
| (create_field_decl): Minor tweak. |
| (max_size) <tcc_reference>: Compute a better value by using the extra |
| subtypes on the self-referential bounds. |
| <tcc_binary>: Rewrite. Deal with "negative value" in unsigned types. |
| <tcc_expression>: Likewise. |
| * gcc-interface/utils2.c (compare_arrays): Retrieve the original bounds |
| of the arrays upfront. Swap only if the second length is not constant. |
| Use comparisons on the original bounds consistently for the null tests. |
| (build_binary_op): Use TYPE_IS_EXTRA_SUBTYPE_P macro. |
| (build_allocator): Minor tweak. |
| |
| 2019-01-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.c (array_type_has_nonaliased_component): Return |
| the same value for every dimension of a multidimensional array type. |
| |
| 2019-01-26 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (Regular_Loop_to_gnu): Use the SLOC of the |
| iteration scheme, if present, throughout the translation. |
| |
| 2019-01-26 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Use |
| DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT for the size to be assigned |
| by a call to memset if the LHS is a DECL. |
| |
| 2019-01-26 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (struct loop_info_d): Remove artificial field. |
| (Loop_Statement_to_gnu): Do not set it. |
| |
| 2019-01-26 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.c (Iterate_Acc_Clause_Arg): Fix formatting. |
| (Acc_gnat_to_gnu): Likewise. |
| (Acc_Data_to_gnu): Likewise. |
| (Acc_Var_to_gnu): Likewise. |
| (Acc_Reduc_to_gnu): Likewise. |
| (Acc_Size_List_to_gnu): Likewise. |
| (Pragma_to_gnu) <Pragma_Acc_Loop>: Likewise. |
| <Pragma_Acc_Data>): Likewise. |
| (find_loop_for): Remove default value for parameters. |
| * gcc-interface/trans.c (gnat_to_gnu) <N_Op_And>: Merge into... |
| <N_Op_Eq>): ...this. |
| |
| 2019-01-26 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.c (annotate_value) <INTEGER_CST>: Use test on |
| the sign bit instead of on the sign of the value. |
| <PLUS_EXPR>: Turn addition of negative constant into subtraction. |
| <MULT_EXPR>: Add test for degenerate case. |
| <BIT_AND_EXPR>: Simplify. |
| |
| 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * s-oscons-tmplt.c (AF_INET6): Do not undefine for RTEMS. |
| |
| 2019-01-09 Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR other/16615 |
| * exp_ch11.adb: Change "can not" to "cannot". |
| * sem_ch4.adb: Likewise. |
| |
| 2019-01-09 Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR other/16615 |
| * exp_ch9.adb: Mechanically replace "can not" with "cannot". |
| * libgnat/s-regpat.ads: Likewise. |
| * par-ch4.adb: Likewise. |
| * set_targ.adb: Likewise. |
| * types.ads: Likewise. |
| |
| 2019-01-08 Justin Squirek <squirek@adacore.com> |
| |
| Revert: |
| 2018-07-31 Justin Squirek <squirek@adacore.com> |
| |
| * lib-writ.adb (Write_With_Lines): Modfiy the generation |
| of dependencies within ali files so that source unit |
| bodies are properly listed even if said bodies are |
| missing. Perform legacy behavior in GNATprove mode. |
| * lib-writ.ads: Modify documentation to reflect current |
| behavior. |
| |
| and: |
| 2018-09-26 Justin Squirek <squirek@adacore.com> |
| |
| * lib-writ.adb, lib-writ.ads (Write_With_Lines): Add |
| documentation and an extra conditional check for RCI |
| units so that generated ali files will list the spec |
| only instead of a body when a body is not found. |
| |
| 2019-01-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gnatvsn.ads: Bump copyright year. |
| |
| 2019-01-01 Jakub Jelinek <jakub@redhat.com> |
| |
| Update copyright years. |
| |
| * gnat_ugn.texi: Bump @copying's copyright year. |
| * gnat_rm.texi: Likewise. |
| |
| Copyright (C) 2019 Free Software Foundation, Inc. |
| |
| Copying and distribution of this file, with or without modification, |
| are permitted in any medium without royalty provided the copyright |
| notice and this notice are preserved. |