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