-2020-06-09 Javier Miranda <miranda@adacore.com>
-
- * sem_ch6.adb (New_Overloaded_Entity): Add missing call to check
- subtype conformance of overriding dispatching primitive.
- * sem_eval.adb (Subtypes_Statically_Match): Handle derivations
- of private subtypes.
- * libgnat/g-exptty.adb, libgnat/g-exptty.ads
- (Set_Up_Communications): Fix the profile since null-exclusion is
- missing in the access type formals.
- * sem_disp.ads (Check_Operation_From_Private_View): Adding
- documentation.
-
-2020-06-09 Eric Botcazou <ebotcazou@adacore.com>
-
- * einfo.ads (XEINFO section): Update format description.
- (Is_Subprogram_Or_Entry): Move pragma to regular section.
- (Is_Subprogram_Or_Generic_Subprogram): Likewise.
- * xeinfo.adb (Get_B4): Rename to...
- (Get_B0): ...this.
- (Translate_Expr): New procedure extracted from...
- (XEinfo): ...here. Try to apply Get_B0 first and then
- call Translate_Expr to translate supported constructs.
-
-2020-06-09 Eric Botcazou <ebotcazou@adacore.com>
-
- * exp_ch6.adb (Freeze_Subprogram): Deal with convention C_Family.
- * freeze.adb (Freeze_Profile): Likewise. Add missing guard.
- * sem_mech.adb (Set_Mechanisms): Likewise.
- * lib-xref.adb (Output_Import_Export_Info): Ditto for C_Variadic.
- * repinfo.adb (List_Subprogram_Info): Likewise.
- * sem_prag.adb (Set_Convention_From_Pragma): Move main checks for
- Stdcall to...
- (Process_Convention): ...here. Add checks for C_Variadic.
- * snames.ads-tmpl: Add Name_C_Variadic_0 .. Name_C_Variadic_16.
- Use consistent format for subtype declarations.
- (Convention_Id): Add Convention_C_Variadic_0 .. C_Variadic_16
- and move Convention_CPP up.
- (Convention_C_Family): New subtype of Convention_Id.
- (Convention_C_Variadic): Likewise.
- (Foreign_Convention): Use explicit upper bound.
- Add pragma Inline for Is_Configuration_Pragma_Name,
- Is_Function_Attribute_Name, Is_Internal_Attribute_Name
- and Is_Procedure_Attribute_Name.
- * snames.adb-tmpl (Get_Convention_Id): Deal with Name_Variadic_n.
- (Get_Convention_Name): Deal with Convention_Variadic_n.
- * types.h (Convention_Id): New typedef.
- * xsnamest.adb (Name2): New variable.
- (Is_Conv): New pattern.
- (Get_Subt1): Likewise.
- (Get_Subt2): Likewise.
- Output subtypes of Convention_Id into the C header file.
-
-2020-06-09 Arnaud Charlet <charlet@adacore.com>
-
- * exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch9.adb,
- exp_disp.adb, exp_util.adb: Add comments related to errors that
- should be moved to semantic analysis. Also replace "?" with "??"
- in warning messages.
-
-2020-06-09 Arnaud Charlet <charlet@adacore.com>
-
- * libgnat/a-strunb__shared.ads, libgnat/a-strunb__shared.adb
- (Reference, Unreference): No-op for Empty_Shared_String.
- Remove unneeded calls to Reference.
-
-2020-06-09 Arnaud Charlet <charlet@adacore.com>
-
- * exp_ch5.adb (Expand_N_Assignment): Remove kludge for
- AI05-0087.
- * sem_ch12.adb (Validate_Derived_Type_Instance): Implement
- AI05-0087 retroactively since it's a binding interpretation.
-
-2020-06-09 Eric Botcazou <ebotcazou@adacore.com>
-
- * einfo.ads (Has_Foreign_Convention): Fix description.
- (Component_Alignment): Move around.
- (Has_DIC): Likewise.
- (Has_Interrupt_Handler): Likewise.
- (Has_Invariants): Likewise.
- (Is_Atomic_Or_VFA): Likewise.
- (Next_Index): Likewise.
- (Scope_Depth): Likewise.
- (Init_Component_Size): Likewise.
- (Init_Component_Location): Likewise.
- (Init_Size): Likewise.
- (Inline Pragmas for functions): Add Corresponding_Function,
- Corresponding_Procedure, Entry_Max_Queue_Lengths_Array,
- Finalize_Storage_Only, Has_DIC, Has_Invariants,
- Initialization_Statements, Is_Anonymous_Access_Type,
- Next_Stored_Discriminant, Address_Clause, Alignment_Clause,
- Float_Rep, Has_Foreign_Convention, Has_Non_Limited_View,
- Is_Constant_Object, Is_Discriminal, Is_Finalizer, Is_Null_State,
- Is_Prival, Is_Protected_Component, Is_Protected_Record_Type,
- Is_Subprogram_Or_Entry, Is_Task_Record_Type, Size_Clause,
- Stream_Size_Clause, Type_High_Bound, Type_Low_Bound, Known_*,
- Unknown_*.
- (Inline Pragmas for procedures): Add Set_Corresponding_Function,
- Set_Corresponding_Procedure, Set_Finalize_Storage_Only,
- Set_Float_Rep, Set_Initialization_Statements,
- Init_Normalized_First_Bit, Init_Normalized_Position,
- Init_Normalized_Position_Max.
- * einfo.adb (Was_Hidden): Move around.
- (Is_Packed_Array): Likewise.
- (Model_Emin_Value): Likewise.
- (Model_Epsilon_Value): Likewise.
- (Model_Mantissa_Value): Likewise.
- (Model_Small_Value): Likewise.
-
-2020-06-09 Ed Schonberg <schonberg@adacore.com>
-
- * sem_ch12.adb (Check_Shared_Variable_Control_Aspects): Require
- exact match between formal and actual for aspects Atomic and
- Volatile only for formal derived types.
-
-2020-06-09 Arnaud Charlet <charlet@adacore.com>
-
- * exp_util.adb (Side_Effect_Free): Improve handling of
- N_Aggregate.
-
-2020-06-09 Ghjuvan Lacambre <lacambre@adacore.com>
-
- * sem_res.adb (Resolve_Qualified_Expression): Use Subtype_Mark
- type.
-
-2020-06-09 Arnaud Charlet <charlet@adacore.com>
-
- * exp_aggr.adb (Max_Aggregate_Size): New function to factorize
- code.
- (Convert_To_Positional, Aggr_Size_OK): Use Max_Aggregate_Size.
-
-2020-06-09 Arnaud Charlet <charlet@adacore.com>
-
- * sem_util.ads, sem_util.adb (Set_Debug_Info_Defining_Id): New.
- * exp_ch3.adb, exp_ch8.adb: Call Set_Debug_Info_Defining_Id when
- relevant.
-
-2020-06-09 Justin Squirek <squirek@adacore.com>
-
- * einfo.ads (Returns_By_Ref): Modify documentation to reflect
- that Returns_By_Ref can be applied to E_Subprogram_Type
- entities.
-
-2020-06-09 Justin Squirek <squirek@adacore.com>
-
- * exp_attr.adb (Expand_N_Attribute_Reference): Modify expansion
- of 'Overlaps_Storage to take into account zero sized arrays.
+2021-05-25 Martin Liska <mliska@suse.cz>
+
+ * doc/share/conf.py: Fix Sphinx 4.0.x error.
+
+2021-05-21 Piotr Trojanek <trojanek@adacore.com>
+
+ * gcc-interface/trans.c (Raise_Error_to_gnu): Add an assertion.
+
+2021-05-21 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/utils.c (gnat_pushdecl): Fix typo in comment.
+ * gcc-interface/utils2.c (build_simple_component_ref): Build NULL_EXPR
+ if the offset of the field has overflowed.
+ (build_component_ref): Add gigi checking assertion that the reference
+ has been built and replace the discriminant check by a Program_Error.
+
+2021-05-21 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Named_Integer>: Do
+ not pass default value in call to create_var_decl.
+ <E_Variable>: Likewise.
+ <E_Record_Subtype>: Both pass true for const_flag and false for
+ const_decl_allowed_p in call to create_var_decl.
+ Small tweaks in the generic record type case.
+ (elaborate_expression): Rename need_debug into need_for_debug and
+ adjust throughout.
+ (elaborate_expression_1): Likewise. Pass Needs_Debug_Info instead
+ of need_for_debug in call to create_var_decl.
+ (elaborate_expression_2): Likewise.
+ * gcc-interface/utils.c (maybe_pad_type): Pass false for
+ const_decl_allowed_p in call to create_var_decl.
+
+2021-05-21 Ghjuvan Lacambre <lacambre@adacore.com>
+
+ * gcc-interface/decl.c (gnat_to_gnu_entity): Replace ? with ??.
+ (gnat_to_gnu_param): Likewise.
+ (gnat_to_gnu_subprog_type): Likewise.
+ (warn_on_field_placement): Likewise.
+ (intrin_arglists_compatible_p): Likewise.
+ * gcc-interface/trans.c (Pragma_to_gnu): Likewise.
+ (gnat_to_gnu): Likewise.
+ (validate_unchecked_conversion): Likewise.
+ * gcc-interface/utils.c (maybe_pad_type): Likewise.
-2020-06-09 Bob Duff <duff@adacore.com>
+2021-05-21 Eric Botcazou <ebotcazou@adacore.com>
- * bindo-graphs.adb, bindo-graphs.ads: For each invocation graph,
- record the corresponding library graph.
- * bindo-writers.adb (Write_Invocation_Graph_Vertex): Print the
- lib item name. Remove library graph parameters.
- * bindo-augmentors.adb, bindo-augmentors.ads,
- bindo-builders.adb, bindo-diagnostics.adb,
- bindo-diagnostics.ads, bindo-elaborators.adb: Remove library
- graph parameters.
+ * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Process
+ the implementation type of a packed type implemented specially.
-2020-06-09 Eric Botcazou <ebotcazou@adacore.com>
-
- * checks.adb (Apply_Predicate_Check): Extend trick used for
- aggregates to qualified aggregates and object declarations
- * einfo.ads (Has_Own_DIC): Mention the underlying full view.
- (Has_Own_Invariants): Likewise.
- (Has_Predicates): Likewise.
- * exp_util.adb (Build_DIC_Procedure_Declaration): Do not deal
- with base types explicitly but with underlying full views.
- (Build_Invariant_Procedure_Declaration): Likewise.
- * sem_ch13.adb (Build_Predicate_Functions): Do not deal with
- the full view manually but call Propagate_Predicate_Attributes
- to propagate attributes to views.
- (Build_Predicate_Function_Declaration): Likewise.
- * sem_ch3.adb (Build_Assertion_Bodies_For_Type): Build bodies
- for private full views with an underlying full view.
- (Build_Derived_Private_Type): Small comment tweak.
- (Complete_Private_Subtype): Call Propagate_Predicate_Attributes.
- (Process_Full_View): Do not deal with base types explicitly for
- DIC and Invariant attributes. Deal with underlying full views
- for them. Call Propagate_Predicate_Attributes and deal with
- underlying full views for them.
- * sem_ch7.adb (Preserve_Full_Attributes): Do not cross propagate
- DIC and Invariant attributes between full type and its base type.
- Propagate Predicate attributes from the full to the private view.
- * sem_ch9.adb (Analyze_Protected_Type_Declaration): Likewise.
- (Analyze_Task_Type_Declaration): Likewise.
- * sem_util.ads (Get_Views): Remove Full_Base parameter and add
- UFull_Typ parameter.
- (Propagate_Predicate_Attributes): New procedure.
- * sem_util.adb (Get_Views): Remove Full_Base parameter and add
- UFull_Typ parameter. Retrieve the Corresponding_Record_Type
- from the underlying full view, if any.
- (Propagate_DIC_Attributes): Remove useless tests.
- (Propagate_Invariant_Attributes): Likewise.
- (Propagate_Predicate_Attributes): New procedure.
+2021-05-21 Eric Botcazou <ebotcazou@adacore.com>
-2020-06-09 Justin Squirek <squirek@adacore.com>
+ * gcc-interface/decl.c (gnat_to_gnu_subprog_type): Always translate
+ the Is_Pure flag into the "pure" attribute of GNU C.
- * exp_ch5.adb (Expand_Predicated_Loop): Perserve the original
- loop identifier within the expansion.
+2021-05-21 Eric Botcazou <ebotcazou@adacore.com>
-2020-06-09 Bob Duff <duff@adacore.com>
+ * gcc-interface/trans.c (Call_to_gnu): Restrict previous change
+ to bitfields whose size is not equal to the type size.
+ (gnat_to_gnu): Likewise.
- * bindo-graphs.ads (Library_Graph_Edge_Kind): Reorder enumerals
- to reflect the order of adding edges. Clarify comments.
- * bindo-graphs.adb (Add_Edge_Kind_Check): Correct the
- assertions. Reorder the "when"s to match the order of adding
- edges, and therefore the order of enumerals in type
- Library_Graph_Edge_Kind. Change names to "Old_" and "New_" to
- clarify what's what. Combine Invocation_Edge into the "<="
- test. Fix the "raise Program_Error" message, which was
- backwards.
+2021-05-21 Eric Botcazou <ebotcazou@adacore.com>
-2020-06-09 Bob Duff <duff@adacore.com>
+ * gcc-interface/trans.c (Call_to_gnu): Minor tweaks.
+ (gnat_to_gnu_external): Likewise.
+ (Raise_Error_to_gnu): Return an empty statement list if there is a
+ condition and it is always false.
+ (gnat_to_gnu): Do not check for elaboration code a priori during the
+ translation but a posteriori instead.
- * bindo-graphs.adb (Add_Edge_Kind_Check): Add the Image of the
- old and new Kinds to the raise Program_Error message.
+2021-05-21 Eric Botcazou <ebotcazou@adacore.com>
-2020-06-09 Eric Botcazou <ebotcazou@adacore.com>
+ * gcc-interface/trans.c (gnat_to_gnu) <N_Simple_Return_Statement>:
+ Put a SLOC on the assignment from the return value to the return
+ object in the copy-in/copy-out case.
- * sem_ch3.adb (Is_Visible_Component): Do not special-case
- bodies of instances.
+2021-05-21 Eric Botcazou <ebotcazou@adacore.com>
-2020-06-09 Arnaud Charlet <charlet@adacore.com>
+ * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Replace
+ CEIL_DIV_EXPR with EXACT_DIV_EXPR.
+ * gcc-interface/misc.c (gnat_type_max_size): Likewise.
+ * gcc-interface/utils.c (maybe_pad_type): Likewise.
+ (finish_record_type): Likewise. And always compute the unit size.
- * exp_ch4.adb (Expand_N_In): Fix handling of null exclusion.
+2021-05-14 Martin Liska <mliska@suse.cz>
-2020-06-09 Ed Schonberg <schonberg@adacore.com>
+ * doc/Makefile: Add gnat-style target.
+ * doc/share/conf.py: Likewise.
+ * doc/gnat-style.rst: New file.
- * sem_ch12.adb (Check_Shared_Variable_Control_Aspects): Require
- exact match between formal and actual for aspects Atomic,
- Atomic_Component, Volatile, and Volatile_Components.
+2021-05-12 Bob Duff <duff@adacore.com>
-2020-06-09 Bob Duff <duff@adacore.com>
+ PR ada/100564
+ * atree.adb (Change_Node): Do not call Zero_Slots on a Node_Id
+ when the Nkind has not yet been set; call the other Zero_Slots
+ that takes a range of slot offsets. Call the new Mutate_Kind
+ that takes an Old_Size, for the same reason -- the size cannot
+ be computed without the Nkind.
+ (Mutate_Nkind): New function that allows specifying the Old_Size.
+ (Size_In_Slots): Assert that the Nkind has proper (nonzero) value.
+ * atree.ads: Minor reformatting.
+
+2021-05-12 Martin Liska <mliska@suse.cz>
+
+ * doc/share/conf.py: Do not use binary mode.
+ Do not use u' literals as Python3 uses unicode by default.
+
+2021-05-11 Martin Liska <mliska@suse.cz>
+
+ * gcc-interface/ada-tree.h (BUILT_IN_LIKELY): Use builtins
+ from COROUTINES.
+ (BUILT_IN_UNLIKELY): Likewise.
+
+2021-05-11 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnatvsn.adb (Version_String): Rename to...
+ (C_Version_String): ...this.
+ (Gnat_Version_String): Adjust to above renaming.
+ * version.c : Fix formatting glitches.
+
+2021-05-10 Martin Liska <mliska@suse.cz>
+
+ PR bootstrap/100506
+ * Make-generated.in: Replace version.c with ada/version.c.
+ * gcc-interface/Make-lang.in: Add version.o to GNAT1_C_OBJS and
+ GNATBIND_OBJS.
+ * gcc-interface/Makefile.in: Replace version.c with ada/version.c.
+ Add version.o to TOOLS_LIBS.
+ * gnatvsn.adb: Replace version_string with gnat_version_string.
+ * version.c: New file.
+
+2021-05-10 Eric Botcazou <ebotcazou@adacore.com>
+
+ * einfo-utils.ads (Classification Attributes): Add pragma Inline.
+ (Synthesized Attribute Functions): Move pragma Inline around.
+ (Type Representation Attribute Predicates): Likewise.
+ (Field Initialization Routines): Likewise.
+ (Miscellaneous Subprogram): Likewise.
+
+2021-05-10 Eric Botcazou <ebotcazou@adacore.com>
+
+ * atree.ads (Slot): Remove pragma Provide_Shift_Operators.
+ (Shift_Left): New intrinsic function.
+ (Shift_Right): Likewise.
+ * atree.adb (Get_1_Bit_Val): Use Natural instead of Integer.
+ (Get_2_Bit_Val): Likewise.
+ (Get_4_Bit_Val): Likewise.
+ (Get_8_Bit_Val): Likewise.
+ (Set_1_Bit_Val): Likewise.
+ (Set_2_Bit_Val): Likewise.
+ (Set_4_Bit_Val): Likewise.
+ (Set_8_Bit_Val): Likewise.
+
+2021-05-10 Eric Botcazou <ebotcazou@adacore.com>
+
+ * atree.adb (Zero_Slots): Remove obsolete comment and add header.
+
+2021-05-10 Eric Botcazou <ebotcazou@adacore.com>
+
+ * atree.h (Get_32_Bit_Field): Tidy up.
+ (Get_32_Bit_Field_With_Default): Likewise.
+
+2021-05-10 Eric Botcazou <ebotcazou@adacore.com>
+
+ * Make-generated.in (do_gen_il): Replace with...
+ (ada/stamp-gen_il): ...this. Do not copy files into generated/.
+
+2021-05-10 Martin Liska <mliska@suse.cz>
+
+ * gcc-interface/utils.c (def_builtin_1): Use startswith
+ function instead of strncmp.
+
+2021-05-07 Piotr Trojanek <trojanek@adacore.com>
+
+ * einfo-utils.adb (Is_Access_Object_Type): Use
+ Directly_Designated_Type.
+ (Is_Access_Subprogram_Type): Use Directly_Designated_Type.
+ (Set_Convention): Use plain Ekind.
+ * gen_il-gen-gen_entities.adb (Type_Kind): Use plain Ekind.
+ * sem_ch3.adb (Access_Type_Declaration): When seeing an illegal
+ completion with an access type don't attempt to decorate the
+ completion entity; previously the entity had its Ekind set to
+ E_General_Access_Type or E_Access_Type, but its Designated_Type
+ was empty, which caused a crash in freezing. (Actually, the
+ error recovery in the surrounding context is still incomplete,
+ e.g. we will crash when the illegal completion is an access to
+ an unknown identifier).
+
+2021-05-07 Bob Duff <duff@adacore.com>
+
+ * par_sco.adb: Align with/use clauses.
+ (Traverse_Declarations_Or_Statements): Minor comment fix.
+ * aspects.adb, atree.adb, atree.ads, checks.adb, comperr.adb,
+ contracts.adb, cstand.adb, debug_a.adb, einfo-utils.adb,
+ errout.adb, eval_fat.adb, exp_aggr.adb, expander.adb,
+ exp_atag.adb, exp_attr.adb, exp_cg.adb, exp_ch11.adb,
+ exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb,
+ exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch8.adb,
+ exp_ch9.adb, exp_code.adb, exp_dbug.adb, exp_disp.adb,
+ exp_dist.adb, exp_fixd.adb, exp_imgv.adb, exp_intr.adb,
+ exp_pakd.adb, exp_prag.adb, exp_put_image.adb, exp_sel.adb,
+ exp_smem.adb, exp_spark.adb, exp_strm.adb, exp_tss.adb,
+ exp_unst.adb, exp_util.adb, exp_util.ads, freeze.adb,
+ frontend.adb, ghost.adb, gnat1drv.adb, gnat_cuda.adb,
+ impunit.adb, inline.adb, itypes.adb, itypes.ads, layout.adb,
+ lib.adb, lib-load.adb, lib-writ.adb, lib-xref.adb,
+ lib-xref-spark_specific.adb, live.adb, nlists.adb, par.adb,
+ par-ch11.adb, par-ch3.adb, par-ch5.adb, par-ch6.adb, pprint.adb,
+ repinfo.adb, restrict.adb, rtsfind.adb, scil_ll.adb, scn.adb,
+ sem.adb, sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_case.adb,
+ sem_cat.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb,
+ sem_ch13.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb,
+ sem_ch5.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
+ sem_dim.adb, sem_disp.adb, sem_dist.adb, sem_elab.adb,
+ sem_elim.adb, sem_eval.adb, sem_intr.adb, sem_mech.adb,
+ sem_prag.adb, sem_res.adb, sem_scil.adb, sem_smem.adb,
+ sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb,
+ sinfo-cn.adb, sinfo-utils.ads, sinput.adb, sinput-l.adb,
+ sprint.adb, style.adb, styleg.adb, tbuild.adb, tbuild.ads,
+ treepr.adb, uname.adb: Align with/use clauses.
+
+2021-05-07 Bob Duff <duff@adacore.com>
+
+ * atree.ads, atree.adb, gen_il-gen.ads: Fix comments and clean
+ up ??? marks. Rename Set_Ekind to be Mutate_Ekind.
+ * einfo.ads, sinfo.ads: Likewise. Change "definitive
+ definition" to "official definition", because the former sounds
+ redundant. Rename Set_Ekind to be Mutate_Ekind.
+ * checks.adb, contracts.adb, cstand.adb, exp_aggr.adb,
+ exp_attr.adb, exp_ch11.adb, exp_ch3.adb, exp_ch5.adb,
+ exp_ch6.adb, exp_ch7.adb, exp_ch9.adb, exp_disp.adb,
+ exp_dist.adb, exp_imgv.adb, exp_intr.adb, exp_prag.adb,
+ exp_unst.adb, exp_util.adb, gen_il-gen.adb, inline.adb,
+ lib-writ.adb, lib-xref-spark_specific.adb, sem_aggr.adb,
+ sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch13.adb,
+ sem_ch3.adb, sem_ch5.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
+ sem_ch9.adb, sem_dist.adb, sem_elab.adb, sem_prag.adb,
+ sem_util.adb: Rename Set_Ekind to be Mutate_Ekind.
+
+2021-05-07 Bob Duff <duff@adacore.com>
+
+ * atree.adb: Move nnd-related code from here, and leave a
+ comment pointing to sinfo-utils.adb.
+ * sinfo-utils.ads, sinfo-utils.adb: Move nnd-related code to
+ here.
+
+2021-05-07 Piotr Trojanek <trojanek@adacore.com>
+
+ * einfo.ads: Move Corresponding_Protected_Entry...
+ * sinfo.ads: ... here.
+ * exp_ch9.adb (Build_Entry_Body): Link procedure and entry
+ bodies.
+ * gen_il-fields.ads (Opt_Field_Enum): Add
+ Corresponding_Entry_Body field to nodes; remove
+ Corresponding_Protected_Entry field from entities.
+ * gen_il-gen-gen_entities.adb (Gen_Entities): Remove
+ Corresponding_Protected_Entry field from E_Void and
+ E_Subprogram_Body.
+ * gen_il-gen-gen_nodes.adb (Gen_Nodes): Add
+ Corresponding_Entry_Body field to N_Subprogram_Body.
+ * sem_ch6.adb (Analyze_Subprogram_Specification): Remove
+ manipulation of Ekind and Corresponding_Protected_Entry added as
+ part of the support for varsize-nodes.
+
+2021-05-07 Bob Duff <duff@adacore.com>
+
+ * sem_ch3.adb (Process_Incomplete_Dependents): Reset
+ Private_Dependents field to zero before calling Set_Ekind. Also
+ move Set_Etype to after Set_Ekind, because it's always best to
+ set the Ekind as early as possible.
+ * atree.adb: Improve debugging facilities for vanishing fields.
+
+2021-05-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * atree.ads (Slot): Change to modular type.
+ (Slot_1_Bit): Delete.
+ (Slot_2_Bit): Likewise.
+ (Slot_4_Bit): Likewise.
+ (Slot_8_Bit): Likewise.
+ (Slot_32_Bit): Likewise.
+ * atree.adb (Get_1_Bit_Val): Adjust to above change.
+ (Get_2_Bit_Val): Likewise.
+ (Get_4_Bit_Val): Likewise.
+ (Get_8_Bit_Val): Likewise.
+ (Get_32_Bit_Val): Likewise.
+ (Set_1_Bit_Val): Likewise.
+ (Set_2_Bit_Val): Likewise.
+ (Set_4_Bit_Val): Likewise.
+ (Set_8_Bit_Val): Likewise.
+ (Set_32_Bit_Val): Likewise.
+ (Print_Atree_Info): Likewise.
+ (Zero): Likewise.
+ * atree.h (Get_1_Bit_Field): Likewise.
+ (Get_2_Bit_Field): Likewise.
+ (Get_4_Bit_Field): Likewise.
+ (Get_8_Bit_Field): Likewise.
+ (Get_32_Bit_Field): Likewise.
+ (Get_32_Bit_Field_With_Default): Likewise.
+ * types.h (slot_1_bit): Delete.
+ (slot_2_bit): Likewise.
+ (slot_4_bit): Likewise.
+ (slot_8_bit): Likewise.
+ (slot_32_bit): Likewise.
+ (any_slot): Change to unsigned int.
+ (Slot_Size): New macro.
+
+2021-05-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/gigi.h (enum standard_datatype): Remove
+ ADT_exception_data_name_id and add ADT_not_handled_by_others_name_id.
+ (exception_data_name_id): Delete.
+ (not_handled_by_others_name_id): New macro.
+ * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Exception>: Remove old
+ kludge for exceptions.
+ <E_Record_Type>: Likewise.
+ (gnat_to_gnu_field): Force character type on Not_Handled_By_Others.
+ * gcc-interface/misc.c (gnat_argv): Change type to char **.
+ (gnat_init_options): Adjust accordingly.
+ * gcc-interface/trans.c (gigi): Set not_handled_by_others_name_id
+ and use it to set not_handled_by_others_decl.
+ (Exception_Handler_to_gnu_fe_sjlj): Fix indentation.
+
+2021-05-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * raise-gcc.c (__gnat_others_value): Remove const qualifier.
+ (__gnat_all_others_value): Likewise.
+ (__gnat_unhandled_others_value): Likewise.
+ (GNAT_OTHERS): Cast to Exception_Id instead of _Unwind_Ptr.
+ (GNAT_ALL_OTHERS): Likewise.
+ (GNAT_UNHANDLED_OTHERS): Likewise.
+ (Is_Handled_By_Others): Change parameter type to Exception_Id.
+ (Language_For): Likewise.
+ (Foreign_Data_For): Likewise.
+ (is_handled_by): Likewise. Adjust throughout, remove redundant
+ line and fix indentation.
+ * libgnat/a-exexpr.adb (Is_Handled_By_Others): Remove pragma and
+ useless qualification from parameter type.
+ (Foreign_Data_For): Likewise.
+ (Language_For): Likewise.
+
+2021-05-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * libgnat/s-stalib.ads (Exception_Data): Mark components as aliased.
+ * stand.ads (Standard_Entity_Type): Enhance comments.
+ * cstand.adb (Make_Component): Rename into...
+ (Make_Aliased_Component): ...this; set Is_Aliased and Is_Independent
+ flags on the component.
+ (Create_Standard): Adjust the types of the component of the record
+ Standard_Exception_Type and mark them as aliased.
+ * exp_ch11.adb (Expand_N_Exception_Declaration): Use OK
+ conversion to Standard_Address for Full_Name component, except
+ in CodePeer_Mode (set it to 0).
+ * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Likewise.
+ * raise.h (struct Exception_Data): Change the type of Full_Name,
+ HTable_Ptr and Foreign_Data.
+
+2021-05-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * atree.h (Slots_Ptr): Change pointed-to type to any_slot.
+ * fe.h (Get_RT_Exception_Name): Change type of parameter.
+ * namet.ads (Name_Entry): Mark non-boolean components as aliased,
+ reorder the boolean components and add an explicit Spare component.
+ * namet.adb (Name_Enter): Adjust aggregate accordingly.
+ (Name_Find): Likewise.
+ (Reinitialize): Likewise.
+ * namet.h (struct Name_Entry): Adjust accordingly.
+ (Names_Ptr): Use correct type.
+ (Name_Chars_Ptr): Likewise.
+ (Get_Name_String): Fix declaration and adjust to above changes.
+ * types.ads (RT_Exception_Code): Add pragma Convention C.
+ * types.h (Column_Number_Type): Fix original type.
+ (slot): Rename union type to...
+ (any_slot): ...this and adjust assertion accordingly.
+ (RT_Exception_Code): New enumeration type.
+ * uintp.ads (Uint_Entry): Mark components as aliased.
+ * uintp.h (Uints_Ptr): Use correct type.
+ (Udigits_Ptr): Likewise.
+ * gcc-interface/gigi.h (gigi): Adjust name and type of parameter.
+ * gcc-interface/cuintp.c (UI_To_gnu): Adjust references to Uints_Ptr
+ and Udigits_Ptr.
+ * gcc-interface/trans.c (Slots_Ptr): Adjust pointed-to type.
+ (gigi): Adjust type of parameter.
+ (build_raise_check): Add cast in call to Get_RT_Exception_Name.
+
+2021-05-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * init.c (__gnat_raise_program_error): Fix parameter type.
+ (Raise_From_Signal_Handler): Likewise and mark as no-return.
+ * raise-gcc.c (__gnat_others_value): Fix type.
+ (__gnat_all_others_value): Likewise.
+ (__gnat_unhandled_others_value): Likewise.
+ * seh_init.c (Raise_From_Signal_Handler): Fix parameter type.
+ * libgnat/a-except.ads (Raise_From_Signal_Handler): Use convention C
+ and new symbol name, move declaration to...
+ (Raise_From_Controlled_Operation): Minor tweak.
+ * libgnat/a-except.adb (Raise_From_Signal_Handler): ...here.
+ * libgnat/a-exexpr.adb (bool): New C compatible boolean type.
+ (Is_Handled_By_Others): Use it as return type for the function.
+
+2021-05-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * errout.ads (Set_Identifier_Casing): Add pragma Convention C.
+ * eval_fat.ads (Rounding_Mode): Likewise.
+ (Machine): Add WARNING comment line.
+ * exp_code.ads (Clobber_Get_Next): Add pragma Convention C.
+ * fe.h (Compiler_Abort): Fix return type.
+ (Set_Identifier_Casing): Change type of parameters.
+ (Clobber_Get_Next): Change return type.
+ * gcc-interface/trans.c (gnat_to_gnu) <N_Code_Statement>: Add cast.
+
+2021-05-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * atree.h (Parent): Remove duplicate declaration.
+ (Get_1_Bit_Field): Also use INLINE specifier in the declaration,
+ fix formatting and use gcc_unreachable for the default case.
+ (Get_2_Bit_Field): Likewise.
+ (Get_4_Bit_Field): Likewise.
+ (Get_8_Bit_Field): Likewise.
+ (Get_32_Bit_Field): Likewise.
+ (Get_32_Bit_Field_With_Default): Likewise.
+
+2021-05-07 Bob Duff <duff@adacore.com>
+
+ * atree.ads, atree.adb: Major rewrite to support variable-sized
+ node types. Add pragmas Suppress and Assertion_Policy. We now
+ have an extra level of indirection: Node_Offsets is a table
+ mapping Node_Ids to the offset of the start of each node in
+ Slots. Slots is a table containing one or more contiguous slots
+ for each node. Each slot is a 32-bit unchecked union that can
+ contain any mixture of 1, 2, 4, 8, and 32-bit fields that fits.
+ The old low-level getters and setters (e.g. Flag123) are
+ removed.
+ * gen_il-fields.ads, gen_il-gen-gen_entities.adb,
+ gen_il-gen-gen_nodes.adb, gen_il-gen.adb, gen_il-gen.ads,
+ gen_il-main.adb, gen_il-types.ads, gen_il-utils.adb,
+ gen_il-utils.ads, gen_il.adb, gen_il.ads: New gen_il program
+ that generates various Ada and C++ files. In particular, the
+ following files are generated by gen_il: einfo-entities.adb
+ einfo-entities.ads, gnatvsn.ads, nmake.adb, nmake.ads,
+ seinfo.ads, seinfo_tables.adb, seinfo_tables.ads,
+ sinfo-nodes.adb, sinfo-nodes.ads, einfo.h, and sinfo.h.
+ * sinfo-utils.adb, sinfo-utils.ads, einfo-utils.adb,
+ einfo-utils.ads: New files containing code that needs to refer
+ to Sinfo.Nodes and Einfo.Entities. This code is mostly moved
+ here from Sinfo and Einfo to break cycles.
+ * back_end.adb: Pass node_offsets_ptr and slots_ptr to gigi,
+ instead of nodes_ptr and flags_ptr. The Nodes and Flags tables
+ no longer exist. (Note that gigi never used the Flags table.)
+ * sinfo-cn.ads (Change_Identifier_To_Defining_Identifier,
+ Change_Character_Literal_To_Defining_Character_Literal,
+ Change_Operator_Symbol_To_Defining_Operator_Symbol): Turn N into
+ an IN formal.
+ * sinfo-cn.adb: Update. Add assertions, which can be removed at
+ some point. Rewrite to use higher-level facilities. Make sure
+ vanishing fields are zeroed out. Add with/use for new packages.
+ * sem_util.adb: Remove "Assert(False)" immediately followed by
+ "raise Program_Error". Use higher-level facilities such as
+ Walk_Sinfo_Fields instead of depending on low-level Set_FieldN
+ routines that no longer exist. Use Get_Comes_From_Source_Default
+ instead of Default_Node.Comes_From_Source (Default_Node no
+ longer exists). Use Set_Basic_Convention instead of
+ Basic_Set_Convention. Add with/use for new packages.
+ * sem_util.ads: The Convention field had getter Convention and
+ setter Basic_Set_Convention. Make that more uniform: there is
+ now a field called Basic_Convention, with Basic_Convention and
+ Set_Basic_Convention as getter/setter, and write Convention and
+ Set_Convention here.
+ * nlists.adb: Rewrite to use abstractions, rather then depending
+ on low-level implementation details of Atree. Necessary because
+ those details have changed. Add with/use for new packages.
+ * sem_ch12.adb: Use higher-level facilities such as
+ Walk_Sinfo_Fields instead of depending on low-level Set_FieldN
+ routines that no longer exist. Add with/use for new packages.
+ * exp_cg.adb, sem_ch10.adb, sem_ch4.adb, sem_eval.adb,
+ sem_prag.adb, sem_warn.adb: Change expanded names to refer to
+ the new packages for things that moved. Add with/use for new
+ packages.
+ * sem_ch3.adb: Likewise. Reinitialize vanishing fields.
+ * exp_disp.adb: Likewise. Remove failing assertion.
+ * sinfo.ads, einfo.ads: Remove code that is now generated into
+ Sinfo.Nodes and Einfo.Entities.
+ * sinfo.adb, einfo.adb: Replace bodies with "pragma No_Body;".
+ We should delete these at some point, but No_Body makes make
+ files easier. Some code is moved to Sinfo.Nodes, Einfo.Entities,
+ Sinfo.Utils, and Einfo.Utils. Some is no longer necessary.
+ * treepr.adb: Rewrite to use new tables. We no longer need
+ treeprs.ads.
+ * treepr.ads: Add comment.
+ * types.ads: Move types Component_Alignment_Kind and
+ Float_Rep_Kind here.
+ * atree.h: Major update to match atree.ads changes. Add slot
+ types, for use by getters/setters.
+ * types.h: Move types Component_Alignment_Kind and
+ Float_Rep_Kind here.
+ * fe.h: Rewrite to deal with code that has changed or moved from
+ Atree, Sinfo, Einfo.
+ * nlists.h: Move some code to fe.h.
+ * alloc.ads: Split Nodes_* constants into Node_Offsets and
+ Slots, because Atree has two separate tables. Increase values.
+ Remove Nodes_Release_Threshold. Improve comment.
+ * debug.adb, gnat1drv.adb: Remove obsolete gnatd.A and gnatd.N
+ switches. Add with/use for new packages.
+ * opt.ads: Minor comment fix.
+ * aspects.adb, checks.adb, comperr.adb, contracts.adb,
+ cstand.adb, debug_a.adb, errout.adb, eval_fat.adb, exp_aggr.adb,
+ exp_atag.adb, exp_attr.adb, exp_ch11.adb, exp_ch12.adb,
+ exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch4.adb,
+ exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch8.adb, exp_ch9.adb,
+ exp_code.adb, exp_dbug.adb, exp_dist.adb, exp_fixd.adb,
+ exp_imgv.adb, exp_intr.adb, exp_pakd.adb, exp_prag.adb,
+ exp_put_image.adb, exp_sel.adb, exp_smem.adb, exp_spark.adb,
+ exp_strm.adb, exp_tss.adb, exp_unst.adb, exp_util.adb,
+ exp_util.ads, expander.adb, freeze.adb, frontend.adb,
+ get_targ.ads, ghost.adb, gnat_cuda.adb, impunit.adb, inline.adb,
+ itypes.adb, itypes.ads, layout.adb, lib.adb, lib-load.adb,
+ lib-writ.adb, lib-xref.adb, lib-xref.ads,
+ lib-xref-spark_specific.adb, live.adb, par.adb, par_sco.adb,
+ pprint.adb, repinfo.adb, restrict.adb, rtsfind.adb, scil_ll.adb,
+ scn.adb, sem.adb, sem.ads, sem_aggr.adb, sem_attr.adb,
+ sem_aux.adb, sem_case.adb, sem_cat.adb, sem_ch11.adb,
+ sem_ch13.adb, sem_ch2.adb, sem_ch5.adb, sem_ch6.adb,
+ sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_dim.adb,
+ sem_disp.adb, sem_dist.adb, sem_elab.adb, sem_elim.adb,
+ sem_intr.adb, sem_mech.adb, sem_res.adb, sem_scil.adb,
+ sem_smem.adb, sem_type.adb, set_targ.ads, sinput.adb,
+ sinput-l.adb, sprint.adb, style.adb, styleg.adb, tbuild.adb,
+ tbuild.ads, uname.adb: Add with/use for new packages.
+ * libgnat/a-stoubu.adb, libgnat/a-stouut.adb: Simplify to ease
+ bootstrap.
+ * libgnat/a-stobfi.adb, libgnat/a-stoufi.adb (Create_File,
+ Create_New_File): Create file in binary format, to avoid
+ introducing unwanted text conversions on Windows. Simplify to
+ ease bootstrap.
+ * libgnat/a-stteou__bootstrap.ads: New.
+ * ceinfo.adb, csinfo.adb, nmake.adt, treeprs.adt, xeinfo.adb,
+ xnmake.adb, xsinfo.adb, xtreeprs.adb: Delete.
+ * Make-generated.in: Build and run the gen_il program to
+ generate files. The files are generated in the ada/gen_il
+ subdirectory, and then moved up to ada. We rely on gnatmake (as
+ opposed to make) to build the gen_il program efficiently (i.e.
+ don't do anything if the sources didn't change).
+ * gcc-interface/Makefile.in (ADAFLAGS): Add -gnatU.
+ (GNATMAKE_OBJS): Add new object files.
+ (GENERATED_FILES_FOR_TOOLS): New variable.
+ (../stamp-tools): Create a link for all
+ GENERATED_FILES_FOR_TOOLS.
+ * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add new object
+ files. Remove ada/treeprs.o.
+ (GNATBIND_OBJS): Add new object files.
+ (ada.mostlyclean): Remove ada/sdefault.adb and add
+ ada/stamp-gen_il.
+ (ada.maintainer-clean): Remove ada/treeprs.ads.
+ (update-sources): Remove obsolete target.
+ (ada_generated_files): Rename to...
+ (ADA_GENERATED_FILES): ... this. Add new source files. Add
+ comment.
+ * gcc-interface/trans.c: Remove obsolete Nodes_Ptr and
+ Flags_ptr. Add Node_Offsets_Ptr and Slots_Ptr, which point to
+ the corresponding tables in Atree.
+ * gcc-interface/gigi.h (gigi): New parameters for initializing
+ Node_Offsets_Ptr and Slots_Ptr.
+ * gcc-interface/decl.c: Numeric_Kind,
+ Discrete_Or_Fixed_Point_Kind, and Record_Kind were
+ nonhierarchical, and were therefore removed for simplicity.
+ Replace uses with calls to Is_In_... functions.
+
+2021-05-07 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_ch4.adb (Unconstrained_UU_In_Component_Declaration): A
+ component declaration whose subtype indication is an entity name
+ without an explicit constraint is an Unchecked_Union type only
+ if the entity has an unconstrained nominal subtype (record type
+ or private type) whose parent type is an Unchecked_Union.
+
+2021-05-07 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_res.adb (Flag_Object): Ignore prefixes of attribute
+ Address.
+
+2021-05-07 Yannick Moy <moy@adacore.com>
+
+ * opt.ads: Update comment for Warn_On_Suspicious_Modulus_Value.
+ * sem_res.adb (Resolve_Unary_Op): Generate warning.
+ * usage.adb: Refine doc for -gnatw.m/M switch.
+ * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
+ Update doc on -gnatw.m switch.
+ * gnat_ugn.texi: Regenerate.
- * doc/gnat_ugn/gnat_utility_programs.rst: Add documentation for
- the --no-separate-return switch of gnatpp.
+2021-05-07 Piotr Trojanek <trojanek@adacore.com>
-2020-06-09 Arnaud Charlet <charlet@adacore.com>
+ * sem_res.adb (Flag_Object): Replace chained IF with a CASE;
+ remove repeated calls to Entity; do not traverse into
+ N_Identifier and N_Expanded_Name, because only need to examine
+ their Entity field anyway.
- * sem_warn.adb (Warn_On_Constant_Valid_Condition): Add proper
- warning tag.
+2021-05-07 Piotr Trojanek <trojanek@adacore.com>
-2020-06-09 Arnaud Charlet <charlet@adacore.com>
+ * sem_ch4.adb (Analyze_Call): Remove call to End_Interp_List.
+ (Process_Overloaded_Indexed_Component): Remove call to
+ End_Interp_List.
+ * sem_util.adb (Insert_Explicit_Dereference): Remove call to
+ End_Interp_List.
+ * sem_type.ads (End_Interp_List): Remove.
+ * sem_type.adb (Add_Entry): The guard against duplicate entries
+ is now checked before other conditions, so that EXIT statements
+ do not bypass this guard.
+ (End_Interp_List): Remove.
- * sem_type.adb (Covers): Fix implementation of AI05-0149.
- * sem_res.adb: Fix typo.
+2021-05-07 Ed Schonberg <schonberg@adacore.com>
-2020-06-09 Ed Schonberg <schonberg@adacore.com>
-
- * exp_ch9.adb (Build_Master_Renaming): Make name in renaming
- declaration unique by adding a numeric suffix, to prevent
- accidental name conflict when several instantiations of a
- package containing an access_to_incomplete type that designate
- tasks appear in the same scope.
+ * exp_util.adb (Remove_Init_Call): If a simple initialization
+ call is present, and the next statement is an initialization
+ block (that contains a call to a Deep_ Initialize routine),
+ remove the block as well, and insert the first initialization
+ call in it, in case it is needed for later relocation.
-2020-06-09 Piotr Trojanek <trojanek@adacore.com>
+2021-05-07 Gary Dismukes <dismukes@adacore.com>
- * libgnarl/a-synbar.ads, libgnarl/a-synbar.adb,
- libgnarl/a-synbar__posix.ads, libgnarl/a-synbar__posix.adb
- (Ada.Synchronous_Barriers): Annotate with SPARK_Mode => Off.
-
-2020-06-09 Arnaud Charlet <charlet@adacore.com>
-
- * sem_eval.adb (Eval_Relational_Op, Eval_String_Literal,
- Eval_Type_Conversion): Relax rules on relational operators and
- type conversions of static string types.
-
-2020-06-09 Arnaud Charlet <charlet@adacore.com>
-
- * sem_util.ads, sem_util.adb (Is_Partially_Initialized_Type):
- Take Default_Value and Default_Component_Value into account.
- * sem_ch3.adb (Analyze_Object_Declaration): Update comment.
-
-2020-06-09 Bob Duff <duff@adacore.com>
-
- * bindo-graphs.adb (Add_Edge_Kind_Check): Disable failing part
- of the assertion.
+ * errout.ads (Size_Too_Small_Message): Remove low-value ???
+ comment.
+ * exp_util.ads: Remove ??? in part of overall package comments
+ and restructure comment to clarify.
+ (Duplicate_Subexpr): Remove ??? comment that seems unnecessary.
+ * sem_ch3.ads (Analyze_Declarations): Remove two parenthesized
+ ??? comments and add more description of the procedure's
+ actions.
+ (Get_Discriminant_Value): Remove ??? comment requesting more
+ documentation, expanding description of the function's actions.
+ * sem_disp.ads (Check_Operation_From_Incomplete_Type): Add more
+ semantic description of the procedure and remove ??? comment
+ requesting such.
+ (Propagate_Tag): Refine comment to indicate meaning of formal
+ parameters and generally improve the spec comment (and remove
+ ??? comment asking about the parameters).
+
+2021-05-07 Arnaud Charlet <charlet@adacore.com>
+
+ * sem_eval.adb (Fold_Shift): Fix computation of Shift_Left
+ resulting in negative signed values.
+
+2021-05-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * sem_util.ads (Defining_Entity): Remove Empty_On_Errors parameter.
+ (Defining_Entity_Or_Empty): New function.
+ * sem_util.adb (Defining_Entity): Move bulk of implementation to...
+ (Defining_Entity_Or_Empty): ...here. Do not raise Program_Error.
+ (Innermost_Master_Scope_Depth): Call Defining_Entity_Or_Empty.
+
+2021-05-07 Justin Squirek <squirek@adacore.com>
+
+ * aspects.ads: Add entries to register
+ Aspect_No_Controlled_Parts.
+ * freeze.adb (Check_No_Controlled_Parts_Violations): Added to
+ check requirements of aspect No_Controlled_Parts after a type
+ has been frozen.
+ (Freeze_Entity): Add call to
+ Check_No_Controlled_Parts_Violations.
+ (Find_Aspect_No_Controlled_Parts): Created to obtain the aspect
+ specification for No_Controlled_Parts on a given type when
+ present.
+ (Find_Aspect_No_Controlled_Parts_Value): Protect against invalid
+ value.
+ (Has_Aspect_No_Controlled_Parts): Created as a prediate function
+ to check if No_Controlled_Parts has been specified on a type for
+ Get_Anacestor_Types_With_Specification.
+ (Get_Aspect_No_Controlled_Parts_Value): Created to obtain the
+ value of the aspect No_Controlled_Parts when specified on a
+ given type.
+ (Get_Generic_Formal_Types_In_Hierarchy): Created to collect
+ formal types in a given type's hierarchy.
+ (Get_Types_With_Aspect_In_Hierarchy): Created to collect types
+ in a given type's hierarchy with No_Controlled_Parts specified.
+ * sem_ch13.adb (Analyze_One_Aspect): Add processing for
+ No_Controlled_Parts, and fix error in check for allowed pragmas
+ for formal types.
+ (Check_Expr_Is_OK_Static_Expression): Created to enforce
+ checking of static expressions in the same vein as
+ Analyze_Pragma.Check_Expr_OK_Static_Expression.
+ * sem_util.adb (Collect_Types_In_Hierarchy): Created to collect
+ types in a given type's hierarchy that match a given predicate
+ function.
+ * sem_util.ads: Fix typo.
+ * snames.ads-tmpl: Add entry for No_Controlled_Parts.
-2020-06-08 Steve Baird <baird@adacore.com>
+2021-05-07 Eric Botcazou <ebotcazou@adacore.com>
- * sem_prag.adb (Analyze_Pragma.Set_Ravenscar_Profile): Add
- appropriate call to Set_Restriction_No_Dependence if Ada_Version
- >= Ada2012 and Profile is either Ravenscar or a GNAT-defined
- Ravenscar variant (i.e., not Jorvik).
+ * libgnat/s-fatgen.adb (Scaling): Raise Constraint_Error in the
+ overflow case when T'Machine_Overflows is True.
-2020-06-08 Arnaud Charlet <charlet@adacore.com>
+2021-05-07 Bob Duff <duff@adacore.com>
- * sem_ch5.adb: Fix typo.
- * sem_ch8.adb (Analyze_Renamed_Primitive_Operation): Check that
- the prefix of a prefixed view must be renamable as an object.
+ * libgnat/a-conhel.adb (TC_Check): Move the Assert into the
+ 'if'.
-2020-06-08 Arnaud Charlet <charlet@adacore.com>
+2021-05-07 Frederic Konrad <konrad@adacore.com>
- * sem_cat.ads: Fix typo.
- * sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type): Add
- handling of N_Attribute_Definition_Clause.
- * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Call
- Validate_Remote_Access_To_Class_Wide_Type for Storage_Size and
- Storage_Pool.
- * sem_attr.adb, exp_ch4.adb: Update comments.
+ * sigtramp-vxworks-target.inc: Use a local label for the TOC.
-2020-06-08 Justin Squirek <squirek@adacore.com>
+2021-05-07 Claire Dross <dross@adacore.com>
- * sem_ch4.adb (Analyze_One_Call): Add extra condition to the
- predicate for deciding when a given controlled call is visible.
+ * exp_ch4.adb (Has_Inferable_Discriminants): Moved to Sem_Util.
+ * sem_util.ads, sem_util.adb (Has_Inferable_Discriminants):
+ Moved from Exp_Ch4.
-2020-06-08 Piotr Trojanek <trojanek@adacore.com>
+2021-05-07 Ed Schonberg <schonberg@adacore.com>
- * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Port
- changes in frontend expander.
+ * exp_util.adb (Build_Class_Wide_Expression, Replace_Entity):
+ Add guard to verify that the enclosing pragma is a precondition.
-2020-06-08 Piotr Trojanek <trojanek@adacore.com>
-
- * sem_ch13.adb (All_Membership_Choices_Static): Fix style.
-
-2020-06-08 Steve Baird <baird@adacore.com>
-
- * libgnat/s-rident.ads: Add Jorvik to the Profile_Name
- enumeration type. Add an element for Jorvik to the array
- aggregate that is the initial value of the constant
- Profile_Info.
- * targparm.adb (Get_Target_Parameters): Handle "pragma Profile
- (Jorvik);" similarly to "pragma Profile (Ravenscar);".
- * snames.ads-tmpl: Declare Name_Jorvik Name_Id. Unlike
- Ravenscar, Jorvik is not a pragma name and has no corresponding
- element in the Pragma_Id enumeration type; this means that its
- declaration must not occur between those of First_Pragma_Name
- and Last_Pragma_Name.
- * sem_prag.adb (Analyze_Pragma): Add call to
- Set_Ravenscar_Profile for Jorvik, similar to the existing calls
- for Ravenscar and the GNAT Ravenscar variants.
-
-2020-06-08 Arnaud Charlet <charlet@adacore.com>
-
- * sem_ch8.adb (Analyze_Object_Renaming): Update Get_Object_Name
- to go through N_Qualified_Expression and N_Type_Conversion. Fix
- another case of wrong usage of E_Anonymous_Access_Type instead
- of Anonymous_Access_Kind.
- * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): Work
- on the original node.
- (Is_Aliased_View): Take into account N_Qualified_Expression.
-
-2020-06-08 Arnaud Charlet <charlet@adacore.com>
-
- * sem_eval.adb (Eval_Type_Conversion): Fix handling of
- enumeration to integer conversions.
- * exp_attr.adb (Expand_N_Attribute_Reference
- [Attribute_Enum_Rep]): Remove special casing for first-level
- renaming, best left to the general folding mechanism via
- Eval_Type_Conversion.
-
-2020-06-08 Eric Botcazou <ebotcazou@adacore.com>
-
- * atree.adb (New_Copy): Do not clear Has_Dynamic_Range_Check.
- * checks.ads (Append_Range_Checks): Remove Flag_Node parameter.
- (Insert_Range_Checks): Likewise and remove default value of
- Static_Loc parameter.
- * checks.adb (Append_Range_Checks): Remove Flag_Node parameter.
- Do not test and set Has_Dynamic_Range_Check.
- (Insert_Range_Checks): Likewise and remove default value of
- Static_Loc parameter.
- * csinfo.adb (CSinfo): Remove 'L' from [NEUB]_Fields pattern and
- do not handle Has_Dynamic_Range_Check.
- * exp_ch5.adb (Expand_N_Assignment_Statement): Remove argument
- in call to Insert_Range_Checks.
- * sem_ch3.adb (Analyze_Subtype_Declaration): Do not fiddle
- with Has_Dynamic_Range_Check.
- (Process_Range_Expr_In_Decl): Remove argument in calls to
- Insert_Range_Checks and Append_Range_Checks.
- * sinfo.ads (Has_Dynamic_Range_Check): Delete.
- (Set_Has_Dynamic_Range_Check): Likewise.
- * sinfo.adb (Has_Dynamic_Range_Check): Delete.
- (Set_Has_Dynamic_Range_Check): Likewise.
- * treepr.adb (Print_Node): Do not print Has_Dynamic_Range_Check.
-
-2020-06-08 Steve Baird <baird@adacore.com>
-
- * sem_ch13.ads: Export new function
- All_Membership_Choices_Static.
- * sem_ch13.adb: Implement new function
- All_Membership_Choices_Static. This involves moving the
- functions Is_Static_Choice and All_Membership_Choices_Static,
- which were previously declared within the function
- Is_Predicate_Static, out to library level so that they can be
- called by the new function. The already-exisiting code in
- Is_Predicate_Static which became the body of
- All_Membership_Choices_Static is replaced with a call to the new
- function in order to avoid duplication.
- * exp_ch9.adb (Is_Pure_Barrier): Several changes needed to
- implement rules of AI12-0290 and RM D.7's definition of
- "pure-barrier-eligible". These changes include adding a call to
- the new function Sem_13.All_Membership_Choices_Static, as per
- the "see 4.9" in RM D.7(1.6/5).
-
-2020-06-08 Richard Kenner <kenner@adacore.com>
-
- * exp_unst.adb (Visit_Node): When visiting array attribute
- nodes, in addition to checking the type of Get_Referenced_Object
- of the prefix, also check the actual type of the prefix.
-
-2020-06-08 Gary Dismukes <dismukes@adacore.com>
-
- * checks.adb (Apply_Predicate_Check): Refine test for being in a
- subprogram body to account for no Corresponding_Body case,
- avoiding blowups arising due to other changes here.
- * exp_ch4.adb (Expand_N_Qualified_Expression): Apply predicate
- checks, if any, after constraint checks are applied.
- * sem_eval.ads (Check_Expression_Against_Static_Predicate): Add
- Check_Failure_Is_Error formal for conditionalizing warning vs.
- error messages.
- * sem_eval.adb (Check_Expression_Against_Static_Predicate):
- Issue an error message rather than a warning when the new
- Check_Failure_Is_Error formal is True. In the nonstatic or
- Dynamic_Predicate case where the predicate is known to fail,
- emit the check to ensure that folded cases get checks applied.
- * sem_res.adb (Resolve_Qualified_Expression): Call
- Check_Expression_Against_Static_Predicate, passing True for
- Check_Failure_Is_Error, to ensure we reject static predicate
- violations. Remove code that was conditionally calling
- Apply_Predicate_Check, which is no longer needed, and that check
- procedure shouldn't be called from a resolution routine in any
- case. Also remove associated comment about preventing infinite
- recursion and consistency with Resolve_Type_Conversion, since
- that handling was already similarly removed from
- Resolve_Type_Convesion at some point.
- (Resolve_Type_Conversion): Add passing of True for
- Check_Failure_Is_Error parameter on call to
- Check_Expression_Against_Static_Predicate, to ensure that static
- conversion cases that violate a predicate are rejected as
- errors.
-
-2020-06-08 Piotr Trojanek <trojanek@adacore.com>
-
- * snames.ads-tmpl (Name_SPARK): Restore after being deleted.
-
-2020-06-08 Arnaud Charlet <charlet@adacore.com>
-
- * exp_aggr.adb, exp_ch6.adb, par-ch11.adb, par-ch6.adb,
- par-ch7.adb, par-prag.adb, restrict.adb, restrict.ads,
- scans.ads, scng.adb, sem_aggr.adb, sem_attr.adb, sem_ch11.adb,
- sem_ch12.adb, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
- sem_ch5.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
- sem_res.adb, sem_util.adb, sem_util.ads, snames.ads-tmpl,
- gnatbind.adb, libgnat/s-rident.ads,
- doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
- Remove processing of SPARK_05 restriction.
- * gnat_rm.texi: Regenerate.
- * opt.ads: Remove processing of old checksum which is now
- handled by gprbuild directly.
+2021-05-06 Javier Miranda <miranda@adacore.com>
-2020-06-08 Arnaud Charlet <charlet@adacore.com>
+ * exp_disp.adb (Build_Class_Wide_Check): Extending the
+ functionality of this routine to climb to the ancestors
+ searching for the enclosing overridden dispatching primitive
+ that has a class-wide precondition to generate the check.
- * sem_ch12.adb (Instantiate_Object): Relax rules related to null
- exclusions and generic objects. Handle all anonymous types
- consistently and not just E_Anonymous_Access_Type.
- * sem_ch8.adb (Analyze_Object_Renaming): Change wording so that
- it applies to both renamings and instantiations to avoid
- confusion.
+2021-05-06 Piotr Trojanek <trojanek@adacore.com>
-2020-06-08 Arnaud Charlet <charlet@adacore.com>
+ * sem_ch3.adb (Constraint_Index): Remove redundant problematic
+ analysis.
- * libgnat/a-textio.ads (File_Mode): Fix typo in comment.
+2021-05-06 Arnaud Charlet <charlet@adacore.com>
-2020-06-08 Eric Botcazou <ebotcazou@adacore.com>
+ * exp_unst.adb (Note_Uplevel_Bound): Exclude
+ E_Enumeration_Literal.
- * sem_res.adb (Resolve_Indexed_Component): Do not give a warning
- for a nonatomic component of an atomic array which is subject to
- an address clause in Ada 2020 mode.
- (Resolve_Selected_Component): Likewise for an atomic record.
+2021-05-06 Arnaud Charlet <charlet@adacore.com>
-2020-06-08 Philippe Gil <gil@adacore.com>
+ * exp_ch4.adb (Expand_N_If_Expression):
+ Apply_Arithmetic_Overflow_Check will not deal with
+ Then/Else_Actions so skip minimizing overflow checks if any
+ actions are present.
- * doc/gnat_ugn/the_gnat_compilation_model.rst: in "Handling
- Files with Multiple Units" part documents gnatname use for
- unmodified files handling and gnatchop use for files
- refactoring.
- * gnat_ugn.texi: Regenerate.
+2021-05-06 Boris Yakobowski <yakobowski@adacore.com>
-2020-06-08 Arnaud Charlet <charlet@adacore.com>
+ * gnat1drv.adb (Adjust_Global_Switches): Simplify logic.
- * doc/gnat_rm/implementation_defined_attributes.rst:
- Enum_Rep/Enum_Val are standard Ada 202x attributes.
- * gnat_rm.texi: Regenerate.
+2021-05-06 Arnaud Charlet <charlet@adacore.com>
+
+ * libgnat/i-c.ads (bool): New type.
+ * libgnat/i-cexten.ads, libgnat/i-cexten__128.ads (bool): Now
+ a subtype of Interfaces.C.bool.
+ * libgnarl/s-interr__vxworks.adb (Interrupt_Manager): Qualify
+ False.
+ * libgnarl/s-interr.adb, libgnarl/s-interr__hwint.adb,
+ libgnarl/s-tasini.adb, libgnarl/s-tasren.adb,
+ libgnarl/s-tassta.adb, libgnarl/s-tpobmu.adb,
+ libgnarl/s-tpobop.adb, libgnarl/s-tpopmo.adb: Replace
+ Assert (False) by Assert (Standard.False).
+
+2021-05-06 Ghjuvan Lacambre <lacambre@adacore.com>
-2020-06-08 Javier Miranda <miranda@adacore.com>
+ * make.adb (Compute_Executable): Document parameter.
- * exp_aggr.adb (Safe_Component): Remove code that considers as
- unsafe components that are aggregates; such removal allows the
- frontend to proceed and evaluate if they are safe by means of
- invoking Safe_Aggregate.
+2021-05-06 Eric Botcazou <ebotcazou@adacore.com>
-2020-06-08 Piotr Trojanek <trojanek@adacore.com>
+ * libgnat/s-fatgen.adb (Scaling): Use single handling of
+ underflow. Add pragma Annotate.
- * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Apply
- standard expansion to attributes First and Last.
+2021-05-06 Ghjuvan Lacambre <lacambre@adacore.com>
-2020-06-08 Piotr Trojanek <trojanek@adacore.com>
+ * sem_eval.adb (Is_OK_Static_Subtype): Call Is_Static_Subtype,
+ remove redundant checks.
- * exp_attr.adb, exp_util.ads, exp_util.adb (Get_Index_Subtype):
- Move from the body of Exp_Attr to Exp_Util and expose from the
- spec.
- * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Replace
- duplicated code with a call to Get_Index_Subtype.
+2021-05-06 Piotr Trojanek <trojanek@adacore.com>
-2020-06-08 Arnaud Charlet <charlet@adacore.com>
+ * sem_res.adb (First_Last_Ref): Simplify "if [condition] then
+ return True" in "return [condition]".
+ (Resolve_Range): Remove calls appearing in IF condition from the
+ THEN statements.
- * sem_ch8.adb (Analyze_Object_Renaming): Simplify code by moving
- many special cases to Is_Object_Reference and removing others by
- only checking renamings coming from sources.
- * sem_util.adb (Is_Object_Reference): Update for AI12-0226 and
- add more regular handling of 'Priority. Remove special cases no
- longer needed now that we are only checking renamings coming
- from sources.
+2021-05-06 Piotr Trojanek <trojanek@adacore.com>
-2020-06-08 Claire Dross <dross@adacore.com>
+ * sem_case.adb (Missing_Choice): Fix typo in comment.
+ (Lit_Of): Simplify with Make_Character_Literal.
+ (Check_Choices): Remove extra spaces in parameter
+ specifications.
+ * sem_case.ads: Same reformatting.
- * libgnat/a-cofove.adb (Insert_Space): The computation of Index
- generates a spurious compiler warning about a value not being in
- range for a statically dead branch. Silence it using pragma
+2021-05-06 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_aggr.adb (Expand_Array_Aggregate): If the expression in an
+ Others_Clause has not been analyzed because previous analysis of
+ the enclosing aggregate showed the clause to be ineffective i.e.
+ cover a null range, analyze it now to detect a possible type
+ illegality.
+
+2021-05-06 Eric Botcazou <ebotcazou@adacore.com>
+
+ * libgnat/s-fatgen.adb (Scaling): Fix off-by-one bug for underflow.
+
+2021-05-06 Arnaud Charlet <charlet@adacore.com>
+
+ * sem_ch6.adb (Is_Inline_Pragma): Protect against N not being a
+ list member in both branches.
+
+2021-05-06 Piotr Trojanek <trojanek@adacore.com>
+
+ * libgnat/a-cofove.adb (Insert_Space): Remove hardcoded pragma
Warnings.
-2020-06-08 Bob Duff <duff@adacore.com>
-
- * bindo-graphs.adb (function Add_Edge): Rename
- Add_Edge_With_Return to Add_Edge; we can tell it returns because
- it's a function, and overloading seems appropriate in this case.
- If Activates_Task=True, and we're not going to add a new edge
- because an existing Pred-->Succ edge already exists, then set
- Activates_Task to True on the preexisting edge. This ensures
- that the message:
- info: use pragma Restrictions (No_Entry_Calls_In_Elaboration_Code)
- appears when appropriate, no matter in what order the edges
- happened to be processed.
- (procedure Add_Edge): Remove redundant assertions.
- (Activates_Task): Other kinds of edges can have
- Activates_Task=True. For example, if we had a With_Edge and
- then an Invocation_Edge with Activates_Task=True, then the
- With_Edge has Activates_Task set to True.
- (Add_Edge_Kind_Check): New procedure to prevent other bugs of
- this nature. For example, if we were to sometimes call Add_Edge
- for a Spec_Before_Body_Edge followed by Add_Edge for a
- With_Edge, and sometimes in the other order, that would cause a
- similar bug to what we're fixing here.
- (Set_Is_Recorded_Edge): Val parameter is not used. Get rid of
- it.
- (Set_Activates_Task): New procedure to set the Activates_Task flag.
- * bindo-graphs.ads (Library_Graph_Edge_Kind): Reorder the
- enumeration literals to facilitate Add_Edge_Kind_Check.
- * ali.adb (Known_ALI_Lines): The comment about "still available"
- was wrong. Fix that by erasing the comment, and encoding the
- relevant information in real code. Take advantage of Ada's full
- coverage rules by removing "others =>". Also DRY.
-
-2020-06-08 Ed Schonberg <schonberg@adacore.com>
-
- * par-ch12.adb (P_Formal_Derived_Type_Definition): Handle
- properly formal derived types that include aspect
- specifications, so that the "with" keyword appears twice in the
- formal type declaration.
- * sem_ch13.adb (Has_Generic_Parent): Return true if the type
- itself is a generic formal.
-
-2020-06-08 Dmitriy Anisimkov <anisimko@adacore.com>
-
- * socket.c (__gnat_minus_500ms): Remove
- IsWindowsVersionOrGreater from condition.
-
-2020-06-08 Claire Dross <dross@adacore.com>
-
- * libgnat/a-cfdlli.ads, libgnat/a-cfhama.ads,
- libgnat/a-cfhase.ads, libgnat/a-cforma.ads, libgnat/a-cforse.ads
- (Delete): Add Depends contract.
-
-2020-06-08 Arnaud Charlet <charlet@adacore.com>
-
- * snames.ads-tmpl (Name_Program_Error_Check,
- Name_Tasking_Check): New constants.
- * types.ads (Program_Error_Check, Tasking_Check): New constants.
- (All_Checks): Update accordingly.
-
-2020-06-05 Arnaud Charlet <charlet@adacore.com>
-
- * sem_prag.adb (Validate_Compile_Time_Warning_Or_Error): Use ??.
-
-2020-06-05 Arnaud Charlet <charlet@adacore.com>
-
- * cstand.adb (Create_Standard): Update comments.
-
-2020-06-05 Arnaud Charlet <charlet@adacore.com>
-
- * scng.adb (Scan): Fix typo to take into account all future
- versions of Ada.
- * sem_attr.ads (Attribute_Impl_Def): Add Attribute_Reduce for
- now.
- * sem_attr.adb (Analyze_Attribute): Only allow 'Reduce under
- -gnatX.
- * snames.ads-tmpl (Name_Reduce): Update comment.
-
-2020-06-05 Thomas Quinot <quinot@adacore.com>
-
- * exp_disp.adb (Expand_Interface_Thunk): Add comment about
- gnatcov reliance on specific name used for thunks.
-
-2020-06-05 Ed Schonberg <schonberg@adacore.com>
-
- * sem_ch3.adb (Analyze_Subtype_Declaration): For scalar types,
- and for subtype declarations without a constraint, subtype
- inherits Atomic flag from base type.
-
-2020-06-05 Piotr Trojanek <trojanek@adacore.com>
-
- * doc/gnat_rm/implementation_defined_attributes.rst (Enum_Rep):
- Remove extra colon.
- * gnat_rm.texi: Regenerate.
+2021-05-06 Piotr Trojanek <trojanek@adacore.com>
-2020-06-05 Eric Botcazou <ebotcazou@adacore.com>
+ * sem_ch4.adb (Analyze_Selected_Component): Remove explicit call
+ to Set_Raises_Constraint_Error on statically missing component.
+ * sem_eval.adb (Eval_Arithmetic_Op): Likewise for static
+ divisions by integer and real zeros.
+ * sem_util.adb (Apply_Compile_Time_Constraint_Error): Call
+ Set_Raises_Constraint_Error before exiting early in GNATprove
+ mode.
- * atree.adb (New_Copy): Clear Has_Dynamic_Range_Check on
- subexpression nodes.
- * checks.adb (Append_Range_Checks): Assert that the node
- doesn't have the Has_Dynamic_Range_Check flag set.
- (Insert_Range_Checks): Likewise.
- * exp_ch3.adb (Expand_N_Subtype_Indication): Do not apply
- range checks for a full type or object declaration.
- * sem_ch3.ads: Move with and use clauses for Nlists to...
- (Process_Range_Expr_In_Decl): Change default to No_List for
- the Check_List parameter.
- * sem_ch3.adb: ...here.
- (Process_Range_Expr_In_Decl): Likewise. When the insertion
- node is a declaration, only insert on the list if is present
- when the declaration involves discriminants, and only insert
- on the node when there is no list otherwise.
+2021-05-06 Justin Squirek <squirek@adacore.com>
-2020-06-05 Piotr Trojanek <trojanek@adacore.com>
+ * checks.adb (Make_Discriminant_Constraint_Check): Add check for
+ null when the type being converted is an access type.
- * sem_aggr.adb (Resolve_Record_Aggregate): Create the
- N_Aggregate node with its Expressions field set to No_List and
- not to an empty list.
+2021-05-06 Arnaud Charlet <charlet@adacore.com>
-2020-06-05 Dmitriy Anisimkov <anisimko@adacore.com>
+ * exp_pakd.adb (Expand_Packed_Eq): Fix handling of PATs.
- * libgnat/s-os_lib.adb (Is_Dirsep): Moved from Build_Path to
- package level to reuse.
- (Normalize_Pathname.Final_Value): Reduce 2 'if' statements to
- one.
- (Normalize_Pathname.Fill_Directory): New procedure instead of
- function Get_Directory. Remove slash to backslash conversion and
- drive letter uppercasing on Windows.
+2021-05-06 Piotr Trojanek <trojanek@adacore.com>
-2020-06-05 Arnaud Charlet <charlet@adacore.com>
+ * osint.adb (Read_Library_Info_From_Full): Cleanup unused
+ initial value.
- * sem.adb (Assert_Done): Relax check for main unit, as it was
- overzealous in the case of the main unit itself.
+2021-05-06 Eric Botcazou <ebotcazou@adacore.com>
-2020-06-05 Piotr Trojanek <trojanek@adacore.com>
+ * doc/gnat_rm/implementation_defined_characteristics.rst (3.5.7):
+ Mention the IEEE standard explicitly. Use current format names.
+ Document assumed rounding mode and new features of I/O support.
+ * gnat_rm.texi: Regenerate.
- * exp_ch3.adb, sem_ch8.adb, sem_util.adb: Use Is_Incomplete_Type
- to make the code easier to read.
+2021-05-06 Eric Botcazou <ebotcazou@adacore.com>
-2020-06-05 Piotr Trojanek <trojanek@adacore.com>
+ * init.c (__gnat_init_float): Use full version on Linux too.
- * einfo.adb: Minor reformatting.
- * sem_util.adb (Has_Full_Default_Initialization,
- Is_Partially_Initialized_Type, Caller_Known_Size_Record,
- Large_Max_Size_Mutable): Iterate with
- First_Component/Next_Component; rename Ent to Comp.
+2021-05-06 Eric Botcazou <ebotcazou@adacore.com>
-2020-06-05 Eric Botcazou <ebotcazou@adacore.com>
+ * libgnat/s-fatgen.adb (Valid): Do a bit comparison with 0.0
+ when denormalized numbers are not supported.
- * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Use
- Expr_Rep_Value instead of Expr_Value to obtain the equivalent
- integer value.
- * sem_eval.ads (Expr_Value): Document more supported cases.
- * sem_eval.adb (Expr_Rep_Value): Copy missing cases from
- Exp_Value.
+2021-05-06 Piotr Trojanek <trojanek@adacore.com>
-2020-06-05 Bob Duff <duff@adacore.com>
+ * sem_attr.adb (Check_Enum_Image): Reword comment; add
+ Check_Enumeration_Maps parameter. Now this routine combines
+ both referencing enumeration literals and checking restriction
+ No_Enumeration_Maps, if required.
+ (Analyze_Attribute): Remove duplicated code and instead call
+ Check_Enum_Image.
- * rtsfind.adb, rtsfind.ads: Move subtypes of RTU_Id into package
- body, because they are not needed by clients. Change "Child_" to
- "Descendant", because grandchildren and great grandchildren are
- involved. Replace all the repetitive comments with a single
- concise one. Change the parent subtypes to be more consistent;
- use the most specific parent.
+2021-05-06 Piotr Trojanek <trojanek@adacore.com>
-2020-06-05 Piotr Trojanek <trojanek@adacore.com>
+ * sem_attr.adb (Analyze_Image_Attribute): Remove redundant
+ condition; add a missing header box.
- * rtsfind.ads, rtsfind.adb (Is_Text_IO_Special_Package): Moved
- from the GNATprove backend to the frontend.
+2021-05-06 Gary Dismukes <dismukes@adacore.com>
-2020-06-05 Yannick Moy <moy@adacore.com>
+ * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add
+ mention of underscore and fix grammar error in doc for -gnatd.
+ * gnat_ugn.texi: Regenerate.
- * sem_util.ads: Add comment about function only used in
- CodePeer.
+2021-05-06 Eric Botcazou <ebotcazou@adacore.com>
-2020-06-05 Ed Schonberg <schonberg@adacore.com>
+ * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-exponr, s-exnflt
+ and s-exnlfl.
+ * exp_ch4.adb (Expand_N_Op_Expon): Use RE_Exn_Float for Short_Float.
+ * rtsfind.ads (RTU_Id): Add System_Exn_Flt and System_Exn_LFlt.
+ (RE_Id): Adjust entries for RE_Exn_Float and RE_Exn_Long_Float.
+ (RE_Unit_Table): Likewise.
+ * libgnat/s-exnflt.ads: New file.
+ * libgnat/s-exnlfl.ads: Likewise.
+ * libgnat/s-exnllf.ads: Change to mere instantiation.
+ * libgnat/s-exnllf.adb: Move implementation to...
+ * libgnat/s-exponr.ads: New generic unit.
+ * libgnat/s-exponr.adb: ...here and also make it generic.
+ (Expon): Do the computation in double precision internally.
- * sem_ch9.adb, (Analyze_Task_Body): After analying the task
- body, indicate that all local variables have no delayed aspects.
- This prevents improper later calls to
- Check_Aspect_At_End_Of_Declarations, that would happen when the
- constructed task_procedure body (generated during expansion) is
- analyzed. The legality of aspect specifications that may appear
- on local declarations has already been established, and it is in
- general not possible to recheck them properly during expansion,
- when visibility may not be fully established.
+2021-05-06 Piotr Trojanek <trojanek@adacore.com>
-2020-06-05 Piotr Trojanek <trojanek@adacore.com>
+ * lib-writ.adb, osint.adb, osint.ads: Cleanup.
- * libgnat/a-cofuve.ads (First): Add Global contract.
+2021-05-06 Piotr Trojanek <trojanek@adacore.com>
-2020-06-05 Arnaud Charlet <charlet@adacore.com>
+ * exp_ch3.adb (Expand_Freeze_Array_Type): Remove excessive
+ condition.
+ (Expand_N_Object_Declaration): Likewise.
+ (Build_Equivalent_Aggregate): Likewise.
+ (Initialization_Warning): Likewise; change another excessive
+ condition into assertion.
+ * freeze.adb (Freeze_Entity): Remove excessive condition.
- * sem_prag.adb (Set_Convention_From_Pragma): Set the convention
- of anonymous access array components.
+2021-05-06 Ed Schonberg <schonberg@adacore.com>
-2020-06-05 Arnaud Charlet <charlet@adacore.com>
+ * sem_res.adb (Resolve_If_Expression): If the context of the
+ expression is an indexed_component, resolve the expression and
+ its dependent_expressions with the base type of the index, to
+ ensure that an index check is generated when resolving the
+ enclosing indexxed_component, and avoid an improper use of
+ discriminants out of scope, when the index type is
+ discriminant-dependent.
- * libgnat/a-calfor.ads, libgnat/a-catizo.ads,
- libgnat/a-catizo.adb (Local_Time_Offset, Local_Image): New.
- (UTC_Time_Offset): Now a renaming of Local_Time_Offset.
+2021-05-06 Arnaud Charlet <charlet@adacore.com>
-2020-06-05 Eric Botcazou <ebotcazou@adacore.com>
+ * einfo.ads, exp_prag.adb, exp_util.adb: Fix typos.
- * sem_ch3.adb (Available_Full_View): New function returning
- either the full or the underlying full view.
- (Build_Full_Derivation): Add guard for the full view.
- (Copy_And_Build): Retrieve the underlying full view, if any,
- also if deriving a completion.
- (Build_Derived_Private_Type): Use Available_Full_View throughout
- to decide whether a full derivation must be done.
+2021-05-05 Piotr Trojanek <trojanek@adacore.com>
-2020-06-05 Bob Duff <duff@adacore.com>
+ * exp_attr.adb (Expand_N_Attribute_Reference): Fix expansion of
+ attributes Input and Output for unchecked unions.
+ * sem_case.ads: Fix typo "disriminant" and refill comment.
- * exp_attr.adb, exp_ch11.adb, exp_imgv.adb, exp_tss.ads,
- par-ch4.adb, sem_attr.adb, sem_util.ads: Misc cleanup.
+2021-05-05 Piotr Trojanek <trojanek@adacore.com>
-2020-06-05 Arnaud Charlet <charlet@adacore.com>
+ * exp_attr.adb, exp_ch9.adb, sem_ch3.adb: Reuse
+ Has_Defaulted_Discriminants.
+ * sem_ch4.adb (Analyze_Allocator): Reuse
+ Has_Defaulted_Discriminants (after reordering conjuncts); remove
+ redundant IF statement, whose condition is implied by
+ Has_Defaulted_Discriminants.
+ * sem_util.adb (Has_Defaulted_Discriminants): Has_Discriminants
+ implies that the First_Discriminant is present.
+ (Is_Fully_Initialized_Type): Reuse Has_Defaulted_Discriminants.
- * libgnat/a-nudira.ads, libgnat/a-nudira.adb (Random): New
- function.
+2021-05-05 Justin Squirek <squirek@adacore.com>
-2020-06-05 Arnaud Charlet <charlet@adacore.com>
+ * exp_ch6.adb (Expand_Call_Helper): Add condition to check for
+ expanded actuals and remove dead code.
- * sem_attr.ads (Attribute_Impl_Def): Remove Enum_Rep/Val.
- * sem_attr.adb (Attribute_20): New, move Enum_Rep/Val here.
- (Analyze_Attribute): Take Attribute_20 into account.
+2021-05-05 Piotr Trojanek <trojanek@adacore.com>
-2020-06-05 Arnaud Charlet <charlet@adacore.com>
+ * exp_ch4.adb (Has_Unconstrained_UU_Component): Rewrite to
+ follow the Ada RM grammar.
- * restrict.ads (Unit_Array): Add a-direct.
+2021-05-05 Piotr Trojanek <trojanek@adacore.com>
-2020-06-05 Arnaud Charlet <charlet@adacore.com>
+ * exp_ch4.adb (User_Defined_Primitive_Equality_Op): Refine type
+ of a local variable.
+ * exp_dbug.adb (Scope_Contains): Refine all types from Node_Id
+ to Entity_Id; rename parameters to match those of the
+ Scope_Within routine (which is similar but not the same); also,
+ simplify an OR ELSE into a membership test.
- * libgnat/s-stopoo.ads: Mark package Pure and leave room for
- Nonblocking once this aspect is supported.
-
-2020-06-05 Eric Botcazou <ebotcazou@adacore.com>
-
- * exp_attr.adb (Expand_N_Attribute_Reference) <Valid_Scalars>:
- Set the No_Truncation flag on the unchecked conversion built for
- scalar types.
-
-2020-06-05 Bob Duff <duff@adacore.com>
-
- * einfo.adb, einfo.ads, exp_util.adb: Remove Invariants_Ignored
- flag.
- * sem_prag.adb (Invariant): Instead of setting a flag to be
- checked elsewhere, remove the pragma as soon as it is analyzed
- and checked for legality.
-
-2020-06-05 Eric Botcazou <ebotcazou@adacore.com>
-
- * checks.ads (Apply_Length_Check): Rename Ck_Node parameter to
- Expr.
- (Apply_Range_Check): Likewise.
- (Get_Range_Checks): Likewise.
- * checks.adb (Apply_Float_Conversion_Check): Likewise.
- (Apply_Selected_Length_Checks): Likewise.
- (Apply_Selected_Range_Checks): Likewise.
- (Guard_Access): Likewise.
- (Selected_Length_Checks): Likewise. Also avoid shadowing in
- child procedures.
- (Selected_Range_Checks): Likewise.
-
-2020-06-05 Arnaud Charlet <charlet@adacore.com>
-
- * par-ch3.adb, par-ch4.adb, scng.adb, sem_aggr.adb,
- sem_ch10.adb, sem_ch12.adb, sem_prag.adb: Update wording: change
- Ada_2020 to Ada 2020 in comments and mention -gnat2020 instead
- of -gnatX switch.
-
-2020-06-04 Arnaud Charlet <charlet@adacore.com>
-
- * libgnat/i-c.ads (long_long, unsigned_long_long): New
- definitions.
-
-2020-06-04 Arnaud Charlet <charlet@adacore.com>
-
- * Makefile.rtl: add a-tasini object
- * impunit.adb (Non_Imp_File_Names_95): Add s-tasini.
- * libgnarl/a-tasini.ads, libgnarl/a-tasini.adb: New files.
- * libgnarl/s-taskin.ads (Global_Initialization_Handler): New.
- * libgnarl/s-tassta.adb (Task_Wrapper): Call
- Global_Initialization_Handler if non null.
-
-2020-06-04 Ed Schonberg <schonberg@adacore.com>
-
- * sem_ch12.adb (Build_Suprogram_Body_Wrapper,
- Build_Subprogram_Decl_Wrapper): New suprograms, to create the
- wrappers needed to implement contracts on formsl subprograms at
- the point of instantiation.
- (Build_Subprogram_Wrappers): New subprogram within
- Analyze_Associations, calls the above when the formal subprogram
- has contracts, and expansion is enabled.
- (Instantiate_Formal_Subprogram): If the actual is not an entity,
- such as a function attribute, or a synchronized operation,
- create a function with an internal name and call it within the
- wrapper.
- (Analyze_Generic_Formal_Part): Analyze contracts at the end of
- the list of formal declarations.
- * sem_prag.adb (Analyze_Pre_Post_Condtion): In Ada_2020 the
- aspect and corresponding pragma can appear on a formal
- subprogram declaration.
- (Find_Related_Declaration_Or_Body): Ditto.
-
-2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
-
- * exp_ch7.adb (Make_Final_Call): Set the type of the object, if
- it is unanalyzed, before calling Convert_View on it.
-
-2020-06-04 Arnaud Charlet <charlet@adacore.com>
-
- * adabkend.adb, back_end.ads, opt.ads, sem_ch6.adb: Get rid of
- Disable_FE_Inline_Always.
-
-2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
-
- * exp_ch7.adb (Make_Final_Call): Add missing guard.
- * sem_ch3.adb (Copy_And_Build): Adjust recursive call for
- private types.
- (Build_Derived_Private_Type): Deal with underlying full views.
-
-2020-06-04 Bob Duff <duff@adacore.com>
-
- * libgnat/a-stobbu.adb, libgnat/a-stobbu.ads,
- libgnat/a-stobfi.adb, libgnat/a-stobfi.ads,
- libgnat/a-stoubu.adb, libgnat/a-stoubu.ads,
- libgnat/a-stoufi.adb, libgnat/a-stoufi.ads,
- libgnat/a-stoufo.adb, libgnat/a-stoufo.ads,
- libgnat/a-stouut.adb, libgnat/a-stouut.ads,
- libgnat/a-stteou.ads, libgnat/s-putaim.adb,
- libgnat/s-putaim.ads, libgnat/s-putima.adb, libgnat/s-putima.ads
- (Ada.Strings.Text_Output and children, System.Put_Images): New
- runtime support for Put_Image.
- * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add
- exp_put_image.o.
- * exp_put_image.adb, exp_put_image.ads: New compiler package
- that generates calls to runtime routines that implement
- Put_Image.
- * Makefile.rtl: Add object files for Ada.Strings.Text_Output and
- children and System.Put_Images.
- * aspects.adb: Simplify initialization of Canonical_Aspect.
- * aspects.ads: Improve documentation. Add Aspect_Put_Image.
- * exp_attr.adb: Add support for Put_Image, by calling routines
- in Exp_Put_Image.
- * sem_util.adb (Is_Predefined_Dispatching_Operation): Return
- True for new TSS_Put_Image operation.
- * exp_ch3.adb: For tagged types, build a dispatching
- TSS_Put_Image operation by calling routines in Exp_Put_Image.
- * exp_disp.adb, exp_disp.ads: Make TSS_Put_Image be number 10,
- adjusting other operations' numbers after 10. We choose 10
- because that's the last number shared by all runtimes.
- * exp_strm.adb: Use named notation as appropriate.
- * exp_cg.adb, exp_tss.ads: Add TSS_Put_Image.
- * libgnat/a-tags.ads: Modify Max_Predef_Prims for the new
- TSS_Put_Image.
- * impunit.adb: Add new runtime packages.
- * rtsfind.adb, rtsfind.ads: Add support for
- Ada.Strings.Text_Output, Ada.Strings.Text_Output.Utils, and
- System.Put_Images.
- * sem_attr.adb: Error checking for Put_Image calls.
- * sem_ch12.adb (Valid_Default_Attribute): Support for passing
- Put_Image as a generic formal parameter.
- * sem_ch13.adb: Analysis of Put_Image aspect. Turn it into a
- Put_Image attribute definition clause.
- * sem_ch8.adb (Analyze_Subprogram_Renaming): Support for
- renaming of the Put_Image attribute.
- * snames.adb-tmpl: Fix comments.
- * snames.ads-tmpl (Name_Put_Image): New Name_Id.
- (Attribute_Put_Image): New Attribute_Id.
- * tbuild.adb, tbuild.ads (Make_Increment): New utility.
-
-2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
-
- * exp_attr.adb (xpand_N_Attribute_Reference) <Input>: Call
- Find_Inherited_TSS to look up the Stream_Read TSS.
- <Output>: Likewise for the Stream_Write TSS.
- * exp_ch7.adb (Make_Final_Call): Call Underlying_Type on
- private types to account for underlying full views.
- * exp_strm.ads (Build_Record_Or_Elementary_Input_Function):
- Remove Use_Underlying parameter.
- * exp_strm.adb (Build_Record_Or_Elementary_Input_Function):
- Likewise and adjust accordingly.
- * exp_tss.adb (Find_Inherited_TSS): Deal with full views.
- Call Find_Inherited_TSS recursively on the parent type if
- the base type is a derived type.
- * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Take
- into account underlying full views for derived types.
- * sem_ch3.adb (Copy_And_Build): Look up the underlying full
- view only for a completion. Be prepared for private types.
- (Build_Derived_Private_Type): Build an underlying full view
- for a completion in the general case too.
-
-2020-06-04 Arnaud Charlet <charlet@adacore.com>
-
- * back_end.adb, opt.ads, par-prag.adb, sem_ch5.adb,
- sem_prag.adb, sinfo.adb, sinfo.ads, snames.ads-tmpl,
- doc/gnat_rm/implementation_defined_pragmas.rst: Remove
- experimental support for OpenACC.
- * gcc-interface/misc.c, gcc-interface/trans.c,
- gcc-interface/lang.opt: Ditto.
- * gnat_rm.texi: Regenerate.
+2021-05-05 Piotr Trojanek <trojanek@adacore.com>
-2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
+ * exp_ch4.adb (Component_Is_Unconstrained_UU): Detect both
+ qualified and unqualified names of unchecked union components.
- * checks.adb (Generate_Discriminant_Check): Remove obsolete
- comment.
+2021-05-05 Piotr Trojanek <trojanek@adacore.com>
+
+ * exp_ch4.adb (Variant_Is_Unconstrained_UU): Remove redundant
+ check for empty list.
+ * exp_disp.adb (Find_Entry_Index): Simplify by removing
+ redundant check and counting from zero; fix type of a local
+ variable.
+ * sem_ch12.adb (Save_Global_Descendant): Remove an unnecessary
+ special-case for empty lists.
-2020-06-04 Gary Dismukes <dismukes@adacore.com>
+2021-05-05 Piotr Trojanek <trojanek@adacore.com>
- * par-ch3.adb (P_Identifier_Declarations): Add parsing of object
- renamings that have neither a subtype_mark nor an
- access_definition. Issue an error if the version is earlier than
- Ada_2020, and suggest using -gnatX.
- * sem_ch8.adb (Analyze_Object_Renaming): Handle
- object_renaming_declarations that don't have an explicit
- subtype. Errors are issued when the name is inappropriate or
- ambiguous, and otherwise the Etype of the renaming entity is set
- from the Etype of the renamed object.
- * sem_util.adb (Has_Null_Exclusion): Allow for the case of no
- subtype given in an N_Object_Renaming_Declaration.
- * sprint.adb (Sprint_Node_Actual): Handle printing of
- N_Object_Renaming_Declarations that are specified without an
- explicit subtype.
+ * exp_ch4.adb (Apply_Accessibility_Check): Skip a statically
+ true condition in expanded raise statement.
-2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
+2021-05-05 Bob Duff <duff@adacore.com>
- * sinfo.ads (N_Delta_Aggregate): Document Etype field.
- (N_Case_Expression): Likewise.
- (Is_Syntactic_Field) <N_Quantified_Expression>: Adjust.
- <N_Case_Expression>: Likewise.
+ * libgnat/s-os_lib.adb (Missed_Drive_Letter): Simplify the code.
-2020-06-04 Arnaud Charlet <charlet@adacore.com>
+2021-05-05 Ed Schonberg <schonberg@adacore.com>
- * adaint.c: Avoid redefining IS_DIR_SEPARATOR macro.
+ * sem_ch5.adb (Analyze_Assignment): Do not emit the warning that
+ a previous value of the target object is useless if the
+ right-hand side of the assignment includes target names.
-2020-06-04 Arnaud Charlet <charlet@adacore.com>
+2021-05-05 Eric Botcazou <ebotcazou@adacore.com>
- * sem.adb (Walk_Library_Items): Defer processing of main spec
- after all other specs and before processing bodies.
+ * exp_imgv.adb: Add with/use clauses for Targparm.
+ (Build_Enumeration_Image_Tables): Set type of Threshold to Nat and
+ initialize it to Nat'Last if the type is local and the target does
+ not support descriptors. Adjust Threshold_For_Size similarly.
+ (Expand_Value_Attribute): Minor tweaks.
-2020-06-04 Arnaud Charlet <charlet@adacore.com>
+2021-05-05 Ghjuvan Lacambre <lacambre@adacore.com>
- * bindgen.adb (Gen_Adafinal): Adafinal is convention Ada, not C.
+ * exp_ch7.adb (Expand_N_Package_Body): Add CUDA init call.
+ * sem_ch7.adb (Analyze_Package_Body_Helper): Remove CUDA init
+ call.
-2020-06-04 Ed Schonberg <schonberg@adacore.com>
+2021-05-05 Ghjuvan Lacambre <lacambre@adacore.com>
- * sinput.adb (Sloc_Range): Ignore node in the tree if it appears
- in a unit different from that of the node whose Sloc range we
- are computing. This is necessary when computing the source range
- of a subprogram body whose declaration includes a pre- or
- postcondition, because declaration and body may appear in
- different units, and the expanded code for the body includes
- copies of the contract code.
+ * par-ch5.adb (P_Condition): Check if expression is declare
+ expression.
-2020-06-04 Alexandre Oliva <oliva@adacore.com>
+2021-05-05 Piotr Trojanek <trojanek@adacore.com>
- * switch.adb (Is_Internal_GCC_Switch): Recognize dumpdir and
- dumpbase-ext. Mark auxbase and auxbase-strip for removal.
+ * make.adb (Make): Use GNAT.Ctrl_C.Install_Handler instead of a
+ custom imported procedure.
-2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
+2021-05-05 Eric Botcazou <ebotcazou@adacore.com>
- * sem_attr.adb (Resolve_Attribute) <Access>: Do not generate
- the secondary message about a missing pragma if the convention
- of the prefix is Intrinsic.
- * sem_ch12.adb (Instantiate_Formal_Subprogram): Only set the
- Convention and the Is_Inlined flag on a null procedure.
+ * exp_imgv.adb (Is_User_Defined_Enumeration_Type): Delete.
+ (Expand_Image_Attribute): Move inline expansion into normal flow of
+ control, move down declarations and remove superfluous processing.
-2020-06-04 Justin Squirek <squirek@adacore.com>
+2021-05-05 Piotr Trojanek <trojanek@adacore.com>
- * sem_ch6.adb (Check_Return_Obj_Accessibility): Change to
- Check_Return_Construct_Accessibility to better reflect its
- purpose. Add loop to properly obtain the object declaration
- from an expanded extended return statement and add calls to get
- the original node for associated values. Also, avoid checks when
- the return statement being examined comes from an internally
- generated function.
+ * libgnat/g-alleve.adb (Bit_Operation): Now a not-null type.
+ * libgnat/g-sechas.adb (Fill_Buffer_Access): Likewise.
+ * libgnat/s-dwalin.adb (Callback): Likewise.
-2020-06-04 Dmitriy Anisimkov <anisimko@adacore.com>
+2021-05-05 Ghjuvan Lacambre <lacambre@adacore.com>
- * adaint.c (__gnat_is_absolute_path): Check for directory
- separator after drive and colon.
- (IS_DIR_SEPARATOR): Define new inline substitution.
+ * exp_util.adb (Is_Possibly_Unaligned_Object): Remove commented
+ code.
-2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
+2021-05-05 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch3.adb (Find_Type_Of_Object): When In_Spec_Expression is
+ set and the object declaration generates a subtype indication,
+ build the corresponding subtype declaration and place it in tree
+ without the use of Insert_Actions, which is disabled in this
+ context.
+
+2021-05-05 Eric Botcazou <ebotcazou@adacore.com>
+
+ * debug.adb (d_x): Document extended usage.
+ * exp_imgv.adb (Expand_Standard_Boolean_Image): New procedure.
+ (Expand_Image_Attribute): Call it to expand in line the attribute
+ for standard boolean by default.
+
+2021-05-05 Eric Botcazou <ebotcazou@adacore.com>
+
+ * debug.adb (d_x): Document new usage.
+ * exp_imgv.adb (Expand_User_Defined_Enumeration_Image): Add Typ
+ parameter and use it throughout the processing.
+ (Expand_Image_Attribute): Retrieve the underlying type of the
+ prefix and use the inline expansion for user-defined enumeration
+ types with a literal string by default.
+
+2021-05-05 Eric Botcazou <ebotcazou@adacore.com>
+
+ * libgnat/s-dorepr.adb (Split): Declare a per-size temporary.
+ Add pragma Annotate.
+
+2021-05-05 Piotr Trojanek <trojanek@adacore.com>
+
+ * exp_ch4.adb, sem_ch13.adb, sem_eval.adb, sem_res.adb: Remove
+ redundant calls to UI_From_Int.
+
+2021-05-05 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_imgv.ads (Build_Enumeration_Image_Tables): Adjust comment.
+ * exp_imgv.adb (Build_Enumeration_Image_Tables): Add the
+ declaration nodes of the 4 tables to the declaration list of the
+ function body.
+
+2021-05-05 Piotr Trojanek <trojanek@adacore.com>
+
+ * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-imagen, s-imen16,
+ s-imen32, s-imenu8, s-pehage, s-valuen, s-vaen16, s-vaen32 and
+ s-vaenu8. Remove s-imenne, s-imgenu and s-valenu.
+ * debug.adb (d_h): Document new usage.
+ * einfo.ads (Lit_Hash): New attribute for enumeration types.
+ (Set_Lit_Hash): Declare.
+ * einfo.adb (Lit_Hash): New function.
+ (Set_Lit_Hash): New procedure.
+ (Write_Field21_Name): Print Lit_Hash for Enumeration_Kind.
+ * exp_imgv.ads (Build_Enumeration_Image_Tables): Fix description
+ and document the hash function and its tables.
+ * exp_imgv.adb: Add with/use clauses for Debug. Add with clause
+ for System.Perfect_Hash_Generators.
+ (Append_Table_To): New helper routine.
+ (Build_Enumeration_Image_Tables): Call it to build the tables.
+ In the main unit, register the literals with the hash generator.
+ If they are sufficiently many and -gnatd_h is not passed, generate
+ a perfect hash function and its tables; otherwise, generate a dummy
+ hash function. For the other units, generate only the declaration.
+ In all cases, set Lit_Hash to the entity of the function, if any.
+ (Expand_Value_Attribute): Pass the 'Unrestricted_Access of Lit_Hash,
+ if any, as third argument to the Value_Enumeration_NN function.
+ * gnat1drv.adb (Adjust_Global_Switches): force simpler implementation
+ of 'Value in CodePeer_Mode.
+ * lib.ads (Synchronize_Serial_Number): Add SN parameter.
+ * lib.adb (Synchronize_Serial_Number): Assert that it is larger than
+ the serial number of the current unit and set the latter to it only
+ in this case.
+ * rtsfind.ads (RTU_Id): Add System_Img_Enum_8, System_Img_Enum_16,
+ System_Img_Enum_32, System_Val_Enum_8, System_Val_Enum_16 and
+ System_Val_Enum_32. Remove System_Img_Enum, System_Img_Enum_New
+ and System_Val_Enum.
+ * sem_attr.adb (Analyze_Access_Attribute): Do not flag a compiler
+ generated Unrestricted_Access attribute as illegal in a declare
+ expression.
+ (RE_Unit_Table): Adjust to above changes.
+ * libgnat/g-heasor.ads: Add pragma Compiler_Unit_Warning.
+ * libgnat/g-table.ads: Likewise.
+ * libgnat/g-pehage.ads: Add with clause and local renaming for
+ System.Perfect_Hash_Generators.
+ (Optimization): Turn into derived type.
+ (Verbose): Turn into renaming.
+ (Too_Many_Tries): Likewise.
+ (Table_Name): Move to System.Perfect_Hash_Generators.
+ (Define): Likewise.
+ (Value): Likewise.
+ * libgnat/g-pehage.adb: Remove with clause for Ada.Directories,
+ GNAT.Heap_Sort_G and GNAT.Table. Move bulk of implementation
+ to System.Perfect_Hash_Generators, only keep the output part.
+ * libgnat/s-imagen.ads: New generic unit.
+ * libgnat/s-imagen.adb: New body.
+ * libgnat/s-imen16.ads: New unit.
+ * libgnat/s-imen32.ads: Likewise.
+ * libgnat/s-imenu8.ads: Likewise.
+ * libgnat/s-imenne.ads: Adjust description.
+ * libgnat/s-imgenu.ads: Delete.
+ * libgnat/s-imgenu.adb: Likewise.
+ * libgnat/s-pehage.ads: New unit from GNAT.Perfect_Hash_Generators.
+ * libgnat/s-pehage.adb: New body from GNAT.Perfect_Hash_Generators.
+ * libgnat/s-valuen.ads: New generic unit.
+ * libgnat/s-valuen.adb: New body.
+ * libgnat/s-vaen16.ads: New unit.
+ * libgnat/s-vaen32.ads: Likewise.
+ * libgnat/s-vaenu8.ads: Likewise.
+ * libgnat/s-valenu.ads: Delete.
+ * libgnat/s-valenu.adb: Likewise.
+ * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add s-pehage.o.
+ (GNATBIND_OBJS): Remove s-imgenu.o.
+
+2021-05-05 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_util.ads (Apply_Compile_Time_Constraint_Error): Remove
+ parameter Rep from the function spec and "and if the flag Rep is
+ set" from the comment.
+ * sem_util.adb (Apply_Compile_Time_Constraint_Error): Remove
+ parameter Rep.
+
+2021-05-05 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_aggr.adb (Resolve_Indexed_Aggregate): For indexed
+ aggregates with component associations verify that if there is
+ more than one component association then all the choices are
+ static, that the set of choices define a continuous sequence of
+ values, and that if loop specfications appear, they do not
+ include iterator filters or key expressions.
+
+2021-05-05 Eric Botcazou <ebotcazou@adacore.com>
+
+ * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-dourea, s-imager,
+ s-imgflt, s-imglfl and s-imgllf.
+ (LIBGNAT_TARGET_PAIRS) [PowerPC/VxWorks]: Use s-dorepr__fma.adb.
+ (LIBGNAT_TARGET_PAIRS) [PowerPC/VxWorksAE]: Likewise.
+ (LIBGNAT_TARGET_PAIRS) [Aarch64/VxWorks]: Likewise.
+ (LIBGNAT_TARGET_PAIRS) [Aarch64/QNX]: Likewise.
+ (LIBGNAT_TARGET_PAIRS) [Aarch64/FreeBSD]: Likewise.
+ (LIBGNAT_TARGET_PAIRS) [PowerPC/Linux]: Likewise.
+ (LIBGNAT_TARGET_PAIRS) [Aarch64/Linux]: Likewise.
+ (LIBGNAT_TARGET_PAIRS) [IA-64/Linux]: Likewise.
+ (LIBGNAT_TARGET_PAIRS) [IA-64/HP-UX]: Likewise.
+ (LIBGNAT_TARGET_PAIRS) [RISC-V/Linux]: Likewise.
+ (LIBGNAT_TARGET_PAIRS) [PowerPC/Darwin]: Likewise.
+ * exp_attr.adb (Expand_N_Attribute_Reference) [Attribute_Fore]: Use
+ Fixed suffix and Long_Float type.
+ * exp_imgv.adb (Expand_Image_Attribute): For floating-point types,
+ use the routine of the corresponding root type. For ordinary fixed
+ point types, use Fixed suffix and Long_Float type.
+ (Expand_Value_Attribute): Revert latest change for Long_Long_Float.
+ * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Remove libgnat units
+ g-hesora.o and s-imgenu.o, add g-heasor.o, g-table.o and s-pehage.o.
+ (GNATBIND_OBJS): Remove libgnat unit s-imgenu.o.
+ * rtsfind.ads (RTU_Id): Add System_Img_Flt, System_Img_LFlt and
+ System_Img_LLF. Remove System_Img_Real.
+ (RE_Id): Rename RE_Fore_Real to RE_Fore_Fixed. Add RE_Image_Float,
+ RE_Image_Long_Float and RE_Image_Long_Long_Float. Rename
+ RE_Image_Ordinary_Fixed_Point to RE_Image_Fixed.
+ (RE_Unit_Table): Adjust to above changes.
+ * libgnat/a-nbnbre.adb (Fixed_Conversions): Use Long_Float instead
+ of Long_Long_Float.
+ * libgnat/a-textio.ads (Field): Remove obsolete comment.
+ * libgnat/a-ticoau.ads (Aux): Adjust ancestor package.
+ * libgnat/a-ticoau.adb: Remove with/use clause for System.Img_Real.
+ (Puts): Call Aux.Set_Image instead of Set_Image_Real.
+ * libgnat/a-ticoio.adb: Add with/use clauses for System.Img_Flt,
+ System.Img_LFlt and System.Img_LLF.
+ (Scalar_Float): Add third actual parameter.
+ (Scalar_Long_Float): Likewise.
+ (Scalar_Long_Long_Float): Likewise.
+ * libgnat/a-tifiio.adb: Add with/use clauses for System.Img_LFlt
+ and System.Val_LFlt. Remove the one for System.Val_LLF. Replace
+ Long_Long_Float with Long_Float throughout.
+ * libgnat/a-tifiio__128.adb: Likewise.
+ * libgnat/a-tiflau.ads: Add Set_Image formal parameter.
+ * libgnat/a-tiflau.adb: Add with/use clause for System.Img_Util,
+ remove the one for System.Img_Real.
+ (Put): Call Set_Image instead of Set_Image_Real.
+ (Puts): Likewise.
+ * libgnat/a-tiflio.adb: Add with/use clause for System.Img_Flt,
+ System.Img_LFlt and System.Img_LLF.
+ (Aux_Float): Add third actual parameter.
+ (Aux_Long_Float): Likewise.
+ (Aux_Long_Long_Float): Likewise.
+ * libgnat/a-witeio.ads (Field): Remove obsolete comment.
+ * libgnat/a-wtcoau.ads (Aux): Adjust ancestor package.
+ * libgnat/a-wtcoau.adb: Remove with/use clause for System.Img_Real.
+ (Puts): Call Aux.Set_Image instead of Set_Image_Real.
+ * libgnat/a-wtcoio.adb: Add with/use clauses for System.Img_Flt,
+ System.Img_LFlt and System.Img_LLF.
+ (Scalar_Float): Add third actual parameter.
+ (Scalar_Long_Float): Likewise.
+ (Scalar_Long_Long_Float): Likewise.
+ * libgnat/a-wtfiio.adb: Add with/use clauses for System.Img_LFlt
+ and System.Val_LFlt. Remove the one for System.Val_LLF. Replace
+ Long_Long_Float with Long_Float throughout.
+ * libgnat/a-wtfiio__128.adb: Likewise.
+ * libgnat/a-wtflau.ads: Add Set_Image formal parameter.
+ * libgnat/a-wtflau.adb: Add with/use clause for System.Img_Util,
+ remove the one for System.Img_Real.
+ (Put): Call Set_Image instead of Set_Image_Real.
+ (Puts): Likewise.
+ * libgnat/a-wtflio.adb: Add with/use clause for System.Img_Flt,
+ System.Img_LFlt and System.Img_LLF.
+ (Aux_Float): Add third actual parameter.
+ (Aux_Long_Float): Likewise.
+ (Aux_Long_Long_Float): Likewise.
+ * libgnat/a-ztexio.ads (Field): Remove obsolete comment.
+ * libgnat/a-ztcoau.ads (Aux): Adjust ancestor package.
+ * libgnat/a-ztcoau.adb: Remove with/use clause for System.Img_Real.
+ (Puts): Call Aux.Set_Image instead of Set_Image_Real.
+ * libgnat/a-ztcoio.adb: Add with/use clauses for System.Img_Flt,
+ System.Img_LFlt and System.Img_LLF.
+ (Scalar_Float): Add third actual parameter.
+ (Scalar_Long_Float): Likewise.
+ (Scalar_Long_Long_Float): Likewise.
+ * libgnat/a-ztfiio.adb: Add with/use clauses for System.Img_LFlt
+ and System.Val_LFlt. Remove the one for System.Val_LLF. Replace
+ Long_Long_Float with Long_Float throughout.
+ * libgnat/a-ztfiio__128.adb: Likewise.
+ * libgnat/a-ztflau.ads: Add Set_Image formal parameter.
+ * libgnat/a-ztflau.adb: Add with/use clause for System.Img_Util,
+ remove the one for System.Img_Real.
+ (Put): Call Set_Image instead of Set_Image_Real.
+ (Puts): Likewise.
+ * libgnat/a-ztflio.adb: Add with/use clause for System.Img_Flt,
+ System.Img_LFlt and System.Img_LLF.
+ (Aux_Float): Add third actual parameter.
+ (Aux_Long_Float): Likewise.
+ (Aux_Long_Long_Float): Likewise.
+ * libgnat/s-dorepr.adb: New file.
+ * libgnat/s-dorepr__fma.adb: Likewise.
+ * libgnat/s-dourea.ads: Likewise.
+ * libgnat/s-dourea.adb: Likewise.
+ * libgnat/s-forrea.ads (Fore_Real): Rename into...
+ (Fore_Fixed): ...this and take Long_Float parameters.
+ * libgnat/s-forrea.adb (Fore_Real): Likewise.
+ (Fore_Fixed): Likewise.
+ * libgnat/s-imgrea.ads: Move to...
+ (Set_Image_Real): Turn into mere renaming.
+ * libgnat/s-imager.ads: ...here.
+ (Image_Ordinary_Fixed_Point): Turn into...
+ (Image_Fixed_Point): ...this.
+ * libgnat/s-imgrea.adb: Add pragma No_Body. Move to...
+ * libgnat/s-imager.adb: ...here.
+ (Image_Ordinary_Fixed_Point): Turn into...
+ (Image_Fixed_Point): ...this.
+ (Is_Negative): Replace Long_Long_Float with Num.
+ (Set_Image_Real): Likewise. Use Double_T instead of single Num
+ throughout the algorithm.
+ * libgnat/s-imgflt.ads: New file.
+ * libgnat/s-imglfl.ads: Likewise.
+ * libgnat/s-imgllf.ads: Likewise.
+ * libgnat/s-imagef.ads: Adjust comment.
+ * libgnat/s-imguti.ads (Max_Real_Image_Length): New named number.
+ * libgnat/s-powflt.ads (Maxpow): Adjust.
+ (Powten): Turn into an exact table of double Float.
+ * libgnat/s-powlfl.ads (Maxpow): Adjust.
+ (Powten): Turn into an exact table of double Long_Float.
+ * libgnat/s-powllf.ads (Maxpow): Adjust.
+ (Powten): Turn into an exact table of double Long_Long_Float.
+ * libgnat/s-valrea.ads: Change order of formal parameters.
+ * libgnat/s-valrea.adb: Add with clause for System.Double_Real.
+ (Double_Real): New instantiation.
+ (Fast2Sum): Delete.
+ (Large_Powten): New function.
+ (Integer_to_Real): Use Quick_Two_Sum instead of Fast2Sum. Convert
+ the value to Double_T. Do the scaling in Double_T for base 10.
+ * libgnat/s-valflt.ads: Remove with/use clasue for Interfaces,
+ add it for System.Unsigned_Types. Use Unsigned.
+ * libgnat/s-vallfl.ads: Remove with/use clasue for Interfaces,
+ add it for System.Unsigned_Types. Use Long_Unsigned.
+ * libgnat/s-valllf.ads: Remove with/use clasue for Interfaces,
+ add it for System.Unsigned_Types. Use Long_Long_Unsigned.
+
+2021-05-05 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_eval.adb (Eval_Arithmetic_Op): Call
+ Set_Raises_Constraint_Error on real division by zero just like
+ it is called for integer division by zero earlier in this
+ routine.
+
+2021-05-05 Piotr Trojanek <trojanek@adacore.com>
+
+ * freeze.adb (Build_Renamed_Body): Simplify IF and WHILE
+ statements with the same condition.
+
+2021-05-05 Piotr Trojanek <trojanek@adacore.com>
+
+ * pprint.adb (Expr_Name): Introduce local constants to make the
+ code more readable and avoid repeated calls to Next to reach the
+ ELSE part of an if-expression.
+
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * pprint.adb: Remove qualification of arbitrary calls to
+ Sinfo.Expressions and Sinfo.Parameter_Associations.
+
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * pprint.adb (Expr_Name): Simplify with functional variant of
+ UI_Image.
+
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * pprint.adb (To_Mixed): Removed.
+
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * pprint.adb (List_Name_Count): Change type from Integer to
+ Natural.
+
+2021-05-04 Yannick Moy <moy@adacore.com>
+
+ * pprint.adb (Expression_Image): Special case for
+ expression-with-actions.
+
+2021-05-04 Bob Duff <duff@adacore.com>
+
+ * exp_ch4.adb (Expand_Concatenate): Remove the non-optimization.
+
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * lib-xref.adb (Generate_Reference_To_Formals): Remove dedicated
+ branch for generic subprograms (they are now handled together
+ with non-generic subprograms in the ELSE branch); replace a
+ low-level Ekind membership test with a high-level call to
+ Is_Access_Subprogram_Type.
+
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_ch12.adb (Check_Abstract_Primitives): Match First_Formal
+ with Next_Formal.
+ * sem_ch6.adb (Is_Non_Overriding_Operation): Likewise.
+
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_prag.adb (Collect_Global_Item): Iterate directly over
+ formals.
- * checks.ads: Update documentation about range checks and fix
- minor other things.
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
-2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
+ * sem_prag.ads (Collect_Subprogram_Inputs_Outputs): Update
+ comment; this routine is no longer used by GNATprove.
+ * sem_prag.adb (Find_Role): The IN parameter is on output only
+ when it belongs to non-function; also, the otherwise constant
+ object can only be written by a non-function.
+ (Collect_Global_Item): The IN parameter can only be written when
+ it belongs to non-function; also, unnest this check to make it
+ easier to read.
- * sem_ch3.adb (Array_Type_Declaration): Apply special handling
- of private index types to generic packages and restrict it to
- index types defined in the current scope.
+2021-05-04 Arnaud Charlet <charlet@adacore.com>
-2020-06-04 Arnaud Charlet <charlet@adacore.com>
+ * libgnat/s-assert.ads (Assert_Failure): Now a renaming of
+ Assertion_Error.
+ * libgnat/a-assert.ads (Assertion_Error): Now a first class
+ citizen. Remove dependency on System.Assertions.
+ * gcc-interface/a-assert.ads, gcc-interface/a-assert.adb: New.
+ * gcc-interface/Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add
+ a-assert.o from gcc-interface.
- * libgnat/a-exextr.adb (Global_Unhandled_Action): New global
- variable.
- (Notify_Exception): Take into account Global_Unhandled_Action
- and fix latent race condition.
- (Exception_Action): Mark Favor_Top_Level so that variables can
- be atomic.
- (Global_Action): Mark atomic to remove the need for a lock.
- * libgnat/g-excact.ads, libgnat/g-excact.adb
- (Register_Global_Unhandled_Action): New procedure.
- (Register_Global_Action): Remove lock.
- * libgnat/s-stalib.ads (Raise_Action): Mark Favor_Top_Level to
- be compatible with Exception_Action.
- * sem_warn.adb (Warn_On_Unreferenced_Entity): Fix logic wrt
- Volatile entities and entities with an address clause: the code
- did not match the comment/intent.
-
-2020-06-04 Arnaud Charlet <charlet@adacore.com>
-
- * comperr.adb (Compiler_Abort): Update URL and bug report
- instructions.
-
-2020-06-04 Steve Baird <baird@adacore.com>
-
- * libgnat/s-imgrea.ads: Declare a named number
- Max_Real_Image_Length with value 5200. Provide a comment
- explaining why this value was chosen.
- * libgnat/s-imgrea.adb (Set_Image_Real): Increase the upper
- bound of the local String variable Digs to
- Max_Real_Image_Length.
- * libgnat/a-tiflau.adb (Put): Increase the upper bound of the
- local String variable Buf to Max_Real_Image_Length.
- (Puts): Increase the upper bound of the local String variable
- Buf to Max_Real_Image_Length.
-
-2020-06-04 Arnaud Charlet <charlet@adacore.com>
-
- * libgnarl/a-dynpri.adb, libgnarl/a-taside.adb,
- libgnarl/a-taster.adb, libgnarl/s-interr.adb,
- libgnarl/s-interr__sigaction.adb, libgnarl/s-taasde.adb,
- libgnarl/s-taenca.adb, libgnarl/s-taenca.ads,
- libgnarl/s-taprop.ads, libgnarl/s-taprop__hpux-dce.adb,
- libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb,
- libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__qnx.adb,
- libgnarl/s-taprop__solaris.adb, libgnarl/s-taprop__vxworks.adb,
- libgnarl/s-tarest.adb, libgnarl/s-tasini.adb,
- libgnarl/s-tasque.adb, libgnarl/s-tasque.ads,
- libgnarl/s-tasren.adb, libgnarl/s-tasren.ads,
- libgnarl/s-tassta.adb, libgnarl/s-tasuti.adb,
- libgnarl/s-tasuti.ads, libgnarl/s-tpoben.adb,
- libgnarl/s-tpobop.adb, libgnarl/s-tpopmo.adb,
- libgnarl/s-tposen.adb, libgnat/s-parame.ads,
- libgnat/s-parame__ae653.ads, libgnat/s-parame__hpux.ads,
- libgnat/s-parame__vxworks.ads: Remove references to Single_Lock
- and Global_Lock.
-
-2020-06-04 Arnaud Charlet <charlet@adacore.com>
-
- * libgnat/s-atopar.adb, libgnat/s-atopex.adb: Use Object_Size
- instead of Size, otherwise many derived types will be rejected
- (e.g. a type with a 14 bits 'Size and a 16 bits 'Object_Size).
-
-2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
-
- * sem_ch12.adb (Copy_Generic_Node): Add special handling for a
- conversion between access types.
-
-2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
-
- * sem_ch12.adb (Check_Generic_Actuals): Also restore the proper
- views of the actuals of the parent instances if the formals are
- used as actuals of the children.
- (Instantiate_Type): Add comment.
-
-2020-06-04 Gary Dismukes <dismukes@adacore.com>
-
- * sem_ch12.adb: Minor editorial fixes.
-
-2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
-
- * sem_ch12.adb (Denotes_Previous_Actual): Delete.
- (Check_Generic_Actuals): Do not special case array types whose
- component type denotes a previous actual. Do not special case
- access types whose base type is private.
- (Check_Private_View): Remove code dealing with secondary types.
- Do not switch the views of an array because of its component.
- (Copy_Generic_Node): Add special handling for a comparison
- operator on array types.
- (Instantiate_Type): Do not special case access types whose
- designated type is private.
- (Set_Global_Type): Do not special case array types whose
- component type is private.
-
-2020-06-03 Justin Squirek <squirek@adacore.com>
-
- * sem_ch10.adb (Process_Body_Clauses): Add loop to interate
- through all prefixes in a use_type clause so that all packages
- in the expanded name get examined for effectiveness.
-
-2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
-
- * sem_ch12.adb (Check_Private_View): Clean up implementation of
- second main case, when the generic sees the private declaration.
-
-2020-06-03 Arnaud Charlet <charlet@adacore.com>
-
- * libgnat/a-nbnbin.ads: Minor reformatting.
- * libgnat/a-nbnbre.ads, libgnat/a-nbnbre.adb (Is_Valid): Add
- convention Intrinsic. Add detection of uninitialized big reals.
-
-2020-06-03 Arnaud Charlet <charlet@adacore.com>
-
- * sem_util.ads, sem_util.adb (Side_Effect_Free_Statements,
- Side_Effect_Free_Loop): New functions.
- (Has_Non_Null_Statements): Consider N_Call_Marker as a null
- statement.
- * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Call
- Set_Is_Null_Loop even inside a generic instantiation.
- (Analyze_Loop_Statement): Mark for removal loops with no side
- effects.
-
-2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
-
- * opt.ads (Allow_Integer_Address): Fix typo in comment.
- * stand.ads (Standard_Address): New entity.
- * cstand.adb (Create_Standard): Create it.
- * sem_ch4.adb (Operator_Check): Convert the operands of an
- operation with addresses and integers to Standard_Address
- if pragma Allow_Integer_Address is in effect.
-
-2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
-
- * libgnat/s-atopar.adb (Atomic_Fetch_And_Add): Make use of an
- equivalent static expression.
- (Atomic_Fetch_And_Subtract): Likewise.
- (Is_Lock_Free): Likewise.
- * libgnat/s-atopex.adb (Atomic_Exchange): Likewise.
- (Atomic_Compare_And_Exchange): Likewise.
- (Is_Lock_Free): Likewise.
-
-2020-06-03 Vadim Godunko <godunko@adacore.com>
-
- * libgnat/s-parame.ads, libgnat/s-parame__ae653.ads,
- libgnat/s-parame__hpux.ads: Fix typos.
-
-2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
-
- * exp_util.adb (Remove_Side_Effects): For a type conversion, do
- not remove the side effects of the expression only if it is of
- universal integer type.
-
-2020-06-03 Arnaud Charlet <charlet@adacore.com>
-
- * libgnat/s-aotase.ads, libgnat/s-atoope.ads,
- libgnat/s-atopar.ads, libgnat/s-atopex.ads: Update header.
-
-2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
-
- * exp_ch4.adb (Expand_N_Unchecked_Type_Conversion): Also fold the
- conversion for literals of enumeration types.
-
-2020-06-03 Yannick Moy <moy@adacore.com>
-
- * rtsfind.adb (Load_RTU): Correctly set/reset global variable to
- ignore SPARK_Mode in instances around loading.
- * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Accept Off
- without prior On.
- * sem_ch7.adb (Analyze_Package_Body_Helper): Likewise.
- * sem_prag.adb (Analyze_Pragma): Always take into account
- SPARK_Mode Off.
-
-2020-06-03 Arnaud Charlet <charlet@adacore.com>
-
- * frontend.adb (Frontend): Call (dummy for now) tree checker.
- * debug.adb: Reserve -gnatd_V for the tree checker.
- * vast.ads, vast.adb: New files.
- * gcc-interface/Make-lang.in: Add vast.o.
-
-2020-06-03 Justin Squirek <squirek@adacore.com>
-
- * libgnat/a-cborse.adb, libgnat/a-cihase.adb,
- libgnat/a-ciorse.adb, libgnat/a-coorse.adb: Modified to use
- 'Unrestricted_Access in certain cases where static accessibility
- errors were triggered.
- * exp_ch6.adb (Expand_Simple_Return_Statement): Add generation
- of dynamic accessibility checks as determined by
- Is_Special_Aliased_Formal_Access.
- * sem_attr.adb (Resolve_Attribute): Add call to
- Is_Special_Aliased_Formal_Access to avoid performing static
- checks where dynamic ones are required.
- * sem_ch6.adb (Check_Return_Obj_Accessibility): Handle renamed
- objects within component associations requiring special
- accessibility checks.
- * sem_util.adb, sem_util.ads (Is_Special_Aliased_Formal_Access):
- Created to detect the special case where an aliased formal is
- being compared against the level of an anonymous access return
- object.
- (Object_Access_Level): Remove incorrect condition leading to
- overly permissive accessibility levels being returned on
- explicitly aliased parameters.
-
-2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
-
- * einfo.ads (Enum_Pos_To_Rep): Adjust description.
- * exp_attr.adb (Expand_N_Attribute_Reference) <Pred>:
- Reimplement in the case of an enumeration type with non-standard
- but contiguous representation.
- <Succ>: Likewise.
- <Val>: Likewise.
- * exp_ch3.adb (Expand_Freeze_Enumeration_Type): Count the
- literals in the first loop. If the representation is
- contiguous, just build the index type of the array type and set
- Enum_Pos_To_Rep to it.
-
-2020-06-03 Gary Dismukes <dismukes@adacore.com>
-
- * exp_attr.adb (Expand_Loop_Entry_Attribute): Revise loop that
- resets the scopes of entities associated with Loop_Id to the
- scope of the new function, so the resetting is not restricted to
- itypes, but excludes loop parameters and the function entity
- itself. However, this fix is believed to be incomplete and a ???
- comment is added to indicate that.
-
-2020-06-03 Bob Duff <duff@adacore.com>
-
- * libgnat/s-regexp.ads: Fix comment
-
-2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
-
- * exp_attr.adb (Expand_N_Attribute_Reference) <Enum_Rep>:
- In the case of an enumeration type, do an intermediate
- conversion to a small integer type. Remove useless stuff.
- <Finalization_Size>: Do not hardcode Universal_Integer and
- fix a type mismatch in the assignment to the variable.
- <Max_Size_In_Storage_Elements>: Likewise.
- <From_Any>: Do not redefine the Ptyp local variable.
- <To_Any>: Likewise.
- <TypeCode>: Likewise.
- <Pos>: Small tweaks.
- <Val>: For an enumeration type with standard representation,
- apply the range check to the expression of a convertion to
- Universal_Integer, if any. For an integer type, expand to
- a mere conversion.
-
-2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
-
- * libgnat/s-rannum.adb (Random_Discrete): In the 32-bit case,
- use the same linear implementation as in the 64-bit case when
- the type has a contiguous representation.
-
-2020-06-03 Gary Dismukes <dismukes@adacore.com>
-
- * sem_util.adb (Build_Class_Wide_Clone_Decl): Call
- Set_Debug_Info_Needed to set the Needs_Debug_Info flag on
- Clone_Id if the flag is set on Spec_Id.
-
-2020-06-03 Yannick Moy <moy@adacore.com>
-
- * inline.adb (Expand_Inlined_Call): Do not suppress checks on
- inlined code in GNATprove mode.
-
-2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
-
- * einfo.ads (Has_Contiguous_Rep): Fix typo in comment.
-
-2020-06-03 Piotr Trojanek <trojanek@adacore.com>
-
- * checks.adb, einfo.adb, exp_aggr.adb, exp_ch4.adb, exp_ch6.adb,
- exp_unst.adb, exp_util.adb, freeze.adb, inline.adb, repinfo.adb,
- sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_ch13.adb,
- sem_ch3.adb, sem_ch4.adb, sem_ch8.adb, sem_elab.adb,
- sem_eval.adb, sem_prag.adb, sem_res.adb, sem_smem.adb,
- sem_util.adb, treepr.adb: Replace uses of Next_ functions with
- corresponding procedures.
-
-2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
-
- * exp_attr.adb (Attribute_Valid): Use Standard_Long_Long_Integer
- in lieu of Universal_Integer as large integer type.
- * exp_ch3.adb (Expand_Freeze_Enumeration_Type): Likewise.
-
-2020-06-03 Arnaud Charlet <charlet@adacore.com>
-
- * libgnat/s-auxdec.ads (Address_Int): New.
-
-2020-06-03 Arnaud Charlet <charlet@adacore.com>
-
- * aspects.adb, aspects.ads, atree.adb, atree.ads, elists.adb,
- elists.ads, fname.adb, fname.ads, gnat1drv.adb, lib.adb,
- lib.ads, namet.adb, namet.ads, nlists.adb, nlists.ads, opt.adb,
- opt.ads, osint-c.adb, osint-c.ads, repinfo.adb, repinfo.ads,
- sem_aux.adb, sem_aux.ads, sinput.adb, sinput.ads, stand.ads,
- stringt.adb, stringt.ads, switch-c.adb, table.adb, table.ads,
- uintp.adb, uintp.ads, urealp.adb, urealp.ads (Tree_Read,
- Tree_Write): Remove generation of ASIS trees.
- * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
- Remove -gnatt and -gnatct documentation.
- * gnat_ugn.texi: Regenerate.
- * tree_in.ads, tree_in.adb, tree_io.ads, tree_io.adb,
- tree_gen.ads, tree_gen.adb, stand.adb: Remove.
- * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Remove
- references to tree_gen.o tree_in.o tree_io.o.
+2021-05-04 Yannick Moy <moy@adacore.com>
-2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
+ * erroutc.adb (Matches): Move spec...
+ * erroutc.ads (Matches): ...here.
- * opt.ads (Disable_FE_Inline): Move around.
- (Disable_FE_Inline_Always): Likewise.
+2021-05-04 Yannick Moy <moy@adacore.com>
-2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
+ * gnat1drv.adb (Adjust_Global_Switches): Force error marker in
+ GNATprove mode.
- * checks.adb (Is_Single_Attribute_Reference): New predicate.
- (Generate_Range_Check): Do not force the evaluation if the
- node is a single attribute reference.
- * exp_util.adb (Side_Effect_Free_Attribute): New predicate.
- (Side_Effect_Free) <N_Attribute_Reference>: Call it.
- (Remove_Side_Effects): Remove the side effects of the prefix
- for an attribute reference whose prefix is not a name.
+2021-05-04 Bob Duff <duff@adacore.com>
+
+ * binde.adb: No need for ??? marks in Binde, because it is
+ superseded by Bindo.
+ * bindo-writers.adb (Write_Unit_Closure): Verified that -Ra
+ works.
+ * exp_ch4.adb, sinfo.ads (Expand_N_Type_Conversion): Rules for
+ conversions passed to gigi are documented in sinfo.ads.
+ (Expand_N_Unchecked_Type_Conversion): Comment is a duplicate of
+ one in sinfo.ads.
+ (Expand_N_In): Robert already added sufficient comments years
+ after the ??? comment was inserted.
+ (Expand_Membership_Minimize_Eliminate_Overflow): I don't see any
+ reason why Stand should export Long_Long_Integer'Base -- it
+ doesn't export any other base types.
+ (Size_In_Storage_Elements): We are doing an allocator, so we
+ don't care about sizes in bits.
+ (Expand_N_Allocator): PolyORB isn't going to be significantly
+ improved, so we're not going to mess with remote access to
+ class-wide types.
+ (Optimize_Return_Stmt): It's not important to optimize return
+ statements in predicate functions -- there are many
+ more-important optimizations we could do. Keep part of the
+ comment without "???", to clarify why the "and then ...".
+ (User_Defined_Primitive_Equality_Op): The optimization doesn't
+ seem important enough.
+ (Expand_N_Unchecked_Type_Conversion): Refactor to use
+ Expand_N_Unchecked_Expression.
+ (Make_Array_Comparison_Op): This seems like a case of "it it's
+ not broken, don't fix it". Too much risk of causing bugs.
+ * debug_a.adb: Remove ??? comments asking why Current_Error_Node
+ is maintained unconditionally, and add a comment explaining why.
+ * errout.adb: These kinds of minor bugs do indeed exist, but
+ we're never going to get around to fixing them "properly", so we
+ need this code for robustness.
+ * gnatchop.adb (Read_File): Document when read can fail.
+ * gnatdll.adb (Parse_Command_Line): Nobody is complaining about
+ these arbitrary limits, so no need to use Table. Increase the
+ limits just in case. It is clear from the names what they are
+ limits on.
+ * gnatlink.adb: Add needed comments.
+ (Delete): An existing comment makes clear it's intentional, and
+ it's been like that since 1996.
+ (Process_Args): Improve comments.
+ (Search_Library_Path): Refactoring to avoid deep nesting.
+ * inline.adb (Build_Body_To_Inline): Probably won't get around
+ to doing that optimization.
+ (Is_Unit_Subprogram): No, this should not be moved to Sem_Aux,
+ because it is too specialized to this context.
+ (Do_Reset): No comment is needed here; it's clear from the
+ comment on Reset_Dispatching_Calls. Do_Reset is an artificial
+ subprogram; if we had proper iterators, it would just be an if
+ statement in the loop.
+ (Rewrite_Function_Call): Probably won't get around to doing that
+ optimization.
+ * layout.adb (Layout_Type): The gigi comment doesn't need to be
+ a ??? comment, and it's been that way since 2000. The
+ limitation to scalars will likely never be investigated, and
+ it's been that way since 2009.
+ * lib.adb (Check_Same_Extended_Unit): This doesn't look like
+ something that needs fixing; it looks like a permanent
+ workaround.
+ * lib-load.adb (Change_Main_Unit_To_Spec): It is good enough in
+ practice.
+ (Load_Unit): Nobody will ever get around to investigating the
+ obscure PMES oddity, and the optimization is not worth the
+ trouble.
+ * live.adb: It's not worth documenting this. It is used only
+ with a debug switch. Nobody who has done significant work on it
+ is still around, so it would require substantial investigation.
+ * mdll.ads: I see no reason for USE.
+ * namet.ads: Routines are obsolete, but they're not going
+ anywhere anytime soon (too much work, and surprisingly delicate
+ because of dependences on global variables).
+ * osint.ads: Minor.
+ * osint.adb: Improve comments.
+ (Full_Lib_File_Name): Use Smart_Find_File.
+
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * exp_prag.adb, sem_prag.adb: Replace low-level Ekind membership
+ tests with a high-level call to Is_Formal_Object.
+
+2021-05-04 Arnaud Charlet <charlet@adacore.com>
+
+ * cstand.adb, sprint.adb, switch-c.adb, xr_tabls.ads,
+ xr_tabls.adb, xref_lib.adb: Address ??? comments.
+
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_prag.adb (Analyze_Global_Item): Take subprogram kind into
+ account when accepting or rejecting a constant of an
+ access-to-variable type as a global Output/In_Out; do this check
+ inside an ELSIF branch to avoid unnecessary evaluation of the
+ subsequent condition.
+
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_prag.adb (Role_Error, Usage_Error): Replace calls to
+ Name_Find and Get_Name_String with a call to To_String.
+
+2021-05-04 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_aggr.adb (Build_Siz_Exp): new function, subsidiary of
+ Expand_Container_Aggregate, to create an expression to be used
+ in the dynamic allocation of a container with a single container
+ element association.
+ (Add_Range): Handle static bounds of ranges over enumerations.
+ (Expand_Container_Aggregate): Add declaration for size
+ expression when needed, and use it in container object
+ declaration for container.
+
+2021-05-04 Arnaud Charlet <charlet@adacore.com>
+
+ * exp_ch7.adb (Build_Finalizer_Helper.New_Finalizer_Name):
+ Unnest so that it can be reused.
+ (Build_Finalizer_Helper.Process_Declarations): Call the
+ xxx__finalize_body procedure of a package instantiation in case
+ it contains finalization statements. Code clean ups.
+ (Build_Finalizer_Helper.Create_Finalizer): Export and set an
+ Interface_Name for library level finalizers since these may be
+ imported now.
+ (Build_Finalizer_Helper): Need to process library level package
+ body instantiations which may contain objects requiring
+ finalization.
+ * libgnat/s-finmas.ads: Fix typo.
+
+2021-05-04 Arnaud Charlet <charlet@adacore.com>
+
+ * checks.adb (Append_Range_Checks, Apply_Selected_Length_Checks,
+ Determine_Range, Insert_Range_Checks,
+ Install_Null_Excluding_Check, Selected_Length_Checks,
+ Selected_Range_Checks): Address ??? comments and code cleanups.
+
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context):
+ Apply the rule even with no explicit Global contract (and remove
+ a dead condition for Refined_Global).
+
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context):
+ Extend check to protected entries.
+
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context):
+ Fix reference to SPARK RM rule number.
+
+2021-05-04 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_intr.adb: Remove with/use clauses for Urealp.
+ (Expand_Is_Negative): Delete.
+ (Expand_Intrinsic_Call): Do not call it.
+ * rtsfind.ads (RE_Id): Remove RE_Float_Unsigned.
+ (RE_Unit_Table): Remove entry for RE_Float_Unsigned.
+ * snames.ads-tmpl (Name_Is_Negative): Delete.
+ * libgnat/s-imgrea.ads (Set_Image_Real): Fix mode of S parameter.
+ * libgnat/s-imgrea.adb: Add with/use clauses for System.Img_Util.
+ (LLU): New subtype.
+ (Maxdigs): Use it.
+ (Is_Negative): Reimplement.
+ (Image_Floating_Point): Simplify.
+ (Set_Image_Real): Fix mode of S parameter. Remove the low-level
+ processing on characters. Flip the sign of the Scale variable.
+ Compute the maximum number of digits for the straight notation.
+ Call Set_Decimal_Digits at the end to do the final formatting.
+ * libgnat/s-imguti.ads (Floating_Invalid_Value): New type.
+ (Set_Floating_Invalid_Value): New procedure.
+ * libgnat/s-imguti.adb (Set_Floating_Invalid_Value): Implement it
+ based on existing code from Set_Image_Real.
+ * libgnat/s-unstyp.ads (Float_Unsigned): Delete.
+
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * csets.adb (Initialize): Refactor into CASE statement; raise
+ exception on unsupported code of character set (it will be
+ gently rejected earlier when scanning command line switches).
+ * switch-b.adb (Scan_Binder_Switches): Refactor into a
+ membership expression; add missing '9' choice; reorder as
+ described by GNAT UG, section 4.3.11.
+ * switch-c.adb (Scan_Front_End_Switches): Refactor into a
+ membership expression and reorder as above.
+ * doc/gnat_ugn/building_executable_programs_with_gnat.rst
+ (gnatic): Mention '5' as an allowed value for "c".
+ * gnat_ugn.texi: Regenerate.
-2020-06-03 Arnaud Charlet <charlet@adacore.com>
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
- * switch-c.adb (Scan_Front_End_Switches): Remove processing of
- -gnatt.
- * usage.adb (Usage): Remove mention of -gnatt.
+ * errout.adb (Error_Msg_Internal): Add assertion to prevent
+ style mistakes reappearing in the future.
-2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
+2021-05-04 Javier Miranda <miranda@adacore.com>
- * sinfo.ads: Minor tweaks in commentary.
+ * exp_ch4.adb (Tagged_Membership): Remove wrong condition that
+ is not consistent with the documentation of this subprogram.
-2020-06-02 Alexandre Oliva <oliva@adacore.com>
+2021-05-04 Yannick Moy <moy@adacore.com>
- * lib.ads (Compilation_Switches): Remove -auxbase from
- comments.
- * switch.ads (Is_Internal_GCC_Switch): Likewise.
+ * sem_res.adb (Valid_Conversion): Make message a continuation.
+
+2021-05-04 Arnaud Charlet <charlet@adacore.com>
+
+ * styleg.adb: Address ??? comments.
-2020-06-02 Arnaud Charlet <charlet@adacore.com>
+2021-05-03 Arnaud Charlet <charlet@adacore.com>
- * atree.ads, checks.adb, contracts.adb, debug.adb, einfo.ads,
- exp_ch3.adb, exp_util.adb, expander.ads, expander.adb,
- frontend.adb, gnat1drv.adb, itypes.adb, lib.ads, namet.ads,
- opt.adb, opt.ads, par-prag.adb, repinfo.ads, sem_aggr.adb,
- sem_aux.ads, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
- sem_ch13.adb, sem_ch3.adb, sem_ch4.adb, sem_ch6.adb,
- sem_dim.adb, sem_elab.adb, sem_prag.adb, sem_prag.ads,
- sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, stand.ads,
- tree_io.ads: Remove references to ASIS_Mode.
+ * libgnat/a-stunau.ads, libgnat/a-stunau.adb,
+ libgnat/a-stunau__shared.adb (Set_String): Remove old version,
+ replace by a new version taking a callback to set the string.
-2020-06-02 Javier Miranda <miranda@adacore.com>
+2021-05-03 Arnaud Charlet <charlet@adacore.com>
- * exp_ch4.adb (Generate_Temporary): New subprogram of
- Discrete_Range_Check that generates a temporary to facilitate
- the C backend the code generation of the unchecked conversion
- since the size of the source type may differ from the size of
- the target type.
+ * libgnat/a-coorma.ads (Map): Add missing
+ Preelaborate_Initialization.
-2020-06-02 Arnaud Charlet <charlet@adacore.com>
+2021-05-03 Piotr Trojanek <trojanek@adacore.com>
- * ada_get_targ.adb: Bump copyright year.
+ * exp_ch4.adb (Analyze_Number_Declaration, Expand_N_Op_Expon):
+ Simplify with Is_Universal_Numeric_Type.
+ * sem_attr.adb (Resolve_Attribute): Likewise.
+ * sem_ch3.adb: Likewise.
+ * sem_ch4.adb (Check_Common_Type, Check_Arithmetic_Pair):
+ Likewise.
+ * sem_eval.adb (Eval_Unary_Op, Test_In_Range): Likewise.
+ * sem_res.adb (Resolve_Arithmetic_Op, Resolve_Membership_Op,
+ Resolve_Op_Expon, Resolve_Unary_Op, Set_Mixed_Mode_Operand,
+ Set_Operand_Type): Likewise.
+ * sem_type.adb (Disambiguate, Find_Unique_Type): Likewise.
+ * sem_util.adb (Universal_Interpretation): Likewise.
+
+2021-05-03 Piotr Trojanek <trojanek@adacore.com>
+
+ * exp_aggr.adb (Max_Aggregate_Size): Add header boxes for nested
+ routines; move a local constant after nested subprogram bodies;
+ refill comment.
+
+2021-05-03 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_attr.adb (Analyze_Attribute): Reuse Resolve with implicit
+ type when analysing attribute Priority.
+ * sem_ch5.adb (Analyze_Case_Statement): Likewise for a rare case
+ in analysis of case statements.
+ (Analyze_Iterator_Specification): Likewise for non-overloaded
+ domain of iteration.
+
+2021-05-03 Piotr Trojanek <trojanek@adacore.com>
+
+ * einfo.adb (Write_Entity_Info): Simplify an Ekind membership
+ test.
+ * exp_aggr.adb (Is_CCG_Supported_Aggregate): Likewise.
+
+2021-05-03 Piotr Trojanek <trojanek@adacore.com>
+
+ * exp_ch7.adb (Build_Finalize_Statements): Refine type of a
+ local counter variable.
+ * exp_dist.adb (Append_Record_Traversal): Refine type of Counter
+ parameter.
+ (Add_Process_Element): Likewise.
+ (Build_From_Any_Call): Refine type of a local counter variable.
+ (Build_From_Any_Function): Likewise.
+ (Build_To_Any_Function): Likewise.
+ (FA_Rec_Add_Process_Element): Likewise.
+ (TA_Append_Record_Traversal): Likewise.
+ (TA_Rec_Add_Process_Element): Likewise.
+
+2021-05-03 Piotr Trojanek <trojanek@adacore.com>
+
+ * rtsfind.adb (SPARK_Implicit_Load): Simplify with Discard_Node.
+
+2021-05-03 Arnaud Charlet <charlet@adacore.com>
+
+ * Makefile.rtl: Update copyright notice.
+ * ada_get_targ.adb: Likewise.
* adabkend.adb: Likewise.
* adabkend.ads: Likewise.
* adadecode.c: Likewise.
* exp_pakd.ads: Likewise.
* exp_prag.adb: Likewise.
* exp_prag.ads: Likewise.
+ * exp_put_image.adb: Likewise.
+ * exp_put_image.ads: Likewise.
* exp_sel.adb: Likewise.
* exp_sel.ads: Likewise.
* exp_smem.adb: Likewise.
* freeze.ads: Likewise.
* frontend.adb: Likewise.
* frontend.ads: Likewise.
+ * gcc-interface/ada-tree.h: Likewise.
+ * gcc-interface/ada.h: Likewise.
+ * gcc-interface/cuintp.c: Likewise.
+ * gcc-interface/decl.c: Likewise.
+ * gcc-interface/gadaint.h: Likewise.
+ * gcc-interface/gigi.h: Likewise.
+ * gcc-interface/lang-specs.h: Likewise.
+ * gcc-interface/misc.c: Likewise.
+ * gcc-interface/system.ads: Likewise.
+ * gcc-interface/targtyps.c: Likewise.
+ * gcc-interface/trans.c: Likewise.
+ * gcc-interface/utils.c: Likewise.
+ * gcc-interface/utils2.c: Likewise.
* get_scos.adb: Likewise.
* get_scos.ads: Likewise.
* get_targ.adb: Likewise.
* ghost.ads: Likewise.
* gnat1drv.adb: Likewise.
* gnat1drv.ads: Likewise.
+ * gnat_cuda.adb: Likewise.
+ * gnat_cuda.ads: Likewise.
* gnatbind.adb: Likewise.
* gnatbind.ads: Likewise.
* gnatchop.adb: Likewise.
* gnatprep.adb: Likewise.
* gnatprep.ads: Likewise.
* gnatvsn.adb: Likewise.
+ * gnatvsn.ads: Likewise.
* gnatxref.adb: Likewise.
* gprep.adb: Likewise.
* gprep.ads: Likewise.
* libgnarl/a-tasatt.ads: Likewise.
* libgnarl/a-taside.adb: Likewise.
* libgnarl/a-taside.ads: Likewise.
+ * libgnarl/a-tasini.adb: Likewise.
+ * libgnarl/a-tasini.ads: Likewise.
* libgnarl/a-taster.adb: Likewise.
* libgnarl/g-boubuf.adb: Likewise.
* libgnarl/g-boubuf.ads: Likewise.
* libgnat/a-cwila9.ads: Likewise.
* libgnat/a-decima.adb: Likewise.
* libgnat/a-decima.ads: Likewise.
+ * libgnat/a-decima__128.ads: Likewise.
* libgnat/a-dhfina.adb: Likewise.
* libgnat/a-dhfina.ads: Likewise.
* libgnat/a-diocst.adb: Likewise.
* libgnat/a-excach.adb: Likewise.
* libgnat/a-except.adb: Likewise.
* libgnat/a-except.ads: Likewise.
- * libgnat/a-excpol.adb: Likewise.
- * libgnat/a-excpol__abort.adb: Likewise.
* libgnat/a-exctra.adb: Likewise.
* libgnat/a-exctra.ads: Likewise.
* libgnat/a-exexda.adb: Likewise.
* libgnat/a-finali.ads: Likewise.
* libgnat/a-locale.adb: Likewise.
* libgnat/a-locale.ads: Likewise.
+ * libgnat/a-nagefl.ads: Likewise.
+ * libgnat/a-naliop.ads: Likewise.
+ * libgnat/a-naliop__nolibm.ads: Likewise.
+ * libgnat/a-nallfl.ads: Likewise.
+ * libgnat/a-nallfl__wraplf.ads: Likewise.
+ * libgnat/a-nalofl.ads: Likewise.
+ * libgnat/a-nashfl.ads: Likewise.
+ * libgnat/a-nashfl__wraplf.ads: Likewise.
* libgnat/a-nbnbin.adb: Likewise.
* libgnat/a-nbnbin__gmp.adb: Likewise.
* libgnat/a-nbnbre.adb: Likewise.
* libgnat/a-ngelfu.ads: Likewise.
* libgnat/a-ngrear.adb: Likewise.
* libgnat/a-ngrear.ads: Likewise.
+ * libgnat/a-nuauco.ads: Likewise.
+ * libgnat/a-nuauco__x86.ads: Likewise.
+ * libgnat/a-nuaufl.ads: Likewise.
+ * libgnat/a-nuaufl__wraplf.ads: Likewise.
* libgnat/a-nudira.adb: Likewise.
* libgnat/a-nudira.ads: Likewise.
* libgnat/a-nuflra.adb: Likewise.
* libgnat/a-nuflra.ads: Likewise.
* libgnat/a-numaux.ads: Likewise.
- * libgnat/a-numaux__darwin.adb: Likewise.
- * libgnat/a-numaux__darwin.ads: Likewise.
- * libgnat/a-numaux__libc-x86.ads: Likewise.
- * libgnat/a-numaux__vxworks.ads: Likewise.
- * libgnat/a-numaux__x86.adb: Likewise.
- * libgnat/a-numaux__x86.ads: Likewise.
* libgnat/a-rbtgbk.adb: Likewise.
* libgnat/a-rbtgbk.ads: Likewise.
* libgnat/a-rbtgbo.adb: Likewise.
* libgnat/a-ssicst.ads: Likewise.
* libgnat/a-stboha.adb: Likewise.
* libgnat/a-stmaco.ads: Likewise.
+ * libgnat/a-stobbu.adb: Likewise.
+ * libgnat/a-stobbu.ads: Likewise.
+ * libgnat/a-stobfi.adb: Likewise.
+ * libgnat/a-stobfi.ads: Likewise.
* libgnat/a-storio.adb: Likewise.
+ * libgnat/a-stoubu.adb: Likewise.
+ * libgnat/a-stoubu.ads: Likewise.
+ * libgnat/a-stoufi.adb: Likewise.
+ * libgnat/a-stoufi.ads: Likewise.
+ * libgnat/a-stoufo.adb: Likewise.
+ * libgnat/a-stoufo.ads: Likewise.
+ * libgnat/a-stouut.adb: Likewise.
+ * libgnat/a-stouut.ads: Likewise.
* libgnat/a-strbou.adb: Likewise.
* libgnat/a-strbou.ads: Likewise.
* libgnat/a-stream.adb: Likewise.
* libgnat/a-strmap.ads: Likewise.
* libgnat/a-strsea.adb: Likewise.
* libgnat/a-strsea.ads: Likewise.
+ * libgnat/a-strsto.ads: Likewise.
* libgnat/a-strsup.adb: Likewise.
* libgnat/a-strsup.ads: Likewise.
* libgnat/a-strunb.adb: Likewise.
* libgnat/a-strunb.ads: Likewise.
* libgnat/a-strunb__shared.adb: Likewise.
* libgnat/a-strunb__shared.ads: Likewise.
+ * libgnat/a-ststbo.adb: Likewise.
+ * libgnat/a-ststbo.ads: Likewise.
* libgnat/a-ststio.adb: Likewise.
* libgnat/a-ststio.ads: Likewise.
+ * libgnat/a-ststun.adb: Likewise.
+ * libgnat/a-ststun.ads: Likewise.
+ * libgnat/a-stteou.ads: Likewise.
* libgnat/a-stunau.adb: Likewise.
* libgnat/a-stunau.ads: Likewise.
* libgnat/a-stunau__shared.adb: Likewise.
* libgnat/a-tideau.ads: Likewise.
* libgnat/a-tideio.adb: Likewise.
* libgnat/a-tideio.ads: Likewise.
+ * libgnat/a-tideio__128.adb: Likewise.
* libgnat/a-tienau.adb: Likewise.
* libgnat/a-tienau.ads: Likewise.
* libgnat/a-tienio.adb: Likewise.
+ * libgnat/a-tifiau.adb: Likewise.
+ * libgnat/a-tifiau.ads: Likewise.
* libgnat/a-tifiio.adb: Likewise.
+ * libgnat/a-tifiio__128.adb: Likewise.
* libgnat/a-tiflau.adb: Likewise.
* libgnat/a-tiflau.ads: Likewise.
* libgnat/a-tiflio.adb: Likewise.
* libgnat/a-tiinau.ads: Likewise.
* libgnat/a-tiinio.adb: Likewise.
* libgnat/a-tiinio.ads: Likewise.
- * libgnat/a-timoau.adb: Likewise.
- * libgnat/a-timoau.ads: Likewise.
+ * libgnat/a-tiinio__128.adb: Likewise.
* libgnat/a-timoio.adb: Likewise.
* libgnat/a-timoio.ads: Likewise.
+ * libgnat/a-timoio__128.adb: Likewise.
* libgnat/a-tiocst.adb: Likewise.
* libgnat/a-tiocst.ads: Likewise.
* libgnat/a-tirsfi.adb: Likewise.
* libgnat/a-wtdeau.adb: Likewise.
* libgnat/a-wtdeau.ads: Likewise.
* libgnat/a-wtdeio.adb: Likewise.
+ * libgnat/a-wtdeio__128.adb: Likewise.
* libgnat/a-wtedit.adb: Likewise.
* libgnat/a-wtedit.ads: Likewise.
* libgnat/a-wtenau.adb: Likewise.
* libgnat/a-wtenau.ads: Likewise.
* libgnat/a-wtenio.adb: Likewise.
+ * libgnat/a-wtfiau.adb: Likewise.
+ * libgnat/a-wtfiau.ads: Likewise.
* libgnat/a-wtfiio.adb: Likewise.
+ * libgnat/a-wtfiio__128.adb: Likewise.
* libgnat/a-wtflau.adb: Likewise.
* libgnat/a-wtflau.ads: Likewise.
* libgnat/a-wtflio.adb: Likewise.
* libgnat/a-wtinau.adb: Likewise.
* libgnat/a-wtinau.ads: Likewise.
* libgnat/a-wtinio.adb: Likewise.
- * libgnat/a-wtmoau.adb: Likewise.
- * libgnat/a-wtmoau.ads: Likewise.
+ * libgnat/a-wtinio__128.adb: Likewise.
* libgnat/a-wtmoio.adb: Likewise.
* libgnat/a-wtmoio.ads: Likewise.
+ * libgnat/a-wtmoio__128.adb: Likewise.
* libgnat/a-wttest.adb: Likewise.
* libgnat/a-wwboio.adb: Likewise.
* libgnat/a-zchhan.adb: Likewise.
* libgnat/a-ztdeau.adb: Likewise.
* libgnat/a-ztdeau.ads: Likewise.
* libgnat/a-ztdeio.adb: Likewise.
+ * libgnat/a-ztdeio__128.adb: Likewise.
* libgnat/a-ztedit.adb: Likewise.
* libgnat/a-ztedit.ads: Likewise.
* libgnat/a-ztenau.adb: Likewise.
* libgnat/a-ztenio.adb: Likewise.
* libgnat/a-ztexio.adb: Likewise.
* libgnat/a-ztexio.ads: Likewise.
+ * libgnat/a-ztfiau.adb: Likewise.
+ * libgnat/a-ztfiau.ads: Likewise.
* libgnat/a-ztfiio.adb: Likewise.
+ * libgnat/a-ztfiio__128.adb: Likewise.
* libgnat/a-ztflau.adb: Likewise.
* libgnat/a-ztflau.ads: Likewise.
* libgnat/a-ztflio.adb: Likewise.
* libgnat/a-ztinau.adb: Likewise.
* libgnat/a-ztinau.ads: Likewise.
* libgnat/a-ztinio.adb: Likewise.
- * libgnat/a-ztmoau.adb: Likewise.
- * libgnat/a-ztmoau.ads: Likewise.
+ * libgnat/a-ztinio__128.adb: Likewise.
* libgnat/a-ztmoio.adb: Likewise.
+ * libgnat/a-ztmoio__128.adb: Likewise.
* libgnat/a-zttest.adb: Likewise.
* libgnat/a-zzboio.adb: Likewise.
* libgnat/g-allein.ads: Likewise.
* libgnat/g-socket.ads: Likewise.
* libgnat/g-socket__dummy.adb: Likewise.
* libgnat/g-socket__dummy.ads: Likewise.
+ * libgnat/g-socpol.adb: Likewise.
+ * libgnat/g-socpol.ads: Likewise.
+ * libgnat/g-socpol__dummy.adb: Likewise.
+ * libgnat/g-socpol__dummy.ads: Likewise.
* libgnat/g-socthi.adb: Likewise.
* libgnat/g-socthi.ads: Likewise.
* libgnat/g-socthi__dummy.adb: Likewise.
* libgnat/g-soliop__mingw.ads: Likewise.
* libgnat/g-soliop__qnx.ads: Likewise.
* libgnat/g-soliop__solaris.ads: Likewise.
+ * libgnat/g-sopowa.adb: Likewise.
+ * libgnat/g-sopowa__mingw.adb: Likewise.
+ * libgnat/g-sopowa__posix.adb: Likewise.
* libgnat/g-sothco.adb: Likewise.
* libgnat/g-sothco.ads: Likewise.
* libgnat/g-sothco__dummy.adb: Likewise.
* libgnat/g-spipat.ads: Likewise.
* libgnat/g-spitbo.adb: Likewise.
* libgnat/g-spitbo.ads: Likewise.
+ * libgnat/g-spogwa.adb: Likewise.
+ * libgnat/g-spogwa.ads: Likewise.
* libgnat/g-sptabo.ads: Likewise.
* libgnat/g-sptain.ads: Likewise.
* libgnat/g-sptavs.ads: Likewise.
* libgnat/gnat.ads: Likewise.
* libgnat/i-c.adb: Likewise.
* libgnat/i-cexten.ads: Likewise.
+ * libgnat/i-cexten__128.ads: Likewise.
* libgnat/i-cobol.adb: Likewise.
* libgnat/i-cobol.ads: Likewise.
* libgnat/i-cpoint.adb: Likewise.
* libgnat/i-vxwork.ads: Likewise.
* libgnat/i-vxwork__x86.ads: Likewise.
* libgnat/interfac.ads: Likewise.
+ * libgnat/interfac__2020.ads: Likewise.
* libgnat/memtrack.adb: Likewise.
* libgnat/s-addima.adb: Likewise.
* libgnat/s-addima.ads: Likewise.
* libgnat/s-addope.adb: Likewise.
* libgnat/s-addope.ads: Likewise.
+ * libgnat/s-aoinar.adb: Likewise.
+ * libgnat/s-aoinar.ads: Likewise.
+ * libgnat/s-aomoar.adb: Likewise.
+ * libgnat/s-aomoar.ads: Likewise.
* libgnat/s-aotase.adb: Likewise.
* libgnat/s-aotase.ads: Likewise.
+ * libgnat/s-aridou.adb: Likewise.
+ * libgnat/s-aridou.ads: Likewise.
+ * libgnat/s-arit128.adb: Likewise.
+ * libgnat/s-arit128.ads: Likewise.
+ * libgnat/s-arit32.adb: Likewise.
+ * libgnat/s-arit32.ads: Likewise.
* libgnat/s-arit64.adb: Likewise.
* libgnat/s-arit64.ads: Likewise.
* libgnat/s-assert.adb: Likewise.
* libgnat/s-atocou__builtin.adb: Likewise.
* libgnat/s-atocou__x86.adb: Likewise.
* libgnat/s-atoope.ads: Likewise.
- * libgnat/s-atopar.adb: Likewise.
- * libgnat/s-atopar.ads: Likewise.
* libgnat/s-atopex.adb: Likewise.
* libgnat/s-atopex.ads: Likewise.
* libgnat/s-atopri.adb: Likewise.
* libgnat/s-carsi8.ads: Likewise.
* libgnat/s-carun8.adb: Likewise.
* libgnat/s-carun8.ads: Likewise.
+ * libgnat/s-casi128.adb: Likewise.
+ * libgnat/s-casi128.ads: Likewise.
* libgnat/s-casi16.adb: Likewise.
* libgnat/s-casi16.ads: Likewise.
* libgnat/s-casi32.adb: Likewise.
* libgnat/s-casi64.ads: Likewise.
* libgnat/s-casuti.adb: Likewise.
* libgnat/s-casuti.ads: Likewise.
+ * libgnat/s-caun128.adb: Likewise.
+ * libgnat/s-caun128.ads: Likewise.
* libgnat/s-caun16.adb: Likewise.
* libgnat/s-caun16.ads: Likewise.
* libgnat/s-caun32.adb: Likewise.
* libgnat/s-exnllf.ads: Likewise.
* libgnat/s-exnlli.adb: Likewise.
* libgnat/s-exnlli.ads: Likewise.
+ * libgnat/s-exnllli.ads: Likewise.
* libgnat/s-expint.adb: Likewise.
* libgnat/s-expint.ads: Likewise.
* libgnat/s-explli.adb: Likewise.
* libgnat/s-explli.ads: Likewise.
+ * libgnat/s-expllli.ads: Likewise.
+ * libgnat/s-explllu.ads: Likewise.
* libgnat/s-expllu.adb: Likewise.
* libgnat/s-expllu.ads: Likewise.
* libgnat/s-expmod.adb: Likewise.
* libgnat/s-expmod.ads: Likewise.
+ * libgnat/s-exponn.adb: Likewise.
+ * libgnat/s-exponn.ads: Likewise.
+ * libgnat/s-expont.adb: Likewise.
+ * libgnat/s-expont.ads: Likewise.
+ * libgnat/s-exponu.adb: Likewise.
+ * libgnat/s-exponu.ads: Likewise.
* libgnat/s-expuns.adb: Likewise.
* libgnat/s-expuns.ads: Likewise.
* libgnat/s-fatflt.ads: Likewise.
* libgnat/s-fatgen.ads: Likewise.
* libgnat/s-fatlfl.ads: Likewise.
* libgnat/s-fatllf.ads: Likewise.
- * libgnat/s-fatsfl.ads: Likewise.
* libgnat/s-ficobl.ads: Likewise.
* libgnat/s-filatt.ads: Likewise.
* libgnat/s-fileio.adb: Likewise.
* libgnat/s-flocon.adb: Likewise.
* libgnat/s-flocon.ads: Likewise.
* libgnat/s-flocon__none.adb: Likewise.
- * libgnat/s-fore.adb: Likewise.
- * libgnat/s-fore.ads: Likewise.
+ * libgnat/s-fode128.ads: Likewise.
+ * libgnat/s-fode32.ads: Likewise.
+ * libgnat/s-fode64.ads: Likewise.
+ * libgnat/s-fofi128.ads: Likewise.
+ * libgnat/s-fofi32.ads: Likewise.
+ * libgnat/s-fofi64.ads: Likewise.
+ * libgnat/s-fore_d.adb: Likewise.
+ * libgnat/s-fore_d.ads: Likewise.
+ * libgnat/s-fore_f.adb: Likewise.
+ * libgnat/s-fore_f.ads: Likewise.
+ * libgnat/s-forrea.adb: Likewise.
+ * libgnat/s-forrea.ads: Likewise.
* libgnat/s-gearop.adb: Likewise.
* libgnat/s-gearop.ads: Likewise.
* libgnat/s-genbig.adb: Likewise.
* libgnat/s-gloloc__mingw.adb: Likewise.
* libgnat/s-htable.adb: Likewise.
* libgnat/s-htable.ads: Likewise.
+ * libgnat/s-imageb.adb: Likewise.
+ * libgnat/s-imageb.ads: Likewise.
+ * libgnat/s-imaged.adb: Likewise.
+ * libgnat/s-imaged.ads: Likewise.
+ * libgnat/s-imagef.adb: Likewise.
+ * libgnat/s-imagef.ads: Likewise.
+ * libgnat/s-imagei.adb: Likewise.
+ * libgnat/s-imagei.ads: Likewise.
+ * libgnat/s-imageu.adb: Likewise.
+ * libgnat/s-imageu.ads: Likewise.
+ * libgnat/s-imagew.adb: Likewise.
+ * libgnat/s-imagew.ads: Likewise.
+ * libgnat/s-imde128.ads: Likewise.
+ * libgnat/s-imde32.ads: Likewise.
+ * libgnat/s-imde64.ads: Likewise.
* libgnat/s-imenne.adb: Likewise.
* libgnat/s-imenne.ads: Likewise.
+ * libgnat/s-imfi128.ads: Likewise.
+ * libgnat/s-imfi32.ads: Likewise.
+ * libgnat/s-imfi64.ads: Likewise.
* libgnat/s-imgbiu.adb: Likewise.
* libgnat/s-imgbiu.ads: Likewise.
* libgnat/s-imgboo.adb: Likewise.
* libgnat/s-imgboo.ads: Likewise.
* libgnat/s-imgcha.adb: Likewise.
* libgnat/s-imgcha.ads: Likewise.
- * libgnat/s-imgdec.adb: Likewise.
- * libgnat/s-imgdec.ads: Likewise.
* libgnat/s-imgenu.adb: Likewise.
* libgnat/s-imgenu.ads: Likewise.
* libgnat/s-imgint.adb: Likewise.
* libgnat/s-imgint.ads: Likewise.
* libgnat/s-imgllb.adb: Likewise.
* libgnat/s-imgllb.ads: Likewise.
- * libgnat/s-imglld.adb: Likewise.
- * libgnat/s-imglld.ads: Likewise.
* libgnat/s-imglli.adb: Likewise.
* libgnat/s-imglli.ads: Likewise.
+ * libgnat/s-imglllb.ads: Likewise.
+ * libgnat/s-imgllli.ads: Likewise.
+ * libgnat/s-imglllu.ads: Likewise.
+ * libgnat/s-imglllw.ads: Likewise.
* libgnat/s-imgllu.adb: Likewise.
* libgnat/s-imgllu.ads: Likewise.
* libgnat/s-imgllw.adb: Likewise.
* libgnat/s-imgrea.ads: Likewise.
* libgnat/s-imguns.adb: Likewise.
* libgnat/s-imguns.ads: Likewise.
+ * libgnat/s-imguti.adb: Likewise.
+ * libgnat/s-imguti.ads: Likewise.
* libgnat/s-imgwch.adb: Likewise.
* libgnat/s-imgwch.ads: Likewise.
* libgnat/s-imgwiu.adb: Likewise.
* libgnat/s-pack09.ads: Likewise.
* libgnat/s-pack10.adb: Likewise.
* libgnat/s-pack10.ads: Likewise.
+ * libgnat/s-pack100.adb: Likewise.
+ * libgnat/s-pack100.ads: Likewise.
+ * libgnat/s-pack101.adb: Likewise.
+ * libgnat/s-pack101.ads: Likewise.
+ * libgnat/s-pack102.adb: Likewise.
+ * libgnat/s-pack102.ads: Likewise.
+ * libgnat/s-pack103.adb: Likewise.
+ * libgnat/s-pack103.ads: Likewise.
+ * libgnat/s-pack104.adb: Likewise.
+ * libgnat/s-pack104.ads: Likewise.
+ * libgnat/s-pack105.adb: Likewise.
+ * libgnat/s-pack105.ads: Likewise.
+ * libgnat/s-pack106.adb: Likewise.
+ * libgnat/s-pack106.ads: Likewise.
+ * libgnat/s-pack107.adb: Likewise.
+ * libgnat/s-pack107.ads: Likewise.
+ * libgnat/s-pack108.adb: Likewise.
+ * libgnat/s-pack108.ads: Likewise.
+ * libgnat/s-pack109.adb: Likewise.
+ * libgnat/s-pack109.ads: Likewise.
* libgnat/s-pack11.adb: Likewise.
* libgnat/s-pack11.ads: Likewise.
+ * libgnat/s-pack110.adb: Likewise.
+ * libgnat/s-pack110.ads: Likewise.
+ * libgnat/s-pack111.adb: Likewise.
+ * libgnat/s-pack111.ads: Likewise.
+ * libgnat/s-pack112.adb: Likewise.
+ * libgnat/s-pack112.ads: Likewise.
+ * libgnat/s-pack113.adb: Likewise.
+ * libgnat/s-pack113.ads: Likewise.
+ * libgnat/s-pack114.adb: Likewise.
+ * libgnat/s-pack114.ads: Likewise.
+ * libgnat/s-pack115.adb: Likewise.
+ * libgnat/s-pack115.ads: Likewise.
+ * libgnat/s-pack116.adb: Likewise.
+ * libgnat/s-pack116.ads: Likewise.
+ * libgnat/s-pack117.adb: Likewise.
+ * libgnat/s-pack117.ads: Likewise.
+ * libgnat/s-pack118.adb: Likewise.
+ * libgnat/s-pack118.ads: Likewise.
+ * libgnat/s-pack119.adb: Likewise.
+ * libgnat/s-pack119.ads: Likewise.
* libgnat/s-pack12.adb: Likewise.
* libgnat/s-pack12.ads: Likewise.
+ * libgnat/s-pack120.adb: Likewise.
+ * libgnat/s-pack120.ads: Likewise.
+ * libgnat/s-pack121.adb: Likewise.
+ * libgnat/s-pack121.ads: Likewise.
+ * libgnat/s-pack122.adb: Likewise.
+ * libgnat/s-pack122.ads: Likewise.
+ * libgnat/s-pack123.adb: Likewise.
+ * libgnat/s-pack123.ads: Likewise.
+ * libgnat/s-pack124.adb: Likewise.
+ * libgnat/s-pack124.ads: Likewise.
+ * libgnat/s-pack125.adb: Likewise.
+ * libgnat/s-pack125.ads: Likewise.
+ * libgnat/s-pack126.adb: Likewise.
+ * libgnat/s-pack126.ads: Likewise.
+ * libgnat/s-pack127.adb: Likewise.
+ * libgnat/s-pack127.ads: Likewise.
* libgnat/s-pack13.adb: Likewise.
* libgnat/s-pack13.ads: Likewise.
* libgnat/s-pack14.adb: Likewise.
* libgnat/s-pack62.ads: Likewise.
* libgnat/s-pack63.adb: Likewise.
* libgnat/s-pack63.ads: Likewise.
+ * libgnat/s-pack65.adb: Likewise.
+ * libgnat/s-pack65.ads: Likewise.
+ * libgnat/s-pack66.adb: Likewise.
+ * libgnat/s-pack66.ads: Likewise.
+ * libgnat/s-pack67.adb: Likewise.
+ * libgnat/s-pack67.ads: Likewise.
+ * libgnat/s-pack68.adb: Likewise.
+ * libgnat/s-pack68.ads: Likewise.
+ * libgnat/s-pack69.adb: Likewise.
+ * libgnat/s-pack69.ads: Likewise.
+ * libgnat/s-pack70.adb: Likewise.
+ * libgnat/s-pack70.ads: Likewise.
+ * libgnat/s-pack71.adb: Likewise.
+ * libgnat/s-pack71.ads: Likewise.
+ * libgnat/s-pack72.adb: Likewise.
+ * libgnat/s-pack72.ads: Likewise.
+ * libgnat/s-pack73.adb: Likewise.
+ * libgnat/s-pack73.ads: Likewise.
+ * libgnat/s-pack74.adb: Likewise.
+ * libgnat/s-pack74.ads: Likewise.
+ * libgnat/s-pack75.adb: Likewise.
+ * libgnat/s-pack75.ads: Likewise.
+ * libgnat/s-pack76.adb: Likewise.
+ * libgnat/s-pack76.ads: Likewise.
+ * libgnat/s-pack77.adb: Likewise.
+ * libgnat/s-pack77.ads: Likewise.
+ * libgnat/s-pack78.adb: Likewise.
+ * libgnat/s-pack78.ads: Likewise.
+ * libgnat/s-pack79.adb: Likewise.
+ * libgnat/s-pack79.ads: Likewise.
+ * libgnat/s-pack80.adb: Likewise.
+ * libgnat/s-pack80.ads: Likewise.
+ * libgnat/s-pack81.adb: Likewise.
+ * libgnat/s-pack81.ads: Likewise.
+ * libgnat/s-pack82.adb: Likewise.
+ * libgnat/s-pack82.ads: Likewise.
+ * libgnat/s-pack83.adb: Likewise.
+ * libgnat/s-pack83.ads: Likewise.
+ * libgnat/s-pack84.adb: Likewise.
+ * libgnat/s-pack84.ads: Likewise.
+ * libgnat/s-pack85.adb: Likewise.
+ * libgnat/s-pack85.ads: Likewise.
+ * libgnat/s-pack86.adb: Likewise.
+ * libgnat/s-pack86.ads: Likewise.
+ * libgnat/s-pack87.adb: Likewise.
+ * libgnat/s-pack87.ads: Likewise.
+ * libgnat/s-pack88.adb: Likewise.
+ * libgnat/s-pack88.ads: Likewise.
+ * libgnat/s-pack89.adb: Likewise.
+ * libgnat/s-pack89.ads: Likewise.
+ * libgnat/s-pack90.adb: Likewise.
+ * libgnat/s-pack90.ads: Likewise.
+ * libgnat/s-pack91.adb: Likewise.
+ * libgnat/s-pack91.ads: Likewise.
+ * libgnat/s-pack92.adb: Likewise.
+ * libgnat/s-pack92.ads: Likewise.
+ * libgnat/s-pack93.adb: Likewise.
+ * libgnat/s-pack93.ads: Likewise.
+ * libgnat/s-pack94.adb: Likewise.
+ * libgnat/s-pack94.ads: Likewise.
+ * libgnat/s-pack95.adb: Likewise.
+ * libgnat/s-pack95.ads: Likewise.
+ * libgnat/s-pack96.adb: Likewise.
+ * libgnat/s-pack96.ads: Likewise.
+ * libgnat/s-pack97.adb: Likewise.
+ * libgnat/s-pack97.ads: Likewise.
+ * libgnat/s-pack98.adb: Likewise.
+ * libgnat/s-pack98.ads: Likewise.
+ * libgnat/s-pack99.adb: Likewise.
+ * libgnat/s-pack99.ads: Likewise.
* libgnat/s-parame.adb: Likewise.
* libgnat/s-parame.ads: Likewise.
* libgnat/s-parame__ae653.ads: Likewise.
* libgnat/s-pooloc.ads: Likewise.
* libgnat/s-poosiz.adb: Likewise.
* libgnat/s-poosiz.ads: Likewise.
- * libgnat/s-powtab.ads: Likewise.
+ * libgnat/s-powflt.ads: Likewise.
+ * libgnat/s-powlfl.ads: Likewise.
+ * libgnat/s-powllf.ads: Likewise.
* libgnat/s-purexc.ads: Likewise.
+ * libgnat/s-putaim.adb: Likewise.
+ * libgnat/s-putaim.ads: Likewise.
+ * libgnat/s-putima.adb: Likewise.
+ * libgnat/s-putima.ads: Likewise.
* libgnat/s-rannum.adb: Likewise.
* libgnat/s-rannum.ads: Likewise.
* libgnat/s-ransee.adb: Likewise.
* libgnat/s-rpc.ads: Likewise.
* libgnat/s-scaval.adb: Likewise.
* libgnat/s-scaval.ads: Likewise.
+ * libgnat/s-scaval__128.adb: Likewise.
+ * libgnat/s-scaval__128.ads: Likewise.
* libgnat/s-secsta.adb: Likewise.
* libgnat/s-secsta.ads: Likewise.
* libgnat/s-sequio.adb: Likewise.
* libgnat/s-sequio.ads: Likewise.
+ * libgnat/s-shabig.ads: Likewise.
* libgnat/s-shasto.adb: Likewise.
* libgnat/s-shasto.ads: Likewise.
* libgnat/s-soflin.adb: Likewise.
* libgnat/s-stache.ads: Likewise.
* libgnat/s-stalib.adb: Likewise.
* libgnat/s-stalib.ads: Likewise.
+ * libgnat/s-statxd.adb: Likewise.
+ * libgnat/s-statxd.ads: Likewise.
* libgnat/s-stausa.adb: Likewise.
* libgnat/s-stausa.ads: Likewise.
* libgnat/s-stchop.adb: Likewise.
* libgnat/s-stposu.ads: Likewise.
* libgnat/s-stratt.adb: Likewise.
* libgnat/s-stratt.ads: Likewise.
- * libgnat/s-stratt__xdr.adb: Likewise.
* libgnat/s-strcom.adb: Likewise.
* libgnat/s-strcom.ads: Likewise.
* libgnat/s-strhas.adb: Likewise.
* libgnat/s-unstyp.ads: Likewise.
* libgnat/s-utf_32.adb: Likewise.
* libgnat/s-utf_32.ads: Likewise.
+ * libgnat/s-vade128.ads: Likewise.
+ * libgnat/s-vade32.ads: Likewise.
+ * libgnat/s-vade64.ads: Likewise.
+ * libgnat/s-vafi128.ads: Likewise.
+ * libgnat/s-vafi32.ads: Likewise.
+ * libgnat/s-vafi64.ads: Likewise.
* libgnat/s-valboo.adb: Likewise.
* libgnat/s-valboo.ads: Likewise.
* libgnat/s-valcha.adb: Likewise.
* libgnat/s-valcha.ads: Likewise.
- * libgnat/s-valdec.adb: Likewise.
- * libgnat/s-valdec.ads: Likewise.
* libgnat/s-valenu.adb: Likewise.
* libgnat/s-valenu.ads: Likewise.
+ * libgnat/s-valflt.ads: Likewise.
* libgnat/s-valint.adb: Likewise.
* libgnat/s-valint.ads: Likewise.
- * libgnat/s-vallld.adb: Likewise.
- * libgnat/s-vallld.ads: Likewise.
+ * libgnat/s-vallfl.ads: Likewise.
+ * libgnat/s-valllf.ads: Likewise.
* libgnat/s-vallli.adb: Likewise.
* libgnat/s-vallli.ads: Likewise.
+ * libgnat/s-valllli.ads: Likewise.
+ * libgnat/s-vallllu.ads: Likewise.
* libgnat/s-valllu.adb: Likewise.
* libgnat/s-valllu.ads: Likewise.
* libgnat/s-valrea.adb: Likewise.
* libgnat/s-valrea.ads: Likewise.
+ * libgnat/s-valued.adb: Likewise.
+ * libgnat/s-valued.ads: Likewise.
+ * libgnat/s-valuef.adb: Likewise.
+ * libgnat/s-valuef.ads: Likewise.
+ * libgnat/s-valuei.adb: Likewise.
+ * libgnat/s-valuei.ads: Likewise.
+ * libgnat/s-valuer.adb: Likewise.
+ * libgnat/s-valuer.ads: Likewise.
+ * libgnat/s-valueu.adb: Likewise.
+ * libgnat/s-valueu.ads: Likewise.
* libgnat/s-valuns.adb: Likewise.
* libgnat/s-valuns.ads: Likewise.
* libgnat/s-valuti.adb: Likewise.
* libgnat/s-widcha.ads: Likewise.
* libgnat/s-widenu.adb: Likewise.
* libgnat/s-widenu.ads: Likewise.
+ * libgnat/s-widint.ads: Likewise.
* libgnat/s-widlli.adb: Likewise.
* libgnat/s-widlli.ads: Likewise.
+ * libgnat/s-widllli.ads: Likewise.
+ * libgnat/s-widlllu.ads: Likewise.
* libgnat/s-widllu.adb: Likewise.
* libgnat/s-widllu.ads: Likewise.
+ * libgnat/s-widthi.adb: Likewise.
+ * libgnat/s-widthi.ads: Likewise.
+ * libgnat/s-widthu.adb: Likewise.
+ * libgnat/s-widthu.ads: Likewise.
+ * libgnat/s-widuns.ads: Likewise.
* libgnat/s-widwch.adb: Likewise.
* libgnat/s-widwch.ads: Likewise.
* libgnat/s-win32.ads: Likewise.
* libgnat/system-vxworks7-x86-rtp.ads: Likewise.
* libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
* libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise.
- * libgnat/system.ads: Likewise.
* link.c: Likewise.
* live.adb: Likewise.
* live.ads: Likewise.
* sinput-l.ads: Likewise.
* sinput.adb: Likewise.
* sinput.ads: Likewise.
+ * snames.adb-tmpl: Likewise.
+ * snames.ads-tmpl: Likewise.
* socket.c: Likewise.
* spark_xrefs.adb: Likewise.
* spark_xrefs.ads: Likewise.
* sprint.adb: Likewise.
* sprint.ads: Likewise.
- * stand.adb: Likewise.
* stand.ads: Likewise.
* stringt.adb: Likewise.
* stringt.ads: Likewise.
* switch-m.ads: Likewise.
* switch.adb: Likewise.
* switch.ads: Likewise.
- * symbols.adb: Likewise.
- * symbols.ads: Likewise.
* sysdep.c: Likewise.
* table.adb: Likewise.
* table.ads: Likewise.
* tempdir.ads: Likewise.
* terminals.c: Likewise.
* tracebak.c: Likewise.
- * tree_gen.adb: Likewise.
- * tree_gen.ads: Likewise.
- * tree_in.adb: Likewise.
- * tree_in.ads: Likewise.
- * tree_io.adb: Likewise.
- * tree_io.ads: Likewise.
* treepr.adb: Likewise.
* treepr.ads: Likewise.
* ttypes.ads: Likewise.
* usage.ads: Likewise.
* validsw.adb: Likewise.
* validsw.ads: Likewise.
+ * vast.adb: Likewise.
+ * vast.ads: Likewise.
* warnsw.adb: Likewise.
* warnsw.ads: Likewise.
* widechar.adb: Likewise.
* xutil.adb: Likewise.
* xutil.ads: Likewise.
-2020-06-02 Javier Miranda <miranda@adacore.com>
-
- * sem_ch3.adb (Analyze_Object_Declaration): Set attribute
- Expansion_Delayed on aggregates that initialize an object that
- has aspect alignment or address clause. Done to allow ther
- initialization by means of multiple assignments.
- * exp_ch3.adb (Expand_N_Object_Declaration): Resolve delayed
- aggregates. This patch complements the patch applied to
- sem_ch3.adb
-
-2020-06-02 Javier Miranda <miranda@adacore.com>
-
- * sem_util.adb (Ensure_Minimum_Decoration): New subprogram that
- ensures the minimum decoration required by
- Requires_Transient_Scope() to provide its functionality when the
- entity is not frozen.
-
-2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
-
- * exp_ch4.adb (Expand_N_Op_Divide): Remove code dealing with
- the Treat_Fixed_As_Integer flag.
- (Expand_N_Op_Multiply): Likewise.
- * exp_fixd.adb (Build_Divide): Do the division in an integer
- type long enough to hold both operands and convert the result
- to the type of the LHS. Do not set Treat_Fixed_As_Integer.
- (Build_Multiply): Do not set Treat_Fixed_As_Integer.
- (Build_Rem): Likewise.
- * sem_ch4.adb (Analyze_Arithmetic_Op): Remove code dealing with
- the Treat_Fixed_As_Integer flag.
- (Check_Arithmetic_Pair): Likewise.
- * sinfo.ads (Treat_Fixed_As_Integer): Delete.
- (N_Has_Treat_Fixed_As_Integer): Likewise.
- (Set_Treat_Fixed_As_Integer): Likewise.
- * sinfo.adb (Treat_Fixed_As_Integer): Likewise.
- (Set_Treat_Fixed_As_Integer): Likewise.
- * sprint.ads (Syntax Extensions): Remove '#' special character.
- * sprint.adb (Process_TFAI_RR_Flags): Delete.
- (Sprint_Node_Actual) <N_Op_Divide>: Print '@' manually.
- <N_Op_Multiply>: Likewise.
- <N_Op_Mod>: Do not print '#'.
- <N_Op_Rem>: Likewise.
-
-2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
-
- * exp_aggr.adb (Others_Check): In the positional case, use the
- general expression for the comparison only when needed.
- * exp_attr.adb (Expand_Fpt_Attribute;): Use a simple conversion
- to the target type instead of an unchecked conversion to the
- base type to do the range check, as in the other cases.
- (Expand_N_Attribute_Reference) <Attribute_Storage_Size>: Do the
- Max operation in the type of the storage size variable, and use
- Convert_To as in the other cases.
- * tbuild.adb (Convert_To): Do not get rid of an intermediate
- conversion to Universal_Integer here...
- * sem_res.adb (Simplify_Type_Conversion): ...but here instead.
-
-2020-06-02 Bob Duff <duff@adacore.com>
-
- * doc/gnat_ugn/gnat_utility_programs.rst: Update documentation
- for --RM-style-spacing.
-
-2020-06-02 Bob Duff <duff@adacore.com>
-
- * doc/gnat_ugn/gnat_utility_programs.rst: Add documentation for
- --[no-]compact switch.
-
-2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
-
- * exp_aggr.adb (Build_Array_Aggr_Code): Set the type of the PAT
- on the zero used to clear the array.
- * exp_attr.adb (Expand_N_Attribute_Reference)
- <Attribute_Alignment>: In the CW case, directly convert from the
- alignment's type to the target type if the parent is an
- unchecked conversion.
- * sem_res.adb (Set_String_Literal_Subtype): In the dynamic case,
- use the general expression for the upper bound only when needed.
- Set the base type of the index as the type of the low bound.
- (Simplify_Type_Conversion): Do an intermediate conversion to the
- root type of the target type if the operand is an integer
- literal.
- * tbuild.adb (Convert_To): Get rid of an intermediate conversion
- to Universal_Integer if the inner expression has integer tyoe.
- * libgnat/a-sequio.adb (Byte_Swap): Make use of an equivalent
- static expression in the case statement.
-
-2020-06-02 Thomas Quinot <quinot@adacore.com>
-
- * par_sco.adb (Traverse_Degenerate_Subprogram): Set statement
- code to 'X'.
- * scos.ads: Update comment documenting SCO data.
-
-2020-06-02 Gary Dismukes <dismukes@adacore.com>
-
- * exp_unst.adb (Register_Subprogram): Test for Address_Taken (in
- addition to the existing test for In_Synchonized_Unit) when
- deciding whether to reset the Reachable flag on all subprograms
- enclosing the subprogram being registered.
-
-2020-06-02 Justin Squirek <squirek@adacore.com>
-
- * sem_ch6.adb (Check_Return_Obj_Accessibility): Avoid use of
- parent node pointers so we are not relying on expansion done in
- GNATprove mode.
+2021-05-03 Piotr Trojanek <trojanek@adacore.com>
-2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
+ * exp_dist.adb (Build_From_Any_Call): Remove initial value for
+ Fnam; fix style.
+ (Build_To_Any_Call): Remove initial value for Fnam.
+ (Build_TypeCode_Call): Likewise.
- * exp_attr.adb (Expand_N_Attribute_Reference)
- <Attribute_Alignment>: Adjust comment and compare against proper
- type.
-
-2020-06-02 Gary Dismukes <dismukes@adacore.com>
-
- * exp_unst.adb (Visit_Node): When visiting array attribute
- nodes, apply Get_Referenced_Object to the attribute prefix, to
- handle prefixes denoting renamed objects by picking up the Etype
- of the renamed object rather than the possibly unconstrained
- nominal subtype of the renaming declaration's Entity.
- * sem_util.ads (Get_Referenced_Object): Update comment to
- clearly indicate that any kind of node can be passed to this
- function.
- * sem_util.adb (Get_Referenced_Object): Add test of Is_Object to
- the condition, to allow for passing names that denote types and
- subtypes.
+2021-05-03 Piotr Trojanek <trojanek@adacore.com>
+
+ * checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch6.adb,
+ exp_disp.adb, exp_imgv.adb, exp_util.adb, sem_attr.adb,
+ sem_ch13.adb, sem_ch8.adb, sem_eval.adb, sem_scil.adb,
+ sem_util.adb: Replace calls to RTE with Is_RTE.
+
+2021-05-03 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_ch4.adb (Try_Object_Operation): Reuse local constant.
+
+2021-05-03 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch4.adb (Try_Object_Operation): When a prefixed call is
+ overloaded and illegal, and the All_Errors flag is off, generate
+ an error message if the re-analysis of some candidate
+ interpretation fails to produce one.
+
+2021-05-03 Dmitriy Anisimkov <anisimko@adacore.com>
+
+ * libgnat/g-casuti.adb: Replace with "pragma No_Body".
+ * libgnat/g-casuti.ads: Replace with a package renaming.
+
+2021-05-03 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_attr.adb (Check_Program_Unit): Fix references to
+ Concurrent_Kind and Is_Concurrent_Type; avoid repeated calls to
+ Entity.
+
+2021-05-03 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_attr.adb (Check_Program_Unit): Replace tests for Task_Kind
+ and Protected_Kind with a collective test for Concurrent_Kind;
+ likewise, replace calls to Is_Task_Type and Is_Protected_Type
+ with a collective call to Is_Concurrent_Type; simplify into a
+ single membership test; add missing Entry_Kind alternative.
+
+2021-05-03 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_aggr.adb (Resolve_Record_Aggregate): Fix casing in error
+ message.
+ * sem_ch3.adb (Add_Internal_Interface_Entities): Fix unbalanced
+ parens.
+ * sem_elim.adb (Eliminate_Error_Msg): Add insertion character.
-2020-06-02 Bob Duff <duff@adacore.com>
+2021-05-03 Piotr Trojanek <trojanek@adacore.com>
- * snames.ads-tmpl: Add comments explaining that enumeration
- types have to be kept in synch with subtypes of Name_Id.
+ * freeze.adb (Freeze_Profile): Replace Error_Msg_NE with
+ Error_Msg_N; change to continuation message.
+ * sem_cat.adb, sem_ch10.adb, sem_ch12.adb, sem_ch5.adb: Replace
+ calls to Error_Msg_NE with calls to Error_Msg_N.
-2020-06-02 Piotr Trojanek <trojanek@adacore.com>
+2021-05-03 Piotr Trojanek <trojanek@adacore.com>
- * sem_util.adb (Check_No_Hidden_State): Remove dead code.
+ * exp_disp.adb, sem_aggr.adb, sem_cat.adb, sem_ch10.adb,
+ sem_ch12.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
+ sem_ch6.adb, sem_ch8.adb, sem_ch9.adb, sem_prag.adb,
+ sem_res.adb: Remove extra leading and trailing space in error
+ messages.
-2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
+2021-05-03 Arnaud Charlet <charlet@adacore.com>
- * exp_pakd.adb (Expand_Packed_Bit_Reference): Change type of
- reference from Universal_Integer to Standard_Natural.
+ * sem_prag.adb (Set_Exported): Do not warn on exporting a type.
-2020-06-02 Piotr Trojanek <trojanek@adacore.com>
+2021-05-03 Ed Schonberg <schonberg@adacore.com>
- * sem_prag.adb (Collect_States_And_Objects): Call itself on
- declaration of nested packages; append abstract states
- one-by-one, so that in recursive call we do not overwrite the
- ones that have been already collected.
+ * sem_warn.adb (Check_References): Do not emit warning on a
+ selected component when enclosing type has no discriminant and
+ type of component has partial initialization.
-2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
+2021-05-03 Justin Squirek <squirek@adacore.com>
- * exp_atag.ads (Build_Inherit_Predefined_Prims): Change type
- of Num_Predef_Prim parameter from Int to Nat.
- * exp_atag.adb (Build_Range): New procedure.
- (Build_Val): Likewise.
- (Build_CW_Membership): Call Build_Val.
- (Build_Get_Predefined_Prim_Op_Address): Likewise.
- (Build_Inherit_CPP_Prims): Likewise.
- (Build_Get_Prim_Op_Address): Likewise.
- (Build_Set_Predefined_Prim_Op_Address): Likewise.
- (Build_Inherit_Prims): Call Build_Range.
- (Build_Inherit_Predefined_Prims): Likewise. Change type of
- Num_Predef_Prim parameter from Int to Nat.
+ * contracts.adb (Build_Postconditions_Procedure): Remove
+ internally generated if statement used to control finalization
+ actions.
+ * exp_ch6.adb (Add_Return, Expand_Non_Function_Return,
+ Expand_Simple_Function_Return): Add if statement around
+ _postconditions to control finalization.
+ * exp_ch7.adb (Build_Finalizer): Likewise.
+ * sem_prag.adb (Find_Related_Declaration_Or_Body): Add case to
+ handle Context itself being a handled sequence of statements.
-2020-06-02 Gary Dismukes <dismukes@adacore.com>
+2021-05-03 Justin Squirek <squirek@adacore.com>
- * sem_ch3.adb: Two typo fixes.
+ * sem_util.adb (In_Return_Value): Modified to detect when
+ implicit dereference is specified on the return type of a
+ function call within the expression being checked.
-2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
+2021-05-03 Ed Schonberg <schonberg@adacore.com>
- * sem_ch3.adb (Replace_Discriminants): Preserve the Etype of the
- Name of N_Variant_Part nodes when rewriting it.
+ * exp_aggr.adb (Expand_Array_Aggregate): If the parent node of
+ the aggregate is a subprogram call there is no target in which
+ to build the aggregate, and it has to be expanded into component
+ assignments.
-2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
+2021-05-03 Piotr Trojanek <trojanek@adacore.com>
- * sem_ch3.adb (Signed_Integer_Type_Declaration): Change the type
- of the bounds from Universal_Integer to Implicit_Base.
+ * exp_prag.adb (Expand_Pragma_CUDA_Execute): Refill comments;
+ remove periods after single-line comments; use procedural
+ variant of Next_Entity.
+ * gnat_cuda.adb: Refill comments; remove periods after
+ single-line comments; replace calls to UI_From_Int with
+ constants; change iteration bounds so they match the comments.
+ * sem_prag.adb (Analyze_Pragma): Add checks for malformed pragma
+ CUDA_Kernel aggregate; simplify processing of pragma CUDA_Global
+ with Check_Arg_Count; sync comment with code for CUDA_Global.
-2020-06-02 Arnaud Charlet <charlet@adacore.com>
+2021-05-03 Arnaud Charlet <charlet@adacore.com>
- * bcheck.adb, binde.adb, bindo-diagnostics.adb, checks.adb,
- exp_aggr.adb, exp_ch3.adb, exp_ch4.adb, exp_ch7.adb,
- exp_ch9.adb, gnatname.adb, sem_case.adb, sem_ch13.adb,
- sem_ch5.adb, sem_prag.adb, sem_util.adb, uintp.adb, urealp.adb,
- xoscons.adb, xr_tabls.adb, xref_lib.adb: Initialize objects more
- explicitly and add corresponding assertions. Remove dead code.
- Also add a few Annotate pragmas to help static analysis.
- * libgnat/a-caldel.adb, libgnat/a-calend.adb,
- libgnat/a-ngcoty.adb, libgnat/a-ngelfu.adb,
- libgnat/a-ngrear.adb, libgnat/a-strfix.adb,
- libgnat/g-calend.adb, libgnat/g-catiio.adb,
- libgnat/g-comlin.adb, libgnat/g-debpoo.adb,
- libgnat/g-dirope.adb, libgnat/g-hesorg.adb,
- libgnat/g-pehage.adb, libgnat/g-socket.adb, libgnat/i-cobol.adb,
- libgnat/s-dwalin.adb, libgnat/s-dwalin.ads,
- libgnat/s-fatgen.adb, libgnat/s-gearop.adb,
- libgnat/s-genbig.adb, libgnat/s-imgrea.adb,
- libgnat/s-os_lib.adb, libgnat/s-rannum.adb,
- libgnat/s-regpat.adb, libgnat/s-trasym__dwarf.adb,
- libgnat/s-valrea.adb: Ditto.
+ * tbuild.adb (Make_Implicit_Loop_Statement): Disable restriction
+ checking on dead paths.
-2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
+2021-05-03 Arnaud Charlet <charlet@adacore.com>
- * sem_ch3.adb (Replace_Components): Rename into...
- (Replace_Discriminants): ...this. Replace girder discriminants
- with non-girder ones. Do not replace components.
- * sem_ch13.adb (Check_Record_Representation_Clause): Deal with
- non-girder discriminants correctly.
+ * sem_util.adb (Check_Result_And_Post_State): Replace custom
+ Has_In_Out_Parameter with existing Has_Out_Or_In_Out_Parameter
+ flag which corresponds exactly to what we need.
-2020-06-02 Piotr Trojanek <trojanek@adacore.com>
+2021-05-03 Arnaud Charlet <charlet@adacore.com>
- * lib-xref-spark_specific.adb (Create_Heap): use a new variant
- of Name_Enter to directly converts String to Make_Id.
+ * libgnat/a-ztcoio.adb: Remove unused with clause.
-2020-06-02 Gary Dismukes <dismukes@adacore.com>
+2021-05-03 Piotr Trojanek <trojanek@adacore.com>
- * exp_attr.adb, par-ch4.adb, par-util.adb, scans.ads, scng.adb,
- sem_attr.adb, sem_ch4.adb, sinfo.ads: Typo corrections and minor
- reformatting.
+ * sem_ch13.adb (Build_Predicate_Functions): Fix typo in comment.
+ (Resolve_Aspect_Expressions): Fix typo in comment; remove
+ redundant check for no aspects; simplify with Discard_Node.
-2020-06-02 Arnaud Charlet <charlet@adacore.com>
+2021-05-03 Ed Schonberg <schonberg@adacore.com>
- * snames.ads-tmpl (Name_Img, Attribute_Img): Make it an
- attribute returning renamable functions.
+ * sem_util.adb (Build_Constrained_Itype): Remove prior patch,
+ issue is better handled in Sem_Ch13.Build_Predicate_Functions.
+ * sem_ch13.adb (Build_Predicate_Functions): Do not build
+ predicate function for an Itype with a defined
+ Predicated_Parent, even if that designated parent does not yet
+ have a Predicate_Function. This can happen in instance bodies
+ nested within a generic unit.
-2020-06-02 Yannick Moy <moy@adacore.com>
+2021-04-29 Eric Botcazou <ebotcazou@adacore.com>
- * sem_prag.adb, sem_prag.ads (Set_Overflow_Mode): New procedure
- to set overflow mode.
+ * exp_attr.adb (Expand_N_Attribute_Reference)
+ <Attribute_Max_Size_In_Storage_Elements>: Apply the checks for
+ universal integer contexts only in the default case.
+ * exp_ch4.adb (Get_Size_For_Range): Move to library level.
+ (Expand_N_Type_Conversion): If the operand has Universal_Integer
+ type and the conversion requires an overflow check, try to do an
+ intermediate conversion to a narrower type.
+
+2021-04-29 Arnaud Charlet <charlet@adacore.com>
+
+ * sem_ch3.adb (Check_Anonymous_Access_Component): Factor out
+ core processing of Check_Anonymous_Access_Components.
+ (Check_Anonymous_Access_Components): Call
+ Check_Anonymous_Access_Component.
+ (Process_Discriminants): Call Check_Anonymous_Access_Component.
+ * freeze.adb (Freeze_Record_Type): Code cleanups and add more tree
+ checking to handle changes in sem_ch3.adb.
+ * sem_ch8.adb (Find_Type): Remove special case for access
+ discriminant in task types, these are now supported.
+
+2021-04-29 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_ch4.adb (Expand_Compare_Minimize_Eliminate_Overflow): Remove
+ entry condition.
+ (Expand_N_In): Call Minimized_Eliminated_Overflow_Check on the left
+ operand before doing the special overflow expansion.
+ (Expand_N_Op_Eq): Likewise.
+ (Expand_N_Op_Ge): Likewise.
+ (Expand_N_Op_Gt): Likewise.
+ (Expand_N_Op_Le): Likewise.
+ (Expand_N_Op_Lt): Likewise.
+ (Expand_N_Op_Ne): Likewise.
+ (Minimized_Eliminated_Overflow_Check): Return False for Minimized
+ if the size of the type is greater than that of Long_Long_Integer.
+
+2021-04-29 Arnaud Charlet <charlet@adacore.com>
+
+ * exp_ch5.adb (Expand_N_If_Statement): Only perform the
+ simplification on return True/False for internal nodes when
+ -fpreserve-control-flow is not set.
+
+2021-04-29 Eric Botcazou <ebotcazou@adacore.com>
+
+ * sem_attr.adb (Eval_Attribute) <Attribute_Machine>: Use
+ Round_Even instead of Round in the call to the Machine routine.
+
+2021-04-29 Bob Duff <duff@adacore.com>
+
+ * sem_attr.adb (Analyze_Attribute): Change "$" to "&".
+ Otherwise, Errout will trip over an uninitialized (invalid)
+ variable (Error_Msg_Unit_1).
+
+2021-04-29 Eric Botcazou <ebotcazou@adacore.com>
+
+ * libgnat/s-valuer.adb (Scan_Decimal_Digits): Set Extra to zero
+ when the precision limit is reached by means of trailing zeros
+ and prevent it from being overwritten later.
+
+2021-04-29 Yannick Moy <moy@adacore.com>
+
+ * errout.adb (Output_Messages): Insert SGR strings where needed.
+ * erroutc.adb (Output_Message_Txt): Insert SGR strings where
+ needed in the text of the message itself.
+ (Output_Msg_Text): Allow for style message not to start
+ with (style).
+ * erroutc.ads: Add new constants and functions to control colors
+ in messages output to the terminal. Add variable Use_SGR_Control
+ that should be set to True for using SGR color control strings.
+
+2021-04-29 Yannick Moy <moy@adacore.com>
+
+ * sem_eval.adb (Check_Non_Static_Context_For_Overflow): Apply
+ compile-time checking for overflows in non-static contexts
+ including inlined code.
+ (Eval_Arithmetic_Op): Use the new procedure.
+ (Eval_Unary_Op, Eval_Op_Expon): Add call to the new procedure.
+
+2021-04-29 Justin Squirek <squirek@adacore.com>
+
+ * checks.adb (Apply_Type_Conversion_Checks): Move out constraint
+ check generation, and add case for general access types with
+ constraints.
+ (Make_Discriminant_Constraint_Check): Created to centralize
+ generation of constraint checks for stored discriminants.
+
+2021-04-29 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat1drv.adb (Adjust_Global_Switches): Force a 32-bit Duration
+ type if the maximum integer size is lower than 64 bits.
+
+2021-04-29 Arnaud Charlet <charlet@adacore.com>
+
+ * Makefile.rtl (ADA_EXCLUDE_SRCS): Remove unused files.
+ (ADA_INCLUDE_SRCS): Remove libgnat/system.ads
+
+2021-04-29 Arnaud Charlet <charlet@adacore.com>
+
+ * exp_aggr.adb (Collect_Initialization_Statements): Removed.
+ (Convert_Aggr_In_Object_Decl, Expand_Array_Aggregate): Fix
+ creation and insertion of Initialization_Statements. Do not set
+ Initialization_Statements when a transient scope is involved.
+ Move processing of Array_Slice here. Ensure that an object with
+ an Array_Slice call gets its array component initialized. Add
+ comments.
+ * exp_ch7.adb: Update comments.
+ (Store_Actions_In_Scope): Deal properly with an empty list which
+ might now be generated by Convert_Aggr_In_Object_Decl.
+ * exp_ch3.adb: Update comments.
+ (Expand_N_Object_Declaration): Remove processing of Array_Slice.
+
+2021-04-29 Arnaud Charlet <charlet@adacore.com>
+
+ * sem_ch8.adb (Analyze_Object_Renaming): Update check for
+ AI12-0401.
-2020-06-02 Piotr Trojanek <trojanek@adacore.com>
+2021-04-29 Patrick Bernardi <bernardi@adacore.com>
- * contracts.adb, einfo.adb, exp_ch9.adb, sem_ch12.adb,
- sem_ch4.adb, sem_ch7.adb, sem_ch8.adb, sem_elab.adb,
- sem_type.adb, sem_util.adb: Reuse Is_Package_Or_Generic_Package
- where possible (similarly, reuse Is_Concurrent_Type if it was
- possible in the same expressions).
+ * libgnat/s-stoele.ads (Storage_Offset): Cleanup comment.
-2020-05-30 Arnaud Charlet <charlet@adacore.com>
+2021-04-29 Gary Dismukes <dismukes@adacore.com>
- * Makefile.rtl (ADA_INCLUDE_SRCS): Replace Makefile.adalib by
- libada.gpr and associated project files.
- (g-debpoo.o): Add missing rule to ensure subprograms are not reordered.
- (setup-rts): Add generation of libgnat/libgnarl.lst.
- (LIBGNAT_SRCS): Remove thread.c which is part of libgnarl.
- * tracebak.c, tb-gcc.c: Merged the two files to simplify dependencies.
- * libgnarl/libgnarl.gpr, libgnat/libada.gpr,
- libgnat/libgnat.gpr, libgnat/libgnat_common.gpr: New files.
- * doc/gnat_ugn/the_gnat_compilation_model.rst: Makefile.adalib
- replaced by libada.gpr.
- * libgnat/system-mingw.ads: Remove obsolete comment.
- * gcc-interface/Makefile.in: Remove dependency on tb-gcc.c.
+ * exp_util.adb (Add_Own_DIC): Relax the suppression of adding a
+ DIC Check pragma that's done for abstract types by still doing
+ it in the case where GNATprove_Mode is set.
-2020-05-27 Martin Liska <mliska@suse.cz>
+2021-04-29 Joel Brobecker <brobecker@adacore.com>
- * gnatvsn.ads: Bump Library_Version to 11.
+ * Makefile.rtl (ADA_EXCLUDE_SRCS): Remove s-gcc.adb, s-gcc.ads,
+ s-gccdiv.adb, s-gccdiv.ads, s-gccshi.adb and s-gccshi.ads.
-2020-05-26 Eric Botcazou <ebotcazou@gcc.gnu.org>
+2021-04-29 Piotr Trojanek <trojanek@adacore.com>
- PR ada/95333
- * gcc-interface/decl.c (gnat_to_gnu_param): Never make a variant of
- the type.
+ * layout.adb (Layout_Type): Refine type of a local variable with
+ the required size of object from Int to Pos (it is initialized
+ with 8 and only multiplied by 2); fix unbalanced parens in
+ comment.
+
+2021-04-29 Eric Botcazou <ebotcazou@adacore.com>
-2020-05-26 Alexandre Oliva <oliva@adacore.com>
+ * eval_fat.adb (Succ): Use Ureal_Half in a couple of places.
- * gcc-interface/lang-specs.h (ADA_DUMPS_OPTIONS): Define in
- terms of DUMPS_OPTIONS. Replace occurrences of %{d*} %:dumps
- with it.
+2021-04-29 Ed Schonberg <schonberg@adacore.com>
-2020-05-26 Alexandre Oliva <oliva@adacore.com>
+ * sem_util.adb (Build_Constrained_Itype): Inhibit the generation
+ of predicate functions for this Itype, which is created for an
+ aggregate of a discriminated type. The object to which the
+ aggregate is assigned, e.g a writable actual parameter, will
+ apply the predicates if any are inherited from the base type.
- * gcc-interface/lang-specs.h: Drop auxbase and auxbase-strip.
- Use %:dumps instead of -dumpbase. Add %w for implicit .s
- primary output.
- * switch.adb (Is_Internal_GCC_Switch): Recognize dumpdir and
- dumpbase-ext. Drop auxbase and auxbase-strip.
+2021-04-29 Piotr Trojanek <trojanek@adacore.com>
-2020-05-25 Yannick Moy <moy@adacore.com>
+ * sem_cat.adb (Set_Categorization_From_Pragmas): Remove special
+ case for generic child units; remove optimization for empty list
+ of pragmas; properly restore visibility.
- * sem_util.adb (Check_No_Hidden_State): Stop propagation at
- first block/task/entry.
+2021-04-29 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_elab.adb (Process_SPARK_Instantiation): Fix typo in
+ comment.
+ * sem_prag.adb (Find_Related_Context): Add missing reference to
+ No_Caching in the comment; handle pragmas on compilation units.
-2020-05-25 Yannick Moy <moy@adacore.com>
+2021-04-29 Piotr Trojanek <trojanek@adacore.com>
- * doc/gnat_rm/implementation_defined_pragmas.rst: Document
- changes to pragmas Compile_Time_Error/Compile_Time_Warning.
+ * doc/gnat_rm/implementation_defined_attributes.rst: Change all
+ occurrences of "permissible prefix" to "allowed prefix", for
+ consistency.
* gnat_rm.texi: Regenerate.
- * libgnat/g-bytswa.adb: Change uses of Compile_Time_Error to
- Compile_Time_Warning, as the actual expression may not always be
- known statically.
- * sem_prag.adb (Analyze_Pragma): Handle differently pragma
- Compile_Time_Error in both compilation and in GNATprove mode.
- (Validate_Compile_Time_Warning_Or_Error): Issue an error or
- warning when the expression is not known at compile time.
- * usage.adb: Add missing documentation for warning switches _c
- and _r.
- * warnsw.ads: Update comment.
-
-2020-05-25 Justin Squirek <squirek@adacore.com>
-
- * sem_ch6.adb (Check_Return_Obj_Accessibility): Use original
- node to avoid looking at expansion done in GNATprove mode.
-
-2020-05-25 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc-interface/decl.c (gnat_to_gnu_entity): Add new local variable
- and use it throughout the function.
- <E_Variable>: Rename local variable and adjust accordingly. In the
- case of a renaming, materialize the entity if the renamed object is
- an N_Expression_With_Actions node.
- <E_Procedure>: Use Alias accessor function consistently.
-
-2020-05-25 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc-interface/misc.c (get_array_bit_stride): Get to the debug type,
- if any, before calling gnat_get_array_descr_info.
-
-2020-05-25 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Tidy up.
- (build_variant_list): Add GNAT_VARIANT_PART parameter and annotate its
- variants if it is present. Adjust the recursive call by passing the
- variant subpart of variants, if any.
- (copy_and_substitute_in_layout): Rename GNU_SUBST_LIST to SUBST_LIST
- and adjust throughout. For a type, pass the variant part in the
- call to build_variant_list.
-
-2020-05-25 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc-interface/decl.c (gnat_to_gnu_component_type): Cap the alignment
- of the component type according to the component size.
-
-2020-05-25 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Add a
- description of the various types associated with the unconstrained
- type. Declare the fat pointer earlier. Set the current function
- as context on the template type, and the fat pointer type on the
- array type. Always mark the fat pointer type as artificial and set
- it as the context for the pointer type to the array. Also reuse
- GNU_ENTITY_NAME. Finish up the unconstrained type at the very end.
- * gcc-interface/misc.c (gnat_get_array_descr_info): Do not handle
- fat pointer types and tidy up accordingly.
- * gcc-interface/utils.c (build_unc_object_type): Do not set the
- context on the template type.
- (gnat_pushdecl): Mark the canonical fat pointer types as artificial.
-
-2020-05-25 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc-interface/gigi.h (operand_type): New static inline function.
- * gcc-interface/trans.c (gnat_to_gnu): Do not suppress conversion
- to the resulty type at the end for array types.
- * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Do not
- remove conversions between array types on the LHS.
-
-2020-05-12 Eric Botcazou <ebotcazou@adacore.com>
-
- * sem_aggr.ads (Is_Single_Aggregate): New function.
- * sem_aggr.adb (Is_Others_Aggregate): Use local variable.
- (Is_Single_Aggregate): New function to recognize an aggregate with
- a single association containing a single choice.
- * fe.h (Is_Others_Aggregate): Delete.
- (Is_Single_Aggregate): New declaration.
- * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Call
- Is_Single_Aggregate instead of Is_Others_Aggregate.
-
-2020-05-12 Eric Botcazou <ebotcazou@adacore.com>
-
- PR ada/95035
- * gcc-interface/utils.c (packable_type_hasher::equal): Also compare
- the scalar storage order.
- (hash_packable_type): Also hash the scalar storage order.
- (hash_pad_type): Likewise.
-
-2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc-interface/*.[ch]: Update copyright year.
-
-2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Access>: Assert that
- the prefix is not a type.
-
-2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc-interface/ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Rename into...
- (TYPE_BIT_PACKED_ARRAY_TYPE_P): ...this.
- (TYPE_IS_PACKED_ARRAY_TYPE_P): Rename into...
- (BIT_PACKED_ARRAY_TYPE_P): ...this.
- (TYPE_IMPL_PACKED_ARRAY_P): Adjust to above renaming.
- * gcc-interface/gigi.h (maybe_pad_type): Remove IS_USER_TYPE parameter.
- * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Adjust call
- to maybe_pad_type.
- <E_Ordinary_Fixed_Point_Type>: Remove const qualifiers for tree.
- <E_Signed_Integer_Subtype>: Remove redundant test and redundant call
- to associate_original_type_to_packed_array. Turn test into assertion.
- Call associate_original_type_to_packed_array and modify gnu_entity_name
- accordingly. Explicitly set the parallel type for GNAT encodings.
- Call create_type_decl in the misaligned case before maybe_pad_type.
- <E_Array_Type>: Do not use the name of the implementation type for a
- packed array when not using GNAT encodings.
- <E_Array_Subtype>: Move around setting flags. Use the result of the
- call to associate_original_type_to_packed_array for gnu_entity_name.
- <E_Record_Subtype>: Create XVS type and XVZ variable only if debug
- info is requested for the type.
- Call create_type_decl if a padded type was created for a type entity.
- (gnat_to_gnu_component_type): Use local variable and adjust calls to
- maybe_pad_type.
- (gnat_to_gnu_subprog_type): Adjust call to maybe_pad_type.
- (gnat_to_gnu_field): Likewise.
- (validate_size): Adjust to renaming of macro.
- (set_rm_size): Likewise.
- (associate_original_type_to_packed_array): Adjust return type and
- return the name of the original type if GNAT encodings are not used.
- * gcc-interface/misc.c (gnat_get_debug_typ): Remove obsolete stuff.
- (gnat_get_fixed_point_type_info): Remove const qualifiers for tree.
- (gnat_get_array_descr_info): Likewise and set variables lazily.
- Remove call to maybe_debug_type. Simplify a few computations.
- (enumerate_modes): Remove const qualifier for tree.
- * gcc-interface/utils.c (make_type_from_size): Adjust to renaming.
- (maybe_pad_type): Remove IS_USER_TYPE parameter and adjust. Remove
- specific code for implementation types for packed arrays.
- (compute_deferred_decl_context): Remove const qualifier for tree.
- (convert): Adjust call to maybe_pad_type.
- (unchecked_convert): Likewise.
- * gcc-interface/utils2.c (is_simple_additive_expressio): Likewise.
-
-2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc-interface/utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Use
- build_nonshared_array_type to build the common type and declare it.
-
-2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc-interface/misc.c (gnat_init_gcc_eh): Do not override the user
- for -fnon-call-exceptions in default mode.
-
-2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc-interface/trans.c (lvalue_required_p) <N_Selected_Component>:
- Merge with N_Slice.
- <N_Allocator>: Move to...
- (lvalue_for_aggregate_p): ...here. New function.
- (Identifier_to_gnu): For an identifier with aggregate type, also
- call lvalue_for_aggregate_p if lvalue_required_p returned false
- before substituting the identifier with the constant.
-
-2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc-interface/trans.c (gnat_to_gnu): Do not wrap boolean values if
- they appear in any kind of attribute references.
-
-2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Deal
- with qualified "others" aggregates in the memset case.
-
-2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc-interface/decl.c (gnat_to_gnu_param): Also back-annotate the
- mechanism in the case of an Out parameter only passed by copy-out.
-
-2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc-interface/gigi.h (change_qualified_type): Move around.
- (maybe_vector_array): Likewise.
- (maybe_padded_object): New static line function.
- * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Component_Size>:
- Remove useless code.
- <Attr_Null_Parameter>: Remove obsolete code.
- (Call_to_gn): Likewise. Use maybe_padded_object to remove padding.
- (gnat_to_gnu): Likewise.
- <N_String_Literal>: Do not add a useless null character at the end.
- <N_Indexed_Component>: Likewise and remove obsolete code.
- (add_decl_expr): Likewise.
- (maybe_implicit_deref): Likewise.
- * gcc-interface/utils.c (maybe_unconstrained_array): Likewise.
- * gcc-interface/utils2.c (gnat_invariant_expr): Likewise.
-2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
+2021-04-29 Eric Botcazou <ebotcazou@adacore.com>
+
+ * eval_fat.adb (Succ): Add a special case for zero if the type does
+ not support denormalized numbers. Always use the canonical formula
+ in other cases and add commentary throughout the function.
+
+2021-04-29 Eric Botcazou <ebotcazou@adacore.com>
+
+ * libgnat/s-fatgen.adb: Remove with clause for Interfaces and
+ use type clauses for Interfaces.Unsigned_{16,32,64}.
+ (Small16): Remove.
+ (Small32): Likewise
+ (Small64): Likewise.
+ (Small80): Likewise.
+ (Tiny16): Likewise.
+ (Tiny32): Likewise.
+ (Tiny64): Likewise.
+ (Tiny80): Likewise.
+ (Siz): Always use 16.
+ (NR): New constant.
+ (Rep_Last): Use it in the computation.
+ (Exp_Factor): Remove special case for 80-bit.
+ (Sign_Mask): Likewise.
+ (Finite_Succ): New function implementing the Succ attribute for
+ finite numbers.
+ (Pred): Rewrite in terms of Finite_Succ.
+ (Succ): Likewise.
+
+2021-04-29 Arnaud Charlet <charlet@adacore.com>
+
+ * debug_a.adb (Debug_Output_Astring): Remove obsolete comment.
+
+2021-04-29 Arnaud Charlet <charlet@adacore.com>
+
+ * sem_attr.adb (Check_Image_Type): Protect against empty
+ Image_Type.
+
+2021-04-29 Arnaud Charlet <charlet@adacore.com>
+
+ * libgnat/a-nbnbin.ads (From_Universal_Image): New.
+ (Big_Integer): Update definition.
+ * libgnat/a-nbnbre.ads, libgnat/a-nbnbre.adb
+ (From_Universal_Image): New.
+ (From_String): Remove alternate body, replaced by
+ From_Universal_Image.
+ (Big_Real): Update definition.
+
+2021-04-29 Gary Dismukes <dismukes@adacore.com>
+
+ * sem_ch8.adb (Find_Type): Check the No_Obsolescent_Features
+ restriction for 'Class applied to an untagged incomplete
+ type (when Ada_Version >= Ada_2005). Remove disabling of the
+ warning message for such usage, along with the ??? comment,
+ which no longer applies (because the -gnatg switch no longer
+ sets Warn_On_Obsolescent_Feature).
+
+2021-04-29 Yannick Moy <moy@adacore.com>
+
+ * errout.adb (Error_Msg_NEL): Extract span from node.
+ (First_And_Last_Nodes): Use spans for subtype indications and
+ attribute definition clauses.
+ (Write_Source_Code_Lines): Fix for tabulation characters. Change
+ output for large spans to skip intermediate lines.
+ * sem_case.adb (Check_Choice_Set): Report duplicate choice on
+ the Original_Node for the case.
+ (Generic_Check_Choices): Set the Original_Node for the rewritten
+ case, so that the subtree used in spans has the correct
+ locations.
+
+2021-04-28 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_ch13.adb, sem_util.adb: Fix style.
+
+2021-04-28 Piotr Trojanek <trojanek@adacore.com>
+
+ * nlists.ads (List_Length): Adapt comment to match the
+ behaviour.
+
+2021-04-28 Arnaud Charlet <charlet@adacore.com>
+
+ * sem_eval.adb (Eval_Selected_Component): Only consider compile
+ time known aggregates.
+
+2021-04-28 Eric Botcazou <ebotcazou@adacore.com>
+
+ * libgnat/s-fatgen.adb: Add use clause for Interfaces.Unsigned_16
+ and Interfaces.Unsigned_32.
+ (Small16): New constant.
+ (Small32): Likewise.
+ (Small64): Likewise.
+ (Small80): Likewise.
+ (Pred): Declare a local overlay for Small and return it negated
+ for zero if the type does not support denormalized numbers.
+ (Succ): Likewise, but return it directly.
+
+2021-04-28 Piotr Trojanek <trojanek@adacore.com>
+
+ * inline.adb (Formal_Is_Used_Once): Refine type of the counter
+ variable; remove redundant assignment.
+
+2021-04-28 Patrick Bernardi <bernardi@adacore.com>
+
+ * libgnarl/s-interr.adb (Install_Restricted_Handlers): Change
+ Prio parameter to type Interrupt_Priority.
+ * libgnarl/s-interr.ads (Install_Restricted_Handlers): Likewise.
+ * libgnarl/s-interr__dummy.adb (Install_Restricted_Handlers):
+ Likewise.
+ * libgnarl/s-interr__hwint.adb (Install_Restricted_Handlers):
+ Likewise.
+ * libgnarl/s-interr__sigaction.adb (Install_Restricted_Handlers):
+ Likewise.
+ * libgnarl/s-interr__vxworks.adb (Install_Restricted_Handlers):
+ Likewise.
+
+2021-04-28 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_type.ads (Write_Interp_Ref): Removed; no longer needed.
+ * sem_type.adb (Headers): Removed; now the hash table is
+ directly in the Interp_Map alone.
+ (Interp_Map): Now an instance of the GNAT.HTable.Simple_HTable.
+ (Last_Overloaded): New variable to emulate Interp_Map.Last.
+ (Add_One_Interp): Adapt to new data structure.
+ (Get_First_Interp): Likewise.
+ (Hash): Likewise.
+ (Init_Interp_Tables): Likewise.
+ (New_Interps): Likewise.
+ (Save_Interps): Likewise; handle O_N variable like in
+ Get_First_Interp.
+ (Write_Interp_Ref): Removed; no longer needed.
+
+2021-04-28 Piotr Trojanek <trojanek@adacore.com>
+
+ * inline.adb (Do_Reset_Calls): Now an instance of Traverse_Proc.
+
+2021-04-28 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_ch13.adb (Analyze_Aspect_Static): Reuse
+ Error_Msg_Ada_2020_Feature for aspect Static.
+ (Analyze_One_Aspect): Likewise for aspect Full_Access.
+
+2021-04-28 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_ch13.adb (Analyze_Aspect_Static): Refactor to have a
+ single check for the expression being present; adapt comments.
+
+2021-04-28 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_ch13.adb (Analyze_Aspect_Static): Use aspect name in the
+ error message.
+
+2021-04-28 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_eval.adb (Eval_Selected_Component): Simplify with
+ Unqualify.
+
+2021-04-28 Eric Botcazou <ebotcazou@adacore.com>
+
+ * libgnat/s-valrea.adb (Fast2Sum): New function.
+ (Integer_to_Real): Use it in an iterated addition with exact
+ error handling for the case where an extra digit is needed.
+ Move local variable now only used in the exponentiation case.
+
+2021-04-28 Yannick Moy <moy@adacore.com>
+
+ * errout.adb: (Error_Msg_Internal): Use span instead of
+ location.
+ (Error_Msg, Error_Msg_NEL): Add versions with span parameter.
+ (Error_Msg_F, Error_Msg_FE, Error_Msg_N, Error_Msg_NE,
+ Error_Msg_NW): Retrieve span from node.
+ (First_Node): Use the new First_And_Last_Nodes.
+ (First_And_Last_Nodes): Expand on previous First_Node. Apply to
+ other nodes than expressions.
+ (First_Sloc): Protect against inconsistent locations.
+ (Last_Node): New function based on First_And_Last_Nodes.
+ (Last_Sloc): New function similar to First_Sloc.
+ (Output_Messages): Update output when -gnatdF is used. Use
+ character ~ for making the span visible, similar to what is done
+ in GCC and Clang.
+ * errout.ads (Error_Msg, Error_Msg_NEL): Add versions with span
+ parameter.
+ (First_And_Last_Nodes, Last_Node, Last_Sloc): New subprograms.
+ * erroutc.adb: Adapt to Sptr field being a span.
+ * erroutc.ads (Error_Msg_Object): Change field Sptr from
+ location to span.
+ * errutil.adb: Adapt to Sptr field being a span.
+ * freeze.adb: Use Errout reporting procedures for nodes to get
+ spans.
+ * par-ch3.adb: Likewise.
+ * par-prag.adb: Likewise.
+ * par-util.adb: Likewise.
+ * sem_case.adb: Likewise.
+ * sem_ch13.adb: Likewise.
+ * sem_ch3.adb: Likewise.
+ * sem_prag.adb: Likewise.
+ * types.ads: (Source_Span): New type for spans.
+ (To_Span): Basic constructors for spans.
+
+2021-04-28 Arnaud Charlet <charlet@adacore.com>
+
+ * einfo.adb (Discriminant_Constraint): Refine assertion.
+
+2021-04-28 Gary Dismukes <dismukes@adacore.com>
+
+ * exp_util.adb (Add_Own_DIC): Suppress expansion of a DIC pragma
+ when the pragma occurs for an abstract type, since that could
+ lead to a call to an abstract function, and such DIC checks can
+ never be performed for abstract types in any case.
+ * sem_disp.adb (Check_Dispatching_Context): Suppress the check
+ for illegal calls to abstract subprograms when the call occurs
+ within a Default_Initial_Condition aspect and the call is passed
+ the current instance as an actual.
+ (Has_Controlling_Current_Instance_Actual): New function to test
+ a call to see if it has any actuals given by direct references
+ to a current instance of a type
+ * sem_res.adb (Resolve_Actuals): Issue an error for a call
+ within a DIC aspect to a nonprimitive subprogram with an actual
+ given by the name of the DIC type's current instance (which will
+ show up as a reference to the formal parameter of a DIC
+ procedure).
+
+2021-04-28 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_ch3.adb (Expand_Record_Extension): Set Parent_Subtype on
+ the type extension when within a generic unit, even though
+ expansion is disabled, to allow for proper resolution of
+ selected components inherited from an ancestor.
+
+2021-04-28 Arnaud Charlet <charlet@adacore.com>
+
+ * sem_aux.adb (Is_Limited_Type): Fix logic to check Is_Type
+ before assuming Ent is a typo.
+ * sem_ch4.adb (Analyze_Expression_With_Actions): Update
+ comments, minor reformatting.
+ * sem_res.adb (Resolve_Declare_Expression): Add protection
+ against no type.
+
+2021-04-28 Arnaud Charlet <charlet@adacore.com>
+
+ * exp_ch6.adb: Fix typo in comment.
+ * sem_ch3.adb (Access_Subprogram_Declaration): Add missing call
+ to Create_Extra_Formals. Remove obsolete bootstrap check.
+ * sem_eval.adb (Eval_Selected_Component): Simplify a
+ selected_component on an aggregate.
+
+2021-04-28 Piotr Trojanek <trojanek@adacore.com>
+
+ * fmap.ads (Reset_Tables): Remove outdated references to
+ GNSA/ASIS.
+ * sem_eval.ads (Initialize): Likewise.
+ * sem_type.adb (Headers): Remove initialization at elaboration.
+ * sem_type.ads (Init_Interp_Tables): Remove outdated reference
+ to gnatf.
+ * stringt.ads (Initialize): Fix style in comment.
+
+2021-04-28 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_res.ads: Update reference in comment.
+ * sem_type.ads: Fix casing in a name of a unit.
+
+2021-04-28 Yannick Moy <moy@adacore.com>
+
+ * ghost.adb (Check_Ghost_Context): Add continuation message when
+ in predicate.
+
+2021-04-28 Eric Botcazou <ebotcazou@adacore.com>
+
+ * libgnat/s-valrea.adb (Integer_to_Real): Use a subtype of Num
+ for the component type of the table of powers of ten.
+ * libgnat/s-valuer.adb (Round_Extra): Add assertion on Base.
+
+2021-04-28 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_ch5.adb (Analyze_Case_Statement): Extend optimization to
+ all objects; fix typo in comment.
+
+2021-04-28 Piotr Trojanek <trojanek@adacore.com>
+
+ * exp_ch9.adb (Build_Barrier_Function): Refine type of a
+ protected type entity.
+ (Is_Pure_Barrier): Fix style.
+
+2021-04-28 Bob Duff <duff@adacore.com>
+
+ * exp_ch3.adb (Simple_Init_Defaulted_Type): Simplify the code,
+ and always use OK_Convert_To, rather than Unchecked_Convert_To
+ and Convert_To.
+
+2021-04-28 Arnaud Charlet <charlet@adacore.com>
+
+ * sem_ch3.adb (Analyze_Object_Declaration): Remove dead code.
+ * ali.ads, ali.adb (Scan_ALI): Remove unused parameters.
+ Remove unused code related to Xref lines.
+ (Get_Typeref): Removed, no longer used.
+
+2021-04-28 Arnaud Charlet <charlet@adacore.com>
+
+ * exp_attr.adb (Build_Array_VS_Func, Build_Record_VS_Func,
+ Expand_N_Attribute_Reference): Use Get_Fullest_View instead of
+ Validated_View.
+ (Build_Record_VS_Func): Adjust to keep using Validated_View.
+ (Expand_N_Attribute_Reference) [Valid]: Use
+ Small_Integer_Type_For to allow for more compile time
+ evaluations.
+ * sem_util.adb (Cannot_Raise_Constraint_Error): Add more precise
+ support for N_Indexed_Component and fix support for
+ N_Selected_Component which wasn't completely safe.
+ (List_Cannot_Raise_CE): New.
+ * libgnat/i-cobol.adb (Valid_Packed): Simplify test to address
+ new GNAT warning.
+
+2021-04-28 Arnaud Charlet <charlet@adacore.com>
+
+ * .gitignore: New.
+ * doc/share/conf.py: Add Python 3 compatibility.
+ * doc/share/gnat.sty: Add missing file.
+
+2021-04-28 Richard Wai <richard@annexi-strayline.com>
- * gcc-interface/utils2.c: Include builtins.h.
- (known_alignment) <ADDR_EXPR>: Use DECL_ALIGN for DECL_P operands
- and get_object_alignment for the rest.
+ * libgnat/a-cohase.ads (Cursor): Synchronize comments for the Cursor
+ type definition to be consistent with identical definitions in other
+ container packages. Add additional comments regarding the importance of
+ maintaining the "Position" component for predefined equality.
+ * libgnat/a-cohama.ads (Cursor): Likewise.
+ * libgnat/a-cihama.ads (Cursor): Likewise.
+ * libgnat/a-cohase.adb (Find, Insert): Ensure that Cursor objects
+ always have their "Position" component set to ensure predefined
+ equality works as required.
+ * libgnat/a-cohama.adb (Find, Insert): Likewise.
+ * libgnat/a-cihama.adb (Find, Insert): Likewise.
-2020-05-08 Eric Botcazou <ebotcazou@adacore.com>
+2021-04-28 Eric Botcazou <ebotcazou@adacore.com>
- * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Force at
- least the unit size for an aliased object of a constrained nominal
- subtype whose size is variable.
+ * gcc-interface/decl.c (gnat_to_gnu_subprog_type): Do not demote a
+ const or pure function because of a parameter whose type is pointer
+ to function.
+ * gcc-interface/trans.c (Call_to_gnu): Do not put back a conversion
+ between an actual and a formal that are unconstrained array types.
+ (gnat_gimplify_expr) <CALL_EXPR>: New case.
+ * gcc-interface/utils2.c (build_binary_op): Do not use |= operator.
+ (gnat_stabilize_reference_1): Likewise.
+ (gnat_rewrite_reference): Likewise.
+ (build_unary_op): Do not clear existing TREE_CONSTANT on the result.
+ (gnat_build_constructor): Also accept the address of a constant
+ CONSTRUCTOR as constant element.
-2020-05-08 Eric Botcazou <ebotcazou@adacore.com>
+2021-04-28 Eric Botcazou <ebotcazou@adacore.com>
- * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Deal
- with artificial maximally-sized types designed by access types.
- * gcc-interface/utils.c (packable_type_hash): New structure.
- (packable_type_hasher): Likewise.
- (packable_type_hash_table): New hash table.
- (init_gnat_utils): Initialize it.
- (destroy_gnat_utils): Destroy it.
- (packable_type_hasher::equal): New method.
- (hash_packable_type): New static function.
- (canonicalize_packable_type): Likewise.
- (make_packable_type): Make sure not to use too small a type for the
- size of the new fields. Canonicalize the type if it is named.
+ * gcc-interface/trans.c (is_array_of_scalar_type): New predicate.
+ (find_decls_r): New function.
+ (return_slot_opt_for_pure_call_p): New predicate.
+ (Call_to_gnu): Do not create a temporary for the return value if the
+ parent node is an aggregate. If there is a target, try to apply the
+ return slot optimization to regular calls to pure functions returning
+ an array of scalar type.
-2020-05-08 Eric Botcazou <ebotcazou@adacore.com>
+2021-04-28 Eric Botcazou <ebotcazou@adacore.com>
- * gcc-interface/trans.c (Raise_Error_to_gnu): Always compute a lower
- bound and an upper bound for use by the -gnateE switch for range and
- comparison operators.
+ * gcc-interface/trans.c (language_function): Add comment.
+ (loop_info_d): Add fndecl and invariants fields.
+ (find_loop_for): Test fndecl instead of the context of var.
+ (find_loop): New function.
+ (Regular_Loop_to_gnu): Fold back into...
+ (Loop_Statement_to_gnu): ...this. Emit invariants on entry, if any.
+ (gnat_to_gnu) <N_Selected_Component>: Record nonconstant invariant
+ offset computations in loops when optimization is enabled.
+ * gcc-interface/utils2.c (gnat_invariant_expr): Handle BIT_AND_EXPR.
-2020-05-08 Eric Botcazou <ebotcazou@adacore.com>
+2021-04-20 Martin Liska <mliska@suse.cz>
- * gcc-interface/decl.c (gnat_to_gnu_param): Do not make a variant of
- the type in LTO mode.
+ * gnatvsn.ads: Bump Library_Version to 12.
-2020-05-04 Mikael Pettersson <mikpelinux@gmail.com>
+2021-04-13 Eric Botcazou <ebotcazou@adacore.com>
- PR bootstrap/94918
- * mingw32.h: Prevent windows.h from including emmintrin.h on Cygwin64.
- * s-oscons-tmplt.c (Serial_Port_Descriptor): Use System.Win32.HANDLE
- also on Cygwin.
+ * gcc-interface/misc.c (gnat_init): Set default range bits to 0.
+ * gcc-interface/trans.c (extract_encoding): Delete.
+ (decode_name): Likewise.
+ (File_Name_to_gnu): New function.
+ (gigi): Call it to translate file names. Replace assertion on
+ 1-1 mapping between files and line maps with conditional error.
-2020-03-11 Richard Wai <richard@annexi-strayline.com>
+2021-04-11 Gerald Pfeifer <gerald@pfeifer.com>
- * gcc-interface/decl.c (gnat_to_gnu_entity): Also test Is_Public on
- the Alias of the entitiy, if it is present, in the main assertion.
+ * gnat_ugn.texi (Top): Avoid invalid "up" link.
-2020-02-06 Alexandre Oliva <oliva@adacore.com>
+2021-03-29 Eric Botcazou <ebotcazou@adacore.com>
- * raise-gcc.c (personality_body) [__ARM_EABI_UNWINDER__]:
- Initialize barrier_cache.sp when ending phase1.
+ PR ada/99802
+ * freeze.adb (Is_Full_Access_Aggregate): Call Is_Full_Access_Object
+ on the name of an N_Assignment_Statement to spot full access.
-2020-01-04 Eric Botcazou <ebotcazou@adacore.com>
+2021-03-10 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/decl.c (gnat_to_gnu_entity): Build a TYPE_STUB_DECL
+ for the main variant of an enumeration type declared as volatile.
+
+2021-03-09 Mikael Pettersson <mikpelinux@gmail.com>
+
+ * raise-gcc.c: On Cygwin include mingw32.h to prevent
+ windows.h from including x86intrin.h or emmintrin.h.
+
+2021-03-05 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/99264
+ * init.c (__gnat_alternate_sta) [Linux]: Remove preprocessor test on
+ MINSIGSTKSZ and bump size to 32KB.
+ * libgnarl/s-osinte__linux.ads (Alternate_Stack_Size): Bump to 32KB.
+
+2021-03-02 Mikael Pettersson <mikpelinux@gmail.com>
+
+ PR bootstrap/98590
+ * cstreams.c: Ensure fileno_unlocked() is visible on Cygwin.
+
+2021-03-02 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/99095
+ * sem_ch8.adb (Check_Constrained_Object): Restrict again the special
+ optimization for limited types to non-array types except in the case
+ of an extended return statement.
+
+2021-03-02 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/99020
+ * sem_ch3.adb (Build_Discriminated_Subtype): Set the Cloned_Subtype
+ only if the type is not private.
+
+2021-02-26 YunQiang Su <yunqiang.su@cipunited.com>
+
+ PR ada/98996
+ * Makefile.rtl: <mips*-*-linux*>
+ add 128Bit operation file for MIPS N64 and N32 to
+ LIBGNAT_TARGET_PAIRS and EXTRA_GNATRTL_NONTASKING_OBJS
+
+2021-02-12 Arnaud Charlet <charlet@adacore.com>
+
+ * repinfo.ads, repinfo.adb (*SO_Ref*): Restore.
+
+2021-02-03 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/decl.c (components_to_record): If the first component
+ with rep clause is the _Parent field with variable size, temporarily
+ set it aside when computing the internal layout of the REP part again.
+ * gcc-interface/utils.c (finish_record_type): Revert to taking the
+ maximum when merging sizes for all record types with rep clause.
+ (merge_sizes): Put SPECIAL parameter last and adjust recursive calls.
+
+2021-02-03 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Make the
+ two fields of the fat pointer type addressable, and do not make the
+ template type read-only.
+ <E_Record_Type>: If the type has discriminants mark it as may_alias.
+ * gcc-interface/utils.c (make_dummy_type): Likewise.
+ (build_dummy_unc_pointer_types): Likewise.
+
+2021-01-26 Marius Hillenbrand <mhillen@linux.ibm.com>
+
+ PR ada/98228
+ * gcc-interface/utils.c (maybe_pad_type): Test the size of the new
+ packable type instead of its alignment for addressability's sake.
+
+2021-01-25 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/trans.c (make_covariant_thunk): Set the DECL_CONTEXT
+ of the parameters and do not set TREE_PUBLIC on the thunk.
+ (maybe_make_gnu_thunk): Pass the alias to the covariant thunk.
+ * gcc-interface/utils.c (finish_subprog_decl): Set the DECL_CONTEXT
+ of the parameters here...
+ (begin_subprog_body): ...instead of here.
+
+2021-01-19 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/98740
+ * gcc-interface/trans.c (add_decl_expr): Always mark TYPE_ADA_SIZE.
+
+2021-01-14 Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+ PR ada/98595
+ * Makefile.rtl (LIBGNAT_TARGET_PAIRS) <riscv*-*-rtems*>: Use
+ wraplf version of Aux_Long_Long_Float.
+
+2021-01-03 Eric Botcazou <ebotcazou@adacore.com>
* gnatvsn.ads: Bump copyright year.
-2020-01-01 Jakub Jelinek <jakub@redhat.com>
+2021-01-01 Jakub Jelinek <jakub@redhat.com>
+
+ * gnat_ugn.texi: Bump @copying's copyright year.
+ * gnat_rm.texi: Likewise.
+
+2021-01-01 Jakub Jelinek <jakub@redhat.com>
- Update copyright years.
+ * ChangeLog-2020: Rotate ChangeLog. New file.
- * gnat_ugn.texi: Bump @copying's copyright year.
- * gnat_rm.texi: Likewise.
\f
-Copyright (C) 2020 Free Software Foundation, Inc.
+Copyright (C) 2021 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright