| 2024-12-22 Samuel Thibault <samuel.thibault@ens-lyon.org> |
| |
| * libgnat/system-gnu.ads: Set Max_Priority to 60. |
| |
| 2024-12-22 Samuel Thibault <samuel.thibault@ens-lyon.org> |
| |
| * s-oscons-tmplt.c [__GNU__] (_XOPEN_SOURCE, _BSD_SOURCE): Define. |
| [__GNU__]: Include <pthread.h> and <signal.h> |
| [__GNU__]: Set MSG_Forced_Flags to "MSG_NOSIGNAL". |
| [__GNU__]: Define SIZEOF_sigset. |
| [__GNU__]: Define PTHREAD_*SIZE |
| |
| 2024-12-18 Simon Wright <simon@pushface.org> |
| |
| PR target/117538 |
| * libgnat/s-trasym.adb (Symbolic_Traceback): Prepend the load |
| address of the executable if it is not null. |
| |
| 2024-12-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/118011 |
| * gcc-interface/misc.cc (gnat_post_options): Test |
| !OPTION_SET_P (flag_short_enums) rather than flag_short_enums == 2. |
| |
| 2024-12-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/utils2.cc (compare_elmt_bitpos): Deal specially with |
| 0-sized components when the bit position is the same. |
| |
| 2024-12-13 Tom Tromey <tromey@adacore.com> |
| |
| * gcc-interface/decl.cc (gnat_to_gnu_entity): Pass artificial_p to |
| create_type_decl. |
| |
| 2024-12-13 Javier Miranda <miranda@adacore.com> |
| |
| * sem.ads (Inside_Preanalysis_Without_Freezing): Removed. |
| * sem.adb (Semantics): Remove Inside_Preanalysis_Without_Freezing. |
| * sem_ch6.adb (Preanalyze_Formal_Expression): Removed. |
| * sem_ch3.ads (Preanalyze_Assert_Expression): Add documentation. |
| (Preanalyze_Spec_Expression): Add documentation. |
| * sem_ch3.adb (Preanalyze_Assert_Expression) Code cleanup. |
| (Preanalyze_Default_Expression): Code cleanup. |
| * sem_res.ads (Preanalyze_With_Freezing_And_Resolve): Removed. |
| * sem_res.adb (Preanalyze_With_Freezing_And_Resolve): Removed. |
| (Preanalyze_And_Resolve): Code cleanup. |
| * freeze.adb (Freeze_Entity): No freeze under strict preanalysis. |
| (Freeze_Expression): Code cleanup. |
| (Freeze_Expr_Types): Replace call to Preanalyze_Spec_Expression by |
| strict preanalysis during preanalysis of a duplicate of the |
| expression performed to have available the minimum decoration |
| to locate referenced unfrozen types. |
| * sem_aggr.adb (Resolve_Array_Aggregate): Minor code cleanup. |
| * sem_attr.adb (Resolve_Attribute): Add documentation. |
| * sem_ch13.adb (Resolve_Aspect_Expressions[Aspect_Default_Value]): |
| Replace call to Preanalyze_Spec_Expression by Preanalyze_And_Resolve. |
| (Resolve_Aspect_Expressions[Aspect_Default_Component_Value]): Ditto. |
| * sem_ch8.adb (Set_Entity_Or_Discriminal): Code cleaup. |
| * sem_prag.adb (Analyze_Initial_Condition_In_Decl_Part): Replace |
| call to Preanalyze_Assert_Expression by call to Preanalyze_And_Resolve. |
| (Analyze_Pre_Post_Condition): Replace call to Preanayze_Spec_Expression |
| by call to Preanalyze_Assert_Expression. |
| * sem_util.ads (In_Pragma_Expression): Adding a formal to extend the |
| functionality of this subprogram. |
| (Within_Static_Expression): New subprogram. |
| * sem_util.adb (In_Pragma_Expression): Ditto. |
| (Within_Static_Expression): Ditto. |
| * checks.adb (Install_Null_Excluding_Check): No check during preanalysis. |
| (Install_Primitive_Elaboration_Check): Ditto. |
| |
| 2024-12-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.ads (Is_Delayed_Conditional_Expression): Move to... |
| * exp_aggr.adb (Is_Delayed_Conditional_Expression): Move to... |
| (Convert_To_Assignments): Use Delay_Conditional_Expressions_Between. |
| * exp_ch3.adb (Expand_N_Object_Declaration): Reset the Analyzed flag |
| by means of Unanalyze_Delayed_Conditional_Expression. |
| * exp_ch4.adb (Expand_N_Case_Expression): Likewise. Delay expanding |
| the expression if it is in the context of a simple return statement. |
| (Expand_N_If_Expression): Likewise. |
| (Expand_N_Qualified_Expression): Fold identical operand. Distribute |
| the expression into an operand that is a conditional expression with |
| expansion delayed. |
| (Process_Transient_In_Expression): Also test the parent node for the |
| presence of a simple return statement. |
| * exp_ch6.adb (Expand_Ctrl_Function_Call): Test the unconditional |
| parent node for the presence of a simple return statement. |
| * exp_util.ads (Delayed Expansion): New description. |
| (Delay_Conditional_Expressions_Between): New procedure. |
| (Is_Delayed_Conditional_Expression): ...here. |
| (Unanalyze_Delayed_Conditional_Expression): New procedure. |
| (Unconditional_Parent): New function. |
| * exp_util.adb (Find_Hook_Context): Take into account conditional |
| statements coming from conditional expressions. |
| (Within_Conditional_Expression): Likewise. |
| (Delay_Conditional_Expressions_Between): New procedure. |
| (Is_Delayed_Conditional_Expression): ...here. |
| (Unanalyze_Delayed_Conditional_Expression): New procedure. |
| (Unconditional_Parent): New function. |
| * sinfo.ads (Expansion_Delayed): Adjust description. |
| |
| 2024-12-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_aggr.adb (Case_Bounds): Fix indentation. |
| * sem_case.adb (Choice_Bounds): Likewise. |
| * libgnat/s-dourea.ads (Duuble_T): Likewise. |
| * libgnat/s-excmac__arm.ads (Cleanup_Cache_Type): Likewise. |
| |
| 2024-12-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * atree.adb, diagnostics-pretty_emitter.adb, |
| diagnostics-utils.adb, einfo-utils.adb, errout.adb, exp_aggr.adb, |
| exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_imgv.adb, |
| exp_pakd.adb, exp_prag.adb, exp_unst.adb, exp_util.adb, gnatchop.adb, |
| gnatlink.adb, inline.adb, itypes.adb, osint.adb, rtsfind.adb, |
| sem_aggr.adb, sem_ch10.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, |
| sem_ch4.adb, sem_dim.adb, sem_elab.adb, sem_prag.adb, sem_util.adb, |
| sprint.adb, switch-m.adb, table.adb: Fix code indentation. |
| |
| 2024-12-13 Marc Poulhiès <poulhies@adacore.com> |
| |
| * libgnat/a-tifiio.adb (OK_Get_32): Use 'Base. |
| (OK_Put_32, OK_Get_64, OK_Put_64): Likewise. |
| * libgnat/a-tifiio__128.adb (OK_Get_32, OK_Put_32, OK_Get_64) |
| (OK_Put_64, OK_Get_128, OK_Put_128): Likewise. |
| * libgnat/a-wtfiio.adb (OK_Get_32): Likewise. |
| (OK_Put_32, OK_Get_64, OK_Put_64): Likewise. |
| * libgnat/a-wtfiio__128.adb (OK_Get_32, OK_Put_32, OK_Get_64) |
| (OK_Put_64, OK_Get_128, OK_Put_128): Likewise. |
| * libgnat/a-ztfiio.adb (OK_Get_32): Likewise. |
| (OK_Put_32, OK_Get_64, OK_Put_64): Likewise. |
| * libgnat/a-ztfiio__128.adb (OK_Get_32, OK_Put_32, OK_Get_64) |
| (OK_Put_64, OK_Get_128, OK_Put_128): Likewise. |
| |
| 2024-12-13 Javier Miranda <miranda@adacore.com> |
| |
| * sem_res.adb (Report_Ambiguous_Argument): Code cleanup. |
| (Resolve): Code cleanup. |
| |
| 2024-12-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_util.adb (Is_Effectively_Volatile, |
| Is_Effectively_Volatile_For_Reading): Implement new rule for |
| record types. |
| * sem_util.ads (Is_Effectively_Volatile, |
| Is_Effectively_Volatile_For_Reading): Adjust comments. |
| |
| 2024-12-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_util.adb (Is_Effectively_Volatile, |
| Is_Effectively_Volatile_For_Reading): Remove Ignore_Protected |
| parameter. |
| (Is_Effectively_Volatile_Object, |
| Is_Effectively_Volatile_Object_For_Reading): Remove |
| single-parameter wrappers that are needed to instantiate |
| generic subprogram. |
| * sem_util.ads (Is_Effectively_Volatile, |
| Is_Effectively_Volatile_For_Reading): Remove parameter; adjust |
| comment. |
| |
| 2024-12-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch4.adb (Expand_Allocator_Expression): Do not preventively |
| call Remove_Side_Effects on the expression in the nonlimited |
| by-reference case. Always call Build_Allocate_Deallocate_Proc |
| in the default case. |
| * exp_ch6.adb (Expand_Ctrl_Function_Call): Bail out if the call |
| is the qualified expression of an allocator. |
| * exp_util.adb (Build_Allocate_Deallocate_Proc): Replace all the |
| calls to Relocate_Node by calls to Duplicate_Subexpr_No_Checks. |
| |
| 2024-12-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Do not call again |
| Preanalyze_And_Resolve on the expression. |
| |
| 2024-12-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_aggr.adb (Resolve_Aggr_Expr): Always perform a full analysis |
| of the expression in SPARK mode. |
| |
| 2024-12-13 Ronan Desplanques <desplanques@adacore.com> |
| |
| * doc/gnat_rm/gnat_language_extensions.rst: Fix typo. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-12-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch6.adb (Expand_Call_Helper): Also create a temporary in the |
| case of a noncontrolled user-defined indexing. |
| |
| 2024-12-13 Ronan Desplanques <desplanques@adacore.com> |
| |
| * doc/gnat_rm/standard_library_routines.rst: Fix documentation. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-12-13 Ronan Desplanques <desplanques@adacore.com> |
| |
| * gnat2.gpr: Add library units to coverage exclusion list. |
| |
| 2024-12-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.adb (Build_Array_Aggr_Code): Remove obsolete comment. |
| (Convert_To_Positional): Remove Ctyp local variable. |
| (Is_Static_Element): Remove Dims parameter and do not preanalyze the |
| expression there. |
| (Expand_Array_Aggregate): Make Ctyp a constant. |
| (Compute_Others_Present): Do not preanalyze the expression there. |
| * sem_aggr.adb (Resolve_Array_Aggregate): New Ctyp constant. Use it |
| throughout the procedure to denote the component type. |
| (Resolve_Aggr_Expr): Always preanalyze a copy of the expression in |
| an iteration context. Preanalyze it directly when the expander is |
| active and the choice may cover multiple components. Otherwise, |
| fully analyze it. |
| Do not reanalyze an iterated component association with an others |
| choice either when there are positional components. |
| (Resolve_Iterated_Component_Association): Do not remove references |
| from the expression after invoking Resolve_Aggr_Expr on it. |
| |
| 2024-12-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnat/s-imager.adb (Set_Image_Real): In the case where a double |
| integer is needed, do not implicit assume that it can contain up to |
| 'Digits of the floating-point type. |
| |
| 2024-12-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnat/s-imager.adb (Maxscaling): Change to Natural constant and |
| add Maxdigs to value. |
| |
| 2024-12-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/117996 |
| * libgnat/a-ngrear.adb (Jacobi): Remove default value for |
| Compute_Vectors formal parameter. |
| (Sort_Eigensystem): Add Compute_Vectors formal parameter. Do not |
| modify the Vectors if Compute_Vectors is False. |
| (Eigensystem): Pass True as Compute_Vectors to Sort_Eigensystem. |
| (Eigenvalues): Pass False as Compute_Vectors to Sort_Eigensystem. |
| |
| 2024-12-12 Piotr Trojanek <trojanek@adacore.com> |
| |
| * par-ch5.adb (Test_Statement_Required): Fix comment. |
| |
| 2024-12-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.adb (Convert_Aggr_In_Object_Decl): Clear the component |
| referenced on the right-hand side of the first assignment generated |
| for a bit-packed array, if any. |
| (Expand_Array_Aggregate): Do not exclude aggregates of bit-packed |
| array types in object declarations from in-place expansion. |
| * sem_eval.adb (Eval_Indexed_Component): Do not attempt a constant |
| evaluation for a bit-packed array type. |
| |
| 2024-12-12 Ronan Desplanques <desplanques@adacore.com> |
| |
| * sem_ch3.adb (Access_Subprogram_Declaration): Replace assertion with |
| more defensive code. |
| |
| 2024-12-12 Viljar Indus <indus@adacore.com> |
| |
| * errout.adb (Write_JSON_Location): Avoid going through |
| symbolic links when printing the full name. |
| |
| 2024-12-12 Ronan Desplanques <desplanques@adacore.com> |
| |
| * libgnat/s-imager.adb (Image_Floating_Point): Tweak display of |
| invalid floating point values. |
| |
| 2024-12-12 Ronan Desplanques <desplanques@adacore.com> |
| |
| * sem_ch3.adb (Access_Definition): Remove test for task entry context. |
| * sem_ch6.adb (Process_Formals): Add improved test for task entry |
| context. |
| |
| 2024-12-12 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Move call |
| to Comes_From_Source to the outer if-statement. |
| |
| 2024-12-12 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Only set |
| flag Is_Null_Loop when loop parameter specification comes from |
| a loop and not from a quantified expression. |
| |
| 2024-12-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.adb (Expand_Array_Aggregate): Do not exclude aggregates |
| of bit-packed array types in allocators from in-place expansion. |
| |
| 2024-12-12 Sebastian Poeplau <poeplau@adacore.com> |
| |
| * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Move |
| the LLVM chapter one level up. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-12-12 Ronan Desplanques <desplanques@adacore.com> |
| |
| * sem_eval.ads (Is_OK_Static_Expression_Of_Type): New function. |
| * sem_eval.adb (Is_OK_Static_Expression_Of_Type): Likewise. |
| * sem_ch13.adb (Check_Expr_Is_OK_Static_Expression): Use new function. |
| * sem_prag.adb (Check_Expr_Is_OK_Static_Expression): Likewise. |
| * sem_ch3.adb (Apply_External_Initialization): Accept static strings |
| for the parameter. |
| |
| 2024-12-12 Ronan Desplanques <desplanques@adacore.com> |
| |
| * libgnat/a-tifiio.adb: Fix comment. |
| * libgnat/a-tifiio__128.adb: Likewise. |
| * libgnat/s-imaged.ads (Image_Decimal): Likewise. |
| * libgnat/s-imagef.ads (Image_Fixed): Likewise. |
| * libgnat/s-imager.ads (Image_Fixed_Point): Likewise. |
| * libgnat/s-imde32.ads (Image_Decimal32): Likewise. |
| * libgnat/s-imfi64.ads (Image_Fixed64): Likewise. |
| * libgnat/s-imgcha.adb (Image_Character): Likewise. |
| * libgnat/s-valuer.adb (Scan_Raw_Real): Likewise. |
| * sem_attr.adb (Eval_Attribute): Likewise. |
| |
| 2024-12-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_attr.adb (Eval_Attribute): Treat the various size attributes |
| like Component_Size for nonstatic array types. |
| |
| 2024-12-12 Javier Miranda <miranda@adacore.com> |
| |
| * sem_res.adb (Is_Ambiguous_Operand): Add missing decoration of |
| the operand when it is labeled overloaded but has just one |
| interpretation. |
| |
| 2024-12-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Add Target formal |
| parameter and check that it is not a bit-aligned component or slice. |
| Return False in CodePeer mode as well. |
| (Build_Array_Aggr_Code): Remove redundant tests done in conjunction |
| with a call to Aggr_Assignment_OK_For_Backend. |
| (Expand_Array_Aggregate): Likewise. Add a couple of comments and |
| improve formatting. |
| |
| 2024-12-12 Ronan Desplanques <desplanques@adacore.com> |
| |
| * exp_attr.adb (Expand_N_Attribute_Reference): Fix computation of type |
| category. |
| |
| 2024-12-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * aspects.ads (Is_Representation_Aspect): True for External_Name. |
| (Aspect_Delay): Use Rep_Aspect for External_Name, Link_Name and |
| Linker_Section. |
| * einfo.ads (Initialization_Statements): Document extended usage. |
| * exp_util.adb (Needs_Initialization_Statements): Return True for |
| all delayed aspects. |
| * freeze.adb (Check_Address_Clause): Do not move the initialization |
| expression here... |
| (Freeze_Object_Declaration): ...but here instead, as well as for all |
| delayed aspects. Remove test for pragma Linker_Section. |
| * sem_ch13.adb (Analyze_One_Aspect): Do not delay in the Rep_Aspect |
| case if the expression is a string literal. |
| |
| 2024-12-12 Ronan Desplanques <desplanques@adacore.com> |
| |
| * libgnat/s-valuti.ads (Scan_Sign): Fix documentation comment. |
| |
| 2024-12-12 Bob Duff <duff@adacore.com> |
| |
| * exp_util.adb (Build_Task_Image_Decls): |
| Deal properly with the case of an expanded name. |
| Minor cleanup: use a case statement instead of if/elsif chain. |
| |
| 2024-12-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.adb (Traverse_Proc_For_Aggregate): New generic procedure. |
| (Replace_Discriminants): Instantiate it instead of Traverse_Proc. |
| (Replace_Self_Reference): Likewise. |
| (Convert_To_Assignments): Remove limitation for nested aggregates |
| that contain self-references. |
| |
| 2024-12-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch4.adb (Expand_N_Case_Expression): Remove obsolete comment |
| about C code generation. Do not create a useless target type if |
| the parent statement is rewritten instead of the expression. Use |
| a nonnull accesss type for the expansion done for composite types. |
| (Expand_N_If_Expression): Simplify the expansion when the condition |
| is known at compile time. Apply the expansion done for by-reference |
| types to indefinite types and remove the obsolete special case for |
| unconstrained array types Use a nonnull access type in this case. |
| Rename New_If local variable to If_Stmt for the sake of consistency. |
| |
| 2024-12-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch7.adb (Make_Address_For_Finalize): Look at the underlying |
| subtype to detect the unconstrained array type case. |
| * sprint.adb (Write_Itype) <E_Private_Subtype>: New case. |
| |
| 2024-12-12 Ronan Desplanques <desplanques@adacore.com> |
| |
| * doc/gnat_rm/gnat_language_extensions.rst: Update |
| External_Initialization section. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-12-12 Ronan Desplanques <desplanques@adacore.com> |
| |
| * fname.adb (Is_Predefined_File_Name): Tweak test. |
| |
| 2024-12-12 Ronan Desplanques <desplanques@adacore.com> |
| |
| * sem_ch3.adb (Apply_External_Initialization): Restrict File lookup. |
| |
| 2024-12-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * einfo.ads (Initialization_Statements): Document usage precisely. |
| * exp_aggr.adb (Convert_Aggr_In_Object_Decl): Do not create a |
| compound statement in most cases, do it only if necessary. |
| * exp_ch3.adb (Expand_N_Object_Declaration): Remove a couple of |
| useless statements. |
| * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): |
| Use the Initialization_Statements mechanism if necessary. |
| * exp_ch7.adb: Remove clauses for Aspects package. |
| (Insert_Actions_In_Scope_Around): Use the support code of Exp_Util |
| for the Initialization_Statements mechanism. |
| * exp_prag.adb (Undo_Initialization): Remove obsolete code. |
| * exp_util.ads (Move_To_Initialization_Statements): New procedure. |
| (Needs_Initialization_Statements): New function. |
| * exp_util.adb (Move_To_Initialization_Statements): New procedure. |
| (Needs_Initialization_Statements): New predicate. |
| |
| 2024-12-12 Viljar Indus <indus@adacore.com> |
| |
| * exp_ch6.adb (Expand_Ctrl_Function_Call): Avoid expansion |
| of controlled types when the LHS is a function call. |
| |
| 2024-12-12 Daniel King <dmking@adacore.com> |
| |
| * init.c (__gnat_error_handler): Handle SIGPROT |
| (__gnat_install_handler): Install SIGPROT handler |
| |
| 2024-12-12 Daniel King <dmking@adacore.com> |
| |
| * libgnat/i-cheri-exceptions.ads: Export CHERI exception IDs. |
| |
| 2024-12-12 Johannes Kliemann <kliemann@adacore.com> |
| |
| * exp_ch9.adb (Expand_N_Task_Type_Declaration): Take |
| Minimum_Stack_Size into account when preallocating task stacks. |
| * rtsfind.ads (RE_Id, RE_Unit_Table): Add RE_Minimum_Stack_Size. |
| |
| 2024-12-11 Samuel Thibault <samuel.thibault@ens-lyon.org> |
| |
| * Makefile.rtl: Add x86_64-pc-gnu section. |
| |
| 2024-12-11 Samuel Thibault <samuel.thibault@ens-lyon.org> |
| |
| * libgnat/system-gnu.ads: New file. |
| * Makefile.rtl (x86-gnuhurd): Use libgnat/system-gnu.ads instead of |
| libgnat/system-freebsd.ads. |
| |
| 2024-12-11 Samuel Thibault <samuel.thibault@ens-lyon.org> |
| |
| * libgnarl/a-intnam__freebsd.ads: Rename to... |
| * libgnarl/a-intnam__bsd.ads: ... new file. |
| * libgnarl/a-intnam__dragonfly.ads: Remove file. |
| * Makefile.rtl (x86-kfreebsd, x86-gnuhurd, x86_64-kfreebsd, |
| aarch64-freebsd, x86-freebsd, x86_64-freebsd): Use |
| libgnarl/a-intnam__bsd.ads instead of libgnarl/a-intnam__freebsd.ads. |
| (x86_64-dragonfly): Use libgnarl/a-intnam__bsd.ads instead of |
| libgnarl/a-intnam__dragonfly.ads. |
| |
| 2024-11-26 Eric Botcazou <ebotcazou@adacore.come> |
| |
| * gcc-interface/trans.cc (Attribute_to_gnu) <Attr_Access>: Do not |
| pass ATTR_ADDR_EXPR to build_unary_op for 'Unrestricted_Access. |
| |
| 2024-11-26 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch3.adb (Expand_N_Object_Declaration): Do not insert the tag |
| assignment there if the object has the Address aspect. |
| * exp_ch7.adb: Add clauses for Aspect package. |
| (Build_Finalizer.Process_Object_Declaration): Deal with an object |
| with delayed freezing. |
| (Insert_Actions_In_Scope_Around): If the target is the declaration |
| of an object with address clause or aspect, move all the statements |
| that have been inserted after it into the Initialization_Statements |
| list of the object. |
| * freeze.adb (Check_Address_Clause): Do not reassign the tag here, |
| instead set the appropriate flag on the assignment statement. |
| |
| 2024-11-26 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_res.adb (Valid_Conversion): Do not initialize Opnd_Type before |
| calling Get_Corresponding_Mutably_Tagged_Type_If_Present. |
| |
| 2024-11-26 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch13.adb (Analyze_Aspect_Export_Import): Add explicit mention |
| of the declaration in the error message for the Import. |
| * sem_prag.adb (Process_Extended_Import_Export_Object_Pragma): Also |
| test Has_Init_Expression on the declaration node for Import_Object |
| and use the same wording as that of Import. |
| (Process_Import_Or_Interface): Also test Has_Init_Expression on the |
| declaration node for Import. |
| |
| 2024-11-26 Javier Miranda <miranda@adacore.com> |
| |
| * sem_ch2.adb (Check_Ambiguous_Call): Replace code factorized |
| code by call to the new subprogram Is_Ambiguous_Operand. |
| * sem_res.ads (Is_Ambiguous_Operand): New subprogram that |
| factorizes previous code in Check_Ambiguous_Call and |
| Valid_Conversion. |
| * sem_res.adb (Is_Ambiguous_Operand): New subprogram. |
| (Valid_Tagged_Conversion): Replace factorized code by call to |
| the new subprogram Is_Ambiguous_Operand. |
| (Report_Error_N): New subprogram. |
| (Report_Error_NE): New subprogram. |
| (Report_Interpretation): New subprogram. |
| (Conversion_Error_N): Removed; replaced by Report_Error_N. |
| (Conversion_Error_NE): Removed; replaced by Report_Error_NE. |
| (Valid_Conversion): Update Opnd_Type after the call to |
| Is_Ambiguous_Operand in the overloaded case. |
| |
| 2024-11-26 Viljar Indus <indus@adacore.com> |
| |
| * errout.adb: Remove implmentation of Write_Error_Summary. |
| * erroutc.adb: Add implemenetation of Write_Error_Summary. |
| * erroutc.ads: Add spec of Write_Error_Summary. |
| * errutil.adb: Remove implementation for writing the error summary. |
| |
| 2024-11-26 Viljar Indus <indus@adacore.com> |
| |
| * errout.adb: Remove implemntation of Set_Msg_Insertion_Column. |
| * erroutc.adb: Add implementation of Set_Msg_Insertion_Column. |
| * erroutc.ads: Add spec of Set_Msg_Insertion_Column. |
| * errutil.adb: Remove implementation of Set_Msg_Insertion_Column. |
| |
| 2024-11-26 Viljar Indus <indus@adacore.com> |
| |
| * errout.adb: Set Warn_Err as true if Is_Runtime_Error was |
| set in the error message. |
| * erroutc.adb: Remove instances of Warn_Runtime_Raise. |
| * erroutc.ads: Likewise. |
| * errutil.adb: Likewise. |
| |
| 2024-11-26 Viljar Indus <indus@adacore.com> |
| |
| * errout.adb: Use Is_Redundant_Error_Message. |
| * erroutc.adb: Move the common code for checking if a message |
| can be removed to Is_Redundant_Error_Message. |
| * erroutc.ads: Add definition of Is_Redundant_Error_Message. |
| * errutil.adb: Use Is_Redundant_Error_Message. |
| |
| 2024-11-26 Viljar Indus <indus@adacore.com> |
| |
| * errout.ads: Remove Current_Node. |
| * errout.adb: Remove uses of Current_Node. |
| * par-ch6.adb: Same as above. |
| * par-ch7.adb: Same as above. |
| * par-ch9.adb: Same as above. |
| |
| 2024-11-26 Viljar Indus <indus@adacore.com> |
| |
| * err_vars.ads: Remove Raise_Exception_On_Error and |
| Error_Msg_Exception. |
| * errout.ads: Same as above. |
| * errout.adb: Remove uses of Raise_Exception_On_Error and |
| Error_Msg_Exception. |
| * errutil.adb: Same as above. |
| |
| 2024-11-26 Viljar Indus <indus@adacore.com> |
| |
| * diagnostics-converter.adb: Use new enum values instead |
| of the old attributes. |
| * diagnostics-switch_repository.adb: Same as above. |
| * diagnostics-utils.adb: Same as above. |
| * diagnostics.adb: Same as above. |
| * diagnostics.ads: Same as above. |
| * errout.adb: Same as above. |
| * erroutc.adb: Same as above. |
| * erroutc.ads: Remove old attriubtes and replace them |
| with Error_Msg_Kind. |
| * errutil.adb: Same as others. |
| |
| 2024-11-26 Viljar Indus <indus@adacore.com> |
| |
| * errout.adb: Use Output_Msg_Location |
| * erroutc.adb: add common implementation for printing the |
| error message line. |
| * erroutc.ads: Add new method Output_Msg_Location |
| * errutil.adb: use Output_Msg_Location |
| |
| 2024-11-26 Viljar Indus <indus@adacore.com> |
| |
| * diagnostics-converter.adb: Remove uses of Info_Warning type. Use |
| common constructors to simplify implementation. |
| * diagnostics-pretty_emitter.adb: Remove Info_Warning type. |
| * diagnostics-utils.adb: Remove uses of Info_Warning. |
| * diagnostics.adb: Simplify implementation of Primary_Location. |
| * diagnostics.ads: Remove Info_Warning type. |
| |
| 2024-11-26 Jose Ruiz <ruiz@adacore.com> |
| |
| * doc/gnat_ugn/the_gnat_compilation_model.rst: The format of |
| the ali file is documented in lib-writ.ads. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-11-26 Ronan Desplanques <desplanques@adacore.com> |
| |
| * uname.ads (Is_Internal_Unit_Name, Is_Predefined_Unit_Name): Change |
| specifications to take a Unit_Name_Type as input. |
| (Encoded_Library_Unit_Name): New subprogram. |
| (Is_Predefined_Unit_Name): New overloaded subprogram. |
| (Get_External_Unit_Name_String): Make use of new |
| Encoded_Library_Unit_Name subprogram. |
| * uname.adb (Is_Internal_Unit_Name, Is_Predefined_Unit_Name): Adapt |
| bodies to specification changes. |
| * fname-uf.adb (Get_File_Name): Adapt to Uname interface changes. |
| |
| 2024-11-26 Ronan Desplanques <desplanques@adacore.com> |
| |
| * fname-uf.adb (Get_File_Name): Use local name buffers. |
| |
| 2024-11-26 Ronan Desplanques <desplanques@adacore.com> |
| |
| * sem_util.adb (Get_Library_Unit_Name): Improve use of Uname. |
| |
| 2024-11-26 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * freeze.adb: Remove clauses for Exp_Ch3. |
| (Check_Address_Clause): Always reassign the tag for an object of a |
| tagged type if there is an initialization expression. |
| |
| 2024-11-23 Maciej W. Rozycki <macro@orcam.me.uk> |
| |
| * gcc-interface/Make-lang.in (gnattools): Remove $(GCC_PARTS). |
| |
| 2024-11-22 Andrew Pinski <quic_apinski@quicinc.com> |
| |
| PR bootstrap/117737 |
| * gcc-interface/misc.cc (INCLUDE_MEMORY): Remove. |
| * gcc-interface/trans.cc (INCLUDE_MEMORY): Remove. |
| * gcc-interface/utils.cc (INCLUDE_MEMORY): Remove. |
| |
| 2024-11-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/117024 |
| * gcc-interface/utils.cc (flag_isoc2y): New variable. |
| |
| 2024-11-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/117538 |
| PR ada/117708 |
| * Makefile.rtl (GNU Hurd): Add $(TRASYM_DWARF_UNIX_PAIRS). |
| (x86-64 kfreebsd): Likewise. |
| (aarch64 FreeBSD): Likewise. |
| (x86-64 DragonFly): Likewise. |
| (S390 Linux): Likewise and add Linux version of s-tsmona.adb. |
| (Mips Linux): Likewise. |
| (SPARC Linux): Likewise. |
| (HP/PA Linux): Linux. |
| (M68K Linux): Likewise. |
| (SH4 Linux): Likewise. |
| (Alpha Linux): Likewise. |
| (RISC-V Linux): Likewise. |
| |
| 2024-11-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/117538 |
| * Makefile.rtl (GNU Hurd): Add $(TRASYM_DWARF_UNIX_OBJS). |
| (x86-64 kfreebsd): Likewise. |
| (aarch64 FreeBSD): Likewise. |
| (x86-64 DragonFly): Likewise. |
| (S390 Linux): Likewise. |
| (Mips Linux): Likewise. |
| (SPARC Linux): Likewise. |
| (HP/PA Linux): Linux. |
| (M68K Linux): Likewise. |
| (SH4 Linux): Likewise. |
| (Alpha Linux): Likewise. |
| (RISC-V Linux): Likewise. |
| |
| 2024-11-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_util.ads (Within_Case_Or_If_Expression): Rename into... |
| (Within_Conditional_Expression): ...this. |
| * exp_util.adb (Within_Case_Or_If_Expression): Rename into... |
| (Within_Conditional_Expression): ...this. |
| * checks.adb (Install_Null_Excluding_Check): Adjust for renaming. |
| |
| 2024-11-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.adb (Build_Assignment_With_Temporary): Inline into... |
| (Build_Array_Aggr_Code): ...this. Set the Analyzed flag on the |
| relocated aggregate if it is to be handled by the back-end. |
| |
| 2024-11-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch3.adb: Remove clauses for Expander. |
| (Expand_N_Object_Declaration): Remove special processing for delayed |
| aggregates of limited types as initialization expressions. |
| * freeze.adb (Warn_Overlay): Bail out if No_Initialization is set on |
| the declaration node of the entity. |
| * sem_ch3.adb (Delayed_Aspect_Present): Delete. |
| (Expand_N_Object_Declaration): Do not block the resolution of the |
| initialization expression that is an aggregate when the object has |
| an address clause or delayed aspects. |
| |
| 2024-11-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch4.adb (Expand_N_Case_Expression): Remove the test on |
| enclosing predicate function for the return optimization. |
| Rewrite it in the general case to catch all nondynamic predicates. |
| (Expand_N_If_Expression): Remove the test on enclosing predicate |
| function for the return optimization. |
| |
| 2024-11-18 Bob Duff <duff@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_characteristics.rst: |
| Remove Atomic_Synchronization. |
| * doc/gnat_ugn/building_executable_programs_with_gnat.rst: |
| Likewise. |
| * doc/gnat_rm/implementation_defined_pragmas.rst: DRY. |
| Consolidate documentation of Disable/Enable_Atomic_Synchronization. |
| * checks.adb: Comment fix. |
| * exp_util.ads: Likewise. |
| * targparm.ads: Likewise. |
| * types.ads: Likewise. |
| * gnat1drv.adb: Likewise. DRY. |
| * sem_prag.adb (Process_Disable_Enable_Atomic_Sync): |
| Change name of Atomic_Synchronization to start with |
| underscore. |
| (Process_Suppress_Unsuppress): No need to check Comes_From_Source for |
| Atomic_Synchronization anymore; _Atomic_Synchronization can never |
| come from source. (Anyway, it shouldn't be ignored; it should be |
| an error.) |
| * snames.ads-tmpl (Atomic_Synchronization): |
| Change name to start with underscore. |
| * switch-c.adb (Scan_Front_End_Switches): |
| Minor cleanup: Use 'in'. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-11-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_eval.adb (Eval_Indexed_Component): Clear Do_Range_Check on |
| the expressions if Kill_Range_Check is set on the node. |
| |
| 2024-11-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_util.adb (Remove_Init_Call): Rewrite a compound statement in |
| the Initialization_Statements of the variable as a null statement |
| instead of removing it. |
| * freeze.adb (Explode_Initialization_Compound_Statement): Small |
| comment tweaks. |
| |
| 2024-11-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.adb (UI_Are_In_Int_Range): New predicate. |
| (Aggr_Size_OK): Use it. |
| (Flatten): Likewise. |
| (Packed_Array_Aggregate_Handled): Likewise. |
| (Static_Array_Aggregate): Likewise. |
| |
| 2024-11-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * freeze.ads (Explode_Initialization_Compound_Statement): Adjust the |
| description. |
| * freeze.adb (Explode_Initialization_Compound_Statement): If the |
| entity has its freezing delayed, append the initialization actions |
| to its freeze actions. |
| (Freeze_Object_Declaration): Remove commented out code. |
| (Freeze_Entity): Remove bypass for object of anonymous array type. |
| |
| 2024-11-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_sel.ads (Build_Abort_Block): Remove second parameter and |
| rename the third. |
| (Build_Abort_Block_Handler): Fix description. |
| * exp_sel.adb (Build_Abort_Block): Remove second parameter, rename |
| the third and adjust accordingly. |
| * exp_ch9.adb (Expand_N_Asynchronous_Select): Fix the description |
| of the exception handler throughout. Remove Abort_Block_Ent and |
| Hdle local variables. Call Build_Abort_Block consistently to build |
| the abort block and adjust existing calls. |
| |
| 2024-11-18 Steve Baird <baird@adacore.com> |
| |
| * exp_aggr.adb (Convert_To_Positional.Flatten): Avoid raising |
| Constraint_Error in UI_To_Int by testing UI_Is_In_Int_Range first. |
| |
| 2024-11-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.adb (Build_Array_Aggr_Code): Build the simple assignment |
| for the case of an aggregate that can be handled by the back end. |
| (Expand_Array_Aggregate): Adjust description of the processing. |
| Move handling of declaration case to STEP 4 and remove handling of |
| the case of an aggregate that can be processed by the back end. |
| (Late_Expansion): Likewise for the second part. |
| * exp_ch3.adb (Expand_N_Object_Declaration): Deal with a delayed |
| aggregate synthesized for the default initialization, if any. |
| * sem_eval.adb (Eval_Indexed_Component): Bail out for the name of |
| an assignment statement. |
| |
| 2024-11-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.adb (In_Place_Assign_OK): Remove handling of allocators |
| and call Must_Slide instead of implementing the check manually. |
| (Convert_To_Assignments): Adjust outdated comment. |
| (Expand_Array_Aggregate): Move handling of allocator case to STEP 3 |
| and call Must_Slide directly for it. |
| (Must_Slide): Replace tests based on Is_OK_Static_Expression with |
| tests based on Compile_Time_Known_Value. |
| |
| 2024-11-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.adb (Convert_Array_Aggr_In_Allocator): Delete. |
| (Convert_Aggr_In_Allocator): Do not call above procedure. |
| (Late_Expansion): Deal with a target that is the dereference of a |
| prefix with a Storage_Model. Remove an useless actual parameter |
| in the call to Build_Array_Aggr_Code. |
| |
| 2024-11-18 Javier Miranda <miranda@adacore.com> |
| |
| * sem_res.adb (Resolve_Actuals): Add by default a null-exclusion |
| check on the prefix of the call when it is an access-type; it can |
| be disabled using -gnatd_P. |
| * debug.adb (gnatd_P): Update documentation. |
| |
| 2024-11-18 squirek <squirek@adacore.com> |
| |
| * accessibility.adb (Accessibility_Level): Handle the Input attribute |
| case |
| |
| 2024-11-18 Ronan Desplanques <desplanques@adacore.com> |
| |
| * frontend.adb (Frontend): tweak test for predefined main unit. |
| |
| 2024-11-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.cc (elaborate_expression_2): Do not divide and |
| multiply back if the alignment factor is already explicit. |
| |
| 2024-11-14 Steve Baird <baird@adacore.com> |
| |
| * sem_aggr.adb (Resolve_Delta_Aggregate): The rule about |
| discriminant dependent component references in choices applies to |
| both array and record delta aggregates, so check for violations in |
| Resolve_Delta_Aggregate. Call a new procedure, |
| Check_For_Bad_Dd_Component_Choice, for each choice. |
| (Resolve_Delta_Record_Aggregate): Call a new procedure, |
| Check_For_Bad_Overlap, for each pair of choices. |
| |
| 2024-11-14 Ronan Desplanques <desplanques@adacore.com> |
| |
| * bindgen.adb (Gen_Elab_Calls): Tweak test. |
| (Gen_Elab_Externals): Likewise. |
| |
| 2024-11-14 Claire Dross <dross@adacore.com> |
| |
| * libgnat/a-strmap.adb: Add assert to regain proofs. |
| * libgnat/a-strsup.adb: Likewise. |
| * libgnat/s-aridou.adb: Add assertions to regain proofs. |
| * libgnat/s-arit32.adb: Use Exceptional_Cases to specify Raise. |
| * libgnat/s-arit64.adb: Use Round_Quatient from Impl instead of |
| redefining it. |
| * libgnat/s-arit64.ads: Likewise. |
| * libgnat/s-expmod.adb: Regain proof of lemma. |
| * libgnat/s-exponn.adb: Likewise. |
| * libgnat/s-expont.adb: Likewise. |
| * libgnat/s-imgboo.adb: Add local lemma to regain proof. |
| * libgnat/s-valuti.ads: Add Always_Terminates on Bad_Value. |
| |
| 2024-11-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnat/s-imagef.ads (Image_Fixed): Adjust outdated sentence. |
| |
| 2024-11-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch13.adb (Record_Hole_Check): Deal consistently with the base |
| type throughout the processing. Return if its declaration is not a |
| full type declaration. Assert that its record definition is either |
| a derived type definition or a record definition. If the type has a |
| private declaration that does not specify unknown discriminants, use |
| it as the source of discriminant specifications, if any. |
| (Check_Component_List): Process every N_Discriminant_Specification |
| but assert that its defining identifier is really a discriminant. |
| |
| 2024-11-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnat/s-aridou.ads (Add_With_Ovflo_Check): Adjust description. |
| (Subtract_With_Ovflo_Check): Likewise. |
| (Multiply_With_Ovflo_Check): Likewise. |
| (Scaled_Divide): Likewise. |
| (Double_Divide): Likewise. |
| * libgnat/s-arit64.ads (Multiply_With_Ovflo_Check64): Likewise. |
| * libgnat/s-arit128.ads (Multiply_With_Ovflo_Check128): Likewise. |
| |
| 2024-11-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/112524 |
| PR ada/113781 |
| * par-ch4.adb (P_Primary) <Tok_For>: Give an error about missing |
| parentheses in the (purported) iterated component case too. |
| (P_Unparen_Cond_Expr_Etc): Likewise. |
| * sem.adb (Analyze): Raise PE on N_Iterated_Component_Association. |
| * sem_util.ads (Diagnose_Iterated_Component_Association): Delete. |
| * sem_util.adb (Diagnose_Iterated_Component_Association): Likewise. |
| |
| 2024-11-12 Marc Poulhiès <poulhies@adacore.com> |
| |
| * gcc-interface/Makefile.in: Remove extra 'with'. |
| |
| 2024-11-12 squirek <squirek@adacore.com> |
| |
| * exp_ch3.adb (Build_Assignment): Add condition to fetch corresponding |
| record types for concurrent tagged types. |
| |
| 2024-11-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.adb (Two_Pass_Aggregate_Expansion): Use a type sized |
| from the index type to compute the length. Simplify and remove |
| useless calls to New_Copy_Tree for this computation. |
| |
| 2024-11-12 Pat Bernardi <bernardi@adacore.com> |
| |
| * libgnarl/a-dynpri.ads: Add design annotations. |
| * libgnarl/a-reatim.ads: Likewise. |
| * libgnarl/a-synbar.ads: Likewise. |
| * libgnarl/a-taside.ads: Likewise. |
| * libgnarl/s-tarest.ads: Likewise. |
| * libgnarl/s-tasinf.ads: Likewise. |
| * libgnarl/s-taspri__posix.ads: Likewise. |
| * libgnarl/s-tpobmu.ads: Likewise. |
| * libgnat/a-assert.ads: Likewise. |
| * libgnat/a-comlin.ads: Likewise. |
| * libgnat/a-nbnbig.ads: Likewise. |
| * libgnat/a-nubinu.ads: Likewise. |
| * libgnat/a-numeri.ads: Likewise. |
| * libgnat/a-unccon.ads: Likewise. |
| * libgnat/a-uncdea.ads: Likewise. |
| * libgnat/ada.ads: Likewise. |
| * libgnat/g-debuti.ads: Likewise. |
| * libgnat/g-sestin.ads: Likewise. |
| * libgnat/g-souinf.ads: Likewise. |
| * libgnat/gnat.ads: Likewise. |
| * libgnat/i-cexten.ads: Likewise. |
| * libgnat/i-cexten__128.ads: Likewise. |
| * libgnat/i-cstrin.adb: Likewise. |
| * libgnat/i-cstrin.ads: Likewise. |
| * libgnat/interfac__2020.ads: Likewise. |
| * libgnat/machcode.ads: Likewise. |
| * libgnat/s-addope.ads: Likewise. |
| * libgnat/s-aridou.ads: Likewise. |
| * libgnat/s-arit32.ads: Likewise. |
| * libgnat/s-arit64.ads: Likewise. |
| * libgnat/s-assert.ads: Likewise. |
| * libgnat/s-atacco.ads: Likewise. |
| * libgnat/s-atocou.ads: Likewise. |
| * libgnat/s-atocou__builtin.adb: Likewise. |
| * libgnat/s-atopri.ads: Likewise. |
| * libgnat/s-bitops.ads: Likewise. |
| * libgnat/s-boarop.ads: Likewise. |
| * libgnat/s-bytswa.ads: Likewise. |
| * libgnat/s-carsi8.ads: Likewise. |
| * libgnat/s-carun8.ads: Likewise. |
| * libgnat/s-casi16.ads: Likewise. |
| * libgnat/s-casi32.ads: Likewise. |
| * libgnat/s-casi64.ads: Likewise. |
| * libgnat/s-caun16.ads: Likewise. |
| * libgnat/s-caun32.ads: Likewise. |
| * libgnat/s-caun64.ads: Likewise. |
| * libgnat/s-exnint.ads: Likewise. |
| * libgnat/s-exnllf.ads: Likewise. |
| * libgnat/s-exnlli.ads: Likewise. |
| * libgnat/s-expint.ads: Likewise. |
| * libgnat/s-explli.ads: Likewise. |
| * libgnat/s-expllu.ads: Likewise. |
| * libgnat/s-expmod.ads: Likewise. |
| * libgnat/s-exponn.ads: Likewise. |
| * libgnat/s-expont.ads: Likewise. |
| * libgnat/s-exponu.ads: 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-flocon.ads: Likewise. |
| * libgnat/s-geveop.ads: Likewise. |
| * libgnat/s-imageb.ads: Likewise. |
| * libgnat/s-imaged.ads: Likewise. |
| * libgnat/s-imagef.ads: Likewise. |
| * libgnat/s-imagei.ads: Likewise. |
| * libgnat/s-imagen.ads: Likewise. |
| * libgnat/s-imageu.ads: Likewise. |
| * libgnat/s-imagew.ads: Likewise. |
| * libgnat/s-imde128.ads: Likewise. |
| * libgnat/s-imde32.ads: Likewise. |
| * libgnat/s-imde64.ads: Likewise. |
| * libgnat/s-imen16.ads: Likewise. |
| * libgnat/s-imen32.ads: Likewise. |
| * libgnat/s-imenu8.ads: Likewise. |
| * libgnat/s-imfi32.ads: Likewise. |
| * libgnat/s-imfi64.ads: Likewise. |
| * libgnat/s-imgbiu.ads: Likewise. |
| * libgnat/s-imgboo.ads: Likewise. |
| * libgnat/s-imgcha.ads: Likewise. |
| * libgnat/s-imgint.ads: Likewise. |
| * libgnat/s-imgllb.ads: Likewise. |
| * libgnat/s-imglli.ads: Likewise. |
| * libgnat/s-imgllu.ads: Likewise. |
| * libgnat/s-imgllw.ads: Likewise. |
| * libgnat/s-imgrea.ads: Likewise. |
| * libgnat/s-imguns.ads: Likewise. |
| * libgnat/s-imguti.ads: Likewise. |
| * libgnat/s-imgwiu.ads: Likewise. |
| * libgnat/s-maccod.ads: Likewise. |
| * libgnat/s-multip.ads: Likewise. |
| * libgnat/s-pack03.ads: Likewise. |
| * libgnat/s-pack05.ads: Likewise. |
| * libgnat/s-pack06.ads: Likewise. |
| * libgnat/s-pack07.ads: Likewise. |
| * libgnat/s-pack09.ads: Likewise. |
| * libgnat/s-pack10.ads: Likewise. |
| * libgnat/s-pack100.ads: Likewise. |
| * libgnat/s-pack101.ads: Likewise. |
| * libgnat/s-pack102.ads: Likewise. |
| * libgnat/s-pack103.ads: Likewise. |
| * libgnat/s-pack104.ads: Likewise. |
| * libgnat/s-pack105.ads: Likewise. |
| * libgnat/s-pack106.ads: Likewise. |
| * libgnat/s-pack107.ads: Likewise. |
| * libgnat/s-pack108.ads: Likewise. |
| * libgnat/s-pack109.ads: Likewise. |
| * libgnat/s-pack11.ads: Likewise. |
| * libgnat/s-pack110.ads: Likewise. |
| * libgnat/s-pack111.ads: Likewise. |
| * libgnat/s-pack112.ads: Likewise. |
| * libgnat/s-pack113.ads: Likewise. |
| * libgnat/s-pack114.ads: Likewise. |
| * libgnat/s-pack115.ads: Likewise. |
| * libgnat/s-pack116.ads: Likewise. |
| * libgnat/s-pack117.ads: Likewise. |
| * libgnat/s-pack118.ads: Likewise. |
| * libgnat/s-pack119.ads: Likewise. |
| * libgnat/s-pack12.ads: Likewise. |
| * libgnat/s-pack120.ads: Likewise. |
| * libgnat/s-pack121.ads: Likewise. |
| * libgnat/s-pack122.ads: Likewise. |
| * libgnat/s-pack123.ads: Likewise. |
| * libgnat/s-pack124.ads: Likewise. |
| * libgnat/s-pack125.ads: Likewise. |
| * libgnat/s-pack126.ads: Likewise. |
| * libgnat/s-pack127.ads: Likewise. |
| * libgnat/s-pack13.ads: Likewise. |
| * libgnat/s-pack14.ads: Likewise. |
| * libgnat/s-pack15.ads: Likewise. |
| * libgnat/s-pack17.ads: Likewise. |
| * libgnat/s-pack18.ads: Likewise. |
| * libgnat/s-pack19.ads: Likewise. |
| * libgnat/s-pack20.ads: Likewise. |
| * libgnat/s-pack21.ads: Likewise. |
| * libgnat/s-pack22.ads: Likewise. |
| * libgnat/s-pack23.ads: Likewise. |
| * libgnat/s-pack24.ads: Likewise. |
| * libgnat/s-pack25.ads: Likewise. |
| * libgnat/s-pack26.ads: Likewise. |
| * libgnat/s-pack27.ads: Likewise. |
| * libgnat/s-pack28.ads: Likewise. |
| * libgnat/s-pack29.ads: Likewise. |
| * libgnat/s-pack30.ads: Likewise. |
| * libgnat/s-pack31.ads: Likewise. |
| * libgnat/s-pack33.ads: Likewise. |
| * libgnat/s-pack34.ads: Likewise. |
| * libgnat/s-pack35.ads: Likewise. |
| * libgnat/s-pack36.ads: Likewise. |
| * libgnat/s-pack37.ads: Likewise. |
| * libgnat/s-pack38.ads: Likewise. |
| * libgnat/s-pack39.ads: Likewise. |
| * libgnat/s-pack40.ads: Likewise. |
| * libgnat/s-pack41.ads: Likewise. |
| * libgnat/s-pack42.ads: Likewise. |
| * libgnat/s-pack43.ads: Likewise. |
| * libgnat/s-pack44.ads: Likewise. |
| * libgnat/s-pack45.ads: Likewise. |
| * libgnat/s-pack46.ads: Likewise. |
| * libgnat/s-pack47.ads: Likewise. |
| * libgnat/s-pack48.ads: Likewise. |
| * libgnat/s-pack49.ads: Likewise. |
| * libgnat/s-pack50.ads: Likewise. |
| * libgnat/s-pack51.ads: Likewise. |
| * libgnat/s-pack52.ads: Likewise. |
| * libgnat/s-pack53.ads: Likewise. |
| * libgnat/s-pack54.ads: Likewise. |
| * libgnat/s-pack55.ads: Likewise. |
| * libgnat/s-pack56.ads: Likewise. |
| * libgnat/s-pack57.ads: Likewise. |
| * libgnat/s-pack58.ads: Likewise. |
| * libgnat/s-pack59.ads: Likewise. |
| * libgnat/s-pack60.ads: Likewise. |
| * libgnat/s-pack61.ads: Likewise. |
| * libgnat/s-pack62.ads: Likewise. |
| * libgnat/s-pack63.ads: Likewise. |
| * libgnat/s-pack65.ads: Likewise. |
| * libgnat/s-pack66.ads: Likewise. |
| * libgnat/s-pack67.ads: Likewise. |
| * libgnat/s-pack68.ads: Likewise. |
| * libgnat/s-pack69.ads: Likewise. |
| * libgnat/s-pack70.ads: Likewise. |
| * libgnat/s-pack71.ads: Likewise. |
| * libgnat/s-pack72.ads: Likewise. |
| * libgnat/s-pack73.ads: Likewise. |
| * libgnat/s-pack74.ads: Likewise. |
| * libgnat/s-pack75.ads: Likewise. |
| * libgnat/s-pack76.ads: Likewise. |
| * libgnat/s-pack77.ads: Likewise. |
| * libgnat/s-pack78.ads: Likewise. |
| * libgnat/s-pack79.ads: Likewise. |
| * libgnat/s-pack80.ads: Likewise. |
| * libgnat/s-pack81.ads: Likewise. |
| * libgnat/s-pack82.ads: Likewise. |
| * libgnat/s-pack83.ads: Likewise. |
| * libgnat/s-pack84.ads: Likewise. |
| * libgnat/s-pack85.ads: Likewise. |
| * libgnat/s-pack86.ads: Likewise. |
| * libgnat/s-pack87.ads: Likewise. |
| * libgnat/s-pack88.ads: Likewise. |
| * libgnat/s-pack89.ads: Likewise. |
| * libgnat/s-pack90.ads: Likewise. |
| * libgnat/s-pack91.ads: Likewise. |
| * libgnat/s-pack92.ads: Likewise. |
| * libgnat/s-pack93.ads: Likewise. |
| * libgnat/s-pack94.ads: Likewise. |
| * libgnat/s-pack95.ads: Likewise. |
| * libgnat/s-pack96.ads: Likewise. |
| * libgnat/s-pack97.ads: Likewise. |
| * libgnat/s-pack98.ads: Likewise. |
| * libgnat/s-pack99.ads: Likewise. |
| * libgnat/s-parame.ads: Likewise. |
| * libgnat/s-rident.ads: Likewise. |
| * libgnat/s-spark.ads: Likewise. |
| * libgnat/s-spcuop.ads: Likewise. |
| * libgnat/s-stoele.ads: Likewise. |
| * libgnat/s-traent.ads: Likewise. |
| * libgnat/s-unstyp.ads: Likewise. |
| * libgnat/s-vaispe.ads: Likewise. |
| * libgnat/s-valspe.ads: Likewise. |
| * libgnat/s-vauspe.ads: Likewise. |
| * libgnat/s-veboop.ads: Likewise. |
| * libgnat/s-vector.ads: Likewise. |
| * libgnat/s-vs_int.ads: Likewise. |
| * libgnat/s-vs_lli.ads: Likewise. |
| * libgnat/s-vs_llu.ads: Likewise. |
| * libgnat/s-vs_uns.ads: Likewise. |
| * libgnat/s-vsllli.ads: Likewise. |
| * libgnat/text_io.ads: Likewise. |
| * libgnat/unchconv.ads: Likewise. |
| * libgnat/unchdeal.ads: Likewise. |
| * s-pack.ads.tmpl: Likewise. |
| |
| 2024-11-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * s-pack.adb.tmpl: Add '7' suffix to all existing constructs and |
| add variants with suffixes ranging from '0' to '6'. |
| (Get_@@): Dereference the address as a record object whose accessed |
| component is always the last. |
| (GetU_@@): Likewise. |
| (Set_@@): Likewise. |
| (SetU_@@): Likewise. |
| * libgnat/s-pack03.adb: Regenerate. |
| * libgnat/s-pack05.adb: Likewise. |
| * libgnat/s-pack06.adb: Likewise. |
| * libgnat/s-pack07.adb: Likewise. |
| * libgnat/s-pack09.adb: Likewise. |
| * libgnat/s-pack10.adb: Likewise. |
| * libgnat/s-pack100.adb: Likewise. |
| * libgnat/s-pack101.adb: Likewise. |
| * libgnat/s-pack102.adb: Likewise. |
| * libgnat/s-pack103.adb: Likewise. |
| * libgnat/s-pack104.adb: Likewise. |
| * libgnat/s-pack105.adb: Likewise. |
| * libgnat/s-pack106.adb: Likewise. |
| * libgnat/s-pack107.adb: Likewise. |
| * libgnat/s-pack108.adb: Likewise. |
| * libgnat/s-pack109.adb: Likewise. |
| * libgnat/s-pack11.adb: Likewise. |
| * libgnat/s-pack110.adb: Likewise. |
| * libgnat/s-pack111.adb: Likewise. |
| * libgnat/s-pack112.adb: Likewise. |
| * libgnat/s-pack113.adb: Likewise. |
| * libgnat/s-pack114.adb: Likewise. |
| * libgnat/s-pack115.adb: Likewise. |
| * libgnat/s-pack116.adb: Likewise. |
| * libgnat/s-pack117.adb: Likewise. |
| * libgnat/s-pack118.adb: Likewise. |
| * libgnat/s-pack119.adb: Likewise. |
| * libgnat/s-pack12.adb: Likewise. |
| * libgnat/s-pack120.adb: Likewise. |
| * libgnat/s-pack121.adb: Likewise. |
| * libgnat/s-pack122.adb: Likewise. |
| * libgnat/s-pack123.adb: Likewise. |
| * libgnat/s-pack124.adb: Likewise. |
| * libgnat/s-pack125.adb: Likewise. |
| * libgnat/s-pack126.adb: Likewise. |
| * libgnat/s-pack127.adb: Likewise. |
| * libgnat/s-pack13.adb: Likewise. |
| * libgnat/s-pack14.adb: Likewise. |
| * libgnat/s-pack15.adb: Likewise. |
| * libgnat/s-pack17.adb: Likewise. |
| * libgnat/s-pack18.adb: Likewise. |
| * libgnat/s-pack19.adb: Likewise. |
| * libgnat/s-pack20.adb: Likewise. |
| * libgnat/s-pack21.adb: Likewise. |
| * libgnat/s-pack22.adb: Likewise. |
| * libgnat/s-pack23.adb: Likewise. |
| * libgnat/s-pack24.adb: Likewise. |
| * libgnat/s-pack25.adb: Likewise. |
| * libgnat/s-pack26.adb: Likewise. |
| * libgnat/s-pack27.adb: Likewise. |
| * libgnat/s-pack28.adb: Likewise. |
| * libgnat/s-pack29.adb: Likewise. |
| * libgnat/s-pack30.adb: Likewise. |
| * libgnat/s-pack31.adb: Likewise. |
| * libgnat/s-pack33.adb: Likewise. |
| * libgnat/s-pack34.adb: Likewise. |
| * libgnat/s-pack35.adb: Likewise. |
| * libgnat/s-pack36.adb: Likewise. |
| * libgnat/s-pack37.adb: Likewise. |
| * libgnat/s-pack38.adb: Likewise. |
| * libgnat/s-pack39.adb: Likewise. |
| * libgnat/s-pack40.adb: Likewise. |
| * libgnat/s-pack41.adb: Likewise. |
| * libgnat/s-pack42.adb: Likewise. |
| * libgnat/s-pack43.adb: Likewise. |
| * libgnat/s-pack44.adb: Likewise. |
| * libgnat/s-pack45.adb: Likewise. |
| * libgnat/s-pack46.adb: Likewise. |
| * libgnat/s-pack47.adb: Likewise. |
| * libgnat/s-pack48.adb: Likewise. |
| * libgnat/s-pack49.adb: Likewise. |
| * libgnat/s-pack50.adb: Likewise. |
| * libgnat/s-pack51.adb: Likewise. |
| * libgnat/s-pack52.adb: Likewise. |
| * libgnat/s-pack53.adb: Likewise. |
| * libgnat/s-pack54.adb: Likewise. |
| * libgnat/s-pack55.adb: Likewise. |
| * libgnat/s-pack56.adb: Likewise. |
| * libgnat/s-pack57.adb: Likewise. |
| * libgnat/s-pack58.adb: Likewise. |
| * libgnat/s-pack59.adb: Likewise. |
| * libgnat/s-pack60.adb: Likewise. |
| * libgnat/s-pack61.adb: Likewise. |
| * libgnat/s-pack62.adb: Likewise. |
| * libgnat/s-pack63.adb: Likewise. |
| * libgnat/s-pack65.adb: Likewise. |
| * libgnat/s-pack66.adb: Likewise. |
| * libgnat/s-pack67.adb: Likewise. |
| * libgnat/s-pack68.adb: Likewise. |
| * libgnat/s-pack69.adb: Likewise. |
| * libgnat/s-pack70.adb: Likewise. |
| * libgnat/s-pack71.adb: Likewise. |
| * libgnat/s-pack72.adb: Likewise. |
| * libgnat/s-pack73.adb: Likewise. |
| * libgnat/s-pack74.adb: Likewise. |
| * libgnat/s-pack75.adb: Likewise. |
| * libgnat/s-pack76.adb: Likewise. |
| * libgnat/s-pack77.adb: Likewise. |
| * libgnat/s-pack78.adb: Likewise. |
| * libgnat/s-pack79.adb: Likewise. |
| * libgnat/s-pack80.adb: Likewise. |
| * libgnat/s-pack81.adb: Likewise. |
| * libgnat/s-pack82.adb: Likewise. |
| * libgnat/s-pack83.adb: Likewise. |
| * libgnat/s-pack84.adb: Likewise. |
| * libgnat/s-pack85.adb: Likewise. |
| * libgnat/s-pack86.adb: Likewise. |
| * libgnat/s-pack87.adb: Likewise. |
| * libgnat/s-pack88.adb: Likewise. |
| * libgnat/s-pack89.adb: Likewise. |
| * libgnat/s-pack90.adb: Likewise. |
| * libgnat/s-pack91.adb: Likewise. |
| * libgnat/s-pack92.adb: Likewise. |
| * libgnat/s-pack93.adb: Likewise. |
| * libgnat/s-pack94.adb: Likewise. |
| * libgnat/s-pack95.adb: Likewise. |
| * libgnat/s-pack96.adb: Likewise. |
| * libgnat/s-pack97.adb: Likewise. |
| * libgnat/s-pack98.adb: Likewise. |
| * libgnat/s-pack99.adb: Likewise. |
| |
| 2024-11-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/114127 |
| * sem_aggr.adb (Is_Null_Aggregate): Replace test on Ada_Version |
| with test on Nkind. |
| |
| 2024-11-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.adb (Build_Array_Aggr_Code.Gen_Assign): Do not call |
| Checks_Off on the newly built N_Indexed_Component node but instead |
| set Kill_Range_Check on it. |
| * exp_ch4.ads (Expand_N_Unchecked_Expression): Delete. |
| * exp_ch4.adb (Expand_N_Indexed_Component): Remove handling of |
| N_Unchecked_Expression. |
| (Expand_N_Unchecked_Expression): Delete. |
| (Expand_N_Unchecked_Type_Conversion): Propagate the Assignment_OK |
| flag and rewrite the node manually. |
| * exp_util.adb (Insert_Actions): Remove handling of |
| N_Unchecked_Expression. |
| (Side_Effect_Free): Likewise. |
| * expander.adb (Expand): Likewise. |
| * gen_il-gen-gen_nodes.adb (N_Indexed_Component): Add flag |
| Kill_Range_Check for the purpose of semantics. |
| (N_Unchecked_Expression): Delete. |
| * gen_il-internals.ads (Type_Frequency): Remove entry for |
| N_Unchecked_Expression. |
| * gen_il-types.ads (Opt_Type_Enum): Remove N_Unchecked_Expression. |
| * pprint.adb (Expression_Image): Remove handling of |
| N_Unchecked_Expression. |
| * sem.adb (Analyze): Likewise. |
| * sem_ch4.ads (Analyze_Unchecked_Expression): Delete. |
| * sem_ch4.adb (Analyze_Unchecked_Expression): Likewise. |
| * sem_res.adb (Resolve_Unchecked_Expression): Likewise. |
| (Resolve): Remove handling of N_Unchecked_Expression. |
| (Resolve_Indexed_Component): Do not call Apply_Scalar_Range_Check |
| on the expressions if Kill_Range_Check is set on the node. |
| * sem_util.adb (Is_Non_Preelaborable_Construct): Remove handling of |
| N_Unchecked_Expression. |
| * sinfo.ads (Kill_Range_Check): Document it for N_Indexed_Component. |
| (Unchecked Expression): Delete specification. |
| * sprint.adb (Sprint_Node_Actual): Remove handling of |
| N_Unchecked_Expression. |
| * tbuild.ads (Checks_Off): Delete. |
| * tbuild.adb (Checks_Off): Likewise. |
| |
| 2024-11-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/112979 |
| * sem_ch8.adb (Find_Selected_Component): Try to recognize the |
| object operation notation only if the selector is a subprogram. |
| |
| 2024-11-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/113037 |
| * sem_prag.adb (Analyze_Pragma) <Pragma_Invariant>: Reject types |
| that are derived from formal private types. |
| |
| 2024-11-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/112821 |
| * scans.ads (Token_Type): Remove Tok_Left_Bracket from Namext. |
| |
| 2024-11-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/114300 |
| * exp_ch7.adb (Attach_Object_To_Master_Node): Propagate the |
| Is_Ignored_Ghost_Entity flag from the finalization procedure. |
| (Build_Finalizer.Process_Declarations): Move up the test on |
| Is_Ignored_Ghost_Entity. |
| * exp_util.adb (Requires_Cleanup_Actions): Likewise. |
| |
| 2024-11-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/55725 |
| * exp_ch6.adb (Add_Collection_Actual_To_Build_In_Place_Call): Be |
| prepared for no collection if the access type is anonymous. |
| * exp_ch7.adb (Build_Anonymous_Collection): Return early for the |
| anonymous access result type of a library function. |
| |
| 2024-11-12 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_util.adb (Make_Variant_Comparison): Accept new types in |
| expansion. |
| * rtsfind.adb (Get_Unit_Name): Support SPARK.Big_Integers. |
| * rtsfind.ads (RTU_Id, RE_Id, RE_Unit_Table): Support new type |
| and its enclosing unit. |
| * sem_prag.adb (Analyze_Pragma): Support new type in pragma |
| Loop_Variant. |
| (Analyze_Subprogram_Variant_In_Decl_Part): Support new type in |
| aspect Subprogram_Variant. |
| |
| 2024-11-12 Viljar Indus <indus@adacore.com> |
| |
| * libgnarl/s-interr__vxworks.ads (new): A VXWorks specific |
| version of the file where Register_Interrupt_Handler is marked |
| with the Obsolescent pragma. |
| * libgnarl/s-interr__vxworks.adb: Remove pragma Obsoloescent |
| that had no effect. |
| * Makefile.rtl: Add entries for using the |
| libgnarl/s-interr__vxworks.ads file. |
| |
| 2024-11-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/113868 |
| * par-ch6.adb (P_Subprogram) <Scan_Body_Or_Expression_Function>: |
| Add delta aggregate alongside the other forms of aggregates. |
| |
| 2024-11-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_aggr.adb (Resolve_Array_Aggregate): In the case of an others |
| choice with a box, do not call Resolve_Aggr_Exp and give the error |
| for a multidimensional array directly. |
| (Resolve_Aggr_Expr): Remove bypasses for above case. |
| |
| 2024-11-12 Ronan Desplanques <desplanques@adacore.com> |
| |
| * frontend.adb (Frontend): Move call to Fmap.Initialize ... |
| * gnat1drv.adb (Gnat1drv): ... here. Look up Fmap when loading System. |
| * par-prag.adb (Prag): Allow pragma Source_File_Name for System when |
| it confirms an existing mapping. |
| |
| 2024-11-12 Richard Kenner <kenner@adacore.com> |
| |
| * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix minor |
| markup errors. |
| * doc/gnat_ugn/gnat_utility_programs.rst: Likewise. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-11-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * s-pack.adb.tmpl: Add "with System.Address_To_Access_Conversions". |
| (Cluster_Ref): Delete. |
| (AAC): New instance of System.Address_To_Access_Conversions. |
| (Rev_Cluster_Ref): Delete. |
| (Rev_ACC): New instance of System.Address_To_Access_Conversions. |
| (ClusterU_Ref): Delete. |
| (AACU): New instance of System.Address_To_Access_Conversions. |
| (Rev_ClusterU_Ref): Delete. |
| (Rev_ACCU): New instance of System.Address_To_Access_Conversions. |
| (Get_@@): Use a direct address-to-access conversion. |
| (GetU_@@): Likewise. |
| (Set_@@): Likewise. |
| (SetU_@@): Likewise. |
| * libgnat/s-pack03.adb: Regenerate. |
| * libgnat/s-pack05.adb: Likewise. |
| * libgnat/s-pack06.adb: Likewise. |
| * libgnat/s-pack07.adb: Likewise. |
| * libgnat/s-pack09.adb: Likewise. |
| * libgnat/s-pack10.adb: Likewise. |
| * libgnat/s-pack100.adb: Likewise. |
| * libgnat/s-pack101.adb: Likewise. |
| * libgnat/s-pack102.adb: Likewise. |
| * libgnat/s-pack103.adb: Likewise. |
| * libgnat/s-pack104.adb: Likewise. |
| * libgnat/s-pack105.adb: Likewise. |
| * libgnat/s-pack106.adb: Likewise. |
| * libgnat/s-pack107.adb: Likewise. |
| * libgnat/s-pack108.adb: Likewise. |
| * libgnat/s-pack109.adb: Likewise. |
| * libgnat/s-pack11.adb: Likewise. |
| * libgnat/s-pack110.adb: Likewise. |
| * libgnat/s-pack111.adb: Likewise. |
| * libgnat/s-pack112.adb: Likewise. |
| * libgnat/s-pack113.adb: Likewise. |
| * libgnat/s-pack114.adb: Likewise. |
| * libgnat/s-pack115.adb: Likewise. |
| * libgnat/s-pack116.adb: Likewise. |
| * libgnat/s-pack117.adb: Likewise. |
| * libgnat/s-pack118.adb: Likewise. |
| * libgnat/s-pack119.adb: Likewise. |
| * libgnat/s-pack12.adb: Likewise. |
| * libgnat/s-pack120.adb: Likewise. |
| * libgnat/s-pack121.adb: Likewise. |
| * libgnat/s-pack122.adb: Likewise. |
| * libgnat/s-pack123.adb: Likewise. |
| * libgnat/s-pack124.adb: Likewise. |
| * libgnat/s-pack125.adb: Likewise. |
| * libgnat/s-pack126.adb: Likewise. |
| * libgnat/s-pack127.adb: Likewise. |
| * libgnat/s-pack13.adb: Likewise. |
| * libgnat/s-pack14.adb: Likewise. |
| * libgnat/s-pack15.adb: Likewise. |
| * libgnat/s-pack17.adb: Likewise. |
| * libgnat/s-pack18.adb: Likewise. |
| * libgnat/s-pack19.adb: Likewise. |
| * libgnat/s-pack20.adb: Likewise. |
| * libgnat/s-pack21.adb: Likewise. |
| * libgnat/s-pack22.adb: Likewise. |
| * libgnat/s-pack23.adb: Likewise. |
| * libgnat/s-pack24.adb: Likewise. |
| * libgnat/s-pack25.adb: Likewise. |
| * libgnat/s-pack26.adb: Likewise. |
| * libgnat/s-pack27.adb: Likewise. |
| * libgnat/s-pack28.adb: Likewise. |
| * libgnat/s-pack29.adb: Likewise. |
| * libgnat/s-pack30.adb: Likewise. |
| * libgnat/s-pack31.adb: Likewise. |
| * libgnat/s-pack33.adb: Likewise. |
| * libgnat/s-pack34.adb: Likewise. |
| * libgnat/s-pack35.adb: Likewise. |
| * libgnat/s-pack36.adb: Likewise. |
| * libgnat/s-pack37.adb: Likewise. |
| * libgnat/s-pack38.adb: Likewise. |
| * libgnat/s-pack39.adb: Likewise. |
| * libgnat/s-pack40.adb: Likewise. |
| * libgnat/s-pack41.adb: Likewise. |
| * libgnat/s-pack42.adb: Likewise. |
| * libgnat/s-pack43.adb: Likewise. |
| * libgnat/s-pack44.adb: Likewise. |
| * libgnat/s-pack45.adb: Likewise. |
| * libgnat/s-pack46.adb: Likewise. |
| * libgnat/s-pack47.adb: Likewise. |
| * libgnat/s-pack48.adb: Likewise. |
| * libgnat/s-pack49.adb: Likewise. |
| * libgnat/s-pack50.adb: Likewise. |
| * libgnat/s-pack51.adb: Likewise. |
| * libgnat/s-pack52.adb: Likewise. |
| * libgnat/s-pack53.adb: Likewise. |
| * libgnat/s-pack54.adb: Likewise. |
| * libgnat/s-pack55.adb: Likewise. |
| * libgnat/s-pack56.adb: Likewise. |
| * libgnat/s-pack57.adb: Likewise. |
| * libgnat/s-pack58.adb: Likewise. |
| * libgnat/s-pack59.adb: Likewise. |
| * libgnat/s-pack60.adb: Likewise. |
| * libgnat/s-pack61.adb: Likewise. |
| * libgnat/s-pack62.adb: Likewise. |
| * libgnat/s-pack63.adb: Likewise. |
| * libgnat/s-pack65.adb: Likewise. |
| * libgnat/s-pack66.adb: Likewise. |
| * libgnat/s-pack67.adb: Likewise. |
| * libgnat/s-pack68.adb: Likewise. |
| * libgnat/s-pack69.adb: Likewise. |
| * libgnat/s-pack70.adb: Likewise. |
| * libgnat/s-pack71.adb: Likewise. |
| * libgnat/s-pack72.adb: Likewise. |
| * libgnat/s-pack73.adb: Likewise. |
| * libgnat/s-pack74.adb: Likewise. |
| * libgnat/s-pack75.adb: Likewise. |
| * libgnat/s-pack76.adb: Likewise. |
| * libgnat/s-pack77.adb: Likewise. |
| * libgnat/s-pack78.adb: Likewise. |
| * libgnat/s-pack79.adb: Likewise. |
| * libgnat/s-pack80.adb: Likewise. |
| * libgnat/s-pack81.adb: Likewise. |
| * libgnat/s-pack82.adb: Likewise. |
| * libgnat/s-pack83.adb: Likewise. |
| * libgnat/s-pack84.adb: Likewise. |
| * libgnat/s-pack85.adb: Likewise. |
| * libgnat/s-pack86.adb: Likewise. |
| * libgnat/s-pack87.adb: Likewise. |
| * libgnat/s-pack88.adb: Likewise. |
| * libgnat/s-pack89.adb: Likewise. |
| * libgnat/s-pack90.adb: Likewise. |
| * libgnat/s-pack91.adb: Likewise. |
| * libgnat/s-pack92.adb: Likewise. |
| * libgnat/s-pack93.adb: Likewise. |
| * libgnat/s-pack94.adb: Likewise. |
| * libgnat/s-pack95.adb: Likewise. |
| * libgnat/s-pack96.adb: Likewise. |
| * libgnat/s-pack97.adb: Likewise. |
| * libgnat/s-pack98.adb: Likewise. |
| * libgnat/s-pack99.adb: Likewise. |
| |
| 2024-11-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sinfo.ads (Assignment_OK): Remove obsolete ??? comment. |
| |
| 2024-11-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * checks.adb (Range_Checks_Suppressed): Remove test on the |
| Kill_Range_Checks flag. |
| * einfo.ads (Kill_Range_Checks): Delete. |
| * gen_il-fields.ads (Opt_Field_Enum): Remove Kill_Range_Checks. |
| * gen_il-gen-gen_entities.adb (Entity_Kind): Likewise. |
| * sem_ch3.adb (Record_Type_Declaration): Do not set the |
| Kill_Range_Checks flag. |
| * sem_util.adb (Denotes_Discriminant): In a default expression, |
| also return True for a discriminal. |
| |
| 2024-11-12 Steve Baird <baird@adacore.com> |
| |
| * prep.adb (Expression): Improve error message text when an |
| implicitly-defined Boolean-valued symbol is used in a context that |
| requires an integer value. |
| |
| 2024-11-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.adb (Is_Build_In_Place_Aggregate_Return): Directly test |
| the node and remove dead code for extended return statements. |
| |
| 2024-11-12 Johannes Kliemann <kliemann@adacore.com> |
| |
| * Makefile.rtl: Use libgnat/s-parame__aarch64-linux.adb for |
| s-parame.adb on aarch64-linux. |
| * libgnat/s-parame__aarch64-linux.adb: Add file. |
| |
| 2024-11-12 Piotr Trojanek <trojanek@adacore.com> |
| |
| * doc/gnat_rm/the_implementation_of_standard_i_o.rst |
| (Shared Files): Add trailing period. |
| * libgnat/s-ficobl.ads (AFCB): Reflect new behavior in comment. |
| * libgnat/s-fileio.adb (Open): Detect inconsistent sharing, |
| just like we do in System.File_IO.Reset. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-11-12 squirek <squirek@adacore.com> |
| |
| * accessibility.adb (Type_Access_Level): Add handling for |
| subprogram aliases. |
| |
| 2024-11-12 squirek <squirek@adacore.com> |
| |
| * exp_ch4.adb (Expand_N_Type_Conversion): Add special runtime check |
| generation for mutably tagged objects. |
| |
| 2024-11-12 Douglas B Rupp <rupp@adacore.com> |
| |
| * libgnat/a-calcon.adb (To_Ada_Time) (To_Duration) |
| (To_Struct_Timespec) (To_Unix_Time): Mark as obsolescent. |
| (To_Ada_Time_64) (To_Duration_64) (To_Struct_Timespec_64) |
| (To_Unix_Time_64): New. |
| * libgnat/a-calcon.ads (To_Ada_Time) (To_Duration) |
| (To_Struct_Timespec) (To_Unix_Time): Mark as obsolescent. |
| (To_Ada_Time_64) (To_Duration_64) (To_Struct_Timespec_64) |
| (To_Unix_Time_64): New. |
| * libgnat/a-calend.adb (To_Ada_Time) (To_Duration) |
| (To_Struct_Timespec) (To_Unix_Time): Mark as obsolescent. |
| (To_Ada_Time_64) (To_Duration_64) (To_Struct_Timespec_64) |
| (To_Unix_Time_64): New. |
| * libgnat/a-calend.ads (To_Ada_Time) (To_Duration) |
| (To_Struct_Timespec) (To_Unix_Time): Mark as obsolescent. |
| (To_Ada_Time_64) (To_Duration_64) (To_Struct_Timespec_64) |
| (To_Unix_Time_64): New. |
| |
| 2024-11-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/117018 |
| * exp_aggr.adb (Build_Array_Aggr_Code): Do not expect the |
| Loop_Actions field to be already present on association nodes. |
| * exp_util.adb (Insert_Actions): For association nodes, insert |
| into the Loop_Actions field only if it is already present. |
| * sem_aggr.adb (Resolve_Array_Aggregate): Add Iterated parameter. |
| (Resolve_Aggregate): Adjust calls to Resolve_Array_Aggregate. |
| (Resolve_Aggr_Expr): Add Iterated_Elmt defaulted parameter and |
| a default for Single_Elmt. Adjust call to Resolve_Array_Aggregate. |
| Preanalyze a copy of the expression in an iteration context. |
| (Resolve_Iterated_Component_Association): Pass Iterated_Elmt as |
| True to Resolve_Aggr_Expr and remove processing of Loop_Actions. |
| Do not check incorrect use of dynamically tagged expression in |
| an iteration context. |
| (Resolve_Iterated_Association): Use Copy_Separate_Tree instead of |
| New_Copy_Tree and set the Parent field of the result. |
| (Resolve_Delta_Array_Aggregate): Likewise. Only preanalyze the |
| copy instead of analyzing it. |
| |
| 2024-11-12 Richard Kenner <kenner@adacore.com> |
| |
| * doc/gnat_ugn/about_this_guide.rst: Add information about GNAT LLVM. |
| Be consistent about spelling of "back end". |
| * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Likewise. |
| * doc/gnat_ugn/gnat_and_program_execution.rst: Be consistent about |
| spelling of "back end". |
| * doc/gnat_ugn/the_gnat_compilation_model.rst: Likewise. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-11-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * mdll.adb (Build_Dynamic_Library): Fix indentation. |
| |
| 2024-11-12 Pascal Obry <obry@adacore.com> |
| |
| * mdll.adb: Use the same procedure to create relocatable or non |
| relocatable DLL. The only difference is wether the base address is |
| passed to the final linker. If no base-address is given the DLL is |
| relocatable. |
| |
| 2024-11-12 squirek <squirek@adacore.com> |
| |
| * inline.adb (In_Main_Unit_Or_Subunit): Use Other_Comp_Unit instead of |
| Spec_Or_Body_Lib_Unit. |
| (Must_Inline): Use Other_Comp_Unit instead of Spec_Or_Body_Lib_Unit. |
| |
| 2024-11-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.adb (Is_Build_In_Place_Aggregate_Return): Also return |
| True for functions returning on the secondary stack or returning |
| a by-reference type if the back end exposes its return slot. |
| (Expand_Array_Aggregate): Call Is_Build_In_Place_Aggregate_Return |
| to spot aggregates to be built in place. |
| * exp_ch3.adb (Make_Allocator_For_Return): Add missing condition |
| in assertion pragma deduced from Expand_Subtype_From_Expr. |
| * exp_ch6.adb (Expand_Simple_Function_Return): Rewrite the statement |
| as an extended return statement if the expression is an aggregate |
| whose expansion is delayed. Properly relocate the expression in |
| this case. |
| * sem_ch6.adb: Add clauses for Exp_Aggr. |
| (Analyze_Function_Return): Do not apply the predicate check to an |
| aggregate whose expansion is delayed. Extended the processing of |
| case expressions to all conditional expressions. |
| |
| 2024-11-12 Ronan Desplanques <desplanques@adacore.com> |
| |
| * gnat2.gpr: New file. |
| |
| 2024-11-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.adb (Expand_Delta_Array_Aggregate): Move declaration. |
| (Expand_Delta_Record_Aggregate): Likewise. |
| (Expand_Container_Aggregate): Likewise. Move implementation to |
| Build_Container_Aggr_Code. Implement built-in-place expansion |
| for object declarations and allocators. |
| (Build_Container_Aggr_Code): New function containing most of the |
| code of the original Expand_Container_Aggregate. Do not build a |
| temporary for the size calculation. Minor formatting tweaks. |
| (Expand_N_Aggregate): Add comment. |
| * exp_ch4.adb (Expand_Allocator_Expression): Detect the case of |
| a container aggregate as qualified expression. Do not apply the |
| predicate check on entry in this case and rewrite the allocator. |
| * exp_ch7.adb (Build_Finalizer.Process_Object_Declaration): Deal |
| with Last_Aggregate_Assignment first to compute the attachment |
| point (as already done in Attach_Object_To_Master_Node). |
| |
| 2024-11-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_aux.ads (Has_Unconstrained_Elements): Delete. |
| * sem_aux.adb (Has_Unconstrained_Elements): Likewise. |
| * sem_ch3.adb (Analyze_Object_Declaration): Remove obsolete code. |
| |
| 2024-11-12 Ghjuvan Lacambre <lacambre@adacore.com> |
| |
| * sem.adb (Process_Bodies_In_Context): check that Spec's unit is |
| an N_Lib_Unit_Declaration_Id. |
| |
| 2024-11-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch5.adb (Expand_Assign_Array): Make Act_Rhs a constant and |
| do not recompute it, as well as R_Type, when there is a change of |
| representation. Move comment about the RHS from here to... |
| (Expand_N_Assignment_Statement): ...here. |
| |
| 2024-11-12 Marc Poulhiès <poulhies@adacore.com> |
| |
| * xspack.py: New |
| * s-pack.ads.tmpl: New. |
| * s-pack.adb.tmpl: New. |
| |
| 2024-11-04 Piotr Trojanek <trojanek@adacore.com> |
| |
| * gcc-interface/decl.cc (gnat_to_gnu_entity): Recognize null |
| string literal subtypes and set their bounds to 1 .. 0. |
| |
| 2024-11-04 Piotr Trojanek <trojanek@adacore.com> |
| |
| * gcc-interface/decl.cc (gnat_to_gnu_entity): Remove special |
| case for string literal subtypes. |
| |
| 2024-11-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.cc (process_decls): Remove tests on Nkind that |
| contain a typo and would be redundant if written correctly. |
| |
| 2024-11-04 Bob Duff <duff@adacore.com> |
| |
| * sinfo.ads (Library_Unit): Rewrite documentation. Note that |
| the "??? not (always) true..." comment was not true; |
| the Subunit_Parent never points to the spec. |
| (N_Compilation_Unit): Improve documentation. The Aux_ node |
| was not created to solve the mentioned problems; it was |
| created because the size of nodes was limited. |
| Misc doc improvements. |
| * sinfo-utils.ads: Add new wrappers for Library_Unit field. |
| Use subtypes with predicates for the parameters. |
| (First_Real_Statement): Still used in codepeer. |
| * sinfo-utils.adb: Add new wrappers for Library_Unit field, |
| with suitable assertions. |
| * sem_prag.adb: Use new field wrapper names. |
| (Matching_Name): New name for Same_Name to avoid |
| potential confusion with the other function with the |
| same name (Sem_Util.Same_Name), which is also called |
| in this same file. |
| (Matching_Convention): Change Same_Convention to match |
| Matching_Name. |
| * sem_util.ads (Same_Name): Improve comments; the old comment |
| implied that it works for all names, which was not true. |
| * sem_util.adb: Use new field wrapper names. |
| * gen_il-gen.adb: Rename N_Unit_Body to be N_Lib_Unit_Body. |
| Plain "unit" is ambiguous in Ada (library unit, compilation |
| unit, program unit, etc). |
| Add new union types N_Lib_Unit_Declaration and |
| N_Lib_Unit_Renaming_Declaration. |
| * gen_il-gen-gen_nodes.adb (Compute_Ranges): Raise exception |
| earlier (it is already raised later, in Verify_Type_Table). |
| Add a comment explaining why it might be raised. |
| * gen_il-types.ads: Rename N_Unit_Body to be N_Lib_Unit_Body, and add |
| new N_Lib_Unit_Declaration and N_Lib_Unit_Renaming_Declaration. |
| * einfo.ads: Fix obsolete comment (was left over from before |
| the "variable-sized nodes"). |
| * exp_ch7.adb: Use new field wrapper names. |
| * exp_disp.adb: Use new field wrapper names. |
| * exp_unst.adb: Use new field wrapper names. |
| * exp_util.adb: Use new field wrapper names. |
| * fe.h: Add new field wrapper names. These are currently not |
| used in gigi, but this change prepares for using them in |
| gigi. |
| * inline.adb: Use new field wrapper names. |
| * lib.adb: Use new field wrapper names. |
| Comment improvements. |
| * lib-load.adb: Use new field wrapper names. |
| Minor cleanup. |
| * lib-writ.adb: Use new field wrapper names. |
| * live.adb: Use new field wrapper names. |
| * par-load.adb: Use new field wrapper names. |
| Comment improvements. Minor cleanup. |
| * rtsfind.adb: Use new field wrapper names. |
| * sem.adb: Use new field wrapper names. |
| * sem_ch10.adb: Use new field wrapper names. |
| Comment improvements. Minor cleanup. |
| * sem_ch12.adb: Use new field wrapper names. |
| * sem_ch7.adb: Use new field wrapper names. |
| * sem_ch8.adb: Use new field wrapper names. |
| * sem_elab.adb: Use new field wrapper names. |
| Comment improvements. |
| * errout.adb (Output_Source_Line): Fix blowup in some |
| obscure cases, where List_Pragmas is not fully set up. |
| |
| 2024-11-04 Nicolas Roche <roche@adacore.com> |
| |
| * libgnat/a-stwiun__shared.adb: Restructure code to inline only |
| the most common cases. Remove whenever possible runtime checks. |
| * libgnat/a-stwiun__shared.ads: Add Inline => True to Append |
| variants and Element. |
| |
| 2024-11-04 Nicolas Roche <roche@adacore.com> |
| |
| * libgnat/a-stzunb__shared.adb: Restructure code to inline only |
| the most common cases. Remove whenever possible runtime checks. |
| * libgnat/a-stzunb__shared.ads: Add Inline => True to Append |
| variants and Element. |
| |
| 2024-11-04 Nicolas Roche <roche@adacore.com> |
| |
| * libgnat/a-strunb__shared.adb: Restructure code to inline only |
| the most common cases. Remove whenever possible runtime checks. |
| * libgnat/a-strunb__shared.ads: Add Inline => True to Append |
| variants and Element. |
| |
| 2024-11-04 Steve Baird <baird@adacore.com> |
| |
| * aspects.ads: Add Aspect_Extended_Access to Aspect_Id |
| enumeration. |
| * par-prag.adb: Add Pragma_Extended_Access to list of pragmas that |
| get no interesting processing in the parser. |
| * sem_attr.adb: Relax legality checks on Access/Unchecked_Access |
| attribute references if access type is Extended_Access. |
| * sem_ch12.adb (Validate_Access_Type_Instance): For an instance of |
| a generic with a formal access type, check that formal and actual |
| agree with with respect to Extended_Access aspect. |
| * sem_prag.adb (Analyze_Pragma): Add analysis code for pragma |
| Extended_Access. Set Pragma_Extended_Access element in Sig_Flags |
| aggregate. |
| * sem_prag.ads: Set Pragma_Extended_Access element in |
| Aspect_Specifying_Pragma aggregate. |
| * sem_res.adb (Valid_Conversion): Disallow |
| extended-to-not-extended access conversion. |
| * sem_util.adb (Is_Extended_Access_Access_Type): Implement new |
| function. |
| (Is_Aliased_View): If (and only if) the new Boolean For_Extended |
| parameter is True, then a slice of an aliased non-bitpacked array |
| is aliased, a constrained nominal subtype does not force a result |
| of False, and a dereference of an extended access value is |
| aliased. The last point is somewhat subtle. This is how we prevent |
| covert fat-to-nonfat type conversions via things like |
| "Not_Extended_Type'(Extended_Ptr.all'Access)" or passing |
| Extended_Ptr.all as an actual parameter corresponding to an |
| explicitly aliased formal parameter. |
| * sem_util.ads (Is_Extended_Access_Type): Declare new function. |
| (Is_Aliased_View): Add new defaults-False parameter For_Extended. |
| * snames.ads-tmpl: Declare Name_Extended_Access Name_Id constant |
| and Pragma_Extended_Access Pragma_Id enumeration literal. |
| |
| 2024-11-04 Viljar Indus <indus@adacore.com> |
| |
| * sem_warn.adb (Check_One_Unit): When a system extension is |
| present always check entities from that unit before marking |
| the unit unreferenced. |
| |
| 2024-11-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/113036 |
| * freeze.adb (Freeze_Expression): Deal with freezing actions coming |
| from within nested internal loops present in spec expressions. |
| |
| 2024-11-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_aggr.adb (Resolve_Iterated_Component_Association): Change to |
| function returning Boolean and return the result of the call made |
| to Resolve_Aggr_Expr. |
| (Resolve_Array_Aggregate): Return failure status if the call to |
| Resolve_Iterated_Component_Association returns false. |
| |
| 2024-11-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_aggr.adb (Resolve_Iterated_Component_Association): Move up |
| declaration of Expr and remove dead code from older processing. |
| |
| 2024-11-04 Viljar Indus <indus@adacore.com> |
| |
| * usage.adb: Update the wording for -gnatVa and -gnatVd. |
| |
| 2024-11-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.ads (Is_Two_Pass_Aggregate): Beef up comment. |
| |
| 2024-11-04 Ronan Desplanques <desplanques@adacore.com> |
| |
| * comperr.adb (Compiler_Abort): Display message in exception handler. |
| |
| 2024-11-04 Javier Miranda <miranda@adacore.com> |
| |
| * exp_ch2.adb (Expand_N_Interpolated_String_Literal): Use the |
| base type of the type imposed by the context for building the |
| interpolated string image; required to allow the expander adding |
| the missing runtime check when the target type is constrained. |
| (Apply_Static_Length_Check): New subprogram. |
| |
| 2024-11-04 Daniel King <dmking@adacore.com> |
| |
| * Makefile.rtl: Use s-secsta__cheri.adb on Morello CheriBSD. |
| * libgnat/s-secsta__cheri.adb: New file. |
| |
| 2024-11-04 Daniel King <dmking@adacore.com> |
| |
| * libgnarl/s-intman__cheribsd.adb: Add SIGPROT to interrupt list. |
| |
| 2024-11-04 Viljar Indus <indus@adacore.com> |
| |
| * diagnostics-sarif_emitter.adb (Print_Runs): Add printing for |
| the invocation node that consists of a single invocations that |
| is composed of the commandLine and executionSuccessful attributes. |
| |
| 2024-11-04 Viljar Indus <indus@adacore.com> |
| |
| * diagnostics-sarif_emitter.adb (Print_SARIF_Report): Add a |
| Schema field to the SARIF report. |
| |
| 2024-11-04 Ronan Desplanques <desplanques@adacore.com> |
| |
| * libgnarl/s-mudido__affinity.adb (Unchecked_Set_Affinity): Set new |
| ATCB component. |
| * libgnarl/s-taprop__linux.adb (Create_Task): Only set CPU affinity |
| when required. |
| (Requires_Affinity_Change): New subprogram. |
| (Set_Task_Affinity): Likewise. |
| * libgnarl/s-tarest.adb (Create_Restricted_Task): Adapt to |
| Initialize_ATCB change. |
| * libgnarl/s-taskin.adb (Initialize_ATCB): Update parameter list. |
| Record whether aspects were explicitly specified. |
| * libgnarl/s-taskin.ads (Common_ATCB): Add component. |
| * libgnarl/s-tassta.adb (Create_Task): Update call to Initialize_ATCB. |
| * libgnarl/s-tporft.adb (Register_Foreign_Thread): Likewise. |
| |
| 2024-11-04 Raphaël AMIARD <amiard@adacore.com> |
| |
| * sem_prag.adb (Analyze_Pragma): Fix format for second line of |
| warning (should be a continuation line) |
| |
| 2024-11-04 Daniel King <dmking@adacore.com> |
| |
| * Makefile.rtl: Build support for Morello CheriBSD. |
| * libgnarl/s-intman__cheribsd.adb: New file for CheriBSD. |
| * libgnarl/s-osinte__cheribsd.ads: New file for CheriBSD. |
| |
| 2024-11-04 Daniel King <dmking@adacore.com> |
| |
| * libgnat/i-cheri.ads: Remove exception declarations. |
| * libgnat/i-cheri-exceptions.ads: New file. |
| |
| 2024-11-04 Daniel King <dmking@adacore.com> |
| |
| * libgnat/s-oslock__posix.ads: Fix alignment of pthread_mutex_t |
| for CHERI targets. |
| |
| 2024-11-04 Claire Dross <dross@adacore.com> |
| |
| * Makefile.rtl: Remove references to moved units. |
| * libgnat/a-chtgfk.adb: Removed. |
| * libgnat/a-chtgfk.ads: Removed. |
| * libgnat/a-chtgfo.adb: Removed. |
| * libgnat/a-chtgfo.ads: Removed. |
| * libgnat/a-cohata.ads (Generic_Formal_Hash_Table_Types): Removed. |
| |
| 2024-11-04 Raphaël AMIARD <amiard@adacore.com> |
| |
| * doc/gnat_rm/gnat_language_extensions.rst: Adjust documentation. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-11-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/117051 |
| * freeze.adb (Freeze_Entity): Call the layout procedure on subtypes |
| declared in a generic unit when they are static. |
| |
| 2024-11-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * adaint.c: Replace initialize.c with rtinit.c in comment. |
| * sysdep.c (__gnat_set_mode): Fix reference in comment. |
| * libgnat/i-cstrea.ads (Content_Encoding): Adjust comment. |
| |
| 2024-11-04 Bob Duff <duff@adacore.com> |
| |
| * sem_ch10.adb (Analyze_With_Clause): In the case of a |
| self-referential with clause, if there is a subsequent use clause |
| for the same package (which is necessarily useless), remove it from |
| the context clause. Reenable the warning. |
| |
| 2024-11-04 Javier Miranda <miranda@adacore.com> |
| |
| * einfo.ads (Is_Dispatch_Table_Wrapper): Complete documentation. |
| * exp_ch6.adb (Install_Class_Preconditions_Check): Dispatch table |
| wrappers do not require installing the check since it is performed |
| by the caller. |
| (Class_Preconditions_Subprogram): Use new predicate Is_LSP_Wrapper. |
| * freeze.adb (Check_Inherited_Conditions): Rename Postcond_Wrappers to |
| Condition_Wrappers to handle implicitly inherited subprograms that |
| implement pre-/postconditions inherited from interface primitives. |
| Use new predicate Is_LSP_Wrapper. |
| * sem_disp.adb (Check_Dispatching_Operation): Complete assertion to |
| handle functions returning class-wide types. |
| * exp_util.ads (Is_LSP_Wrapper): New subprogram. |
| * exp_util.adb (Is_LSP_Wrapper): New subprogram. |
| * contracts.adb (Process_Spec_Postconditions): Use Is_LSP_Wrapper. |
| (Process_Inherited_Conditions): Use Is_LSP_Wrapper. |
| * sem_ch6.adb (New_Overloaded_Entity): Use Is_LSP_Wrapper. |
| * sem_util.adb (Nearest_Class_Condition_Subprogram): Use Is_LSP_Wrapper. |
| |
| 2024-11-04 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_ch7.adb (Uninstall_Declarations): Mark Taft amendment |
| types like we mark other types declared in private package |
| declarations. |
| |
| 2024-11-04 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_ch4.adb (Expand_N_Op_Multiply): Remove extra whitespace. |
| |
| 2024-11-04 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_ch4.adb (Expand_N_Op_Subtract): Replace numeric literal |
| with universal integer constant, just like it is done in |
| expansion of addition operator. |
| |
| 2024-11-04 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_res.adb (In_Decl): Rename and move local variable where |
| it is used. |
| |
| 2024-11-04 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_res.adb (Type_In_P): Add non-null qualifier. |
| |
| 2024-11-04 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_res.adb (Resolve_Intrinsic_Operator) |
| (Resolve_Intrinsic_Unary_Operator): Replace traversals of |
| homonyms with a direct lookup. |
| |
| 2024-11-04 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_res.adb (Resolve_Intrinsic_Unary_Operator): Disable when |
| expansion is inactive. |
| |
| 2024-10-29 David Malcolm <dmalcolm@redhat.com> |
| |
| PR other/116613 |
| * gcc-interface/misc.cc (internal_error_function): Update for |
| m_printer becoming reference printer. |
| |
| 2024-10-29 Marc Poulhiès <poulhies@adacore.com> |
| |
| * types.h: fix static_assert. |
| |
| 2024-10-26 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/62122 |
| * doc/gnat_rm/implementation_defined_attributes.rst |
| (Unrestricted_Access): Remove null exclusion. |
| * gnat_rm.texi: Regenerate. |
| |
| 2024-10-25 Tom Tromey <tromey@adacore.com> |
| |
| * gcc-interface/decl.cc (gnat_to_gnu_entity): Use gnu_fat_type as the type |
| context for a XUB type. |
| |
| 2024-10-25 Tom Tromey <tromey@adacore.com> |
| |
| * gcc-interface/decl.cc (gnat_to_gnu_entity): Update some calls to |
| create_type_decl. |
| * gcc-interface/gigi.h (create_type_decl): Add can_be_nameless parameter. |
| * gcc-interface/utils.cc (create_type_decl): Add can_be_nameless |
| parameter. Set DECL_NAMELESS on type decl. |
| |
| 2024-10-25 Tom Tromey <tromey@adacore.com> |
| |
| * gcc-interface/utils.cc (record_builtin_type, create_type_stub_decl): |
| Set DECL_NAMELESS on type decls. |
| |
| 2024-10-25 Tom Tromey <tromey@adacore.com> |
| |
| * gcc-interface/decl.cc (gnat_to_gnu_entity): Pass 'true' to |
| create_type_decl when creating XUA type. |
| |
| 2024-10-25 Tom Tromey <tromey@adacore.com> |
| |
| * gcc-interface/decl.cc (gnat_to_gnu_entity): Set TYPE_NAMELESS on |
| XUB types. |
| |
| 2024-10-25 Tom Tromey <tromey@adacore.com> |
| |
| * gcc-interface/decl.cc (gnat_to_gnu_entity): Pass artificial_p to |
| build_unc_object_type. |
| * gcc-interface/gigi.h (build_unc_object_type): Update. |
| * gcc-interface/utils.cc (build_unc_object_type) Add artificial_p |
| parameter. |
| (build_unc_object_type_from_ptr): Update. |
| |
| 2024-10-25 Tom Tromey <tromey@adacore.com> |
| |
| * gcc-interface/decl.cc (is_artificial): New function. |
| (gnat_to_gnu_entity): Use it. |
| |
| 2024-10-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.cc (Call_to_gnu): If the formal is passed by |
| reference and the actual is a type conversion but not addressable, |
| create the temporary in the target type of the conversion if this |
| is needed to enforce strict aliasing. |
| |
| 2024-10-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/116551 |
| * gcc-interface/trans.cc (node_is_atomic) <N_Identifier>: Return |
| false if the type of the entity is an unconstrained array type. |
| (node_is_volatile_full_access) <N_Identifier>: Likewise. |
| |
| 2024-10-25 Bob Duff <duff@adacore.com> |
| |
| * sem_ch10.adb (Analyze_With_Clause): Temporarily disable warning. |
| |
| 2024-10-25 Bob Duff <duff@adacore.com> |
| |
| * sem_ch10.adb: (Analyze_With_Clause): Check for self-referential |
| with clause. Give a warning, and set Is_Implicit_With, which we |
| are reusing in this obscure case even though it's not really |
| implicit. |
| (Analyze_Context): Remove check for self-referential with clause. |
| It wasn't correct -- it only triggered for Acts_As_Spec |
| subprograms. Corrected check is now in Analyze_With_Clause. |
| (Implicit_With): Rename to be Is_Implicit_With. Misc cleanup, |
| comment fixes. |
| (Process_Spec_Clauses): Remove default for Exit_On_Self parameter. |
| Use "exit when" instead of if statement. |
| * sinfo.ads (Implicit_With): Rename to be Is_Implicit_With. |
| Document new use for self-referential withs. |
| * ali.adb (Scan_ALI): Use an aggregate to initialize Withs entry. |
| * exp_put_image.adb (Preload_Root_Buffer_Type): Make this a |
| once-only procedure. |
| * sem_util.ads (Is_Ancestor_Package): Fix comment -- a libraryunit |
| is an ancestor of itself, but this doesn't return True in that |
| case. |
| * sem_util.adb (Is_Ancestor_Package): Better to initialize things |
| on their declaration. |
| * lib-load.adb: Minor comment fix. |
| * sem_prag.adb: Implicit_With --> Is_Implicit_With. Minor comment |
| fix. |
| * gen_il-fields.ads: Implicit_With --> Is_Implicit_With. |
| * gen_il-gen-gen_nodes.adb: Likewise |
| * lib.adb: Likewise |
| * lib-writ.adb: Likewise |
| * rtsfind.adb: Likewise |
| * sem_cat.adb: Likewise |
| * sem_ch12.adb: Likewise |
| * sem_ch8.adb: Likewise |
| * sem_elab.adb: Likewise |
| * sem_warn.adb: Likewise |
| * gcc-interface/trans.cc: (Implicit_With): Rename to be |
| Is_Implicit_With. |
| |
| 2024-10-25 Tom Tromey <tromey@adacore.com> |
| |
| * gcc-interface/trans.cc (namespace_map): New global. |
| (Compilation_Unit_to_gnu): Also handle N_With_Clause and |
| N_Use_Package_Clause. |
| (get_or_create_namespace, get_namespace): New functions. |
| (gnat_to_gnu) <N_Package_Renaming_Declaration>: Call |
| get_namespace. |
| <N_Use_Package_Clause, N_With_Clause>: Likewise. |
| |
| 2024-10-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * freeze.adb (Freeze_Expression.In_Expanded_Body): Tweak comments. |
| |
| 2024-10-25 Javier Miranda <miranda@adacore.com> |
| |
| * freeze.adb (Freeze_Entity): If the entity is an access-to-subprogram |
| type declaration that pre/postcondition contracts, build the |
| wrapper |
| (if not previously done as part of processing aspects). |
| * sem_ch3.adb (Build_Access_Subprogram_Wrapper): Add missing support |
| for building the wrapper when the access type has pragmas |
| Pre_Class/Post_Class. |
| (Build_Access_Subprogram_Wrapper_Declaration): New subprogram. |
| * sem_ch3.ads (Build_Access_Subprogram_Wrapper): Spec moved to the |
| public part of the package. |
| * sem_prag.adb (Analyze_Pre_Post_Condition): Store in the tree copy of |
| class-wide pre/postcondition expression; required to merge it with |
| inherited conditions. |
| (Is_Valid_Assertion_Kind): Added Pre_Class and Post_Class. |
| |
| 2024-10-25 Richard Kenner <kenner@adacore.com> |
| |
| * doc/gnat_ugn/about_this_guide.rst: Numerous changes to language |
| and style and add some LLVM-specific information. |
| * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Likewise. |
| * doc/gnat_ugn/example_of_binder_output.rst: Likewise. |
| * doc/gnat_ugn/getting_started_with_gnat.rst: Likewise. |
| * doc/gnat_ugn/gnat_and_program_execution.rst: Likewise. |
| * doc/gnat_ugn/gnat_utility_programs.rst: Likewise. |
| * doc/gnat_ugn/inline_assembler.rst: Likewise. |
| * doc/gnat_ugn/platform_specific_information.rst: Likewise. |
| * doc/gnat_ugn/the_gnat_compilation_model.rst: Likewise. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-10-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/43485 |
| * libgnarl/a-retide.adb: Add with clause for System.Soft_Links. |
| (Delay_Until): Defer and undefer abort around the call to the |
| Timed_Delay routine of System.Task_Primitives.Operations. |
| |
| 2024-10-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * freeze.adb (Freeze_Expression.In_Expanded_Body): Also return True |
| for the body of a helper/wrapper built for class-wide preconditions. |
| |
| 2024-10-25 Javier Miranda <miranda@adacore.com> |
| |
| * sem_prag.adb (Analyze_Pre_Post_Condition): Allow the use of |
| pragma Pre_Class/Post_Class with abstract subprograms. |
| |
| 2024-10-25 Javier Miranda <miranda@adacore.com> |
| |
| * sem_ch3.adb (Record_Type_Definition): For tagged types, add |
| the missing decoration to the First_Entity in the corresponding |
| class-wide type entity. |
| |
| 2024-10-25 Ronan Desplanques <desplanques@adacore.com> |
| |
| * doc/gnat_rm/gnat_language_extensions.rst: Adjust documentation. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-10-25 Richard Kenner <kenner@adacore.com> |
| |
| * comperr.ads (Compiler_Error): Update documentation. |
| |
| 2024-10-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * uintp.ads (Type_Size_For): New function declaration. |
| * uintp.adb (Type_Size_For): New function body. |
| * exp_imgv.adb (Rewrite_Object_Image): Call Type_Size_For to get |
| the size of a narrower integer type. |
| |
| 2024-10-25 Tonu Naks <naks@adacore.com> |
| |
| * doc/gnat_rm/gnat_language_extensions.rst: update |
| simpler accessibility model |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-10-25 Bob Duff <duff@adacore.com> |
| |
| * doc/gnat_rm/gnat_language_extensions.rst: |
| Minor wording improvments. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-10-25 squirek <squirek@adacore.com> |
| |
| * libgnarl/s-taprop__mingw.adb: Modify stack size and update |
| documentation. |
| |
| 2024-10-25 Javier Miranda <miranda@adacore.com> |
| |
| * gen_il-fields.ads: New node field (Is_Expanded_Prefixed_Call). |
| * gen_il-gen-gen_nodes.adb: New semantic field for N_Function_Call |
| and N_Procedure_Call_Statement nodes. |
| * sem_ch4.adb (Complete_Object_Operation): Mark the rewritten node |
| with the Is_Expanded_Prefixed_Call flag. |
| * sem_res.adb (Check_Prefixed_Call): Code cleanup and addition of |
| documentation. |
| (Resolve_Actuals): Add a null-exclusion check on the |
| prefix of the call when it is an access-type. |
| * sinfo.ads: Adding new semantic flag (Is_Expanded_Prefixed_Call) |
| to N_Function_Call and N_Procedure_Call_Statement nodes. |
| * debug.adb: Adding documentation for switch d_P. |
| |
| 2024-10-25 Raphaël AMIARD <amiard@adacore.com> |
| |
| * sem_ch13.adb (Analyze_One_Aspect): change the call to |
| `Error_Msg_GNAT_Extension` to allow this aspect in core |
| extensions. Put the code path in core extensions. |
| * exp_util.adb (Name_Of_Controlled_Prim_Op): Put the code path |
| in core extensions |
| |
| 2024-10-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_type.ads (Interp ): Add Opnd_Typ component and remove default |
| value for Abstract_Op component. |
| (Add_One_Interp): Rename Opnd_Type parameter to Opnd_Typ. |
| * sem_type.adb (Add_One_Interp): Likewise. |
| (Add_One_Interp.Add_Entry): Record the operand type as well. |
| (Collect_Interp): Record Empty for the operand type. |
| (Disambiguate.Is_Ambiguous_Boolean_Operator): New predicate. |
| (Disambiguate): Use it to detect recorded ambiguity cases. |
| * sem_ch4.adb (Find_Comparison_Equality_Types): Add commentary. |
| |
| 2024-10-25 Javier Miranda <miranda@adacore.com> |
| |
| * sem_ch8.adb (Freeze_Actual_Profile): Do not report error |
| on incomplete types, since they do not cause freezing. |
| |
| 2024-10-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * namet.adb (Append_Decoded_With_Brackets): Fix condition for the |
| cheap test at the beginning of the loop. |
| |
| 2024-10-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/115507 |
| * rtsfind.ads (RE_Id): Add RE_Enum_[Wide_]Wide_String_To_String. |
| (RE_Unit_Table): Add entries for the new values. |
| * exp_attr.adb (Is_User_Defined_Enumeration_Type): New predicate. |
| (Expand_N_Attribute_Reference) <Attribute_Wide_Value>: Build a call |
| to RE_Enum_Wide_String_To_String for user-defined enumeration types. |
| <Attribute_Wide_Wide_Value>: Likewise with |
| RE_Enum_Wide_Wide_String_To_String. |
| * exp_imgv.adb (Expand_Value_Attribute): Adjust to above. |
| * libgnat/s-wchwts.ads (Enum_Wide_String_To_String): New function. |
| (Enum_Wide_Wide_String_To_String): Likewise. |
| * libgnat/s-wchwts.adb: Add clauses for System.Case_Util. |
| (Normalize_String): New local procedure. |
| (Enum_Wide_String_To_String): New function body. |
| (Enum_Wide_Wide_String_To_String): Likewise. |
| |
| 2024-10-25 Javier Miranda <miranda@adacore.com> |
| |
| * sem_res.adb (Resolve_Actuals): Add checks for incomplete |
| type actuals. |
| |
| 2024-10-25 Raphaël AMIARD <amiard@adacore.com> |
| |
| * par-ch5.adb (P_Sequence_Of_Statements): Forbid repr clauses in |
| handled_statements. |
| |
| 2024-10-25 Raphaël AMIARD <amiard@adacore.com> |
| |
| * sem_util.ads: Introduce Inspect_Deferred_Constant_Completion |
| on a single object declaration, to better factorize the code |
| * sem_util.adb: Introduce aforementioned overload |
| * sem_ch4.adb (Analyze_Expression_With_Actions): Check deferred |
| constant completions |
| * sem_ch5.adb (Analyze_Statements): Check deferred constant |
| completions |
| |
| 2024-10-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch6.adb (Expand_Actuals.Is_Legal_Copy): Return True for an |
| initialization procedure with a full access formal parameter. |
| (Expand_Actuals.Requires_Atomic_Or_Volatile_Copy): Return True if |
| the formal parameter is of a full access unconstrained array type. |
| |
| 2024-10-24 David Malcolm <dmalcolm@redhat.com> |
| Gaius Mulley <gaiusmod2@gmail.com> |
| |
| PR other/116613 |
| * gcc-interface/misc.cc: Add #define INCLUDE_MEMORY |
| * gcc-interface/trans.cc: Likewise. |
| * gcc-interface/utils.cc: Likewise. |
| |
| 2024-10-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/116498 |
| PR ada/117087 |
| * gcc-interface/decl.cc (validate_size): Fix thinko. |
| |
| 2024-10-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/117038 |
| * fe.h (struct c_array): Add 'const' to declaration of pointer. |
| (C_Source_Buffer): Use consistent formatting. |
| * par-ch3.adb (P_Component_Items): Properly set Aliased_Present on |
| access definition. |
| * sinput.ads: Remove clause for Interfaces.C. |
| (C_Array): Change type of Length to Integer and make both components |
| aliased. Remove Convention aspect. |
| (C_Source_Buffer): Remove all aspects. |
| * sinput.adb (C_Source_Buffer): Adjust to above change. |
| |
| 2024-10-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * Makefile.rtl: Remove HP-UX 10 section. |
| * libgnarl/s-osinte__hpux-dce.ads: Delete. |
| * libgnarl/s-osinte__hpux-dce.adb: Likewise. |
| * libgnarl/s-taprop__hpux-dce.adb: Likewise. |
| * libgnarl/s-taspri__hpux-dce.ads: Likewise. |
| * libgnat/s-oslock__hpux-dce.ads: Likewise. |
| |
| 2024-10-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/116498 |
| * gcc-interface/decl.cc (validate_size): Use the size of the default |
| pointer mode as the minimum size for access types and fat pointers. |
| |
| 2024-10-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.cc (Raise_Error_to_gnu) <CE_Invalid_Data>: |
| Do not the generate range information if the value is a call to a |
| Rep_To_Pos function. |
| |
| 2024-10-08 Olivier Hainque <hainque@adacore.com> |
| |
| * sigtramp-armdroid.c: Refactor into ... |
| * sigtramp-android.c, sigtramp-android-asm.h: New files. |
| * Makefile.rtl (arm/aarch64-android section): Add |
| sigtramp-android.o to EXTRA_LIBGNAT_OBJS unconditionally. Add |
| sigtramp.h and sigtramp-android-asm.h to EXTRA_LIBGNAT_SRCS. |
| * init.c (android section, __gnat_error_handler): Defer to |
| __gnat_sigramp unconditionally again. |
| * sigtramp.h: Adjust comments to allow neutral signal handling |
| relays, merely forwarding to the underlying handler without any |
| intermediate CFI magic. |
| |
| 2024-10-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/115507 |
| * exp_imgv.adb (Expand_Valid_Value_Attribute): Add actual parameter |
| for Is_Wide formal in the call to Valid_Value_Enumeration_NN. |
| (Expand_Value_Attribute): Likewise. |
| * libgnat/s-vaen16.ads (Value_Enumeration_16): Add Is_Wide formal. |
| (Valid_Value_Enumeration_16): Likewise. |
| * libgnat/s-vaen32.ads (Value_Enumeration_32): Likewise. |
| (Valid_Value_Enumeration_32): Likewise. |
| * libgnat/s-vaenu8.ads (Value_Enumeration_8): Likewise. |
| (Valid_Value_Enumeration_8): Likewise. |
| * libgnat/s-valboo.adb (Value_Boolean): Pass True for To_Upper_Case |
| formal parameter in call to Normalize_String. |
| * libgnat/s-valcha.adb (Value_Character): Likewise. |
| * libgnat/s-valuen.ads (Value_Enumeration): Add Is_Wide formal. |
| (Valid_Value_Enumeration): Likewise. |
| * libgnat/s-valuen.adb (Value_Enumeration_Pos): Likewise and pass |
| its negation for To_Upper_Case formal in call to Normalize_String. |
| (Valid_Value_Enumeration): Add Is_Wide formal and forward it in |
| call to Value_Enumeration_Pos. |
| (Value_Enumeration): Likewise. |
| * libgnat/s-valuti.ads (Normalize_String): Add To_Upper_Case formal |
| parameter and adjust post-condition accordingly. |
| * libgnat/s-valuti.adb (Normalize_String): Add To_Upper_Case formal |
| parameter and adjust implementation accordingly. |
| * libgnat/s-valwch.adb (Value_Wide_Wide_Character): Pass False for |
| To_Upper_Case formal parameter in call to Normalize_String. |
| |
| 2024-10-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/114636 |
| * sem_ch12.adb (Check_Formal_Package_Instance): For a defaulted |
| formal discrete type, skip the generated implicit base type. |
| |
| 2024-10-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/115535 |
| * exp_put_image.adb (Build_Elementary_Put_Image_Call): Use the size |
| of the underlying type to find the support type. |
| |
| 2024-10-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/114640 |
| * exp_util.adb (Find_Hook_Context): For a node present within a |
| conditional expression, do not return an N_Elsif_Part node. |
| |
| 2024-10-08 Viljar Indus <indus@adacore.com> |
| |
| * diagnostics-constructors.adb |
| (Make_Mixed_Container_Aggregate_Error): New function for the error |
| message |
| (Record_Mixed_Container_Aggregate_Error): New function for the |
| error message. |
| * diagnostics-constructors.ads: Likewise. |
| * diagnostics-repository.ads: register new diagnostics id |
| * diagnostics.ads: add new diagnostics id |
| * errout.adb (First_And_Last_Node): Detect the span for component |
| associations. |
| * sem_aggr.adb (Resolve_Container_Aggregate): reject container |
| aggregates that have both named and positional elements. |
| |
| 2024-10-08 Ronan Desplanques <desplanques@adacore.com> |
| |
| * snames.ads-tmpl: Add new pragma definition. |
| * par-prag.adb (Prag): Handle new pragma. |
| * sem_prag.adb (Analyze_Pragma): Implement new pragma. |
| |
| 2024-10-08 Ronan Desplanques <desplanques@adacore.com> |
| |
| * snames.ads-tmpl: Tweak position of comment. |
| |
| 2024-10-08 Tonu Naks <naks@adacore.com> |
| |
| * doc/gnat_rm/gnat_language_extensions.rst: replace |
| references to RFC's with appropriate text from the rfc |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-10-08 Ronan Desplanques <desplanques@adacore.com> |
| |
| * lib-writ.ads (Add_Preprocessing_Dependency): Update |
| documentation comment. |
| * sem_ch3.adb (Apply_External_Initialization): Add call to |
| Add_Preprocessing_Dependency. |
| |
| 2024-10-08 Viljar Indus <indus@adacore.com> |
| |
| * exp_aggr.adb (Build_Siz_Exp): Support deriving the size of the |
| container aggregate with multi-dimensional arrays. Make the |
| function return an node of an expression instead of an integer. |
| Additionally calculate the size expression for |
| Component_Associations. |
| (To_Int) make this method available for more functions. |
| (Aggregate_Size) Relocate the calculation of |
| Componenet_Associations to Build_Siz_Exp. |
| |
| 2024-10-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_tss.ads (Is_Rep_To_Pos): New function declaration. |
| * exp_tss.adb (Is_Rep_To_Pos): New function body. |
| * fe.h (Is_Rep_To_Pos): New macro and extern declaration. |
| |
| 2024-10-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_imgv.adb (Rewrite_Object_Image): When the prefix is a type |
| conversion to Universal_Integer, use its expression directly. When |
| the prefix is an integer literal with Universal_Integer type, try |
| to compute a narrower type. |
| |
| 2024-10-08 Raphaël AMIARD <amiard@adacore.com> |
| |
| * par-ch11.adb (P_Sequence_Of_Statements): Remove Handled |
| parameter. Always wrap the statements in a block when there are |
| declarations in it. |
| * par-ch5.adb: Adapt call to P_Sequence_Of_Statements Update |
| outdated comment, remove useless `Style_Checks` pragma. |
| (P_Sequence_Of_Statements): Don't emit an error in core extensions |
| mode. Emit an error when a non valid declaration is parsed in |
| sequence of statements. |
| * par.adb: Adapt P_Sequence_Of_Statements' signature |
| * doc/gnat_rm/gnat_language_extensions.rst: Adapt documentation |
| now. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-10-08 Ronan Desplanques <desplanques@adacore.com> |
| |
| * generate_minimal_reproducer.adb (Generate_Minimal_Reproducer): |
| Fix behavior on child subprograms without specs. |
| |
| 2024-10-08 Steve Baird <baird@adacore.com> |
| |
| * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Don't freeze here |
| if Has_Delayed_Freeze returns True. |
| * sem_type.adb (Valid_Equality_Arg): Treat an incomplete type like |
| a limited type because neither has an implicitly-defined equality |
| primitive. |
| (Covers): If either argument is an incomplete type |
| whose full view is available, then look through to the full view. |
| * sem_res.adb (Resolve_Actuals): If the actual parameter type is |
| complete and the formal parameter type is not, then update the |
| formal parameter type to use the complete view. |
| |
| 2024-10-08 squirek <squirek@adacore.com> |
| |
| * sem_ch3.adb (Derived_Type_Declaration): Modify generation of |
| compile time check. |
| |
| 2024-10-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnat/s-trasym__dwarf.adb (LDAD_Header): New String constant. |
| (Symbolic_Traceback): Print the load address of the executable at |
| the beginning if it is not null. |
| |
| 2024-10-08 Steve Baird <baird@adacore.com> |
| |
| * sem_ch6.adb (Check_Discriminant_Conformance): In testing whether |
| a default expression is permitted for an access discriminant, we |
| need to know whether the discriminated type is immutably limited. |
| Handle another part of this test that cannot easily be handled in |
| Sem_Aux.Is_Immutably_Limited. This involves declaring a new local |
| function, Is_Derived_From_Immutably_Limited_Type. |
| |
| 2024-10-08 Steve Baird <baird@adacore.com> |
| |
| * sem_attr.adb (Resolve_Attribute): When setting the Etype of a |
| universal-integer-valued attribute reference to the subtype |
| determined by its context, use the basetype of that subtype |
| instead of the subtype itself if there is a possibility that the |
| attribute value will not satisfy the constraints of that subtype. |
| Otherwise the compiler is, in effect, assuming something that |
| might not be true. Except use the subtype in the case of a |
| not-from-source 'Pos attribute reference in order to avoid |
| breaking things. |
| |
| 2024-10-08 Ronan Desplanques <desplanques@adacore.com> |
| |
| * comperr.adb (Compiler_Abort): Add call to |
| Generate_Minimal_Reproducer and replace call to Namet.Unlock with |
| call to Unlock_If_Locked. |
| * debug.adb: Document new purpose of -gnatd_m and -gnatd_M. |
| * fname-uf.adb (Instantiate_SFN_Pattern): New procedure. |
| (Get_Default_File_Name): New function. |
| (Get_File_Name): Replace inline code with call to |
| Instantiate_SFN_Pattern. |
| * fname-uf.ads (Get_Default_File_Name): New function. |
| * generate_minimal_reproducer.adb (Generate_Minimal_Reproducer): |
| New procedure. |
| * namet.adb (Unlock_If_Locked): New function. |
| * namet.ads (Unlock_If_Locked): Likewise. |
| * par-prag.adb (Prag): Add special behavior with -gnatd_M. |
| * set_targ.adb: Minor fixes to comments. |
| * gcc-interface/Make-lang.in: Update list of object files. |
| |
| 2024-10-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.ads (Is_Two_Pass_Aggregate): New function declaration. |
| * exp_aggr.adb (Is_Two_Pass_Aggregate): New function body. |
| (Expand_Array_Aggregate): Call Is_Two_Pass_Aggregate to detect the |
| aggregates that need the 2-pass expansion. |
| * exp_ch3.adb (Expand_Freeze_Array_Type): In the anonymous array |
| case, build the initialization procedure if the initial value in |
| the object declaration is a 2-pass aggregate. |
| |
| 2024-10-08 Ghjuvan Lacambre <lacambre@adacore.com> |
| |
| * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Fix |
| indentation. |
| |
| 2024-10-08 Ronan Desplanques <desplanques@adacore.com> |
| |
| * aspects.ads: Add entities for External_Initialization. |
| * checks.adb (Selected_Length_Checks): Add support for |
| N_External_Initializer nodes. |
| * doc/gnat_rm/gnat_language_extensions.rst: Add section for the added |
| extension. |
| * exp_util.adb (Insert_Actions): Add support for N_External_Initializer |
| nodes. |
| * fe.h (C_Source_Buffer): New function. |
| * gen_il-fields.ads: Add new field. |
| * gen_il-gen-gen_nodes.adb: Add N_External_Initializer node kind. |
| * gen_il-gen.adb: Add new field type. |
| * gen_il-types.ads: Add new node kind and new field type. |
| * pprint.adb (Expr_Name): Handle new node kind. |
| * sem.adb (Analyze): Add support for N_External_Initializer nodes. |
| * sem_ch13.adb (Analyze_Aspect_Specifications, Check_Aspect_At_Freeze_Point): |
| Add support for External_Initialization aspect. |
| * sem_ch3.adb (Apply_External_Initialization): New subprogram. |
| (Analyze_Object_Declaration): Add support for External_Initialization aspect. |
| * sem_res.adb (Resolve_External_Initializer): New procedure. |
| (Resolve): Add support for N_External_Initializer nodes. |
| (Set_String_Literal_Subtype): Extend to handle N_External_Initializer nodes. |
| * sinfo-utils.adb (Is_In_Union_Id): Adapt to new field addition. |
| * sinfo.ads: Add documentation for new node kind and new field. |
| * sinput.adb, sinput.ads (C_Source_Buffer): Add new C interface function. |
| * snames.ads-tmpl: Add new aspect identifier. |
| * sprint.adb (Sprint_Node_Actual): Add nop handling of N_External_Initializer |
| nodes. |
| * types.ads: Modify type to allow for new C interface. |
| * gcc-interface/trans.cc (gnat_to_gnu): Handle new GNAT node type. |
| * gcc-interface/Make-lang.in: Update list of stage1 run-time library units. |
| * gnat-style.texi: Regenerate. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-10-08 Olivier Hainque <hainque@adacore.com> |
| |
| * Makefile.rtl (arm/aarch64-android): Associate a-nallfl.ads with |
| libgnat/a-nallfl__wraplf.ads. |
| |
| 2024-10-08 Olivier Hainque <hainque@adacore.com> |
| |
| * libgnarl/s-linux__android-arm.ads: Define SIGSYS. |
| * libgnarl/s-linux__android-aarch64.ads: Define SIGSYS. |
| * libgnarl/s-osinte__android.ads: Expose SIGSYS value. |
| |
| 2024-10-08 Olivier Hainque <hainque@adacore.com> |
| |
| * libgnarl/s-linux__android-arm.ads: New file, renaming of ... |
| * libgnarl/s-linux__android.ads: ... this file. |
| * libgnarl/s-linux__android-aarch64.ads: New file. Based on the |
| -arm variant, with sa_ field positions adjusted. |
| * Makefile.rtl (arm/aarch64-android pairs): Adjust accordingly. |
| * libgnarl/s-osinte__android.ads: Rather than making assumptions |
| on the actual type of the C sigset_t, use |
| Os_Constants.SIZEOF_sigset_t to define an Ada sigset_t type of the |
| proper size. Use C.int instead of unsigned_long for sa_flags. |
| |
| 2024-10-08 Olivier Hainque <hainque@adacore.com> |
| |
| * init.c (__gnat_error_handler): Map signals straight to Ada |
| exceptions, without a local CFI trampoline. |
| (__gnat_adjust_context_for_raise): Guard arm specific code on __arm__ |
| compilation. Do nothing otherwise, relying on libgcc's signal |
| frame recognition for PC/RA adjustments. |
| |
| 2024-10-08 Olivier Hainque <hainque@adacore.com> |
| |
| * Makefile.rtl: Extend arm-android section to aarch64, in a similar |
| fashion as other arm/arch64 configurations. Introduce pair |
| selection guards to prevent match of aarch64-linux-android on the |
| regular aarch64-linux% cross as well. |
| |
| 2024-10-08 Ghjuvan Lacambre <lacambre@adacore.com> |
| |
| * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Turn |
| Compile_Time pragmas into null nodes |
| |
| 2024-10-05 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR middle-end/116933 |
| * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Out_Parameter>: Add |
| the "uninitialized" attribute on Out parameters. |
| * gcc-interface/utils.cc (gnat_internal_attributes): Add entry for |
| the "uninitialized" attribute. |
| (handle_uninitialized_attribute): New function. |
| |
| 2024-09-25 Mikael Morin <mikael@gcc.gnu.org> |
| |
| PR other/116801 |
| * gcc-interface/lang.opt.urls: Regenerate. |
| |
| 2024-09-10 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/misc.cc: Include memmodel.h before tm_p.h. |
| |
| 2024-09-10 Viljar Indus <indus@adacore.com> |
| |
| * gcc-interface/decl.cc: Use same warning characters in |
| continuation messages. |
| * gcc-interface/trans.cc: Likewise. |
| |
| 2024-09-10 Javier Miranda <miranda@adacore.com> |
| |
| * sem_ch13.adb (Analyze_One_Aspect): Call |
| Error_Msg_GNAT_Extension() to report an error when the aspect |
| First_Controlling_Parameter is set to True and the sources are |
| compiled without Core_Extensions_ Allowed. |
| * sem_prag.adb (Pragma_First_Controlling_Parameter): Call |
| subprogram Error_Msg_GNAT_Extension() to report an error when the |
| aspect First_Controlling_Parameter is set to True and the sources |
| are compiled without Core_Extensions_Allowed. Report an error when |
| the aspect pragma does not confirm an inherited True value. |
| |
| 2024-09-10 Viljar Indus <indus@adacore.com> |
| |
| * diagnostics-pretty_emitter.adb (Get_Last_Line_Char): New. Get |
| the last non line change character. Write_Span_Labels use the |
| adjusted line end pointer to calculate the length of the span. |
| |
| 2024-09-10 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_intr.ads, exp_intr.adb (Expand_Source_Info): Move |
| declaration to package spec. |
| * sem_eval.adb (Eval_Intrinsic_Call): Evaluate calls to |
| GNAT.Source_Info where possible. |
| |
| 2024-09-10 Piotr Trojanek <trojanek@adacore.com> |
| |
| * checks.adb (Remove_Checks): Combine CASE alternatives. |
| |
| 2024-09-10 Piotr Trojanek <trojanek@adacore.com> |
| |
| * libgnat/s-os_lib.ads: Remove extra whitespace. |
| |
| 2024-09-09 David Malcolm <dmalcolm@redhat.com> |
| |
| PR other/116613 |
| * gcc-interface/misc.cc (internal_error_function): Rename |
| diagnostic_context's "printer" field to "m_printer". |
| |
| 2024-09-05 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.cc (addressable_p) <COMPONENT_REF>: Add bypass |
| for internal fields on strict-alignment platforms. |
| |
| 2024-09-05 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/gigi.h (default_field_alignment): New function. |
| * gcc-interface/misc.cc: Include tm_p header file. |
| (default_field_alignment): New function. |
| * gcc-interface/trans.cc (addressable_p) <COMPONENT_REF>: Replace |
| previous alignment klduge with call to default_field_alignment. |
| * gcc-interface/utils.cc (finish_record_type): Likewise for the |
| alignment based on which DECL_BIT_FIELD should be cleared. |
| |
| 2024-09-05 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_util.ads, exp_util.adb (Duplicate_Subexpr_No_Checks): |
| Remove parameters, which are no longer used. |
| |
| 2024-09-05 Viljar Indus <indus@adacore.com> |
| |
| * par-endh.adb: add call to new diagnostic for end loop errors. |
| * sem_ch13.adb: add call to new diagnostic for default iterator |
| error and record representation being too late. |
| * sem_ch4.adb: Add new diagnostic for wrong operands. |
| * sem_ch9.adb: Add new diagnostic for a Lock_Free warning. |
| * libgnat/g-lists.adb (Ensure_Unlocked): Make checks for tampering |
| conditional. |
| * libgnat/g-lists.ads: Add parameter Tampering_Checks to control |
| whether tampering checks should be executed. |
| * backend_utils.adb: Add new gcc switches |
| '-fdiagnostics-format=sarif-file' and |
| '-fdiagnostics-format=sarif-stderr'. |
| * debug.adb: document -gnatd_D switch. |
| * diagnostics-brief_emitter.adb: New package for displaying |
| diagnostic messages in a compact manner. |
| * diagnostics-brief_emitter.ads: Same as above. |
| * diagnostics-constructors.adb: New pacakge for providing simpler |
| constructor methods for new diagnostic objects. |
| * diagnostics-constructors.ads: Same as above. |
| * diagnostics-converter.adb: New package for converting old |
| Error_Msg_Object-s to Diagnostic_Types. |
| * diagnostics-converter.ads: Same as above. |
| * diagnostics-json_utils.adb: Package for utility methods related |
| to emitting JSON. |
| * diagnostics-json_utils.ads: Same as above. |
| * diagnostics-pretty_emitter.adb: New package for displaying |
| diagnostic messages in a more elaborate manner. |
| * diagnostics-pretty_emitter.ads: Same as above. |
| * diagnostics-repository.adb: New package for collecting all |
| created error messages. |
| * diagnostics-repository.ads: Same as above. |
| * diagnostics-sarif_emitter.adb: New pacakge for converting all of |
| the diagnostics into a report in the SARIF format. |
| * diagnostics-sarif_emitter.ads: Same as above. |
| * diagnostics-switch_repository.adb: New package containing the |
| definitions for all of the warninging switches. |
| * diagnostics-switch_repository.ads: Same as above. |
| * diagnostics-utils.adb: Contains various utility methods for the |
| diagnostic pacakges. |
| * diagnostics-utils.ads: Same as above. |
| * diagnostics.adb: Contains the definitions and common functions |
| for all the new diagnostics objects. |
| * diagnostics.ads: Same as above. |
| * errout.adb: Relocate the old implementations for brief and |
| pretty printing the diagnostic messages and the entrypoint to the |
| new implementation if a debug switch is used. |
| * errout.ads: Improve documentation. Make Set_Msg_Text publicly |
| available. |
| * opt.ads: Add the flag SARIF_File which controls whether the |
| diagnostic messages should be printed to a file in the SARIF |
| format. Add the flag SARIF_Output to control whether the |
| diagnostic messages should be printed to std-err in the SARIF |
| format. |
| * gcc-interface/Make-lang.in: Add new pacakages to the object |
| list. |
| * gcc-interface/Makefile.in: Add new pacakages to the object list. |
| |
| 2024-09-05 Jose Ruiz <ruiz@adacore.com> |
| |
| * ali-util.adb (Get_File_Checksum): Force the parsing for |
| the checksum computation of runtime files to be done in |
| the corresponding recent Ada version. |
| |
| 2024-09-05 Ronan Desplanques <desplanques@adacore.com> |
| |
| * inline.adb (Cannot_Inline): Remove assertion. |
| * inline.ads (Cannot_Inline): Add precondition. |
| |
| 2024-09-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.cc (addressable_p) <COMPONENT_REF>: Add kludge |
| to cope with ancient 32-bit ABIs. |
| |
| 2024-09-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.cc (create_temporary): Deal with types whose |
| size is self-referential by allocating the maximum size. |
| |
| 2024-09-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.cc (get_atomic_access): Deal specifically with |
| nodes that are both Atomic and Volatile_Full_Access in Ada 2012. |
| |
| 2024-09-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.cc (addressable_p) <COMPONENT_REF>: Take into |
| account the alignment of the field on all platforms. |
| |
| 2024-09-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.cc (gnat_to_gnu_field): Clear again gnu_size |
| after updating it if it is not constant. |
| |
| 2024-09-03 Marc Poulhiès <poulhies@adacore.com> |
| |
| * exp_unst.adb (Check_Static_Type::Note_Uplevel_Bound): Refactor |
| to use the generic Traverse_Proc. |
| (Check_Static_Type): Adjust calls to Note_Uplevel_Bound as the |
| previous second parameter was unused, so removed. |
| |
| 2024-09-03 Steve Baird <baird@adacore.com> |
| |
| * exp_attr.adb (Expand_N_Attribute_Reference): If it makes sense |
| to do so, then rewrite a Length attribute reference as an |
| equivalent conditional expression. |
| |
| 2024-09-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_res.adb (Is_Atomic_Ref_With_Address): Rename into... |
| (Is_Atomic_Non_VFA_Ref_With_Address): ...this and adjust the |
| implementation to exclude Volatile_Full_Access objects. |
| (Resolve_Indexed_Component): Adjust to above renaming. |
| (Resolve_Selected_Component): Likewise. |
| |
| 2024-09-03 Steve Baird <baird@adacore.com> |
| |
| * sem_aggr.adb (Resolve_Array_Aggregate): Implement the two new |
| legality rules of AI11-0106. Add code to avoid cascading error |
| messages. |
| |
| 2024-09-03 Bob Duff <duff@adacore.com> |
| |
| * exp_ch6.adb (Add_Collection_Actual_To_Build_In_Place_Call): |
| Remove Finalize_Storage_Only from the code that checks whether to |
| pass null to the Collection parameter. Having done that, we don't |
| need to check for Is_Library_Level_Entity, because |
| No_Heap_Finalization requires that. And if we ever change |
| No_Heap_Finalization to allow nested access types, we will still |
| want to pass null. Note that the comment "Such a type lacks a |
| collection." is incorrect in the case of Finalize_Storage_Only; |
| such types have a collection. |
| |
| 2024-09-02 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.cc (gnat_to_gnu_entity): Cap the Esize of a |
| floating-point type to the size of the widest format supported in |
| hardware if it is explicity defined. |
| |
| 2024-09-02 Viljar Indus <indus@adacore.com> |
| |
| * doc/gnat_ugn/building_executable_programs_with_gnat.rst: update |
| documentation for the -gnatw_l switch. |
| * usage.adb: Add -gnatw_l entry. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-09-02 Ronan Desplanques <desplanques@adacore.com> |
| |
| * gnatcmd.adb (GNATCmd): Fix standard output stream. |
| |
| 2024-09-02 Ronan Desplanques <desplanques@adacore.com> |
| |
| * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix |
| minor issues. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-09-02 Bob Duff <duff@adacore.com> |
| |
| * doc/gnat_rm/gnat_language_extensions.rst: I assume "extended set |
| of extensions" was a typo for "experimental set of extensions", |
| because "extended extensions" is repetitive and redundant. "in |
| addition" clarifies that the one subsumes the other. Add a |
| reminder at the start of each subsection about what switch/pragma |
| enables what extensions. Add new section about "Inference of |
| Dependent Types in Generic Instantiations". |
| * gnat_rm.texi: Regenerate. |
| |
| 2024-09-02 Patrick Bernardi <bernardi@adacore.com> |
| |
| * s-oscons-tmplt.c: Define sizes of pthread data types on FreeBSD. |
| * tracebak.c: Use GCC unwinder and adjust PC appropriately on |
| aarch64-freebsd. |
| |
| 2024-09-02 Marc Poulhiès <poulhies@adacore.com> |
| |
| * exp_ch9.adb (Reset_Scopes_To): Adjust comment. |
| (Reset_Scopes_To.Reset_Scope): Adjust the scope reset for object |
| declaration. In particular, visit the children nodes if any. Also |
| extend the handling of other declarations to |
| N_Implicit_Label_Declaration. |
| |
| 2024-09-02 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_ch3.adb (Expand_N_Object_Declaration): Replace calls to Sloc |
| with uses of Loc; turn variable Prag into constant. |
| |
| 2024-09-02 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_imgv.adb (Expand_User_Defined_Enumeration_Image) |
| (Expand_Image_Attribute): Remove redundant guards. |
| |
| 2024-08-29 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch8.adb (Has_Private_With): Add test on Is_Entity_Name. |
| |
| 2024-08-29 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * checks.adb (Selected_Length_Checks.Get_E_Length): For a |
| component of a record with discriminants and if the expression is |
| a selected component, try to build an actual subtype from its |
| prefix instead of from the discriminal. |
| |
| 2024-08-29 Steve Baird <baird@adacore.com> |
| |
| * sem_ch6.adb (Check_Discriminant_Conformance): Immediately after |
| calling Is_Immutably_Limited_Type, perform an additional test that |
| one might reasonably imagine would instead have been part of |
| Is_Immutably_Limited_Type. The new test is a call to a new |
| function Has_Tagged_Limited_Partial_View whose implementation |
| includes a call to Incomplete_Or_Partial_View, which cannot be |
| easily be called from Is_Immutably_Limited_Type (because sem_aux, |
| which is in the closure of the binder, cannot easily "with" |
| sem_util). |
| * sem_aux.adb (Is_Immutably_Limited): Include |
| N_Derived_Type_Definition case when testing Limited_Present flag. |
| |
| 2024-08-29 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch6.adb (Expand_Call_Helper): In the case of a function |
| call, look at the Etype of the call node to determine whether |
| finalization actions need to be performed. |
| |
| 2024-08-29 Viljar Indus <indus@adacore.com> |
| |
| * erroutc.adb (dmsg): Print Insertion_Sloc. |
| |
| 2024-08-29 Viljar Indus <indus@adacore.com> |
| |
| * exp_aggr.adb (Expand_Range_Component): Remove extra warning |
| character. Use same conditional warning char. |
| * freeze.adb (Warn_Overlay): Use named warning character. |
| * restrict.adb (Id_Case): Use named warning character. |
| * sem_prag.adb (Rewrite_Assertion_Kind): Use default warning |
| character. |
| |
| 2024-08-29 Viljar Indus <indus@adacore.com> |
| |
| * par-ch4.adb (P_Name): Use Error_Msg_Sloc for the location of the |
| continuation message. |
| |
| 2024-08-29 Viljar Indus <indus@adacore.com> |
| |
| * exp_prag.adb (Expand_Pragma_Inspection_Point): Improve sub |
| diagnostic generation. |
| |
| 2024-08-29 Viljar Indus <indus@adacore.com> |
| |
| * sem_ch12.adb (Abandon_Instantiation): Remove continuation |
| characters from the error message. |
| * sem_ch13.adb (Check_False_Aspect_For_Derived_Type): Remove |
| continuation characters from the error message. |
| * sem_ch6.adb (Assert_False): Avoid creating a continuation |
| message without a parent. If no primary message is created then |
| the message is considered as primary. |
| |
| 2024-08-29 Viljar Indus <indus@adacore.com> |
| |
| * erroutc.adb (Prescan_Message): Avoid not parsing all of the |
| message attributes. |
| * erroutc.ads: Update the documentation. |
| |
| 2024-08-29 Viljar Indus <indus@adacore.com> |
| |
| * freeze.adb: Remove warning insertion characters from a |
| continuation message. |
| * sem_util.adb: Remove warning insertion characters from a |
| continuation message. |
| * sem_warn.adb: Use same warning character as the main message. |
| |
| 2024-08-29 Viljar Indus <indus@adacore.com> |
| |
| * erroutc.ads: Add new method Output_Text_Within |
| * erroutc.adb: Move the line fitting code to a new method called |
| Output_Text_Within |
| |
| 2024-08-29 Piotr Trojanek <trojanek@adacore.com> |
| |
| * checks.adb (Expr_Known_Valid): Use Validated_View, which strips |
| type derivation and privacy. |
| * exp_ch3.adb (Simple_Init_Private_Type): Kill checks inside |
| unchecked conversions, just like in Simple_Init_Scalar_Type. |
| |
| 2024-08-29 Viljar Indus <indus@adacore.com> |
| |
| * styleg.adb (Check_Line_Max_Length): Add the actual line length |
| to the diagnostic message. |
| |
| 2024-08-29 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_aggr.adb (Resolve_Array_Aggregate): Add loop over associations to locate |
| N_Iterated_Component_Associations that do not have an Iterator_Specification, |
| and if their Discrete_Choices list consists of a single choice, analyze it and |
| if it's the name of an iterator object, then create an Iterator_Specification |
| and associate it with the iterated component association. |
| (Resolve_Iterated_Association): Replace test for function call with test of |
| Is_Object_Reference, to handle other forms of iterator objects in container |
| aggregates. |
| |
| 2024-08-29 Javier Miranda <miranda@adacore.com> |
| |
| * usage.adb (Usage): Document switch -gnatw_j |
| * doc/gnat_rm/gnat_language_extensions.rst: Add documentation. |
| * gnat_rm.texi: Regenerate. |
| |
| 2024-08-29 Justin Squirek <squirek@adacore.com> |
| |
| * doc/gnat_rm/gnat_language_extensions.rst: Move conditional when |
| constructs out of the curated set. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-08-23 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR middle-end/115495 |
| * gcc-interface/utils2.cc (fast_modulo_reduction): Require mode. |
| (nonbinary_modular_operation): Ditto. |
| |
| 2024-08-23 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/misc.cc (gnat_get_array_descr_info): Test the |
| BIT_PACKED_ARRAY_TYPE_P flag only once on the final debug type. In |
| the case of records containing a template, replay the entire |
| processing for the array type contained therein. |
| |
| 2024-08-23 Javier Miranda <miranda@adacore.com> |
| |
| * scng.adb (Scan): Call Error_Msg_GNAT_Extension() to report an |
| error, when the sources are compiled without Core_Extensions_ |
| Allowed, and the scanner detects the beginning of an interpolated |
| string. |
| |
| 2024-08-23 Sebastian Poeplau <poeplau@adacore.com> |
| |
| * libgnat/s-dwalin.adb (Symbolic_Address): Ignore symbol size in |
| address-to-symbol translation for PECOFF files. |
| |
| 2024-08-23 Javier Miranda <miranda@adacore.com> |
| |
| * exp_attr.adb (Expand_N_Attribute_Reference: [Put_Image]): Add |
| support for custom string types. |
| * exp_ch2.adb (Expand_N_Interpolated_String_Literal): Add a type |
| conversion to the result object declaration of custom string |
| types. |
| * exp_put_image.adb (Build_String_Put_Image_Call): Handle custom |
| string types. |
| |
| 2024-08-23 Steve Baird <baird@adacore.com> |
| |
| * sem_ch13.adb (Analyze_Aspect_Implicit_Dereference): Generate |
| error if an aspect specification specifies the |
| Implicit_Dereference aspect of a non-first subtype. |
| |
| 2024-08-23 Steve Baird <baird@adacore.com> |
| |
| * checks.adb (Is_Signed_Integer_Arithmetic_Op): Return True in the |
| case of relational operator whose operands are of a signed integer |
| type. |
| |
| 2024-08-23 Viljar Indus <indus@adacore.com> |
| |
| * libgnat/a-coinho__shared.ads: add limited keyword. |
| * libgnat/g-awk.adb: add limited keyword. |
| * libgnat/g-comlin.ads: add limited keyword. |
| * libgnat/s-excmac__arm.ads: add limited keyword. |
| * libgnat/s-excmac__gcc.ads: add limited keyword. |
| * libgnat/s-soflin.ads: add limited keyword. |
| |
| 2024-08-23 Viljar Indus <indus@adacore.com> |
| |
| * sem_ch3.adb: Add method Check_Inherited_Limted_Record for |
| emitting the warning for an inherited limited type. |
| * warnsw.adb: Add processing for the -gnatw_l switch that |
| triggeres the inheritly limited type warning. |
| * warnsw.ads: same as above. |
| * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add |
| entry for -gnatw_l switch. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-08-23 Javier Miranda <miranda@adacore.com> |
| |
| * sem_ch6.adb (Check_Private_Overriding): Improve code detecting |
| error on private function with controlling result. Fixes the |
| regression of ACATS bde0003. |
| |
| 2024-08-23 Piotr Trojanek <trojanek@adacore.com> |
| |
| * checks.ads, cstand.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb, |
| exp_dbug.adb, exp_util.adb, gnatlink.adb, lib-util.adb, |
| libgnat/a-except.adb, libgnat/a-exexpr.adb, libgnat/a-ngcoar.adb, |
| libgnat/s-rannum.adb, libgnat/s-trasym__dwarf.adb, osint.adb, |
| rtsfind.adb, sem_case.adb, sem_ch12.adb, sem_ch13.adb, |
| sem_ch3.adb, sem_ch6.adb, sem_eval.adb, sem_prag.adb, |
| sem_util.adb: Fix style. |
| |
| 2024-08-23 Piotr Trojanek <trojanek@adacore.com> |
| |
| * checks.adb (Ensure_Valid): Remove detection of boolean and |
| short-circuit operators. |
| (Expr_Known_Valid): Detect short-circuit operators; detection of |
| boolean operators was already done in this routine. |
| |
| 2024-08-23 Piotr Trojanek <trojanek@adacore.com> |
| |
| * checks.adb (Ensure_Valid): Use Find_Actual. |
| |
| 2024-08-23 Piotr Trojanek <trojanek@adacore.com> |
| |
| * checks.adb (Ensure_Valid): Use First_Actual/Next_Actual. |
| * exp_ch6.adb (Is_Direct_Deep_Call): Likewise. |
| * exp_util.adb (Type_Of_Formal): Likewise. |
| * sem_util.adb (Is_Container_Element): Likewise; cleanup |
| membership test by using a subtype. |
| |
| 2024-08-23 Javier Miranda <miranda@adacore.com> |
| |
| * sem_ch13.adb (Analyze_One_Aspect): Temporarily remove reporting |
| an error when the new aspect is set to True and the extensions are |
| not enabled. |
| |
| 2024-08-23 Javier Miranda <miranda@adacore.com> |
| |
| * exp_util.ads (Is_Expanded_Class_Wide_Interface_Object_Decl): New |
| subprogram. |
| * exp_util.adb (Is_Expanded_Class_Wide_Interface_Object_Decl): |
| ditto. |
| * sem_util.adb (Is_Aliased_View): Handle expanded class-wide type |
| object declaration. |
| * checks.adb (Is_Aliased_Unconstrained_Component): Protect the |
| frontend against calling Is_Aliased_View with Empty. Found working |
| on this issue. |
| |
| 2024-08-23 Javier Miranda <miranda@adacore.com> |
| |
| * aspects.ads (Aspect_First_Controlling_Parameter): New aspect. |
| Defined as implementation defined aspect that has a static boolean |
| value and it is converted to pragma when the value is True. |
| * einfo.ads (Has_First_Controlling_Parameter): New attribute. |
| * exp_ch9.adb (Build_Corresponding_Record): Propagate the aspect |
| to the corresponding record type. |
| (Expand_N_Protected_Type_Declaration): Analyze the inherited |
| aspect to add the pragma. |
| (Expand_N_Task_Type_Declaration): ditto. |
| * freeze.adb (Warn_If_Implicitly_Inherited_Aspects): New |
| subprogram. |
| (Has_First_Ctrl_Param_Aspect): New subprogram. |
| (Freeze_Record_Type): Call Warn_If_Implicitly_Inherited_Aspects. |
| (Freeze_Subprogram): Check illegal subprograms of tagged types and |
| interface types that have this new aspect. |
| * gen_il-fields.ads (Has_First_Controlling_Parameter): New entity |
| field. |
| * gen_il-gen-gen_entities.adb (Has_First_Controlling_Parameter): |
| The new field is a semantic flag. |
| * gen_il-internals.adb (Image): Add |
| Has_First_Controlling_Parameter. |
| * par-prag.adb (Prag): No action for |
| Pragma_First_Controlling_Parameter since processing is handled |
| entirely in Sem_Prag. |
| * sem_ch12.adb (Validate_Private_Type_Instance): When the generic |
| formal has this new aspect, check that the actual type also has |
| this aspect. |
| * sem_ch13.adb (Analyze_One_Aspect): Check that the aspect is |
| applied to a tagged type or a concurrent type. |
| * sem_ch3.adb (Analyze_Full_Type_Declaration): Derived tagged |
| types inherit this new aspect, and also from their implemented |
| interface types. |
| (Process_Full_View): Propagate the aspect to the full view. |
| * sem_ch6.adb (Is_A_Primitive): New subprogram; used to factor |
| code and also clarify detection of primitives. |
| * sem_ch9.adb (Check_Interfaces): Propagate this new aspect to the |
| type implementing interface types. |
| * sem_disp.adb (Check_Controlling_Formals): Handle tagged type |
| that has the aspect and has subprograms overriding primitives of |
| tagged types that lack this aspect. |
| (Check_Dispatching_Operation): Warn on dispatching primitives |
| disallowed by this new aspect. |
| (Has_Predefined_Dispatching_Operation_Name): New subprogram. |
| (Find_Dispatching_Type): Handle dispatching functions of tagged |
| types that have the new aspect. |
| (Find_Primitive_Covering_Interface): For primitives of tagged |
| types that have the aspect and override a primitive of a parent |
| type that does not have the aspect, we must temporarily unset |
| attribute First_Controlling_ Parameter to properly check |
| conformance. |
| * sem_prag.ads (Aspect_Specifying_Pragma): Add new pragma. |
| * sem_prag.adb (Pragma_First_Controlling_Parameter): Handle new |
| pragma. |
| * snames.ads-tmpl (Name_First_Controlling_Parameter): New name. |
| * warnsw.ads (Warn_On_Non_Dispatching_Primitives): New warning. |
| * warnsw.adb (Warn_On_Non_Dispatching_Primitives): New warning; |
| not set by default when GNAT_Mode warnings are enabled, nor when |
| all warnings are enabled (-gnatwa). |
| |
| 2024-08-19 Arsen Arsenović <arsen@aarsen.me> |
| |
| PR ada/115917 |
| * gnatvsn.ads: Add note about the duplication of this value in |
| version.c. |
| * version.c (VER_LEN_MAX): Define to the same value as |
| Gnatvsn.Ver_Len_Max. |
| (gnat_version_string): Use VER_LEN_MAX as bound. |
| |
| 2024-08-08 Steve Baird <baird@adacore.com> |
| |
| * sem_ch6.adb (Check_Discriminant_Conformance): Perform check for |
| illegal access discriminant default values when the completion of |
| a limited private type is analyzed. |
| * sem_aux.adb (Is_Immutably_Limited): If passed the |
| not-yet-analyzed entity for the full view of a record type, test |
| the Limited_Present flag |
| (which is set by the parser). |
| |
| 2024-08-08 Steve Baird <baird@adacore.com> |
| |
| * exp_ch4.adb (Build_Eq_Call): In the abstract callee case, copy |
| the Etype of the callee onto the Make_Raise_Program_Error result. |
| |
| 2024-08-08 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_ch7.adb (Unnest_Block): Copy the At_End_Proc from the block |
| statement to the newly created subprogram body. |
| |
| 2024-08-08 Justin Squirek <squirek@adacore.com> |
| |
| * exp_put_image.adb (Append_Component_Attr): Obtain the mutably |
| tagged type for the component type. |
| * mutably_tagged.adb (Make_Mutably_Tagged_Conversion): Add more |
| cases to avoid conversion generation. |
| * sem_attr.adb (Check_Put_Image_Attribute): Add mutably tagged |
| type conversion. |
| * sem_ch12.adb (Analyze_One_Association): Add rewrite for formal |
| type declarations which are mutably tagged type to their |
| equivalent type. |
| (Instantiate_Type): Add condition to obtain class wide equivalent |
| types. |
| (Validate_Private_Type_Instance): Add check for class wide |
| equivalent types which are considered "definite". |
| * sem_util.adb (Is_Variable): Add condition to handle selected |
| components of view conversions. Add missing check for selected |
| components. |
| (Is_View_Conversion): Add condition to handle class wide |
| equivalent types. |
| |
| 2024-08-08 Justin Squirek <squirek@adacore.com> |
| |
| * stylesw.adb (Set_Style_Check_Options): Disable max nesting level |
| when unspecified |
| |
| 2024-08-08 Javier Miranda <miranda@adacore.com> |
| |
| * exp_attr.adb (Expand_N_Attribute_Reference) <Finalization_Size>: |
| If the prefix is an interface type, generate code to obtain its |
| address and displace it to reference the base of the object. |
| |
| 2024-08-08 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * libgnarl/s-taprop__posix.adb (Stack_Guard): Use Interfaces.C.size_t |
| for the type of Page_Size. |
| |
| 2024-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * libgnarl/s-taprop__solaris.adb (Set_Task_Affinity): Fully |
| quality int. |
| |
| 2024-08-06 Yannick Moy <moy@adacore.com> |
| |
| * sem_ch4.adb (Analyze_Concatenation_Rest): Do not add a wrong |
| interpretation of the concatenation, using the type of the operand |
| already recognized as of the element type. |
| |
| 2024-08-06 Bob Duff <duff@adacore.com> |
| |
| * sem_ch12.adb: Implement type inference for generic parameters. |
| (Maybe_Infer_One): Forbid inference of anonymous subtypes and |
| types. |
| (Inference_Reason): Fix comment. |
| * debug.adb: Document -gnatd_I switch. |
| * errout.ads: Document that Empty is not allowed for "&". |
| * errout.adb (Set_Msg_Insertion_Node): Minor: Do not allow |
| Error_Msg_Node_1 = Empty for "&". Use "in" instead of multiple |
| "=". Improve comment. |
| |
| 2024-08-06 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_ch5.adb (Analyze_Loop_Statement.Wrap_Loop_Statement): Remove |
| the loop Entity_Id from its old scope and insert it in the new |
| block scope that wraps it. |
| |
| 2024-08-06 Javier Miranda <miranda@adacore.com> |
| |
| * freeze.adb (Freeze_Entity): For scalar derived types that |
| inherit the aspect Default_Value, do not analyze and resolve the |
| inherited aspect, as the type of the aspect remains the parent |
| type. |
| |
| 2024-08-06 Viljar Indus <indus@adacore.com> |
| |
| * libgnarl/s-interr__hwint.adb: Use fully qualified names to avoid |
| ambiguity. |
| * libgnarl/s-taprop__qnx.adb: Likewise. |
| |
| 2024-08-06 Javier Miranda <miranda@adacore.com> |
| |
| * repinfo.adb (List_Record_Info): Handle private record types. |
| |
| 2024-08-06 Viljar Indus <indus@adacore.com> |
| |
| * libgnarl/s-taprop__mingw.adb: Use fully qualified names |
| to avoid ambiguity. |
| * libgnarl/s-taprop__posix.adb: Likewise. |
| * libgnarl/s-taprop__qnx.adb: Likewise. |
| * libgnarl/s-taprop__rtems.adb: Likewise. |
| |
| 2024-08-06 Yannick Moy <moy@adacore.com> |
| |
| * freeze.adb (Build_Renamed_Body): Propagate SPARK_Pragma to body |
| build from renaming, so that locally relevant value is taken into |
| account. |
| * sem_ch6.adb (Analyze_Expression_Function): Propagate |
| SPARK_Pragma to body built from expression function, so that |
| locally relevant value is taken into account. |
| |
| 2024-08-06 Bob Duff <duff@adacore.com> |
| |
| * sem_ch8.adb (Find_Direct_Name): Disable the special-purpose code |
| when we are actually compiling the run-time library itself. |
| * libgnarl/a-exetim__posix.adb: Fix newly-found use-clause |
| conflicts. |
| * libgnat/a-direct.adb: Likewise. |
| * libgnat/a-nbnbin.adb: Likewise. |
| * libgnat/a-timoio__128.adb: Likewise. |
| * libgnat/a-timoio.adb: Likewise. |
| * libgnat/a-wtmoio__128.adb: Likewise. |
| * libgnat/a-wtmoio.adb: Likewise. |
| * libgnat/a-ztmoio__128.adb: Likewise. |
| * libgnat/a-ztmoio.adb: Likewise. |
| |
| 2024-08-02 Yannick Moy <moy@adacore.com> |
| |
| * aspects.adb (Find_Aspect): Take into account the case of a node |
| of kind N_Defining_Program_Unit_Name. |
| * sem_ch10.adb (Analyze_Compilation_Unit): Copy the SPARK aspect |
| from the spec to the body. Delay semantic analysis after that |
| point to ensure that SPARK_Mode is properly analyzed. |
| |
| 2024-08-02 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_aggr.adb (Add_Loop_Actions): Actions are now attached to |
| iterated component association just like they are attached to |
| ordinary component association. |
| (Build_Array_Aggr_Code): If resolution of the array aggregate |
| generated some actions, e.g. for run-time checks, then we must |
| keep them; same for the Other_Clause. |
| * sem_aggr.adb (Resolve_Iterated_Component_Association): Unset |
| references to iterator variable in loop actions (which might come |
| from run-time check), just these references are unset in the |
| expression itself. |
| |
| 2024-08-02 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_util.adb (Insert_Actions): Remove null ELSE branch. |
| |
| 2024-08-02 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_aggr.adb (Add_Loop_Actions): Change manipulation of list |
| to avoid unnecessary calls to Parent and Loop_Actions. |
| |
| 2024-08-02 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_util.adb (Insert_Actions): Move negation in front of |
| complex conjunctions. |
| |
| 2024-08-02 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_aggr.adb (Gen_Assign): Fix layout. |
| * sem_aggr.adb (Empty_Range): Reuse Choice_List. |
| |
| 2024-08-02 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_aggr.adb |
| (Expand_Container_Aggregate.Expand_Iterated_Component): Set the |
| Reverse_Present flag when creating the loop's iteration_scheme. |
| * gen_il-gen-gen_nodes.adb: Add flag Reverse_Present to |
| N_Iterated_Component_Association nodes. |
| * par-ch3.adb (P_Constraint_Op): Remove testing for and ignoring |
| of Tok_In following a constraint. It's allowed for "in" to follow |
| a constraint of loop_parameter_subtype_indication of an |
| iterator_specification, so it shouldn't be ignored. |
| * par-ch4.adb (P_Iterated_Component_Association): Account for |
| "reverse" following the "in" in an iterated_component_association, |
| and set the Reverse_Present flag on the |
| N_Iterated_Component_Association node. Add handling for a ":" |
| following the identifier in an iterator_specification of an |
| iterated_element_association, sharing the code with the "of" case |
| (which backs up to the identifier at the beginning of the |
| iterator_specification). Fix incorrect trailing comment following |
| the call to Scan. |
| (Build_Iterated_Element_Association): Set the Reverse_Present flag |
| on an N_Loop_Parameter_Specification node of an |
| N_Iterated_Element_Association. |
| * par-ch5.adb (P_Iterator_Specification): Remove error-recovery |
| and error code that reports "subtype indication is only legal on |
| an element iterator", as that error can no longer be emitted (and |
| was formerly only reported on one fixedbugs test). |
| * sem_aggr.adb |
| (Resolve_Container_Aggregate.Resolve_Iterated_Association): When |
| creating an N_Iterator_Specification for an |
| N_Iterated_Component_Association, set the Reverse_Present flag of |
| the N_Iterated_Specification from the flag on the latter. |
| * sinfo.ads: Add comments for the Reverse_Present flag, which is |
| now allowed on nodes of kind N_Iterated_Component_Association. |
| |
| 2024-08-02 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch12.adb (Analyze_Subprogram_Instantiation): Propagate the |
| No_Raise flag like the No_Return flag. |
| |
| 2024-08-02 Ronan Desplanques <desplanques@adacore.com> |
| |
| * exp_aggr.adb (Expand_Container_Aggregate): Remove variables. |
| (To_Int): New function. |
| (Add_Range_Size): Use newly introduced function. |
| |
| 2024-08-02 Yannick Moy <moy@adacore.com> |
| |
| * libgnat/a-strunb.adb (Sum, Saturated_Sum, Saturated_Mul): Adapt |
| function signatures to more precise types that allow proof. |
| (function "&"): Conditionally assign a slice to avoid possible |
| overflow which only occurs when the assignment is a noop (because |
| the slice is empty in that case). |
| (Append): Same. |
| (function "*"): Retype K to avoid a possible overflow. Add early |
| return on null length for proof. |
| (Delete): Fix implementation to return the correct result in all |
| cases allowed by the Ada standard. |
| (Insert): Same. Also avoid possible overflows. |
| (Length): Rewrite as expression function for proof. |
| (Overwrite): Avoid possible overflows. |
| (Slice): Same. |
| (To_String): Rewrite as expression function for proof. |
| * libgnat/a-strunb.ads: Extend Assertion_Policy to new contracts |
| used. Add complete functional contracts to all subprograms of the |
| public API except Count. |
| * libgnat/a-strunb__shared.adb (Sum): Adapt function signature to |
| more precise types that allow proof. |
| (function "&"): Conditionally assign a slice to avoid possible |
| overflow. |
| (function "*"): Retype K to avoid a possible overflow. |
| (Delete): Fix implementation to return the correct result in all |
| cases allowed by the Ada standard. |
| (Insert): Avoid possible overflows. |
| (Overwrite): Avoid possible overflows. |
| (Replace_Slice): Same. |
| (Slice): Same. |
| (To_String): Rewrite as expression function for proof. |
| * libgnat/a-strunb__shared.ads: Extend Assertion_Policy to new |
| contracts used. Add complete functional contracts to all |
| subprograms of the public API except Count. Mark public part of |
| spec as in SPARK. |
| |
| 2024-08-02 Ronan Desplanques <desplanques@adacore.com> |
| |
| * scng.adb (Slit): Initialize object in uncommon path. |
| |
| 2024-08-02 Richard Kenner <kenner@adacore.com> |
| |
| * exp_ch4.adb (Generate_Temporary): Remove unused procedure. |
| |
| 2024-08-02 Richard Kenner <kenner@adacore.com> |
| |
| * einfo-utils.ads (Is_Finalizer): Delete. |
| * einfo-utils.adb (Is_Finalizer): Delete. |
| * einfo.ads: Adjust comment. |
| * gen_il-fields.ads, gen_il-gen-gen_entities.adb: Add Is_Finalizer |
| flag. |
| * exp_ch3.adb (Build_Init_Procedure): Set it. |
| * exp_ch7.adb (Create_Finalizer): Likewise. |
| * exp_util.adb (Try_Inline_Always): New function. |
| * exp_util.ads (Try_Inline_Always): New function. |
| * sem_elab.adb (Is_Finalizer_Proc): Replace with Is_Finalizer. |
| |
| 2024-08-02 Tonu Naks <naks@adacore.com> |
| |
| * libgnat/a-calend.adb: Modify unix time handling. |
| |
| 2024-08-02 Tonu Naks <naks@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_pragmas.rst: Add examples. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-08-02 Javier Miranda <miranda@adacore.com> |
| |
| * gen_il-fields.ads (Is_Interpolated_String_Literal): New field. |
| * gen_il-gen-gen_nodes.adb (Is_Interpolated_String_Literal): The |
| new field is a flag handled by the parser (syntax flag). |
| * par-ch2.adb (P_Interpolated_String_Literal): Decorate the new |
| flag. |
| * sem_ch2.adb (Analyze_Interpolated_String_Literal): Improve code |
| detecting and reporting ambiguous function calls. |
| * sem_res.adb (Resolve_Interpolated_String_Literal): Restrict |
| resolution imposed by the context type to string literals that |
| have the new flag. |
| * sinfo.ads (Is_Interpolated_String_Literal): New field defined in |
| string literals. Fix documentation of the syntax rule of |
| interpolated string literal. |
| |
| 2024-08-02 Steve Baird <baird@adacore.com> |
| |
| * sem_ch5.adb (Analyze_Assignment): Delete code that was |
| incorrectly implementing a preference rule. |
| |
| 2024-08-02 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch7.adb (Relaxed Finalization): New paragraph in head |
| comment. |
| * sem_ch13.adb (Validate_Finalizable_Aspect): Give an error |
| message if strict finalization is required but not supported by |
| the runtime. |
| |
| 2024-08-02 Viljar Indus <indus@adacore.com> |
| |
| * sem_util.adb (Set_Referenced_Modified): Set referenced as LHS |
| for the prefixes of array slices. |
| |
| 2024-08-02 Steve Baird <baird@adacore.com> |
| |
| * sem_ch8.adb (Find_Type): If Is_Current_Instance returns True for |
| N (and Comes_From_Source (N) is also True) then flag an error. |
| Call Is_Current_Instance (twice) instead of duplicating (twice) |
| N_Access_Definition-related code in Is_Current_Instance. |
| * sem_util.adb (Is_Current_Instance): Implement |
| access-type-related clauses of the RM 8.6 current instance rule. |
| For pragmas Predicate and Predicate_Failure, distinguish between |
| the first and subsequent pragma arguments. |
| |
| 2024-08-02 Steve Baird <baird@adacore.com> |
| |
| * sem_res.adb (Valid_Conversion): Test In_Instance instead of |
| In_Instance_Body. |
| |
| 2024-08-02 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * aspects.ads (Aspect_Id): Add Aspect_No_Raise identifier. |
| (Implementation_Defined_Aspect): Add True for Aspect_No_Raise. |
| (Is_Representation_Aspect): Add False for Aspect_No_Raise. |
| (Aspect_Names): Add Name_No_Raise for Aspect_No_Raise. |
| (Aspect_Delay): Add Always_Delay for Aspect_No_Raise. |
| * checks.ads (Raise_Checks_Suppressed): New function. |
| (Apply_Raise_Check): New procedure. |
| * checks.adb (Apply_Raise_Check): New procedure. |
| (Raise_Checks_Suppressed): New function. |
| * doc/gnat_rm/gnat_language_extensions.rst (Generalized |
| Finalization): Update. |
| * doc/gnat_rm/implementation_defined_aspects.rst (No_Raise): New. |
| * doc/gnat_rm/implementation_defined_characteristics.rst (Check |
| names): Document Raise_Check and alphabetize others. |
| * doc/gnat_rm/implementation_defined_pragmas.rst (No_Raise): New. |
| * einfo.ads (No_Raise): New flag defined in subprograms and |
| generic subprograms. |
| * exp_ch6.adb (Expand_N_Subprogram_Body): Call Apply_Raise_Check |
| at the end of the processing. |
| * exp_ch11.adb (Get_RT_Exception_Name): Add alternative for |
| PE_Raise_Check_Failed to case statement. |
| * gen_il-fields.ads (Opt_Field_Enum): Add No_Raise identifier. |
| * gen_il-gen-gen_entities.adb (Subprogram_Kind): Add No_Raise as |
| semantical flag. |
| (Generic_Subprogram_Kind): Likewise. |
| * par-prag.adb (Prag): Add alternative for Pragma_No_Raise to case |
| statement. |
| * sem_ch13.adb (Validate_Finalizable_Aspect): Set No_Raise on the |
| Adjust and Finalize primitives if Relaxed_Finalization is set. |
| * sem_prag.adb (Analyze_Pragma): Add alternative for |
| Pragma_No_Raise to case statement. |
| (Sig_Flag): Add 0 for Pragma_No_Raise. |
| * snames.ads-tmpl (Remaining pragma names): Add Name_No_Raise. |
| (Names of recognized checks): Add Name_Raise_Check. |
| (Pragma_Id): Add Pragma_No_Raise identifier. |
| * types.ads (Raise_Check): New named number. |
| (All_Checks): Adjust. |
| (RT_Exception_Code): Add PE_Raise_Check_Failed identifier. |
| (Rkind): Add PE_Reason for PE_Raise_Check_Failed and alphabetize. |
| * types.h (RT_Exception_Code): Add PE_Raise_Check_Failed as 38. |
| (LAST_REASON_CODE): Adjust. |
| * libgnat/a-except.adb (Rcheck_PE_Raise_Check): New procedure with |
| pragmas Export, No_Return and Machine_Attributes. |
| (Rmsg_38): New string constant. |
| * gnat_rm.texi: Regenerate. |
| |
| 2024-08-02 Johannes Kliemann <kliemann@adacore.com> |
| |
| * doc/gnat_rm/standard_library_routines.rst: Add note to section |
| of Ada.Numerics.Discrete_Random and Ada.Numerics.Float_Random. |
| * doc/gnat_rm/the_gnat_library.rst: Add note to section about |
| GNAT.Random_Numbers. |
| * libgnat/a-nudira.ads: Add note about cryptographic properties. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-08-02 Ronan Desplanques <desplanques@adacore.com> |
| |
| * doc/gnat_rm/gnat_language_extensions.rst: Fix layout of section. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-08-02 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_util.ads (Is_Conversion_Or_Reference_To_Formal): New |
| function declaration. |
| * exp_util.adb (Is_Conversion_Or_Reference_To_Formal): New |
| function body. |
| * exp_ch6.adb (Expand_Simple_Function_Return): Call the predicate |
| Is_Conversion_Or_Reference_To_Formal in order to decide whether a |
| tag check or reassignment is needed. |
| * freeze.adb (Should_Freeze_Type): Move declaration and body to |
| the appropriate places. Also return True for tagged results |
| subject to the expansion done in Expand_Simple_Function_Return |
| that is guarded by the predicate |
| Is_Conversion_Or_Reference_To_Formal. |
| |
| 2024-08-02 Ronan Desplanques <desplanques@adacore.com> |
| |
| * sem_ch5.adb (Analyze_Loop_Statement): Fix loop pattern detection |
| code. Fix typo. |
| |
| 2024-08-01 Yannick Moy <moy@adacore.com> |
| |
| * libgnat/a-strunb.adb (Realloc_For_Chunk): Fix computation of new |
| size. |
| |
| 2024-08-01 Yannick Moy <moy@adacore.com> |
| |
| * libgnat/a-strbou.ads (To_String): Add a postcondition to state |
| the value of bounds of the returned string, which helps with proof |
| of callers. |
| * libgnat/a-strfix.adb (Delete): Fix implementation to produce |
| correct result in all cases. For example, returned string should |
| always have a lower bound of 1, which was not respected in one |
| case. This was not detected by proof, since this code was dead |
| according to the too strict precondition. |
| * libgnat/a-strfix.ads (Delete): State the correct precondition |
| from standard which allows a value of Through beyond the last |
| valid index, and also restricts values of From from below. Update |
| the Contract_Cases accordingly to allow new values of parameters. |
| |
| 2024-08-01 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_prag.adb (Analyze_Pragma): Don't check for duplicate |
| SPARK_Mode pragmas in configuration files. |
| |
| 2024-08-01 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_attr.adb (Resolve_Attribute, Attribute_*Access): Resolve |
| overloaded prefixes that denote objects of reference types, |
| determining whether to use the prefix object directly, or expand |
| it as an explicit dereference. |
| |
| 2024-08-01 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sinfo.ads (N_Block_Statement): Move At_End_Proc to the end of |
| slot list and alphabetize flag list. |
| (N_Subprogram_Body): Add At_End_Proc. |
| (N_Package_Body): Move At_End_Proc to the end of slot list. |
| (N_Subprogram_Body_Stub): Remove At_End_Proc. |
| |
| 2024-08-01 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_ch5.adb (Analyze_Loop_Parameter_Specification): |
| Unconditionally set the type of loop parameter. |
| |
| 2024-08-01 Ghjuvan Lacambre <lacambre@adacore.com> |
| |
| * backend_utils.adb (Scan_Common_Back_End_Switch): Remove blank |
| line. |
| * errout.adb (Output_JSON_Message): Likewise. |
| * erroutc.adb (Set_Msg_Char): Likewise. |
| * exp_aggr.adb (Two_Dim_Packed_Array_Handled): Likewise. |
| * exp_pakd.adb (Expand_Packed_Address_Reference): Likewise. |
| (Expand_Packed_Bit_Reference): Likewise. |
| (Expand_Packed_Boolean_Operator): Likewise. |
| (Expand_Packed_Element_Reference): Likewise. |
| (Expand_Packed_Eq): Likewise. |
| (Expand_Packed_Not): Likewise. |
| * exp_prag.adb (Build_Dim3_Declaration): Likewise. |
| * exp_strm.adb (Build_Elementary_Input_Call): Likewise. |
| * freeze.adb (Find_Aspect_No_Parts): Likewise. |
| (Get_Aspect_No_Parts_Value): Likewise. |
| * gen_il-gen.adb (Compile): Likewise. |
| * gnat1drv.adb (Adjust_Global_Switches): Likewise. |
| * gnat_cuda.adb (Expand_CUDA_Package): Likewise. |
| * gnatchop.adb (Read_File): Likewise. |
| * gnatls.adb (Get_Runtime_Path): Likewise. |
| * make.adb (Binding_Phase): Likewise. |
| * par-ch11.adb (P_Exception_Choice): Likewise. |
| * par-ch5.adb (P_Loop_Parameter_Specification): Likewise. |
| * par-ch6.adb (Is_Extended): Likewise. |
| * sem_attr.adb (Check_Dereference): Likewise. |
| * sem_ch12.adb (Build_Subprogram_Decl_Wrapper): Likewise. |
| * sem_ch3.adb (Build_Itype_Reference): Likewise. |
| * sem_prag.adb (Validate_Compile_Time_Warning_Errors): Likewise. |
| * sem_res.adb (Resolve_Declare_Expression): Likewise. |
| * sem_util.adb (Build_Default_Subtype): Likewise. |
| * sprint.adb (Sprint_Paren_Comma_List): Likewise. |
| |
| 2024-08-01 Javier Miranda <miranda@adacore.com> |
| |
| * par-ch2.adb (P_Interpolated_String_Literal): remove support of |
| multi-line string literals. |
| * doc/gnat_rm/gnat_language_extensions.rst: Update documentation. |
| * gnat_rm.texi: Regenerate. |
| |
| 2024-08-01 Viljar Indus <indus@adacore.com> |
| |
| * sem_warn.adb (Output_Obsolescent_Entity_Warnings): use the ?j? |
| in warning messages. |
| |
| 2024-08-01 Ronan Desplanques <desplanques@adacore.com> |
| |
| * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Fix test for |
| expanded quantified expression context. |
| (Is_Expanded_Quantified_Expr): New function. |
| |
| 2024-08-01 Bob Duff <duff@adacore.com> |
| |
| * sem_ch13.adb (Add_Predicate): Remove the premature "return;". |
| Ghost code needs to be processed by later code in this procedure |
| even when ignored; otherwise the second pass of name resolution |
| fails much later. However, protect Set_SCO_Pragma_Enabled and |
| Add_Condition with "if not Is_Ignored_Ghost_Pragma"; these parts |
| should not happen if the ghost code is Ignored. |
| * libgnat/interfac__2020.ads (Unsigned_8): Minor reformatting. |
| * libgnat/interfac.ads (IEEE_Extended_Float): Minor comment |
| improvement. |
| |
| 2024-08-01 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * einfo.ads (No_Return): Change description and adjust |
| accordingly. |
| * gen_il-gen-gen_entities.adb (Entity_Kind): Remove No_Return. |
| (Subprogram_Kind): Add No_Return. |
| (Generic_Subprogram_Kind): Likewise. |
| * sem_ch6.adb (Analyze_Return_Statement): Adjust No_Return test. |
| |
| 2024-08-01 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/gnat_rm/gnat_language_extensions.rst (Generalized |
| Finalization): Update status. |
| * einfo.ads (Has_Relaxed_Finalization): Add more details. |
| * exp_ch4.adb (Process_Transients_In_Expression): Invoke |
| Make_Finalize_Call_For_Node instead of building the call. |
| * exp_ch5.adb (Expand_N_Assignment_Statement): Do not set up an |
| exception handler around the assignment for a controlled type with |
| relaxed finalization semantics. Streamline the code implementing |
| the protection against aborts and do not use an At_End handler for |
| a controlled type with relaxed finalization semantics. |
| * exp_ch7.ads (Make_Finalize_Call_For_Node): New function. |
| * exp_ch7.adb (Finalize_Address_For_Node): New function renaming. |
| (Set_Finalize_Address_For_Node): New procedure renaming. |
| (Attach_Object_To_Master_Node): Also attach the Finalize_Address |
| primitive to the Master_Node statically. |
| (Build_Finalizer): Add Has_Strict_Ctrl_Objs local variable. Insert |
| back the body of the finalizer at the end of the statement list in |
| the non-package case and restore the associated support code to |
| that effect. When all the controlled objects have the relaxed |
| finalization semantics, do not create a Finalization_Master and |
| finalize the objects directly instead. |
| (Processing_Actions): Add Strict parameter and use it to set the |
| Has_Strict_Ctrl_Objs variable. |
| (Process_Declarations): Make main loop more robust and adjust |
| calls to Processing_Actions. |
| (Make_Finalize_Address_Body): Mark the primitive as inlined if the |
| type has relaxed finalization semantics. |
| (Make_Finalize_Call_For_Node): New function. |
| * sem_ch6.adb (Check_Statement_Sequence): Skip subprogram bodies. |
| * libgnat/s-finpri.ads (Finalize_Object): Add Finalize_Address |
| parameter. |
| (Master_Node): Remove superfluous qualification. |
| * libgnat/s-finpri.adb (Attach_Object_To_Node): Likewise. |
| (Finalize_Master): Adjust calls to Finalize_Object. |
| (Finalize_Object): Add Finalize_Address parameter and assert that |
| it is equal to the component of the node. Use the Object_Address |
| component as guard. |
| (Suppress_Object_Finalize_At_End): Clear Object_Address component. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-08-01 Arnaud Charlet <charlet@adacore.com> |
| |
| * bindgen.adb (Gen_Main): Put back support for -G |
| * bindusg.adb (Display): Put back line for -G |
| * opt.ads (CCG_Mode): Update doc |
| * switch-b.adb (Scan_Binder_Switches): Put back support for -G |
| |
| 2024-08-01 Ghjuvan Lacambre <lacambre@adacore.com> |
| |
| * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Disable expansion |
| in CodePeerMode. |
| (Expand_Packed_Address_Reference): Likewise. |
| (Expand_Packed_Bit_Reference): Likewise. |
| (Expand_Packed_Boolean_Operator): Likewise. |
| (Expand_Packed_Element_Reference): Likewise. |
| (Expand_Packed_Eq): Likewise. |
| (Expand_Packed_Not): Likewise. |
| |
| 2024-08-01 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_ch13.adb (Check_Aspect_Too_Late): Move routine to top-level. |
| (Resolve_Aspect_Expressions): Check aspects Default_Value and |
| Default_Component_Value before resolving their expressions. |
| |
| 2024-08-01 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_ch13.adb (Check_Aspect_Too_Late): Prevent freezing during |
| preanalysis. |
| |
| 2024-08-01 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_ch13.adb (Resolve_Aspect_Expression): Don't set |
| Must_Not_Freeze before preanalyzing spec expressions. |
| |
| 2024-08-01 Steve Baird <baird@adacore.com> |
| |
| * sem_disp.adb (Check_Dispatching_Operation): When calling |
| Error_Msg_NE to generate a "missing overriding indicator" message, |
| generate a warning message instead of an error message (and update |
| comment to describe this new behavior). |
| |
| 2024-08-01 Javier Miranda <miranda@adacore.com> |
| |
| * sem_aggr.adb (Collect_Aggr_Bounds): Adjust previous patch to |
| store the bounds of inner null aggregates in the itype; required |
| generate the runtime check of ARM 4.3.3(30). |
| |
| 2024-08-01 Arnaud Charlet <charlet@adacore.com> |
| |
| * osint-c.ads, osint-c.adb (Create_C_File, Close_C_File, |
| Delete_C_File): Put back, needed by LLVM based CCG. |
| * exp_unst.adb (Unnest_Subprogram): Complete previous change by |
| removing now dead code and corresponding ??? comment. |
| |
| 2024-08-01 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_ch3.adb (Build_Record_Init_Proc.Build_Assignment): Do the |
| component adjustment in the case of initialization by a container |
| aggregate. |
| |
| 2024-08-01 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.adb (Convert_To_Assignments): Set Expansion_Delayed on |
| intermediate conditional expressions for BIP aggregate returns |
| too. |
| * exp_ch4.adb (Expand_N_Case_Expression): Also deal with delayed |
| expansion in the return case. |
| (Expand_N_If_Expression): Likewise. |
| |
| 2024-08-01 Steve Baird <baird@adacore.com> |
| |
| * sem_ch4.adb (Is_Effectively_Visible_Opertor): Return True if |
| Checking_Potentially_Static_Expression is True. The accompanying |
| comment says True is returned "if there is a reason it is ok for |
| Is_Visible_Operator to return False"; if |
| Checking_Potentially_Static_Expression is true, that is such a |
| reason. |
| |
| 2024-08-01 Ghjuvan Lacambre <lacambre@adacore.com> |
| |
| * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Stop |
| ignoring Component_Size attribute in CodePeer_Mode. |
| |
| 2024-08-01 Ronan Desplanques <desplanques@adacore.com> |
| |
| * sem_ch5.adb (Prepare_Param_Spec_Loop): Fix criterion for |
| wrapping loop statements into blocks. |
| |
| 2024-08-01 Arnaud Charlet <charlet@adacore.com> |
| |
| * bindgen.adb, bindusg.adb, debug.adb, einfo.ads, |
| exp_aggr.adb, exp_attr.adb, exp_ch11.adb, exp_ch3.adb, |
| exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch8.adb, exp_dbug.adb, |
| exp_dbug.ads, exp_intr.adb, exp_unst.adb, exp_util.adb, |
| exp_util.ads, freeze.adb, gen_il-fields.ads, |
| gen_il-gen-gen_entities.adb, gnat1drv.adb, inline.adb, opt.ads, |
| osint-c.adb, osint-c.ads, sem_attr.adb, sem_ch12.adb, sem_ch3.adb, |
| sem_ch4.adb, sem_ch6.adb, sem_elab.adb, sem_res.adb, sinfo.ads, |
| snames.ads-tmpl, switch-b.adb, switch-c.adb: Major |
| clean up to remove C code generation for bodies. |
| |
| 2024-08-01 Ronan Desplanques <desplanques@adacore.com> |
| |
| * exp_aggr.adb (Flatten): Do not reject empty aggregates. Adjust |
| criterion for emitting warning about ineffective others clause. |
| * sem_aggr.adb (Array_Aggr_Subtype): Fix typo. Add handling of |
| aggregates that were converted to positional form. |
| (Resolve_Aggregate): Tweak criterion for transforming into a |
| string literal. |
| (Resolve_Array_Aggregate): Tweak criterion for reusing existing |
| bounds of aggregate. |
| (Retrieve_Aggregate_Bounds): New procedure. |
| * sem_util.adb (Has_Static_Empty_Array_Bounds): New function. |
| * sem_util.ads (Has_Static_Empty_Array_Bounds): Likewise. |
| |
| 2024-08-01 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch7.ads (Build_Finalizer): Remove Top_Decls parameter. |
| * exp_ch7.adb (Build_Finalizer): Likewise. Rename Counter_Val into |
| Count, replace Has_Ctrl_Objs local variable by expression |
| function, remove Spec_Decls local variable and do not reset |
| Finalizer_Decls. |
| (Expand_Cleanup_Actions): Adjust call to Build_Finalizer. |
| (Expand_N_Package_Body): Likewise. |
| (Expand_N_Package_Declaration): Likewise. |
| * inline.adb (Cleanup_Scopes): Likewise. |
| |
| 2024-08-01 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch7.adb (Make_Address_For_Finalize): Generate a direct call |
| to the "+" operator of System.Storage_Elements. |
| (Make_Finalize_Address_Stmts): Likewise. |
| * rtsfind.ads (RE_Id): Remove RE_Add_Offset_To_Address. |
| (RE_Unit_Table): Remove entry for RE_Add_Offset_To_Address. |
| * libgnat/s-finpri.ads (Add_Offset_To_Address): Delete. |
| * libgnat/s-finpri.adb (Add_Offset_To_Address): Likewise. |
| |
| 2024-07-07 Maciej W. Rozycki <macro@orcam.me.uk> |
| |
| * gcc-interface/Make-lang.in (ada.all.cross): Move recipe to... |
| (GNATTOOLS_CROSS_MV): ... this new variable. |
| (cross-gnattools): Paste it here. |
| (gnattools-cross-mv): New target. |
| |
| 2024-07-03 Alexandre Oliva <oliva@adacore.com> |
| |
| * gcc-interface/misc.cc (gnat_get_array_descr_info): Only follow |
| TYPE_DEBUG_TYPE if TYPE_CAN_HAVE_DEBUG_TYPE_P. |
| * gcc-interface/utils.cc (sized_type_hash): New struct. |
| (sized_type_hasher): New struct. |
| (sized_type_hash_table): New variable. |
| (init_gnat_utils): Allocate it. |
| (destroy_gnat_utils): Release it. |
| (sized_type_hasher::equal): New. |
| (hash_sized_type): New. |
| (canonicalize_sized_type): New. |
| (make_type_from_size): Use it to cache packed variants. Fix |
| type reuse by combining biased_p and for_biased earlier. Hold |
| the combination in for_biased, adjusting later uses. |
| |
| 2024-07-03 Alexandre Oliva <oliva@adacore.com> |
| |
| * gcc-interface/cuintp.cc (UI_To_gnu): Add mode that selects a |
| wide enough unsigned type. Fail if the constant exceeds the |
| representable numbers. |
| * gcc-interface/decl.cc (gnat_to_gnu_entity): Use it for |
| numerator and denominator of fixed-point types. In case of |
| failure, fall back to an indeterminate fraction. |
| |
| 2024-07-02 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch4.adb (Expand_Concatenate): In the case where an operand |
| does not have both bounds known at compile time, use nevertheless |
| the low bound directly if it is known at compile time. |
| Fold the conditional expression giving the low bound of the result |
| in the general case if the low bound of all the operands are equal. |
| |
| 2024-07-02 Ronan Desplanques <desplanques@adacore.com> |
| |
| * sem_ch12.adb (Save_And_Reset): Fix value of low bound used to |
| reset table. |
| |
| 2024-07-02 Steve Baird <baird@adacore.com> |
| |
| * sem_attr.adb |
| (Analyze_Image_Attribute.Check_Image_Type): Check for |
| E_Access_Attribute_Type prefix type. |
| |
| 2024-07-02 Steve Baird <baird@adacore.com> |
| |
| * exp_ch9.adb |
| (Expand_N_Protected_Body): Declare new procedure |
| Unanalyze_Use_Clauses and call it before analyzing the newly |
| constructed subprogram body. |
| |
| 2024-07-02 Steve Baird <baird@adacore.com> |
| |
| * exp_put_image.adb |
| (Build_Record_Put_Image_Procedure): Declare new Boolean-valued |
| function Null_Record_Default_Implementation_OK; call it as part of |
| deciding whether to generate "(NULL RECORD)" text. |
| |
| 2024-07-02 Justin Squirek <squirek@adacore.com> |
| |
| * sem_ch5.adb: |
| (Analyze_Assignment): Add special expansion for qualified expressions |
| in certain cases dealing with mutably tagged types. |
| |
| 2024-07-02 Bob Duff <duff@adacore.com> |
| |
| * freeze.adb (Freeze_Type_Refs): If Node is in N_Has_Etype, |
| check that it has had its Etype set, because this can be |
| called early for expression functions that are completions. |
| |
| 2024-07-02 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch4.adb (Expand_Array_Comparison): Remove the obsolete byte |
| addressibility test. If Support_Composite_Compare_On_Target is true, |
| immediately return for a component size of 8, an unsigned component |
| type and aligned operands. Disable when Unnest_Subprogram_Mode is |
| true (for LLVM). |
| (Expand_N_Op_Eq): Adjust comment. |
| * targparm.ads (Support_Composite_Compare_On_Target): Replace bit by |
| byte in description and document support for ordering comparisons. |
| * gcc-interface/utils2.cc (compare_arrays): Rename into... |
| (compare_arrays_for_equality): ...this. Remove redundant lines. |
| (compare_arrays_for_ordering): New function. |
| (build_binary_op) <comparisons>: Call compare_arrays_for_ordering |
| to implement ordering comparisons for arrays. |
| |
| 2024-07-02 Yannick Moy <moy@adacore.com> |
| |
| * contracts.adb (Analyze_Pragmas_In_Declarations): Analyze |
| pragmas in two iterations over the list of declarations in |
| order to analyze some pragmas before others. |
| * einfo-utils.ads (Get_Pragma): Fix comment. |
| * sem_prag.ads (Pragma_Significant_To_Subprograms): Fix. |
| (Pragma_Significant_To_Subprograms_Analyzed_First): Add new |
| global array to identify these pragmas which should be analyzed |
| first, which concerns only Extensions_Visible for now. |
| |
| 2024-07-02 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch7.adb (Convert_View): Add third parameter Typ and use it if |
| the second parameter does not have an Etype. |
| (Make_Adjust_Call): Remove obsolete setting of Etype and pass Typ in |
| call to Convert_View. |
| (Make_Final_Call): Likewise. |
| (Make_Init_Call): Pass Typ in call to Convert_View. |
| |
| 2024-07-02 Javier Miranda <miranda@adacore.com> |
| |
| * sem_aggr.adb (Cannot_Compute_High_Bound): New subprogram. |
| (Report_Null_Array_Constraint_Error): New subprogram. |
| (Collect_Aggr_Bounds): For null aggregates, build the bounds |
| of the inner dimensions. |
| (Has_Null_Aggregate_Raising_Constraint_Error): New subprogram. |
| (Subtract): New subprogram. |
| (Resolve_Array_Aggregate): Report a warning when the index of |
| null array aggregates is an enumeration type or a modular type |
| at we can statically determine that the program will raise CE |
| at runtime computing its high bound. |
| (Resolve_Null_Array_Aggregate): ditto. |
| |
| 2024-07-02 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst |
| (No_Default_Initialization): Mention components alongside variables. |
| * exp_aggr.adb (Build_Array_Aggr_Code.Gen_Assign): Check that the |
| restriction No_Default_Initialization is not in effect for default |
| initialized component. |
| (Build_Record_Aggr_Code): Likewise. |
| * gnat_rm.texi: Regenerate. |
| |
| 2024-07-02 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * debug.adb (dJ): Add back as unused. |
| |
| 2024-06-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnat/s-carsi8.adb: Remove clauses for System.Address_Operations |
| and use only operations of System.Storage_Elements for addresses. |
| * libgnat/s-casi16.adb: Likewise. |
| * libgnat/s-casi32.adb: Likewise. |
| * libgnat/s-casi64.adb: Likewise. |
| * libgnat/s-casi128.adb: Likewise. |
| * libgnat/s-carun8.adb: Likewise. |
| * libgnat/s-caun16.adb: Likewise. |
| * libgnat/s-caun32.adb: Likewise. |
| * libgnat/s-caun64.adb: Likewise. |
| * libgnat/s-caun128.adb: Likewise. |
| * libgnat/s-geveop.adb: Likewise. |
| |
| 2024-06-27 Javier Miranda <miranda@adacore.com> |
| |
| * sem_ch2.adb (Analyze_Interpolated_String_Literal): Report |
| interpretations of ambiguous parameterless function calls. |
| |
| 2024-06-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch5.adb (Analyze_Target_Name): Call Analyze_Dimension on the |
| node once the Etype is set. |
| * sem_dim.adb (OK_For_Dimension): Set to True for N_Target_Name. |
| (Analyze_Dimension): Call Analyze_Dimension_Has_Etype for it. |
| |
| 2024-06-27 Ronan Desplanques <desplanques@adacore.com> |
| |
| * mdll.adb (Build_Non_Reloc_DLL): Fix incorrect assignment |
| to array object. |
| (Ada_Build_Non_Reloc_DLL): Likewise. |
| |
| 2024-06-27 Javier Miranda <miranda@adacore.com> |
| |
| * sem_res.adb (Has_Applicable_User_Defined_Literal): Add missing |
| support for interpolated strings. |
| |
| 2024-06-27 Martin Clochard <clochard@adacore.com> |
| |
| * sem_ch6.adb (Check_Overriding_Indicator) Remove Comes_From_Source filter. |
| (New_Overloaded_Entity) Move up special case of LSP_Subprogram, |
| and remove Comes_From_Source filter. |
| |
| 2024-06-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * aspects.ads (Aspect_Id): Add Aspect_Finalizable. |
| (Implementation_Defined_Aspect): Add True for Aspect_Finalizable. |
| (Operational_Aspect): Add True for Aspect_Finalizable. |
| (Aspect_Argument): Add Expression for Aspect_Finalizable. |
| (Is_Representation_Aspect): Add False for Aspect_Finalizable. |
| (Aspect_Names): Add Name_Finalizable for Aspect_Finalizable. |
| (Aspect_Delay): Add Always_Delay for Aspect_Finalizable. |
| * checks.adb: Add with and use clauses for Sem_Elab. |
| (Install_Primitive_Elaboration_Check): Call Is_Controlled_Procedure. |
| * einfo.ads (Has_Relaxed_Finalization): Document new flag. |
| (Is_Controlled_Active): Update documentation. |
| * exp_aggr.adb (Generate_Finalization_Actions): Replace Find_Prim_Op |
| with Find_Controlled_Prim_Op for Name_Finalize. |
| * exp_attr.adb (Expand_N_Attribute_Reference) <Finalization_Size>: |
| Return 0 if the prefix type has relaxed finalization. |
| * exp_ch3.adb (Build_Equivalent_Record_Aggregate): Return Empty if |
| the type needs finalization. |
| (Expand_Freeze_Record_Type): Call Find_Controlled_Prim_Op instead of |
| Find_Prim_Op for Name_{Adjust,Initialize,Finalize}. |
| Call Make_Finalize_Address_Body for all controlled types. |
| * exp_ch4.adb (Insert_Dereference_Action): Do not generate a call to |
| Adjust_Controlled_Dereference if the designated type has relaxed |
| finalization. |
| * exp_ch6.adb (Needs_BIP_Collection): Return false for an untagged |
| type that has relaxed finalization. |
| * exp_ch7.adb (Allows_Finalization_Collection): Return false if the |
| designated type has relaxed finalization. |
| (Check_Visibly_Controlled): Call Find_Controlled_Prim_Op instead of |
| Find_Prim_Op. |
| (Make_Adjust_Call): Likewise. |
| (Make_Deep_Record_Body): Likewise. |
| (Make_Final_Call): Likewise. |
| (Make_Init_Call): Likewise. |
| * exp_disp.adb (Set_All_DT_Position): Remove obsolete warning. |
| * exp_util.ads: Add with and use clauses for Snames. |
| (Find_Prim_Op): Add precondition. |
| (Find_Controlled_Prim_Op): New function declaration. |
| (Name_Of_Controlled_Prim_Op): Likewise. |
| * exp_util.adb: Remove with and use clauses for Snames. |
| (Build_Allocate_Deallocate_Proc): Do not build finalization actions |
| if the designated type has relaxed finalization. |
| (Find_Controlled_Prim_Op): New function. |
| (Find_Last_Init): Call Find_Controlled_Prim_Op instead of |
| Find_Prim_Op. |
| (Name_Of_Controlled_Prim_Op): New function. |
| * freeze.adb (Freeze_Entity.Freeze_Record_Type): Propagate the |
| Has_Relaxed_Finalization flag from components. |
| * gen_il-fields.ads (Opt_Field_Enum): Add Has_Relaxed_Finalization. |
| * gen_il-gen-gen_entities.adb (Entity_Kind): Likewise. |
| * sem_aux.adb (Is_By_Reference_Type): Return true for all controlled |
| types. |
| * sem_ch3.adb (Build_Derived_Record_Type): Do not special case types |
| declared in Ada.Finalization. |
| (Record_Type_Definition): Propagate the Has_Relaxed_Finalization |
| flag from components. |
| * sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Also process the |
| Finalizable aspect. |
| (Analyze_Aspect_Specifications): Likewise. Call Flag_Non_Static_Expr |
| in more cases. |
| (Check_Aspect_At_Freeze_Point): Likewise. |
| (Inherit_Aspects_At_Freeze_Point): Likewise. |
| (Resolve_Aspect_Expressions): Likewise. |
| (Resolve_Finalizable_Argument): New procedure. |
| (Validate_Finalizable_Aspect): Likewise. |
| * sem_elab.ads: Add with and use clauses for Snames. |
| (Is_Controlled_Procedure): New function declaration. |
| * sem_elab.adb: Remove with and use clauses for Snames. |
| (Is_Controlled_Proc): Move to... |
| (Is_Controlled_Procedure): ...here and rename. |
| (Check_A_Call): Call Find_Controlled_Prim_Op instead of |
| Find_Prim_Op. |
| (Is_Finalization_Procedure): Likewise. |
| * sem_util.ads (Propagate_Controlled_Flags): Update documentation. |
| * sem_util.adb (Is_Fully_Initialized_Type): Replace call to |
| Find_Optional_Prim_Op with Find_Controlled_Prim_Op. |
| Call Has_Null_Extension only for derived tagged types. |
| (Propagate_Controlled_Flags): Propagate Has_Relaxed_Finalization. |
| * snames.ads-tmpl (Name_Finalizable): New name. |
| (Name_Relaxed_Finalization): Likewise. |
| * libgnat/s-finroo.ads (Root_Controlled): Add Finalizable aspect. |
| * doc/gnat_rm/gnat_language_extensions.rst: Document implementation |
| of Generalized Finalization. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-06-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.cc (Subprogram_Body_to_gnu): Also return early |
| for a protected subprogram in -gnatc mode. |
| |
| 2024-06-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.cc (gnat_to_gnu_entity) <discrete_type>: Set |
| the TYPE_JUSTIFIED_MODULAR_P flag earlier. |
| * gcc-interface/misc.cc (gnat_unit_size_without_reusable_padding): |
| New function. |
| (LANG_HOOKS_UNIT_SIZE_WITHOUT_REUSABLE_PADDING): Redefine to above |
| function. |
| |
| 2024-06-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/utils.cc (clear_decl_bit_field): New function. |
| (finish_record_type): Call clear_decl_bit_field instead of clearing |
| DECL_BIT_FIELD manually. |
| |
| 2024-06-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.cc (gnat_to_gnu) <N_Op_Mod>: Fix formatting. |
| * gcc-interface/utils2.cc: Include optabs-query.h. |
| (fast_modulo_reduction): Call can_mult_highpart_p on the TYPE_MODE |
| before generating a high-part multiply. Fix formatting. |
| |
| 2024-06-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/gigi.h (fast_modulo_reduction): Declare. |
| * gcc-interface/trans.cc (gnat_to_gnu) <N_Op_Mod>: In the unsigned |
| case, call fast_modulo_reduction for {FLOOR,TRUNC}_MOD_EXPR if the |
| RHS is a constant and not a power of two, and the precision is not |
| larger than the word size. |
| * gcc-interface/utils2.cc: Include expmed.h. |
| (fast_modulo_reduction): New function. |
| (nonbinary_modular_operation): Call fast_modulo_reduction for the |
| multiplication if the precision is not larger than the word size. |
| |
| 2024-06-21 Javier Miranda <miranda@adacore.com> |
| |
| * sem_ch2.adb (Analyze_Interpolated_String_Literal): Reject |
| ambiguous function calls. |
| |
| 2024-06-21 Ronan Desplanques <desplanques@adacore.com> |
| |
| * sem_util.adb (Examine_Array_Bounds): Add missing return |
| statements. Fix criterion for a string literal being empty. |
| |
| 2024-06-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * bcheck.adb (Check_Consistency_Of_Sdep): Guard against path to ALI |
| file not found. |
| |
| 2024-06-21 Javier Miranda <miranda@adacore.com> |
| |
| * sem_ch13.adb (Analyze_One_Aspect): Fix code locating the entity |
| of the parent type. |
| |
| 2024-06-21 Marc Poulhiès <poulhies@adacore.com> |
| |
| * make.adb (Scan_Make_Arg): Adjust error message. |
| * gnatls.adb (Search_RTS): Likewise. |
| * switch-b.adb (Scan_Debug_Switches): Likewise. |
| |
| 2024-06-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * einfo.ads (Direct_Primitive_Operations): Mention concurrent types |
| as well as GNAT extensions instead of implementation details. |
| (Primitive_Operations): Document that Direct_Primitive_Operations is |
| also used for concurrent types as a fallback. |
| * einfo-utils.adb (Primitive_Operations): Tweak formatting. |
| * exp_util.ads (Find_Prim_Op): Adjust description. |
| * exp_util.adb (Make_Subtype_From_Expr): In the private case with |
| unknown discriminants, always copy Direct_Primitive_Operations and |
| do not overwrite the Class_Wide_Type of the expression's base type. |
| * sem_ch3.adb (Analyze_Incomplete_Type_Decl): Tweak comment. |
| (Analyze_Subtype_Declaration): Remove older and now dead calls to |
| Set_Direct_Primitive_Operations. Tweak comment. |
| (Build_Derived_Private_Type): Likewise. |
| (Build_Derived_Record_Type): Likewise. |
| (Build_Discriminated_Subtype): Set Direct_Primitive_Operations in |
| all cases instead of just for tagged types. |
| (Complete_Private_Subtype): Likewise. |
| (Derived_Type_Declaration): Tweak comment. |
| * sem_ch4.ads (Try_Object_Operation): Adjust description. |
| |
| 2024-06-21 Doug Rupp <rupp@adacore.com> |
| |
| * init.c [vxworks] (__gnat_install_handler): Revert to |
| installing signal handlers without regard to interrupt_state. |
| |
| 2024-06-21 Javier Miranda <miranda@adacore.com> |
| |
| * sem_disp.adb (Find_Hidden_Overridden_Primitive): Check |
| public dispatching primitives of ancestors; previously, |
| only immediately-visible primitives were checked. |
| |
| 2024-06-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * checks.adb (Generate_Index_Checks): Add specific treatment for |
| index expressions that are N_Expression_With_Actions nodes. |
| |
| 2024-06-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch4.adb (Analyze_Selected_Component): Rename Name into Pref |
| and use Sel local variable consistently. |
| (Is_Simple_Indexed_Component): New predicate. |
| Call Is_Simple_Indexed_Component to determine whether to build an |
| actual subtype for the component. |
| |
| 2024-06-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * freeze.adb (Freeze_Array_Type): Decouple the handling of the |
| interaction between packing and aliased/atomic components from |
| that of the interaction between a component clause and aliased/ |
| atomic components, and retrofit the processing of the interaction |
| between the two characteristics and independent components into |
| the common processing. |
| |
| 2024-06-21 Bob Duff <duff@adacore.com> |
| |
| * gen_il-gen-gen_nodes.adb |
| (N_Generic_Package_Declaration): Remove Activation_Chain_Entity. |
| * sinfo.ads: Comment improvements. Add missing doc. |
| Remove obsolete comment about Activation_Chain_Entity. |
| * einfo.ads: Comment improvements. Add missing doc. |
| * einfo-utils.adb (Base_Type): Add Assert (disabled for now). |
| (Next_Index): Minor cleanup. |
| * aspects.ads: Minor comment fix. |
| * exp_ch6.adb: Likewise. |
| * sem_ch3.adb: Likewise. |
| |
| 2024-06-21 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_ch3.adb (Add_Interface_Tag_Components): Simplify with No. |
| |
| 2024-06-21 Steve Baird <baird@adacore.com> |
| |
| * sem_ch4.adb (Is_Effectively_Visible_Operator): A new function. |
| (Check_Arithmetic_Pair): In paths where Add_One_Interp was |
| previously called unconditionally, instead call only if |
| Is_Effectively_Visible_Operator returns True. |
| (Check_Boolean_Pair): Likewise. |
| (Find_Unary_Types): Likewise. |
| |
| 2024-06-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * accessibility.adb (Accessibility_Level): Apply the processing to |
| Expr when its Original_Node is an unanalyzed identifier. |
| |
| 2024-06-21 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_attr.adb (In_Aspect_Specification): Use the standard |
| condition that works correctly with declare expressions. |
| * sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Replace |
| ordinary analysis with preanalysis of spec expressions. |
| |
| 2024-06-21 Justin Squirek <squirek@adacore.com> |
| |
| * csets.ads (Identifier_Char): New function - replacing table. |
| * csets.adb (Identifier_Char): Rename and move table for static values. |
| (Initialize): Remove dynamic calculations. |
| (Identifier_Char): New function to calculate dynamic values. |
| * opt.adb (Set_Config_Switches): Remove setting of Identifier_Char. |
| |
| 2024-06-20 Steve Baird <baird@adacore.com> |
| |
| * sem_attr.adb (Resolve_Attribute.Proper_Op): When resolving the |
| name of the reducer subprogram in a reduction expression, |
| Proper_Op treats references to operators defined in Standard |
| specially. Disable this special treatment if the type of the |
| reduction expression is not the right class of type for the |
| operator, or if a new Boolean parameter (named "Strict") is True. |
| (Resolve_Attribute): In the overloaded case, iterate over the |
| reducer subprogram candidates twice. First with Strict => True and |
| then, if no good intepretation is found, with Strict => False. |
| |
| 2024-06-20 Yannick Moy <moy@adacore.com> |
| |
| * ghost.adb (Check_Ghost_Type): Fix checking. |
| |
| 2024-06-20 Bob Duff <duff@adacore.com> |
| |
| * expander.ads: Minor comment fixes. |
| * nlists.ads: Misc comment improvements. |
| * sem_aux.ads (First_Discriminant): Improve comment. |
| * sem_ch12.adb: Misc cleanups. |
| (Associations): New package containing type Gen_Assocs_Rec |
| to represent matchings, and function Match_Assocs to create the |
| Gen_Assocs_Rec constant. |
| (Analyze_Associations): Call Match_Assocs, and other major |
| changes related to that. |
| * sem_ch12.ads: Minor comment fixes. |
| * sem_ch3.adb: Minor comment fixes. |
| |
| 2024-06-20 Steve Baird <baird@adacore.com> |
| |
| * doc/gnat_rm/gnat_language_extensions.rst: Update documentation. |
| * doc/gnat_rm/implementation_defined_pragmas.rst: Update |
| documentation. |
| * errout.adb |
| (Error_Msg_GNAT_Extension): Update error message text. |
| * par-prag.adb: Update pragma parsing. This includes changing the |
| the name of the Check_Arg_Is_On_Or_Off formal parameter All_OK_Too |
| to All_Extensions_OK_Too. |
| * sem_prag.adb (Analyze_Pragma): In analyzing an |
| Extensions_Allowed pragma, replace uses of Name_All with |
| Name_All_Extensions; update a comment to reflect this. |
| * snames.ads-tmpl: Add Name_All_Extensions declaration. |
| * gnat_rm.texi: Regenerate. |
| |
| 2024-06-20 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_ch4.adb (Try_Selected_Component_In_Instance): Reverse if_statement |
| clauses so that the testing for the special case of extensions of private |
| types in instance bodies is done first, followed by the testing for the case |
| of a parent type that's a generic actual type. In the extension case, apply |
| Base_Type to the type actual in the test of Used_As_Generic_Actual, and add |
| a test of Present (Parent_Subtype (Typ)). |
| |
| 2024-06-20 Yannick Moy <moy@adacore.com> |
| |
| * inline.adb (Establish_Actual_Mapping_For_Inlined_Call): In the |
| case of formal with a fixed lower bounds, insert appropriate |
| conversion like in the case of a constrained type. |
| * tbuild.adb (Unchecked_Convert_To): Do not skip the conversion |
| when it may involve sliding due to a type with fixed lower bound. |
| |
| 2024-06-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch12.adb (Instantiate_Formal_Package): Accept renamings of a |
| generic parent that is a child unit for the abbreviated instance. |
| |
| 2024-06-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch4.adb (Expand_Composite_Equality): In the untagged record |
| case, always look for a user-defined equality operator in Ada 2012. |
| |
| 2024-06-20 Doug Rupp <rupp@adacore.com> |
| |
| * ali.ads (Interrupts_Default_To_System): New boolean. |
| (Interrupts_Default_To_System_Specified): New boolean. |
| * ali.adb (Interrupts_Default_To_System_Specified): Initialize. |
| (Interrupts_Default_To_System): Initialize. |
| (Scan_ALI): Processing for "ID". |
| * bindgen.adb: Coallesce comments on interrupt settings to ... |
| (Gen_Adainit): Import Interrupts_Default_To_System flag and set if |
| pragma specified. |
| (Gen_Output_File_Ada): Generate Local_Interrupt_States according |
| to pragma. |
| * init.c: ... here. |
| [vxworks] (__gnat_install_handler): Test for interrupt_state. |
| (__gl_interrupts_default_to_system): New global flag. |
| (__gnat_get_interrupt_State): return interrupt state according to |
| new global flag. |
| * lib-writ.ads: Document "ID". |
| * lib-writ.adb: Write out "ID". |
| * opt.ads (Interrupts_System_By_Default): New boolean, defaulted |
| to False. |
| * par-prag.adb (Pragma_Interrupts_System_By_Default): New. |
| * sem_prag.adb (Pragma_Interrupts_System_By_Default): Handle it. |
| (Pragma_Interrupts_System_By_Default): Default it. |
| * snames.ads-tmpl (Name_Interrupts_System_By_Default): New name. |
| (Pragma_Interrupts_System_By_Default): New |
| * libgnarl/s-intman__posix.adb (Initialize): Ensure the |
| Keep_Unmasked signal is sigset-able. |
| * doc/gnat_rm/implementation_defined_pragmas.rst: Document pragma |
| Interrupts_System_By_Default. |
| * doc/gnat_ugn/the_gnat_compilation_model.rst (Configuration |
| pragmas): Add Interrupts_System_By_Default. (Partition-Wide |
| Settings): Mention pragma Interrupts_System_By_Default. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-06-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch4.adb (Expand_Array_Equality.Component_Equality): Copy the |
| Comes_From_Source flag from the original test to the new one, and |
| remove obsolete code dealing with unchecked unions. |
| * sem_util.adb (Has_Inferable_Discriminants): Return False for an |
| incomplete or private nominal subtype. |
| |
| 2024-06-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * freeze.adb (Freeze_Expression): Also attach pending freeze nodes |
| to the parent in the case of an internal block in a spec expression. |
| |
| 2024-06-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * debug.adb (d_l): Document new usage for the compiler. |
| * freeze.adb (Check_Strict_Alignment): Set the Strict_Alignment |
| flag on array types with aliased component, except if the |
| component size is equal to the storage unit or the -gnatd_l switch |
| is specified. |
| |
| 2024-06-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/gnat_rm/implementation_advice.rst (Representation Clauses): |
| Remove >> marker and add end of sentence after code-block directive. |
| (RM 13.5.3(7-8)): Update to Ada 2005 wording. |
| * doc/gnat_rm/implementation_defined_characteristics.rst |
| (RM 13.5.3(5)): Likewise. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-06-20 Piotr Trojanek <trojanek@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_aspects.rst |
| (Aspect Subprogram_Variant): Refer to SPARK User's Guide. |
| * doc/gnat_rm/implementation_defined_pragmas.rst |
| (Pragma Subprogram_Variant): Document syntax to satisfy the |
| convention; refer to SPARK User's Guide for semantics. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-06-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * freeze.adb (Freeze_Array_Type): Call Propagate_Controlled_Flags |
| to propagate the controlled flags from the component to the array. |
| (Freeze_Record_Type): Propagate the Finalize_Storage_Only flag |
| from the components to the record. |
| * sem_ch3.adb (Analyze_Private_Extension_Declaration): Do not call |
| Propagate_Concurrent_Flags here but... |
| (Array_Type_Declaration): Tidy and call Propagate_Controlled_Flags |
| to propagate the controlled flags from the component to the array. |
| (Build_Derived_Private_Type): Do not propagate the controlled flags |
| manually here but... |
| (Build_Derived_Record_Type): ...call Propagate_Controlled_Flags to |
| propagate the controlled flags from parent to derived type. |
| (Build_Derived_Type): Likewise. |
| (Copy_Array_Base_Type_Attributes): Call Propagate_Controlled_Flags |
| to copy the controlled flags. |
| (Record_Type_Definition): Streamline the propagation of the |
| Finalize_Storage_Only flag from the components to the record. |
| * sem_ch7.adb (Preserve_Full_Attributes): Use Full_Base and call |
| Propagate_Controlled_Flags to copy the controlled flags. |
| * sem_ch9.adb (Analyze_Protected_Definition): Use canonical idiom |
| to compute Has_Controlled_Component. |
| (Analyze_Protected_Type_Declaration): Minor tweak. |
| * sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): Do not deal with |
| Finalize_Storage_Only here. |
| * sem_util.ads (Propagate_Controlled_Flags): New declaration. |
| * sem_util.adb (Propagate_Controlled_Flags): New procedure. |
| |
| 2024-06-20 Piotr Trojanek <trojanek@adacore.com> |
| |
| * freeze.adb (Check_Current_Instance): This routine is only called |
| with parameter E being a type entity, so there is no need to check |
| for types just before the equality with E. |
| * sem_ch13.adb (Analyze_Aspect_Specifications): Regroup condition |
| to avoid unnecessary evaluation. |
| (Check_Aspect_At_End_Of_Declarations): If In_Instance is true, |
| then the routine exits early. |
| |
| 2024-06-20 Piotr Trojanek <trojanek@adacore.com> |
| |
| * freeze.adb (Find_Aspect_No_Parts): Tune whitespace. |
| * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Fix style. |
| |
| 2024-06-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * aspects.ads (Aspect_Id): Remove Aspect_Max_Entry_Queue_Depth. |
| (global arrays): Remove entry for it. |
| * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Remove |
| reference to pragma Max_Entry_Queue_Depth in comment. |
| * par-prag.adb (Prag): Remove handling of |
| Pragma_Max_Entry_Queue_Depth. |
| * sem_ch13.adb (Analyze_Aspect_Specifications): Remove reference |
| to aspect Max_Entry_Queue_Depth in comment. |
| (Analyze_Aspect_Specifications): Remove processing of aspect |
| Max_Entry_Queue_Depth. |
| (Check_Aspect_At_Freeze_Point): Likewise. |
| * sem_prag.ads (Find_Related_Declaration_Or_Body): Remove |
| reference to pragma Max_Entry_Queue_Depth in comment. |
| * sem_prag.adb (Analyze_Pragma): Remove processing of pragma |
| Max_Entry_Queue_Depth. |
| (Sig_Flags): Remove entry for Pragma_Max_Entry_Queue_Depth. |
| * sem_util.adb (Get_Max_Queue_Length): Remove handling of pragma |
| Max_Entry_Queue_Depth. |
| (Has_Max_Queue_Length): Likewise. |
| * snames.ads-tmpl (Name_Max_Entry_Queue_Depth): Move back from |
| pragmas section to others section. |
| (Pragma_Id): Remove Pragma_Max_Entry_Queue_Depth. |
| |
| 2024-06-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/gnat_rm/gnat_language_extensions.rst (Pragma Storage_Model): |
| Rename to Storage Model. |
| * doc/gnat_rm/implementation_defined_aspects.rst: Alphabetize. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-06-20 Ronan Desplanques <desplanques@adacore.com> |
| |
| * gnat1drv.adb (Gnat1drv): Add coverage instrumentation |
| annotations. |
| |
| 2024-06-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch3.adb (Expand_Freeze_Array_Type): Do not propagate the |
| concurrent flags and the Has_Controlled_Component flag here. |
| (Expand_Freeze_Record_Type): Likewise. |
| * freeze.adb (Freeze_Array_Type): Propagate the concurrent flags. |
| (Freeze_Record_Type): Likewise. |
| * sem_util.adb (Has_Some_Controlled_Component): Adjust comment. |
| |
| 2024-06-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * mutably_tagged.ads: Fix minor issues in comments throughout. |
| |
| 2024-06-20 Richard Kenner <kenner@adacore.com> |
| |
| * debug.adb: Add documentation for -gnatd_w. |
| |
| 2024-06-20 Viljar Indus <indus@adacore.com> |
| |
| * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Update |
| documentation for -gnatw.v. |
| * sem_ch13.adb: Convert all -gnatw.v related messages to warnings. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-06-20 Viljar Indus <indus@adacore.com> |
| |
| * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Update |
| documentation for -gnatw.n switch. |
| * exp_util.adb: Convert info messages into warnings. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-06-20 Viljar Indus <indus@adacore.com> |
| |
| * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add |
| entry for -gnatis. |
| * errout.adb (Error_Msg_Internal): Stop printing info messages if |
| -gnatis was used. |
| * opt.ads: Add Info_Suppressed flag to track whether info messages |
| should be suppressed. |
| * switch-c.adb: Add parsing for -gnatis. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-06-20 Viljar Indus <indus@adacore.com> |
| |
| * atree.ads: Remove Warning_Info_Messages. |
| * errout.adb: Remove various places where Warning_Info_Messages |
| was used. |
| * erroutc.adb: Remove various places where Warning_Info_Messages |
| was used. Create Error_Msg_Object objects with only an info |
| attribute if the message contained both info and warning insertion |
| characters. New method Has_Switch_Tag for detecting if a message |
| should have an error tag. |
| * errutil.adb: Create Error_Msg_Object objects with only an info |
| attribute if the message contained both info and warning insertion |
| characters. |
| |
| 2024-06-20 Justin Squirek <squirek@adacore.com> |
| |
| * doc/gnat_rm/gnat_language_extensions.rst: Add entry for 'Super. |
| * doc/gnat_rm/implementation_defined_attributes.rst: Remove entry |
| for 'Super. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-06-20 Steve Baird <baird@adacore.com> |
| |
| * gprep.adb (Process_Files.Process_One_File): When calling OS_Exit in an error |
| path, pass in a Status parameter of 1 instead of 0 (because 0 |
| indicates success). |
| * lib-load.adb (Load_Main_Source): Do not emit a message about a missing source file |
| if other error messages were generated by calling Load_Source_File; |
| the file isn't missing - it failed preprocessing. |
| |
| 2024-06-20 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_attr.adb (Attribute_22): Add Put_Image and Object_Size. |
| * sem_attr.ads (Attribute_Impl_Def): Remove Object_Size. |
| |
| 2024-06-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/Makefile.in (tmake_file): Remove all references. |
| |
| 2024-06-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.cc: Include function.h. |
| (gnat_to_gnu_param): Minor comment tweaks. |
| (gnat_to_gnu_subprog_type): Take into account the default for the |
| computation of the return mechanism. Give a warning if a by-copy |
| specified mechanism cannot be honored. |
| |
| 2024-06-14 Yannick Moy <moy@adacore.com> |
| |
| * gcc-interface/trans.cc (elaborate_all_entities_for_package) |
| (process_freeze_entity): Skip entities of kind E_Subprogram_Body. |
| |
| 2024-06-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/109817 |
| * gcc-interface/trans.cc (maybe_make_gnu_thunk): Create an alias |
| instead of a null thunk. |
| |
| 2024-06-14 Marc Poulhiès <poulhies@adacore.com> |
| |
| * gcc-interface/decl.cc (gnat_to_gnu_entity): Typo fix. |
| (gnat_to_gnu_component_type): Indent fix. |
| * gcc-interface/gigi.h (build_call_alloc_dealloc): Typo fix. |
| * gcc-interface/utils.cc (make_dummy_type): Typo fix. |
| * gcc-interface/utils2.cc (gnat_protect_expr): Indent fix. |
| |
| 2024-06-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * aspects.ads (Aspect_Id): Alphabetize, remove the GNAT tag from |
| Default_Initial_Condition and Object_Size, move No_Controlled_Parts |
| and No_Task_Parts to boolean subclass. |
| (Nonoverridable_Aspect_Id): Add missing Ada 2022 aspects. |
| (Implementation_Defined_Aspect): Add all missing aspects, remove |
| Max_Entry_Queue_Length and Object_Size |
| (Aspect_Argument): Remove specific entries for No_Controlled_Parts |
| and No_Task_Parts, list boolean aspects last. |
| (Is_Representation_Aspect ): Move boolean aspects last. |
| (Aspect_Names): Alphabetize. |
| * sem_ch13.adb (Analyze_Aspect_Disable_Controlled): Adjust. |
| (Analyze_Aspect_Specifications): Move around processing for |
| No_Controlled_Parts and No_Task_Parts. |
| (Check_Aspect_At_Freeze_Point): Remove specific entries for |
| No_Controlled_Parts and No_Task_Parts |
| |
| 2024-06-14 Steve Baird <baird@adacore.com> |
| |
| * exp_attr.adb |
| (Expand_Loop_Entry_Attribute): |
| Ensure that Etype of the saved expression is set correctly. |
| |
| 2024-06-14 Jerome Guitton <guitton@adacore.com> |
| |
| * sysdep.c (S_dosFsLib_FILE_NOT_FOUND, S_nfsLib_NFSERR_NOENT): |
| New macros, falback to ENOENT when not already defined. |
| (__gnat_is_file_not_found_error): Use these new macros to remove |
| tests against VxWorks flavors. |
| |
| 2024-06-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * snames.ads-tmpl (Name_Present): Move to Repinfo section. |
| |
| 2024-06-14 Justin Squirek <squirek@adacore.com> |
| |
| * doc/gnat_rm/gnat_language_extensions.rst: Add documentation for |
| mutably tagged type feature. |
| * aspects.ads: Add registration for 'Size'Class. |
| * einfo.ads: Add documentation for new components |
| Class_Wide_Equivalent_Type and Is_Mutably_Tagged_Type. |
| * exp_aggr.adb (Gen_Assign): Assume associated mutably tagged type |
| when class-wide equivalent type is encountered. |
| (Contains_Mutably_Tagged_Type): New subprogram. |
| (Convert_To_Positional): Assume associated mutably tagged type |
| when class-wide equivalent type is encountered. |
| (Is_Static_Element): Assume associated mutably tagged type when |
| class-wide equivalent type is encountered. |
| (Expand_Array_Aggregate): Assume associated mutably tagged type |
| when class-wide equivalent type is encountered. |
| (Expand_Record_Aggregate): Force mutably tagged records to be |
| expanded into assignments. |
| * exp_ch3.adb (Build_Array_Init_Proc): Assume associated mutably |
| tagged type when class-wide equivalent type is encountered. |
| (Simple_Initialization_OK): Disallow simple initialization for |
| class-wide equivalent types. |
| (Build_Init_Statements): Assume associated mutably tagged type |
| when class-wide equivalent type is encountered. |
| (Expand_Freeze_Array_Type): Ignore building of record init procs |
| for mutably tagged types. |
| (Expand_N_Full_Type_Declaration): Replace mutably tagged type |
| declarations with their associated class-wide equivalent types. |
| (Default_Initialize_Object): Add special handling for mutably |
| tagged types. |
| * exp_ch4.adb (Expand_N_Allocator): Add initialization for mutably |
| tagged types. |
| (Expand_Record_Equality): Generate mutably tagged unchecked |
| conversions. |
| * exp_ch5.adb (Expand_N_Assignment_Statement): Generate a special |
| assignment case for class-wide equivalent types which does tag |
| assignments and ignores certain checks. |
| * exp_ch6.adb (Expand_Call_Helper): Propagate constrained extra |
| formal actuals for mutably tagged types. |
| * exp_ch7.adb (Make_Init_Call): Handle mutably tagged type |
| initialization. |
| * exp_util.adb (Make_CW_Equivalent_Type): Modify to handle mutably |
| tagged objects which contain no initialization expression. |
| (Make_Subtype_From_Expr): Modify call to Make_CW_Equivalent_Type. |
| * exp_util.ads (Make_CW_Equivalent_Type): Move declaration from |
| body to spec. |
| * freeze.adb (Size_Known): No longer return false automatically |
| when a class-wide type is encountered. |
| (Freeze_Entity): Ignore error messages about size not being known |
| for mutably tagged types. |
| * gen_il-fields.ads: Register new fields |
| Class_Wide_Equivalent_Type and Is_Mutably_Tagged_Type. |
| * gen_il-gen-gen_entities.adb: Register new fields |
| Class_Wide_Equivalent_Type and Is_Mutably_Tagged_Type for type |
| entities. |
| * mutably_tagged.adb, mutably_tagged.ads |
| (Corresponding_Mutably_Tagged_Type): New subprogram. |
| (Depends_On_Mutably_Tagged_Ext_Comp): New subprogram. |
| (Get_Corresponding_Mutably_Tagged_Type_If_Present): New |
| subprogram. |
| (Get_Corresponding_Tagged_Type_If_Present): New subprogram. |
| (Is_Mutably_Tagged_Conversion): New subprogram. |
| (Is_Mutably_Tagged_CW_Equivalent_Type): New subprogram. |
| (Make_Mutably_Tagged_Conversion): New subprogram. |
| (Make_CW_Size_Compile_Check): New subprogram. |
| (Make_Mutably_Tagged_CW_Check): New subprogram. |
| * sem_aggr.adb (Resolve_Array_Aggregate): Skip tag checks for |
| class-wide equivalent types. |
| (Resolve_Aggr_Expr): Assume associated mutably tagged type when |
| class-wide equivalent type is encountered. |
| * sem_attr.adb (Analyze_Attribute): Allow 'Tag on mutably tagged |
| types. |
| (Resolve_Attribute): Detect errors for dependence of mutably |
| tagged extension type component. |
| * sem_ch12.adb (Instantiate_Object): Detect errors for dependence |
| of mutably tagged extension type component. |
| * sem_ch13.adb (Analyze_One_Aspect): Propagate 'Size'Class to |
| class-wide type. |
| (Analyze_Attribute_Definition_Clause): Add handling of 'Size'Class |
| by generating class-wide equivalent types and checking for illegal |
| uses. |
| * sem_ch2.adb (Analyze_Identifier): Generate unchecked conversion |
| for class-wide equivalent types. |
| * sem_ch3.adb (Analyze_Component_Declaration): Avoid unconstrained |
| errors on mutably tagged types. |
| (Analyze_Object_Declaration): Rewrite declarations of mutably |
| tagged types to use class-wide equivalent types. |
| (Array_Type_Declaration): Modify arrays of mutably tagged types to |
| use their corresponding class-wide equivalent types. |
| (Derived_Type_Declaration): Add various checks for mutably tagged |
| derived types. |
| * sem_ch4.adb (Analyze_Allocator): Replace reference to mutably |
| tagged type with cooresponding tagged type. |
| (Process_Indexed_Component): Generate unchecked conversion for |
| class-wide equivalent type. |
| (Analyze_One_Call): Generate unchecked conversion for class-wide |
| equivalent types. |
| (Analyze_Selected_Component): Assume reference to class-wide |
| equivalent type is associated mutably tagged type. |
| (Analyze_Type_Conversion): Generate unchecked conversion for |
| class-wide equivalent type. |
| * sem_ch5.adb (Analyze_Assignment): Assume associated mutably |
| tagged type when class-wide equivalent type is encountered. |
| (Analyze_Iterator_Specification): Detect errors for dependence of |
| mutably tagged extension type component. |
| * sem_ch6.adb (Create_Extra_Formals): Add code to generate extra |
| formal for mutably tagged types to signal if they are constrained. |
| * sem_ch8.adb (Analyze_Object_Renaming): Detect error on renaming |
| of mutably tagged extension type component. |
| (Analyze_Renaming_Primitive_Operation): Detect error on renaming |
| of mutably tagged extension type component. |
| * sem_res.adb (Resolve_Actuals): Allow class-wide arguments on |
| class-wide equivalent types. |
| (Valid_Conversion): Assume associated mutably tagged type when |
| class-wide equivalent type is encountered. |
| * sem_util.adb (Is_Fully_Initialized_Type): Flag mutably tagged |
| types as fully initialized. |
| (Needs_Simple_Initalization): Flag class-wide equivalent types as |
| needing initialization. |
| * gnat_rm.texi: Regenerate. |
| * gcc-interface/Make-lang.in: Add entry for mutably_tagged.o. |
| |
| 2024-06-14 Justin Squirek <squirek@adacore.com> |
| |
| * accessibility.adb: |
| (Accessibility_Level): Replace call Get_Full_View with call to |
| Full_View since Get_Full_View only works with incomplete types. |
| |
| 2024-06-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * aspects.ads (Operational_Aspect): Alphabetize. |
| * sem_ch13.ads (Analyze_Aspects_At_Freeze_Point): Fix description. |
| * sem_ch13.adb (Analyze_Aspects_At_Freeze_Point) <Aggregate>: Give |
| the error for array types here instead of... |
| (Analyze_Aspect_Specifications) <Aggregate>: Adjust comment. |
| (Check_Aspect_At_Freeze_Point) <Aggregate>: ...here. |
| |
| 2024-06-14 Javier Miranda <miranda@adacore.com> |
| |
| * exp_aggr.adb (Must_Slide): Add missing support for |
| multidimensional arrays. |
| |
| 2024-06-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * freeze.adb (Freeze_All): Call Check_Aspects_At_End_Of_Declarations |
| to perform the visibility check for aspects. |
| * sem_ch13.ads (Check_Aspects_At_End_Of_Declarations): Declare. |
| (Check_Aspect_At_Freeze_Point): Move to... |
| (Check_Aspect_At_End_Of_Declarations): Move to... |
| * sem_ch13.adb (Check_Aspect_At_Freeze_Point): ...here. |
| (Check_Aspect_At_End_Of_Declarations): ...here. |
| (Analyze_Aspect_Specifications): Remove peculiar processing for |
| Stable_Properties, Designated_Storage_Model, Storage_Model_Type |
| and Aggregate. Move that of Local_Restrictions around. Reset |
| Aitem at the beginning of the loop for each aspect. |
| (Check_Aspects_At_End_Of_Declarations): New procedure. |
| |
| 2024-06-14 Justin Squirek <squirek@adacore.com> |
| |
| * sem_attr.adb: |
| (Analyze_Attribute): Add check for dereference. |
| |
| 2024-06-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * snames.ads-tmpl (Name_Storage_Model): Delete. |
| |
| 2024-06-14 Alexandre Oliva <oliva@gnu.org> |
| |
| Revert: |
| 2024-06-12 Alexandre Oliva <oliva@adacore.com> |
| |
| * gcc-interface/decl.cc (gnat_to_gnu_field): Use unpacked type |
| as the debug type for packed fields. |
| |
| 2024-06-13 Steve Baird <baird@adacore.com> |
| |
| * exp_util.adb |
| (Insert_Actions): Code was relying on an incorrect assumption that an |
| N_Itype_Reference cannot occur in declaration list or a statement |
| list. Fix the code to handle this case. |
| |
| 2024-06-13 Viljar Indus <indus@adacore.com> |
| |
| * debug.adb: Remove mentions of -gnatdJ. |
| * errout.adb: Remove printing subprogram names to JSON. |
| * erroutc.adb: Remove printing subprogram names in messages. |
| * erroutc.ads: Remove Node and Subprogram_Name_Ptr used for -gnatdJ. |
| * errutil.adb: Remove Node used for -gnatdJ |
| * gnat1drv.adb: Remove references of -gnatdJ and |
| Include_Subprgram_In_Messages. |
| * opt.ads: Remove Include_Subprgram_In_Messages |
| * par-util.adb: Remove behavior related to |
| Include_Subprgram_In_Messages. |
| * sem_util.adb: Remove Subprogram_Name used for -gnatdJ |
| |
| 2024-06-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch7.adb (Attach_Object_To_Master_Node): Fix formatting. |
| (Build_Finalizer.Process_Object_Declaration): Synthesize a local |
| Finalize_Address primitive if the object's subtype is an array |
| that has a constrained first subtype and is not this first subtype. |
| * exp_util.adb (Find_Last_Init): Get again to the base type in the |
| indirect case. |
| |
| 2024-06-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_attributes.rst (Iterable): |
| Delete entry. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-06-13 Yannick Moy <moy@adacore.com> |
| |
| * sem_util.adb (Check_Ambiguous_Aggregate): Fix test. |
| |
| 2024-06-13 Javier Miranda <miranda@adacore.com> |
| |
| * freeze.ads (Check_Condition_Entities): Complete documentation. |
| * freeze.adb (Check_Inherited_Conditions): Extend its functionality to |
| build two kind of wrappers: the existing LSP wrappers, and wrappers |
| required to handle postconditions of interface primitives implemented |
| by inherited primitives. |
| (Build_Inherited_Condition_Pragmas): Rename formal. |
| (Freeze_Record_Type): For derived tagged types, move call to |
| Check_Inherited_Conditions to subprogram Freeze_Entity_Checks; |
| done to improve the performance of Check_Inherited_Conditions since it |
| can rely on the internal entities that link interface primitives with |
| tagged type primitives that implement them. |
| (Check_Interface_Primitives_Strub_Mode): New subprogram. |
| * sem_ch13.adb (Freeze_Entity_Checks): Call Check_Inherited_Conditions. |
| Call Check_Inherited_Conditions with derived interface types to check |
| strub mode compatibility of their primitives. |
| * sem_disp.adb (Check_Dispatching_Operation): Adjust assertion to accept |
| wrappers of interface primitives that have classwide postconditions. |
| * exp_disp.adb (Write_DT): Adding text to identify wrappers. |
| |
| 2024-06-13 Viljar Indus <indus@adacore.com> |
| |
| * sem_res.adb (Resolve_Call): add warning insertion |
| character into the info message. |
| |
| 2024-06-13 Steve Baird <baird@adacore.com> |
| |
| * sem_util.adb |
| (New_Copy_Tree.Visit_Entity): Delete code that prevented copying some entities. |
| |
| 2024-06-13 Bob Duff <duff@adacore.com> |
| |
| * sem_ch12.adb (Check_Fixed_Point_Actual): Minor rewording; it seems |
| more proper to say "operator" rather than "operation". |
| (Matching_Actual): Give an error for <> in positional notation. |
| This is a syntax error. Disable this for now. |
| (Analyze_Associations): Copy the use clause in all cases. |
| The "mustn't recopy" comment seems wrong, because New_Copy_Tree |
| preserves Slocs. |
| * libgnat/a-ticoau.ads: Fix violation of new postion-box error. |
| * libgnat/a-wtcoau.ads: Likewise. |
| * libgnat/a-ztcoau.ads: Likewise. |
| |
| 2024-06-13 Viljar Indus <indus@adacore.com> |
| |
| * par-labl.adb (Rewrite_As_Loop): Remove info message |
| |
| 2024-06-13 Viljar Indus <indus@adacore.com> |
| |
| * par-ch7.adb: Remove warning characters from info message |
| * par-endh.adb: Remove warning characters from info message |
| * sem_res.adb: Remove warning characters from info message |
| |
| 2024-06-13 Viljar Indus <indus@adacore.com> |
| |
| * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): change the |
| info message to a continuation message. |
| |
| 2024-06-13 Viljar Indus <indus@adacore.com> |
| |
| * inline.adb (Cannot_Inline): Simplify string handling logic. |
| |
| 2024-06-13 Yannick Moy <moy@adacore.com> |
| |
| * exp_ch5.adb (Expand_Iterator_Loop_Over_Container): Skip entities |
| of kind E_Subprogram_Body. |
| * repinfo.adb (List_Entities): Remove special case for subprogram |
| bodies. |
| * sem_ch6.adb (Analyze_Subprogram_Body_Helper): List subprogram |
| body entities in the enclosing scope. |
| |
| 2024-06-13 Javier Miranda <miranda@adacore.com> |
| |
| * sem_ch4.adb (Traverse_Interfaces): Add missing support |
| for climbing to parents of interface types. |
| |
| 2024-06-13 Steve Baird <baird@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_attributes.rst: |
| Update Super attribute documentation. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-06-13 Ronan Desplanques <desplanques@adacore.com> |
| |
| * exp_ch7.adb (Build_Cleanup_Statements): Adapt to changes |
| made to Build_Protected_Subprogram_Call_Cleanup. |
| * exp_ch9.adb (Make_Unlock_Statement, Wrap_Unprotected_Call): |
| New functions. |
| (Build_Protected_Subprogram_Body): Fix resource management in |
| generated code. |
| (Build_Protected_Subprogram_Call_Cleanup): Make use of newly |
| introduced Make_Unlock_Statement. |
| |
| 2024-06-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/114710 |
| * exp_util.adb (Find_Renamed_Object): Recurse for any renaming. |
| |
| 2024-06-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context): |
| Iterate over encapsulating abstract states. |
| |
| 2024-06-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-imad32$(objext), |
| s-imad64$(objext) and s-imagea$(objext). |
| * exp_atag.ads (Build_Set_Size_Function): Replace Tag_Node parameter |
| with Typ parameter. |
| * exp_atag.adb: Add clauses for Sinfo.Utils. |
| (Build_Set_Size_Function): Retrieve the TSD object statically. |
| * exp_disp.adb: Add clauses for Ttypes. |
| (Make_DT): Call Address_Image{32,64] instead of Address_Image. |
| (Register_Primitive): Pass Tag_Typ to Build_Set_Size_Function. |
| * rtsfind.ads (RTU_Id): Remove System_Address_Image and add |
| System_Img_Address_{32;64}. |
| (RE_Id): Remove entry for RE_Address_Image and add entries for |
| RE_Address_Image{32,64}. |
| * rtsfind.adb (System_Descendant): Adjust to above changes. |
| * libgnat/a-tags.ads (Address_Array): Suppress initialization. |
| * libgnat/s-addima.adb (System.Address_Image): Call the appropriate |
| routine based on the address size. |
| * libgnat/s-imad32.ads: New file. |
| * libgnat/s-imad64.ads: Likewise. |
| * libgnat/s-imagea.ads: Likewise. |
| * libgnat/s-imagea.adb: Likewise. |
| * gcc-interface/Make-lang.in (GNAT_ADA_OBJS) [$(STAGE1)=False]: Add |
| ada/libgnat/s-imad32.o and ada/libgnat/s-imad64.o. |
| |
| 2024-06-13 Yannick Moy <moy@adacore.com> |
| |
| * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Do not inline |
| when constant with address clause is found. |
| |
| 2024-06-13 Ronan Desplanques <desplanques@adacore.com> |
| |
| * gnatlink.adb (Gnatlink): Fix incorrect lower bound assumption. |
| (Is_Prefix): New function. |
| |
| 2024-06-13 Steve Baird <baird@adacore.com> |
| |
| * sem_ch7.adb |
| (Requires_Completion_In_Body): Modify the Comes_From_Source test so that |
| the implicit declaration of an inherited subprogram does not cause |
| an incorrect result of True. |
| |
| 2024-06-13 Richard Kenner <kenner@adacore.com> |
| |
| * exp_ch6.adb (Expand_Ctrl_Function_Call): Inline if -gnatn in |
| CCG mode even if -O0. |
| |
| 2024-06-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/114710 |
| * exp_util.adb (Find_Renamed_Object): Recurse if the renamed object |
| is itself a renaming. |
| |
| 2024-06-13 Javier Miranda <miranda@adacore.com> |
| |
| * sem_attr.adb (Analyze_Attribute): Enhance support for |
| using 'Old with a prefix that references an overloaded |
| function that has no parameters; add missing support |
| for the use of 'Old within qualified expressions. |
| * sem_util.ads (Preanalyze_And_Resolve_Without_Errors): |
| New subprogram. |
| * sem_util.adb (Preanalyze_And_Resolve_Without_Errors): |
| New subprogram. |
| |
| 2024-06-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * layout.adb (Layout_Type): Use high-level wrapper routine. |
| * sem_ch13.adb (Inherit_Delayed_Rep_Aspects): Likewise. |
| * sem_ch3.adb (Analyze_Object_Declaration): Likewise. |
| |
| 2024-06-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnat/s-tsmona__linux.adb (Get): Move down descriptive comment. |
| * libgnat/s-tsmona__mingw.adb: Add with clause and use clause for |
| System.Storage_Elements. |
| (Get): Pass GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT in the call |
| to GetModuleHandleEx and remove the subsequent call to FreeLibrary. |
| Upon success, set Load_Addr to the base address of the module. |
| * libgnat/s-win32.ads (GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS): Use |
| shorter literal. |
| (GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT): New constant. |
| |
| 2024-06-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/114710 |
| * exp_ch7.adb (Build_Finalizer.Process_Declarations): Remove dead |
| code dealing with renamings. |
| * exp_util.ads (Is_Finalizable_Transient): Rename Rel_Node to N. |
| * exp_util.adb (Is_Finalizable_Transient): Likewise. |
| (Is_Aliased): Remove obsolete code dealing wih EWA nodes and only |
| consider renamings present in N itself. |
| (Requires_Cleanup_Actions): Remove dead code dealing with renamings. |
| |
| 2024-06-13 Javier Miranda <miranda@adacore.com> |
| |
| * sem_ch13.adb (Analyze_One_Aspect): Set the applicable policy |
| of a type declaration when its aspect Dynamic_Predicate is |
| analyzed. |
| * sem_prag.adb (Handle_Dynamic_Predicate_Check): New subprogram |
| that enables or ignores dynamic predicate checks depending on |
| whether dynamic checks are enabled in the context where the |
| associated type declaration is defined; used in the analysis |
| of pragma check. In addition, for pragma Predicate, do not |
| disable it when the aspect was internally build as part of |
| processing a dynamic predicate aspect. |
| |
| 2024-06-12 Alexandre Oliva <oliva@adacore.com> |
| |
| * gcc-interface/decl.cc (gnat_to_gnu_field): Use unpacked type |
| as the debug type for packed fields. |
| |
| 2024-06-10 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch4.adb (Expand_Nonbinary_Modular_Op): Create an explicit Mod |
| for additive operations if No_Implicit_Conditionals is in effect. |
| (Expand_Modular_Addition): Likewise. |
| (Expand_Modular_Subtraction): Likewise. |
| (Expand_Modular_Op): Always use an unsigned type obtained by calling |
| Small_Integer_Type_For on the required size. |
| |
| 2024-06-10 Javier Miranda <miranda@adacore.com> |
| |
| * sem_ch6.adb (Might_Need_BIP_Task_Actuals): Add support |
| for access-to-subprogram parameter types. |
| * exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call): |
| Add dummy BIP parameters to access-to-subprogram types |
| that may reference a function that has BIP parameters. |
| |
| 2024-06-10 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_prag.adb (Set_Convention_From_Pragma): If the specified convention on |
| a record type is not C_Pass_By_Copy, then force the C_Pass_By_Copy flag to |
| False, to ensure that it's overridden. |
| |
| 2024-06-10 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_aggr.adb (Resolve_Iterated_Association): Change "not Present" |
| to "No" in test of Add_Named_Subp. |
| |
| 2024-06-10 Steve Baird <baird@adacore.com> |
| |
| * freeze.adb |
| (Should_Freeze_Type.Is_Dispatching_Call_Or_Aggregate): Treat an extension |
| aggregate or a delta aggregate like a regular aggregate. |
| |
| 2024-06-10 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_aggr.adb (Resolve_Iterated_Association): In the case of |
| N_Iterated_Element_Associations that have a key expression, issue |
| an error if the aggregate type does not have an Add_Named |
| operation, and include a reference to RM22 4.3.5(24) in the error |
| message. In the case of an N_Component_Association with a |
| Defining_Identifer where the "choice" is given by a function call, |
| in the creation of the iterator_specification associate a copy of |
| Choice as its Name, and remove the call to |
| Analyze_Iterator_Specification, which was causing problems with |
| the reanalysis of function calls originally given in prefixed form |
| that were transformed into function calls in normal (infix) form. |
| The iterator_specification will be analyzed later in any case, so |
| that call should not be done here. Remove the with and use of |
| Sem_Ch5. |
| |
| 2024-06-10 Justin Squirek <squirek@adacore.com> |
| |
| * ali.adb (Get_Nat): Remove unnecessary parentheses. |
| * exp_ch11.adb (Expand_Local_Exception_Handlers): Remove |
| unnecessary parentheses. |
| * freeze.adb (Freeze_Entity): Remove unnecessary parentheses. |
| * lib-list.adb (List): Remove unnecessary parentheses. |
| * par-ch5.adb (P_Condition): Add extra parentheses checks on |
| condition operands. |
| * sem_ch3.adb (Add_Interface_Tag_Components): Remove unnecessary |
| parentheses. |
| (Check_Delta_Expression): Remove unnecessary parenthesis. |
| (Check_Digits_Expression): Remove unnecessary parentheses. |
| * sem_ch12.adb (Validate_Array_Type_Instance): Remove unnecessary |
| parentheses. |
| |
| 2024-06-10 Justin Squirek <squirek@adacore.com> |
| |
| * exp_ch5.adb (Expand_Formal_Container_Element_Loop): Add |
| expansion of filter condition. |
| (Expand_Formal_Container_Loop): Add expansion of filter condition. |
| |
| 2024-06-10 Justin Squirek <squirek@adacore.com> |
| |
| * accessibility.adb (Accessibility_Level): Use Get_Full_View to |
| avoid crashes when calculating scope. |
| |
| 2024-06-10 Justin Squirek <squirek@adacore.com> |
| |
| * sem_warn.adb (Warn_On_Unreferenced_Entity): Add a condition to |
| ignore warnings on unreferenced abstract subprogram. |
| |
| 2024-06-10 Justin Squirek <squirek@adacore.com> |
| |
| * sem_attr.adb (Analyze_Attribute): Add check for interface parent |
| types. |
| |
| 2024-06-10 Piotr Trojanek <trojanek@adacore.com> |
| |
| * einfo.ads, exp_attr.adb, exp_ch4.adb, exp_ch7.adb, |
| lib-writ.adb, libgnat/a-stbuut.ads, sem_ch13.adb, sem_ch3.adb, |
| sem_ch7.adb: Use "RM" in comments. |
| |
| 2024-06-10 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_util.adb |
| (Immediate_Context_Implies_Is_Potentially_Unevaluated): Use |
| collective subtypes in membership tests. |
| (Is_Known_On_Entry): Require all alternatives in a case statement |
| to return; this change could prevent a recently fixed glitch, |
| where one of the alternatives relied on the return statement |
| afterwards (also, the new code is shorter). |
| * sem_util.ads (Is_Potentially_Unevaluated): Clarify that this |
| routine applies to Ada 2012. |
| |
| 2024-06-10 Yannick Moy <moy@adacore.com> |
| |
| * libgnat/a-chtgfo.adb (Generic_Read, Generic_Write): Remove. |
| * libgnat/a-chtgfo.ads: Same. Remove dependency on Ada.Streams. |
| |
| 2024-06-10 Ronan Desplanques <desplanques@adacore.com> |
| |
| * libgnarl/s-taprop__mingw.adb (Set_Task_Affinity): Fix usage of |
| SetThreadAffinityMask. |
| * libgnat/s-winext.ads (SetThreadAffinityMask): Fix binding |
| signature. |
| |
| 2024-06-10 Ronan Desplanques <desplanques@adacore.com> |
| |
| * libgnarl/s-taprop__mingw.adb (Set_Task_Affinity): Fix usage |
| of SetThreadIdealProcessor. |
| |
| 2024-06-10 Ronan Desplanques <desplanques@adacore.com> |
| |
| * libgnat/s-os_lib.adb (Normalize_Pathname): Remove incorrect |
| assert statement. |
| (Missed_Drive_Letter): Rename into... |
| (Drive_Letter_Omitted): This. |
| |
| 2024-06-10 Ronan Desplanques <desplanques@adacore.com> |
| |
| * gnatlink.adb (Check_File_Name): Fix incorrect assumption. |
| |
| 2024-06-10 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_attr.adb (Expand_N_Attribute_Reference): Use constants |
| declared at the beginning of subprogram; tune layout. |
| * exp_ch3.adb (Predefined_Primitive_Bodies): Tune layout. |
| |
| 2024-06-10 Piotr Trojanek <trojanek@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_pragmas.rst |
| (No_Tagged_Streams): Move documentation. |
| * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst |
| (No_Streams): Likewise. |
| * exp_disp.adb (Make_DT): Extend comment. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-06-10 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_attr.adb (Analyze_Attribute): Use fully qualified name |
| without a NUL, so that it doesn't need to be skipped afterwards. |
| |
| 2024-06-10 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_ch3.adb (Stream_Operation_OK): Check restriction |
| No_Default_Stream_Attributes before call to |
| Type_Without_Stream_Operation. |
| * sem_util.adb (Type_Without_Stream_Operation): Remove static |
| condition from recursive routine |
| |
| 2024-06-10 Piotr Trojanek <trojanek@adacore.com> |
| |
| * inline.adb (Has_Single_Return_In_GNATprove_Mode): Remove. |
| (Process_Formals): When rewriting an occurrence of a formal |
| parameter, use location of the occurrence, not of the inlined |
| call. |
| |
| 2024-06-10 Piotr Trojanek <trojanek@adacore.com> |
| |
| * debug.adb (d_k): Use first available debug switch. |
| * gnat1drv.adb (Adjust_Global_Switches): If new debug switch is |
| active then don't expand assertion expressions by default. |
| |
| 2024-06-10 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_ch6.adb (Install_Class_Preconditions_Check): Refactor |
| common code for checking if precondition fails, since the |
| difference is only in raising an exception or calling the |
| Raise_Assert_Failure procedure. |
| |
| 2024-06-10 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_ch6.adb (Build_Dynamic_Check_Helper_Call): Remove unused |
| iteration over formal parameters. |
| |
| 2024-06-10 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Make |
| discriminants visible when analyzing aspect Interrupt_Priority. |
| (Freeze_Entity_Checks): Likewise. |
| (Resolve_Aspect_Expressions): Likewise for both aspects CPU and |
| Interrupt_Priority. |
| |
| 2024-06-10 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_prag.adb (Report_Extra_Clauses): Remove redundant check |
| for empty list, because First works also for No_List. |
| |
| 2024-06-10 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_prag.adb (Check_Dependency_Clause, Check_Output_States, |
| Report_Extra_Clauses): Remove multiple checks for being inside |
| an instance. |
| (Analyze_Refined_Depends_In_Decl_Part): Add single check for |
| being inside an instance. |
| |
| 2024-06-10 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_prag.adb (Check_In_Out_States, Check_Input_States, |
| Check_Output_States, Check_Proof_In_States, |
| Check_Refined_Global_List, Report_Extra_Constituents, |
| Report_Missing_Items): Remove multiple checks for being inside |
| an instance. |
| (Analyze_Refined_Global_In_Decl_Part): Add single check for |
| being inside an instance. |
| |
| 2024-06-05 Kewen Lin <linkw@linux.ibm.com> |
| |
| * gcc-interface/decl.cc (gnat_to_gnu_entity): Use TYPE_PRECISION of |
| long_double_type_node to replace LONG_DOUBLE_TYPE_SIZE. |
| |
| 2024-05-29 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/115270 |
| * Makefile.rtl (PowerPC/Linux): Use libgnat/s-atopri__32.ads for |
| the 32-bit library. |
| (SPARC/Linux): Likewise. |
| |
| 2024-05-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/115168 |
| * libgnarl/s-taprop__solaris.adb (Initialize): Fix pasto. |
| * libgnat/s-oslock__solaris.ads (Owner_Int): Delete. |
| (Owner_ID): Change the designated type to Integer. |
| |
| 2024-05-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/utils2.cc (nonbinary_modular_operation): Rewrite. |
| Do not create signed types for subtraction, do not create types with |
| partial precision, call fold_convert instead of convert throughout. |
| |
| 2024-05-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.cc (gnat_to_gnu_entity): Use the Is_Base_Type |
| predicate and remove superfluous calls to Base_Type. |
| |
| 2024-05-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/utils2.cc (gnat_protect_expr): Deal specifically |
| with atomic loads. Document the relationship with gnat_save_expr. |
| |
| 2024-05-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: For a |
| packed type implemented specially, temporarily save the XUA type as |
| equivalent to the entity before processing the implementation type. |
| For this implementation type, if its component type is the same as |
| that of the original type, copy the alias set from the latter. |
| <types>: Resort to universal aliasing for all interface types. |
| * gcc-interface/trans.cc (Call_to_gnu): Add GNU_ACTUAL_TYPE local |
| variable and rename existing one to GNU_UNPADDED_ACTUAL_TYPE. |
| If the formal is passed by reference and the actual is a conversion, |
| call aliasable_p to detect aliasing violations, issue a warning upon |
| finding one and create the temporary in the target type. |
| Add an assertion that no such violation has been missed above. |
| (addressable_p): Revert latest changes. |
| (aliasable_p): New predicate. |
| * gcc-interface/utils2.cc (build_binary_op) <ARRAY_RANGE_REF>: When |
| creating a new array type on the fly, preserve the alias set of the |
| operation type. |
| |
| 2024-05-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.cc (gnat_to_gnu) <N_Simple_Return_Statement>: |
| In the return-by-invisible-reference case, remove conversions before |
| looking for a dereference in the return values and building the test |
| protecting against a useless copy operation. |
| |
| 2024-05-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Set |
| TYPE_TYPELESS_STORAGE on the array types if Universal_Aliasing is |
| set on the type or its component type. |
| <E_Array_Subtype>: Likewise. |
| For other aggregate types, set TYPE_TYPELESS_STORAGE in this case. |
| (set_typeless_storage_on_aggregate_type): New function. |
| (set_universal_aliasing_on_type): Likewise. |
| * gcc-interface/trans.cc (Call_to_gnu): Add const to local variable. |
| Adjust comment. Pass GNAT_NAME in the call to addressable_p and add |
| a bypass for atomic types in case it returns false. |
| (addressable_p): Add GNAT_EXPR third parameter with default value |
| and add a default value to the existing second parameter. |
| <VIEW_CONVERT_EXPR:>: Return false if the expression comes from a |
| function call and if the alias sets of source and target types are |
| both distinct from zero and each other. |
| |
| 2024-05-21 Ronan Desplanques <desplanques@adacore.com> |
| |
| * gcc-interface/utils2.cc (build_cond_expr): Also apply an |
| indirection when the result type is variable-sized. |
| |
| 2024-05-21 Marc Poulhiès <poulhies@adacore.com> |
| |
| * gcc-interface/decl.cc: Fix typo in comment. |
| |
| 2024-05-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/utils2.cc (build_call_alloc_dealloc_proc): Add an |
| assertion that this is not a deallocation of the return or secondary |
| stack and remove subsequent unreachable code. |
| |
| 2024-05-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/utils2.cc (build_cond_expr): Use the indirect path |
| for all types containing a placeholder. |
| |
| 2024-05-21 Piotr Trojanek <trojanek@adacore.com> |
| |
| * gcc-interface/Make-lang.in (GNATBIND_OBJS): Remove unused |
| dependencies. |
| |
| 2024-05-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Give a |
| warning for a statically allocated object whose size is constant, |
| valid but too large. |
| (allocatable_size_p): In the static case, return false for a size |
| that is constant, valid but too large. |
| |
| 2024-05-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: For an |
| array allocated with its bounds, make sure to have an array type |
| to build the template. |
| |
| 2024-05-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.cc (access_attribute_p): New predicate. |
| (lvalue_required_for_attribute_p): Return again 1 for Size and add |
| the missing terminating call to gcc_unreachable. |
| (gnat_to_gnu): Return the result unmodified for a reference to an |
| unconstrained array only if it is the prefix of an access attribute. |
| |
| 2024-05-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/utils.cc (relate_alias_sets): Restore previous code |
| when the type uses structural equality. |
| |
| 2024-05-21 Steve Baird <baird@adacore.com> |
| |
| * exp_util.adb (Remove_Side_Effects): Make_Reference assumes that |
| the referenced object satisfies the constraints of the designated |
| subtype of the access type. Ensure that this assumption holds by |
| introducing a qualified expression if needed (and then ensuring |
| that checking associated with evaluation of the qualified |
| expression is not suppressed). |
| |
| 2024-05-21 Piotr Trojanek <trojanek@adacore.com> |
| |
| * aspects.ads (Nonoverridable_Aspect_Id): Fix layout. |
| |
| 2024-05-21 Ronan Desplanques <desplanques@adacore.com> |
| |
| * frontend.adb (Frontend): Remove duplicate statement. |
| |
| 2024-05-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch13.adb (Validate_Unchecked_Conversion): Restrict forcing the |
| Can_Use_Internal_Rep flag to platforms that require unnesting. |
| |
| 2024-05-21 Viljar Indus <indus@adacore.com> |
| |
| * sem_elab.adb: Add missing elaboration insertion |
| characters to info messages. |
| |
| 2024-05-21 Piotr Trojanek <trojanek@adacore.com> |
| |
| * inline.adb (Add_Scope_To_Clean): Use Append_Unique_Elmt. |
| (Analyze_Inlined_Bodies): Refine type of a local counter; |
| remove extra whitespace. |
| |
| 2024-05-21 Ronan Desplanques <desplanques@adacore.com> |
| |
| * libgnarl/s-taenca.adb (Wait_For_Completion): Remove call to |
| Yield. |
| * libgnarl/s-tasren.adb (Timed_Selective_Wait, Wait_For_Call): |
| Remove calls to Yield. |
| |
| 2024-05-21 Piotr Trojanek <trojanek@adacore.com> |
| |
| * doc/gnat_rm/implementation_of_ada_2012_features.rst: |
| Fix formatting. |
| * gnat_rm.texi: Regenerate. |
| |
| 2024-05-21 Piotr Trojanek <trojanek@adacore.com> |
| |
| * doc/gnat_rm/implementation_of_ada_2012_features.rst: |
| Order list by AI number. |
| * gnat_rm.texi: Regenerate. |
| |
| 2024-05-21 Piotr Trojanek <trojanek@adacore.com> |
| |
| * doc/gnat_rm/implementation_of_ada_2012_features.rst |
| (AI-0216): Fix index reference. |
| * gnat_rm.texi: Regenerate. |
| |
| 2024-05-21 Viljar Indus <indus@adacore.com> |
| |
| * doc/gnat_ugn/building_executable_programs_with_gnat.rst: |
| Update the documentation of -gnatw.n and -gnatw.l |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-05-21 Piotr Trojanek <trojanek@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_pragmas.rst |
| (No_Tagged_Streams): Document how to avoid exposing entity names |
| for the entire partition. |
| * exp_disp.adb (Make_DT): Make use of restriction No_Streams. |
| * exp_put_image.adb (Build_Record_Put_Image_Procedure): Respect |
| Discard_Names in the generated Put_Image procedure. |
| * gnat_rm.texi: Regenerate. |
| |
| 2024-05-21 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_put_image.adb (Build_Record_Put_Image_Procedure): Remove |
| useless conversions. |
| |
| 2024-05-21 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_put_image.adb (Build_Record_Put_Image_Procedure): Remove |
| trailing NUL from the fully qualified type name. |
| |
| 2024-05-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * err_vars.ads (Error_Msg_Sloc): Initialize to No_Location. |
| |
| 2024-05-21 Justin Squirek <squirek@adacore.com> |
| |
| * doc/gnat_ugn/platform_specific_information.rst: Add note about |
| different priority level granularities under different policies in |
| Windows and move POSIX related info into new section. |
| * libgnarl/s-taprop.ads: Add note about Task_Dispatching_Policy. |
| * libgnarl/s-taprop__mingw.adb: |
| (Set_Priority): Add use of Non_FIFO_Underlying_Priorities. |
| * libgnat/system-mingw.ads: Add documentation for modifying |
| priority mappings and add alternative mapping |
| Non_FIFO_Underlying_Priorities. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-05-20 Bob Duff <duff@adacore.com> |
| |
| * sem_ch12.adb: Misc cleanups and comment fixes. |
| (Check_Overloaded_Formal_Subprogram): Remove the Others_Choice |
| error message. |
| (Others_Choice): Remove this variable; no longer needed. |
| * types.ads (Text_Ptr): Add a range constraint limiting the |
| subtype to values that are actually used. This has the advantage |
| that when the compiler is compiled with validity checks, |
| uninitialized values of subtypes Text_Ptr and Source_Ptr will be |
| caught. |
| * sinput.ads (Sloc_Adjust): Use the base subtype; this is used as |
| an offset, so we need to allow arbitrary negative values. |
| |
| 2024-05-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch7.ads (Preload_Finalization_Collection): Delete. |
| * exp_ch7.adb (Allows_Finalization_Collection): Revert change. |
| (Preload_Finalization_Collection): Delete. |
| * opt.ads (Interface_Seen): Likewise. |
| * scng.adb (Scan): Revert latest change. |
| * sem_ch10.adb: Remove clause for Exp_Ch7. |
| (Analyze_Compilation_Unit): Revert latest change. |
| * libgnat/i-c.ads: Use a fully qualified name for the standard "+" |
| operator in the preconditons/postconditions of subprograms. |
| |
| 2024-05-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.adb (Expand_Record_Aggregate.Component_OK_For_Backend): |
| Also return False for a delayed conditional expression. |
| |
| 2024-05-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * freeze.ads (Check_Compile_Time_Size): Remove obsolete description |
| of usage for the Size_Known_At_Compile_Time flag. |
| * freeze.adb (Check_Compile_Time_Size.Size_Known): In the case where |
| a variant part is present, do not return False if Esize is known. |
| * sem_util.adb (Needs_Secondary_Stack.Caller_Known_Size_Record): Add |
| missing "Start of processing" comment. Return true if either a size |
| clause or an object size clause has been given for the first subtype |
| of the type. |
| |
| 2024-05-20 Bob Duff <duff@adacore.com> |
| |
| * sinfo.ads: Misc comment corrections and clarifications. |
| The syntax for GENERIC_ASSOCIATION and FORMAL_PACKAGE_ACTUAL_PART |
| was wrong. |
| Emphasize that "others => <>" is not represented as an |
| N_Generic_Association (with or without Box_Present set), |
| and give examples illustrating the various possibilities. |
| |
| 2024-05-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * einfo-utils.ads (Is_Base_Type): Move to Miscellaneous Subprograms |
| section and add description. |
| * fe.h (Is_Base_Type): Declare. |
| |
| 2024-05-20 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_aggr.adb (Resolve_Aggregate): Move condition and call for |
| Resolve_Record_Aggregate in front of code related to calling |
| Resolve_Container_Aggregate (and add test that the aggregate is |
| not homogeneous), and remove special-case testing and call to |
| Resolve_Container_Aggregate for empty aggregates. Also, add error |
| check for an attempt to use "[]" for an aggregate of a record type |
| that does not specify an Aggregate aspect. |
| (Resolve_Record_Aggregate): Remove error check for record |
| aggregates with "[]" (now done by Resolve_Aggregate). |
| |
| 2024-05-20 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_aggr.adb (Resolve_Aggregate): Move condition and call for |
| Resolve_Record_Aggregate in front of code related to calling |
| Resolve_Container_Aggregate (and add test that the aggregate |
| is not homogeneous), and remove special-case testing and call |
| to Resolve_Container_Aggregate for empty aggregates. |
| |
| 2024-05-20 Justin Squirek <squirek@adacore.com> |
| |
| * accessibility.adb (Accessibility_Level): Add cases for 'First |
| and 'Last. |
| |
| 2024-05-20 Justin Squirek <squirek@adacore.com> |
| |
| * sem_attr.adb (Analyze_Attribute): Remove restriction on 'Super |
| for abstract types. |
| |
| 2024-05-20 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_attr.ads (Attribute_Impl_Def): Fix list of |
| implementation-defined attributes. |
| |
| 2024-05-20 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_attr.adb (Attribute_12): Add attributes Old, |
| Overlaps_Storage and Result. |
| |
| 2024-05-20 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_attr.adb (Analyze_Attribute): Move IF statement that |
| checks restriction No_Implementation_Attributes for Ada 2005, |
| 2012 and Ada 2022 attributes inside Comes_From_Source condition |
| that checks the same restriction for Ada 83 attributes. |
| |
| 2024-05-20 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_attr.adb (Analyze_Attribute): Remove condition that is |
| already checked by an enclosing IF statement. |
| |
| 2024-05-20 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_attr.ads (Universal_Type_Attribute): Simplify using |
| array aggregate syntax with discrete choice list. |
| |
| 2024-05-20 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_attr.ads (Attribute_Impl_Def): Fix style in comment. |
| |
| 2024-05-20 Ronan Desplanques <desplanques@adacore.com> |
| |
| * libgnarl/s-taprop__linux.adb (Enter_Task): Move setting |
| of thread ID out of Enter_Task. |
| (Initialize): Set thread ID for the environment task. |
| (Create_Task): Remove now unnecessary Unrestricted_Access |
| attribute and add justification for a memory write. |
| * libgnarl/s-taprop__posix.adb: Likewise. |
| * libgnarl/s-taprop__qnx.adb: Likewise. |
| * libgnarl/s-taprop__rtems.adb: Likewise. |
| * libgnarl/s-taprop__solaris.adb: Likewise. |
| * libgnarl/s-taspri__posix.ads: Remove pragma Atomic for |
| Private_Data.Thread, and update documentation comment. |
| * libgnarl/s-taspri__lynxos.ads: Likewise. |
| * libgnarl/s-taspri__posix-noaltstack.ads: Likewise. |
| * libgnarl/s-taspri__solaris.ads: Likewise. |
| * libgnarl/s-tporft.adb (Register_Foreign_Thread): Adapt to |
| Enter_Task not setting the thread ID anymore. |
| * libgnarl/s-tassta.adb (Task_Wrapper): Update comment. |
| |
| 2024-05-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.ads (Is_Delayed_Conditional_Expression): New predicate. |
| * exp_aggr.adb (Convert_To_Assignments.Known_Size): Likewise. |
| (Convert_To_Assignments): Climb the parent chain, looking through |
| qualified expressions and dependent expressions of conditional |
| expressions, to find out whether the expansion may be delayed. |
| Call Known_Size for this in the case of an object declaration. |
| If so, set Expansion_Delayed on the aggregate as well as all the |
| intermediate conditional expressions. |
| (Initialize_Component): Reset the Analyzed flag on an initialization |
| expression that is a conditional expression whose expansion has been |
| delayed. |
| (Is_Delayed_Conditional_Expression): New predicate. |
| * exp_ch3.adb (Expand_N_Object_Declaration): Handle initialization |
| expressions that are conditional expressions whose expansion has |
| been delayed. |
| * exp_ch4.adb (Build_Explicit_Assignment): New procedure. |
| (Expand_Allocator_Expression): Handle initialization expressions |
| that are conditional expressions whose expansion has been delayed. |
| (Expand_N_Case_Expression): Deal with expressions whose expansion |
| has been delayed by waiting for the rewriting of their parent as |
| an assignment statement and then optimizing the assignment. |
| (Expand_N_If_Expression): Likewise. |
| (Expand_N_Qualified_Expression): Do not apply a predicate check to |
| an operand that is a delayed aggregate or conditional expression. |
| * gen_il-gen-gen_nodes.adb (N_If_Expression): Add Expansion_Delayed |
| semantic flag. |
| (N_Case_Expression): Likewise. |
| * sinfo.ads (Expansion_Delayed): Document extended usage. |
| |
| 2024-05-20 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_aggr.adb (Expand_Container_Aggregate): Add top-level |
| variables Choice_{Lo|Hi} and Int_Choice_{Lo|Hi} used for |
| determining the low and high bounds of component association |
| choices. Replace code for determining whether we have an indexed |
| aggregate with call to new function Sem_Aggr.Is_Indexed_Aggregate. |
| Remove test of whether Empty_Subp is a function, since it must be |
| a function. Move Default and Count_Type to be locals of a new |
| block enclosing the code that creates the object to hold the |
| aggregate length, and set them according to the default and type |
| of the Empty function's parameter when present (and to Empty and |
| Standard_Natural otherwise). Use Siz_Exp for the aggregate length |
| when set, and use Empty's default length when available, and use |
| zero for the length otherwise. In generating the call to the |
| New_Indexed function, use the determined lower and upper bounds if |
| determined earlier by Aggregate_Size, and otherwise compute those |
| from the index type's lower bound and the determined aggregate |
| length. In the case where a call to Empty is generated and the |
| function has a formal parameter, pass the value saved in Siz_Decl |
| (otherwise the parameter list is empty). Remove code specific to |
| making a parameterless call to the Empty function. Extend the code |
| for handling positional container aggregates to account for types |
| that define Assign_Indexed, rather than just Add_Unnamed, and in |
| the case of indexed aggregates, create a temporary object to hold |
| values of the aggregate's key index, and initialize and increment |
| that temporary for each call generated to the Assign_Indexed |
| procedure. For named container aggregates that have key choices |
| given by ranges, call Expand_Range_Component to generate a loop |
| that will call the appropriate insertion procedure for each value |
| of the range. For indexed aggregates with a Component_Associations |
| list, set and use the Assign_Indexed procedure for each component |
| association, whether or not there's an iterator specification. |
| (Add_Range_Size): Add code to determine the low and high bounds of |
| the range and capture those in up-level variables when their value |
| is less than or greater than (respectively) the current minimum |
| and maximum bounds values. |
| (Aggregate_Size): Separately handle the case where a single choice |
| is of a discrete type, and call Add_Range_Size to take its value |
| into consideration for determination of min and max bounds of the |
| aggregate. Add comments in a couple of places. |
| (Build_Siz_Exp): Remove the last sentence and "???" from the |
| comment that talks about accumulating nonstatic sizes, since that |
| sentence seems to be obsolete. Record the low and high bound |
| values in Choice_Lo and Choice_Hi in the case of a nonstatic |
| range. |
| (Expand_Iterated_Component): Set the Defining_Identifier of the |
| iterator specification to the Loop_Id in the |
| N_Iterated_Component_Association case. |
| (Expand_Range_Component): Procedure unnested from the block |
| handling indexed aggregates in Expand_Container_Aggregate, and |
| moved to top level of that procedure so it can also be called for |
| Add_Named cases. A formal parameter Insert_Op is added, and |
| existing calls to this procedure are changed to pass the |
| appropriate insertion procedure's Entity. |
| * sem_aggr.ads: Add with_clause for Sinfo.Nodes. |
| (Is_Indexed_Aggregate): New function for use by |
| Resolve_Container_Aggregate and Expand_Container_Aggregate. |
| * sem_aggr.adb: Add with_clause for Sem_Ch5. Move with_clause for |
| Sinfo.Nodes to sem_aggr.ads. |
| (Is_Indexed_Aggregate): New function to determine whether a |
| container aggregate is a container aggregate (replacing local |
| variable of the same name in Resolve_Container_Aggregate). |
| (Resolve_Iterated_Association): Remove part of comment saying that |
| a Key_Expression is always present. Set Parent field of the copy |
| of a component association with a loop parameter specification. On |
| the setting of Loop_Param_Id, account for a |
| Loop_Parameter_Specification being changed into an |
| Iterator_Specification as a result of being analyzed. Only call |
| Preanalyze_And_Resolve on Key_Expr when a key expression is |
| actually present. Remove loop for handling choices for the case of |
| an N_Component_Association with a Defining_Identifier (there |
| shouldn't be more than one choice in this case, and add an |
| assertion to ensure that). Also add code here to handle the case |
| where the choice is a function call, creating an |
| iterator_specification analyzing it, and call |
| Resolve_Iterated_Association recursively to process it. Add error |
| check to enforce RM22 4.3.5(27), which requires that the type of |
| the loop parameter must be the same as the key type when there is |
| no key expression and the aggregate is an indexed aggregate or has |
| an Add_Named op. |
| (Resolve_Container_Aggregate): In the Add_Unnamed case, call |
| Resolve_Iterated_Association for both |
| N_Iterated_Element_Association and N_Component_Association (rather |
| than just the latter). Remove error check for nonstatic choices in |
| component associations in Add_Named cases (multiple named |
| nonstatic associations are fine except in indexed aggregates). |
| Remove local variable Is_Indexed_Aggregate, replaced with new |
| library-level function of the same name, and add test of |
| Is_Indexed_Aggregate in the case where the aggregate type has an |
| Assign_Indexed operation, as a guard for doing error checks for |
| indexed aggregates. For indexed aggregate resolution, do not call |
| Analyze_And_Resolve on the expression of an |
| N_Component_Association in the "box association" case. Move error |
| checks for indexed aggregates with iterated associations that flag |
| cases where an association is a loop_parameter_specification with |
| an iterator filter or a key expression (violation of RM22 |
| 4.3.5(28/5)), from the loop that checks for contiguous and |
| nonoverlapping choices and into the preceding association loop |
| after the call to Resolve_Iterated_Association. The RM reference |
| is added to the error-message strings. |
| |
| 2024-05-20 Ronan Desplanques <desplanques@adacore.com> |
| |
| * libgnarl/s-taprop__linux.adb (Set_Task_Affinity): Fix |
| decision about whether to call CPU_FREE. |
| |
| 2024-05-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.ads (Convert_Aggr_In_Allocator): Remove Aggr parameter |
| and adjust description. |
| (Convert_Aggr_In_Object_Decl): Adjust description. |
| * exp_aggr.adb (Convert_Aggr_In_Allocator): Remove Aggr parameter |
| and add local variable of the same name instead. Adjust call to |
| Convert_Array_Aggr_In_Allocator. |
| (Convert_Aggr_In_Object_Decl): Add comment for early return and |
| remove useless inner block statement. |
| (Convert_Array_Aggr_In_Allocator): Remove Aggr parameter and add |
| local variable of the same name instead. |
| (In_Place_Assign_OK): Move down declarations of local variables. |
| (Convert_To_Assignments): Put all declarations of local variables |
| in the same place. Fix typo in comment. Replace T with Full_Typ. |
| * exp_ch4.adb (Expand_Allocator_Expression): Call Unqualify instead |
| of Expression on the qualified expression of the allocator for the |
| sake of consistency. Adjust call to Convert_Aggr_In_Allocator. |
| |
| 2024-05-20 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_attr.adb (Eval_Attribute): Handle enumeration type with |
| Discard_Names. |
| |
| 2024-05-20 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_imgv.adb (Expand_Width_Attribute): Fix for 'Width that |
| is computed at run time. |
| * sem_attr.adb (Eval_Attribute): Fix for 'Width that is computed |
| at compilation time. |
| |
| 2024-05-20 Sebastian Poeplau <poeplau@adacore.com> |
| |
| * libgnat/s-pooglo.adb (Allocate): Use arithmetic on |
| System.Address to compute the aligned address. |
| |
| 2024-05-20 Steve Baird <baird@adacore.com> |
| |
| * freeze.adb (Adjust_Esize_For_Alignment): Assert that a valid |
| Alignment specification cannot result in adjusting the given |
| type's Esize to be larger than System_Max_Integer_Size. |
| * sem_ch13.adb (Analyze_Attribute_Definition_Clause): In analyzing |
| an Alignment specification, enforce the rule that a specified |
| Alignment value for a discrete or fixed-point type shall not be |
| larger than System_Max_Integer_Size / 8 . |
| |
| 2024-05-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnat/g-sothco.ads (In_Addr): Add aspect Universal_Aliasing. |
| |
| 2024-05-20 Jose Ruiz <ruiz@adacore.com> |
| |
| * sem_prag.adb (Analyze_Pragma): Exclude detection of duplicates |
| because they are detected elsewhere. |
| |
| 2024-05-20 Jose Ruiz <ruiz@adacore.com> |
| |
| * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Clarify |
| comments. |
| * sem_prag.adb (Analyze_Pragma): Check for duplicates |
| Max_Entry_Queue_Length, Max_Entry_Queue_Depth and Max_Queue_Length |
| for the same protected entry. |
| * sem_util.adb (Get_Max_Queue_Length): Take into account all three |
| representation aspects that can be used to set this restriction. |
| (Has_Max_Queue_Length): Likewise. |
| * doc/gnat_rm/implementation_defined_pragmas.rst: |
| (pragma Max_Queue_Length): Fix pragma in example. |
| * gnat_rm.texi: Regenerate. |
| |
| 2024-05-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnat/s-finpri.ads (Collection_Node): Move to private part. |
| (Collection_Node_Ptr): Likewise. |
| (Header_Alignment): Change to declaration and move completion to |
| private part. |
| (Header_Size): Likewise. |
| (Lock_Type): Delete. |
| (Finalization_Collection): Move Lock component and remove default |
| value for Finalization_Started component. |
| * libgnat/s-finpri.adb (Initialize): Reorder statements. |
| |
| 2024-05-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_pragmas.rst |
| (Universal_Aliasing): Remove reference to No_Strict_Aliasing. |
| * doc/gnat_ugn/gnat_and_program_execution.rst |
| (Optimization and Strict Aliasinng): Simplify first example and |
| make it more consistent with the second. Add description of the |
| effects of pragma Universal_Aliasing and document new warning |
| issued for unchecked conversions. Remove obsolete stuff. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-05-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/115133 |
| * libgnarl/s-osinte__solaris.ads (mutex_t): Fix typo. |
| * libgnarl/s-taprop__solaris.adb (Record_Lock): Add conversion. |
| (Check_Sleep): Likewise. |
| (Record_Wakeup): Likewise. |
| (Check_Unlock): Likewise. |
| * libgnarl/s-tasini.adb (Initialize_RTS_Lock): Add pragma Import |
| on the overlaid variable. |
| (Finalize_RTS_Lock): Likewise. |
| (Acquire_RTS_Lock): Likewise. |
| (Release_RTS_Lock): Likewise. |
| * libgnarl/s-taspri__solaris.ads (To_RTS_Lock_Ptr): New instance |
| of Ada.Unchecked_Conversion. |
| * libgnat/s-oslock__solaris.ads: Add with clause for |
| Ada.Unchecked_Conversion. |
| (array_type_9): Add missing name qualification. |
| (record_type_3): Likewise. |
| (mutex_t): Fix formatting. |
| |
| 2024-05-17 Viljar Indus <indus@adacore.com> |
| |
| * exp_aggr.adb (Expand_Container_Aggregate): |
| Derive the size for iterable aggregates in the case of |
| one-dimensional array objects. |
| |
| 2024-05-17 Ronan Desplanques <desplanques@adacore.com> |
| |
| * exp_aggr.adb (Aggr_Size_OK): Remove workaround and extend |
| comment. |
| |
| 2024-05-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * bindgen.adb (Gen_Adainit): Generate declaration and call to the |
| imported procedure __gnat_tasking_runtime_initialize if need be. |
| * libgnat/s-soflin.ads (Locking Soft-Links): Add commentary. |
| * libgnarl/s-tasini.adb (Tasking_Runtime_Initialize): New procedure |
| exported as __gnat_tasking_runtime_initialize. Initialize RTS_Lock |
| manipulation routines here instead of... |
| (Init_RTS): ...here. |
| |
| 2024-05-17 Steve Baird <baird@adacore.com> |
| |
| * scng.adb (scan): When checking for an unprocessed preprocessor |
| directive, take into account the preprocessor's rules about case |
| insensitivity and about white space between the '#' and the |
| keyword. |
| |
| 2024-05-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnarl/s-taspri__mingw.ads: Add clause for System.OS_Interface. |
| (Private_Data): Change type of Thread component. |
| |
| 2024-05-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnat/g-alvevi.ads: Add pragma Universal_Aliasing for all the |
| view types. |
| * libgnat/s-stratt.ads: Likewise for Fat_Pointer type. |
| |
| 2024-05-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-oslock$(objext). |
| (LIBGNAT_TARGET_PAIRS): Use s-oslock__dummy.ads by default. |
| Set specific s-oslock.ads source file for all the platforms. |
| * exp_ch7.ads (Preload_Finalization_Collection): New procedure. |
| * exp_ch7.adb (Allows_Finalization_Collection): Return False if |
| System.Finalization_Primitives has not been preloaded. |
| (Preload_Finalization_Collection): New procedure. |
| * opt.ads (Interface_Seen): New boolean variable. |
| * s-oscons-tmplt.c: Use "N" string for pragma Style_Checks. |
| * scng.adb (Scan): Set Interface_Seen upon seeing "interface". |
| * sem_ch10.adb: Add clause for Exp_Ch7. |
| (Analyze_Compilation_Unit): Call Preload_Finalization_Collection |
| after the context of the unit is analyzed. |
| * libgnarl/a-rttiev.adb: Add with clause for System.OS_Locks and |
| alphabetize others. |
| (Event_Queue_Lock): Adjust qualified name of subtype. |
| * libgnarl/s-osinte__aix.ads: Add with clause for System.OS_Locks |
| and change pthread_mutex_t into a local subtype. |
| * libgnarl/s-osinte__android.ads: Likewise. |
| * libgnarl/s-osinte__darwin.ads: Likewise. |
| * libgnarl/s-osinte__dragonfly.ads: Likewise. |
| * libgnarl/s-osinte__freebsd.ads: Likewise. |
| * libgnarl/s-osinte__gnu.ads: Likewise. |
| * libgnarl/s-osinte__hpux-dce.ads: Likewise. |
| * libgnarl/s-osinte__hpux.ads: Add Likewise. |
| * libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise. |
| * libgnarl/s-osinte__linux.ads: Likewise. |
| * libgnarl/s-osinte__lynxos178e.ads: Likewise. |
| * libgnarl/s-osinte__qnx.ads: Likewise. |
| * libgnarl/s-osinte__rtems.ads: Likewise. |
| * libgnarl/s-osinte__mingw.ads: Add with clause for System.OS_Locks |
| and change CRITICAL_SECTION into a local subtype. Add declarations |
| for imported procedures dealing with CRITICAL_SECTION. |
| * libgnarl/s-osinte__solaris.ads: Add with clause for System.OS_Locks |
| and change mutex_t into a local subtype. |
| * libgnarl/s-osinte__vxworks.ads: Add missing blank line. |
| * libgnarl/s-taprop.ads: Alphabetize clauses and package renamings. |
| Use qualified name for RTS_Lock throughout. |
| * libgnarl/s-taprop__dummy.adb: Add use clause for System.OS_Locks |
| and alphabetize others. |
| * libgnarl/s-taprop__hpux-dce.adb: Likewise. |
| * libgnarl/s-taprop__linux.adb: Likewise. |
| * libgnarl/s-taprop__posix.adb: Likewise. |
| * libgnarl/s-taprop__qnx.adb: Likewise. |
| * libgnarl/s-taprop__rtems.adb: Likewise. |
| * libgnarl/s-taprop__solaris.adb: Likewise. |
| * libgnarl/s-taprop__vxworks.adb: Likewise. |
| * libgnarl/s-taprop__mingw.adb: Likewise. Remove declarations for |
| imported procedures dealing with CRITICAL_SECTION. |
| * libgnarl/s-tarest.adb: Add with clause for System.OS_Locks and |
| alphabetize others. |
| (Global_Task_Lock): Adjust qualified name of subtype. |
| * libgnarl/s-tasini.adb: Add clause for System.OS_Locks. |
| (Initialize_RTS_Lock): New procedure. |
| (Finalize_RTS_Lock): Likewise. |
| (Acquire_RTS_Lock): Likewise. |
| (Release_RTS_Lock): Likewise. |
| (Init_RTS): Add compile-time assertions for RTS_Lock types. |
| Set the soft links for the RTS lock manipulation routines. |
| * libgnarl/s-taspri__dummy.ads: Add with clause for System.OS_Locks. |
| (RTS_Lock): Delete and adjust throughout accordingly. |
| * libgnarl/s-taspri__hpux-dce.ads: Likewise. |
| * libgnarl/s-taspri__lynxos.ads: Likewise. |
| * libgnarl/s-taspri__mingw.ads: Likewise. |
| * libgnarl/s-taspri__posix-noaltstack.ads: Likewise. |
| * libgnarl/s-taspri__posix.ads: Likewise. |
| * libgnarl/s-taspri__solaris.ads: Likewise. |
| * libgnarl/s-taspri__vxworks.ads: Likewise. |
| * libgnat/s-finpri.ads: Add clause for System.OS_Locks. |
| (Finalization_Collection): Change type of Lock. |
| * libgnat/s-finpri.adb (Initialize): Call Initialize_RTS_Lock. |
| (Lock_Collection): Call Acquire_RTS_Lock. |
| (Unlock_Collection): Call Release_RTS_Lock. |
| * libgnat/s-oslock__dummy.ads: New file. |
| * libgnat/s-oslock__hpux-dce.ads: Likewise. |
| * libgnat/s-oslock__mingw.ads: Likewise. |
| * libgnat/s-oslock__posix.ads: Likewise. |
| * libgnat/s-oslock__solaris.ads: Likewise. |
| * libgnat/s-oslock__vxworks.ads: Likewise. |
| * libgnat/s-soflin.ads (Null_Set_Address): New null procedure. |
| (Initialize_RTS_Lock): New soft link. |
| (Finalize_RTS_Lock): Likewise. |
| (Acquire_RTS_Lock): Likewise. |
| (Release_RTS_Lock): Likewise. |
| * exp_ch4.adb (Expand_N_Allocator): In the subtype indication case, |
| call Apply_Predicate_Check on the resulting access value if need be. |
| |
| 2024-05-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * einfo.ads (Materialize_Entity): Document secondary usage. |
| |
| 2024-05-17 Steve Baird <baird@adacore.com> |
| |
| * local_restrict.adb (Active_Restriction): When traversing scopes, |
| do not skip over a subprogram body. |
| |
| 2024-05-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnarl/s-taprop__dummy.adb (Initialize_Lock): Fix formatting. |
| * libgnarl/s-taprop__linux.adb (RTS_Lock_Ptr): Delete. |
| (Init_Mutex): Rename into... |
| (Initialize_Lock): ...this. |
| (Initialize_Lock [Lock]): Call above procedure. |
| (Initialize_Lock [RTS_Lock]): Likewise. |
| (Initialize_TCB): Likewise. |
| * libgnarl/s-taprop__posix.adb (Initialize_Lock): New procedure |
| factored out from the other two homonyms. |
| (Initialize_Lock [Lock]): Call above procedure. |
| (Initialize_Lock [RTS_Lock]): Likewise. |
| * libgnarl/s-taprop__qnx.adb (RTS_Lock_Ptr): Delete. |
| (Init_Mutex): Rename into... |
| (Initialize_Lock): ...this. |
| (Initialize_Lock [Lock]): Call above procedure. |
| (Initialize_Lock [RTS_Lock]): Likewise. |
| (Initialize_TCB): Likewise. |
| * libgnarl/s-taprop__rtems.adb (Initialize_Lock): New procedure |
| factored out from the other two homonyms. |
| (Initialize_Lock [Lock]): Call above procedure. |
| (Initialize_Lock [RTS_Lock]): Likewise. |
| |
| 2024-05-17 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_util.adb (Is_Known_On_Entry): Handle constants introduced |
| by validity checks. |
| |
| 2024-05-17 Steve Baird <baird@adacore.com> |
| |
| * libgnat/a-direct.adb (Start_Search_Internal): Do not call |
| Modification_Time for a special file; declare a Calendar.Time |
| constant No_Time and use that instead. |
| |
| 2024-05-17 Steve Baird <baird@adacore.com> |
| |
| * exp_ch3.adb (Build_Equivalent_Record_Aggregate): Add |
| Has_Predicates test for a scalar component to match what is |
| already done for other kinds of components. |
| |
| 2024-05-17 Ronan Desplanques <desplanques@adacore.com> |
| |
| * sem_aggr.adb (Resolve_Array_Aggregate): Improve comments |
| and condition. |
| |
| 2024-05-17 Ronan Desplanques <desplanques@adacore.com> |
| |
| * sem_aggr.adb (Resolve_Array_Aggregate): Fix location of error |
| message. |
| |
| 2024-05-17 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Move to |
| Sem_Util, so it can be used from GNATprove. |
| * sem_util.ads (Is_Unconstrained_Or_Tagged_Item): Move from |
| Sem_Prag; spec. |
| * sem_util.adb (Is_Unconstrained_Or_Tagged_Item): Move from |
| Sem_Prag; body. |
| |
| 2024-05-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_pakd.adb (Create_Packed_Array_Impl_Type): For non-bit-packed |
| array types, propagate the aliased property of the component. |
| (Install_PAT): Set fields on the implicit base type of an array. |
| * libgnat/a-stream.ads (private part): Add pragma Universal_Aliasing |
| for Stream_Element. |
| * libgnat/g-alleve.ads: Add pragma Universal_Aliasing for all the |
| vector types. |
| * libgnat/g-alleve__hard.ads: Likewise. |
| |
| 2024-05-17 Bob Duff <duff@adacore.com> |
| |
| * bcheck.adb (Check_Consistency_Of_Sdep): Split out new procedure. |
| Add check for special case of subprogram spec that no longer |
| exists. |
| (Check_Consistency): Call Check_Consistency_Of_Sdep, except when |
| Reified_Child_Spec is True. No need for "goto Continue" or "exit |
| Sdep_Loop". |
| * ali.ads (Subunit_Name, Unit_Name): Change the type to |
| Unit_Name_Type. Add a comment pointing to the ALI file |
| documentation, because it's in a somewhat-surprising place. |
| * ali.adb (Scan_ALI): Subunit_Name and Unit_Name are now |
| Unit_Name_Type. Remove comment explaining why Name_Find is used; |
| Name_Find is the usual case. Do not remove the "%s" or "%b" from |
| the Unit_Name. We need to be able to distinguish specs and bodies. |
| This is also necessary to obey the invariant of Unit_Name_Type. |
| * binde.adb (Write_Closure): Subunit_Name is now Unit_Name_Type. |
| * clean.adb (Clean_Executables): Likewise. |
| |
| 2024-05-17 Ronan Desplanques <desplanques@adacore.com> |
| |
| * sem_aggr.adb (Resolve_Null_Array_Aggregate): Update |
| documentation comments. |
| |
| 2024-05-17 Steve Baird <baird@adacore.com> |
| |
| * sem_util.adb (Has_Some_Controlled_Component): Fix a bug which |
| causes (in some cases involving a Disable_Controlled aspect |
| specification) Needs_Finalization to return different answers for |
| one type depending on whether the function is called before or |
| after the type is frozen. |
| * libgnat/a-coorse.ads: Type Control_Reference_Type gets an Adjust |
| procedure. |
| * libgnat/a-cborse.ads: Likewise. |
| * libgnat/a-ciorse.ads: Likewise |
| * libgnat/a-coorse.adb: |
| (Finalize): Reclaim allocated Key_Type object. |
| (Adjust): New procedure; prevent sharing of non-null Key_Access |
| values by allocating a copy. |
| * libgnat/a-cborse.adb: Likewise. |
| * libgnat/a-ciorse.adb: Likewise. |
| |
| 2024-05-17 Bob Duff <duff@adacore.com> |
| |
| * uname.adb (Get_Unit_Name_String): Move Asserts after |
| Buf is initialized. |
| |
| 2024-05-17 Bob Duff <duff@adacore.com> |
| |
| * ali-util.adb (Read_Withed_ALIs): Minor reformatting. |
| * bindo-units.adb (Corresponding_Body): Add assert. |
| (Corresponding_Spec): Likewise. |
| * uname.adb: Clean up assertions, use available functions. |
| Get_Spec_Name/Get_Body_Name can assert that N obeys the |
| conventions for Unit_Name_Type (end in "%s" or "%b"). |
| |
| 2024-05-17 Sebastian Poeplau <poeplau@adacore.com> |
| |
| * raise-gcc.c: Work around __builtin_code_address_from_pointer |
| if it is unavailable. |
| |
| 2024-05-17 Marc Poulhiès <poulhies@adacore.com> |
| |
| * exp_aggr.adb (Build_Array_Aggr_Code) <Gen_Loop>: Copy the |
| initialization expression when unrolling the loop. |
| |
| 2024-05-17 Bob Duff <duff@adacore.com> |
| |
| * sem_disp.adb (Check_Dispatching_Operation): Call |
| Create_Extra_Formals, so that the caller will have an extra |
| "constrained" parameter, which will be checked on assignment in |
| the callee, and will be passed in by the caller. |
| |
| 2024-05-17 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Remove call |
| to Has_Discriminants; combine ELSIF branches. |
| |
| 2024-05-17 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_ch7.adb (New_Private_Type): Simplify setting of |
| Is_Constrained flag. |
| * sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Simplify |
| detection of private types with no discriminant. |
| |
| 2024-05-17 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Allow objects |
| of private types with unknown discriminants. |
| |
| 2024-05-17 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Tune repeated |
| testing of type kinds. |
| |
| 2024-05-17 Marc Poulhiès <poulhies@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_attributes.rst: Fix |
| copy/paste. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-05-17 Viljar Indus <indus@adacore.com> |
| |
| * sem_ch3.adb (Analyze_Component_Declaration): |
| Apply range checks only for Scalar_Types to |
| ensure that they have the Scalar_Range attribute. |
| |
| 2024-05-17 Viljar Indus <indus@adacore.com> |
| |
| * sem_ch3.adb (Analyze_Component_Declaration): |
| Add Range_Checks for Subtype_Indications |
| |
| 2024-05-17 Ronan Desplanques <desplanques@adacore.com> |
| |
| * exp_ch4.adb (Expand_N_Case_Expression): Remove call to |
| Relocate_Node. |
| * sem_attr.adb (Analyze_Attribute): Likewise. |
| |
| 2024-05-17 Ronan Desplanques <desplanques@adacore.com> |
| |
| * exp_aggr.adb (Flatten): Small cleanup. |
| |
| 2024-05-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_attr.adb (Analyze_Attribute) <Attribute_Size>: Remove special |
| processing for pragma Compile_Time_{Warning,Error}. |
| (Eval_Attribute.Compile_Time_Known_Attribute): Set Is_Static on the |
| resulting value if In_Compile_Time_Warning_Or_Error is set. |
| (Eval_Attribute.Full_Type): New helper function. |
| (Eval_Attribute): Call Full_Type for type attributes. Add handling |
| of Object_Size and adjust that of Max_Size_In_Storage_Elements in |
| the non-static case. |
| |
| 2024-05-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch7.adb (Attach_Object_To_Master_Node): Remove reference to a |
| transient object in comment. |
| |
| 2024-05-16 Marc Poulhiès <poulhies@adacore.com> |
| |
| * exp_ch7.adb (Reset_Scopes_To_Block_Elab_Proc): also reset scope |
| for object declarations. |
| |
| 2024-05-16 Steve Baird <baird@adacore.com> |
| |
| * checks.adb (Expr_Known_Valid): Return True for a static expression. |
| * exp_util.adb (Adjust_Condition): No validity check needed for a |
| condition if it is an expression for which a validity check has |
| already been generated. |
| |
| 2024-05-16 Gary Dismukes <dismukes@adacore.com> |
| |
| * libgnat/a-coinve.ads (type Vector): In the Aggregate aspect for |
| this type, the Empty operation is changed to denote the Empty |
| function, rather than the Empty_Vector constant. |
| * exp_aggr.adb (Expand_Container_Aggregate): Remove code for |
| handling the case where the Empty_Subp denotes a constant object, |
| which should never happen (and add an assertion that Empty_Subp |
| must denote a function). |
| * sem_ch13.adb (Valid_Empty): No longer allow the entity to be an |
| E_Constant, and require the (optional) parameter of an Empty |
| function to be of a signed integer type (rather than any integer |
| type). |
| |
| 2024-05-16 Justin Squirek <squirek@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_attributes.rst: Add entry for |
| Super attribute. |
| * accessibility.adb (Accessibility_Level): Add handling for Super. |
| * exp_attr.adb (Expand_N_Attribute_Reference): Add entry for |
| Super. |
| * sem_attr.adb (Analyze_Attribute): Create a case to handle the |
| semantic checking and expansion for Super. |
| (Eval_Attribute): Add entry for Super. |
| * sem_attr.ads: Add entry for Super. |
| * sem_util.adb (Is_Aliased_View, Is_Variable): Add case to handle |
| references to 'Super. |
| * snames.ads-tmpl: Register Name_Super and Attribute_Super. |
| * gnat_rm.texi: Regenerate. |
| |
| 2024-05-16 Ronan Desplanques <desplanques@adacore.com> |
| |
| * sem_util.ads (Check_Function_Writable_Actuals): Fix comment. |
| |
| 2024-05-16 Ronan Desplanques <desplanques@adacore.com> |
| |
| * sem_res.adb (Resolve_Case_Expression): Add length check |
| insertion. |
| * exp_ch4.adb (Expand_N_Case_Expression): Add handling of nodes |
| known to raise Constraint_Error. |
| |
| 2024-05-16 Sebastian Poeplau <poeplau@adacore.com> |
| |
| * adaint.c: New defines for STANDALONE mode. |
| |
| 2024-05-16 Viljar Indus <indus@adacore.com> |
| |
| * sem_ch6.adb (Analyze_Subprogram_Body_Helper): |
| If the spec is not present for a subprogram body then |
| check if the body definiton was created for a protected |
| procedure. |
| |
| 2024-05-16 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_cg.adb (Generate_CG_Output): Remove code for ignored ghost |
| entities that applied to subprogram calls. |
| (Register_CG_Node): Skip ignored ghost entities, both calls |
| and tagged types, when they are registered. |
| |
| 2024-05-16 Ronan Desplanques <desplanques@adacore.com> |
| |
| * checks.adb (Apply_Selected_Length_Checks): Fix reason code. |
| |
| 2024-05-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnat/s-finpri.adb (Raise_From_Controlled_Operation): New |
| declaration of imported procedure moved from... |
| (Finalize_Master): ...there. |
| (Finalize): Call Raise_From_Controlled_Operation instead of |
| Reraise_Occurrence to propagate the exception, if any. |
| |
| 2024-05-16 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_ch4.adb (Analyze_If_Expression): Add guard for |
| if_expression without an ELSE part. |
| |
| 2024-05-16 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_ch13.adb (Expand_N_Free_Statement): After analysis, the |
| new temporary has the type of its Object_Definition and the new |
| occurrence of this temporary has this type as well; simplify. |
| * sem_util.adb |
| (Indirect_Temp_Value): Remove redundant call to Set_Etype; |
| simplify. |
| (Is_Access_Type_For_Indirect_Temp): Add missing body header. |
| |
| 2024-05-16 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_util.adb (Is_Known_On_Entry): Check whether condition and |
| dependent expressions of an if_expression are known on entry. |
| |
| 2024-05-16 Ronan Desplanques <desplanques@adacore.com> |
| |
| * checks.ads: Fix comments. |
| * checks.adb: Likewise. |
| |
| 2024-05-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnat/s-finpri.ads: Add use type clause for Storage_Offset. |
| (Header_Alignment): Turn into an expression function. |
| (Header_Size): Likewise. |
| * libgnat/s-finpri.adb: Remove use type clause for Storage_Offset. |
| (Header_Alignment): Delete. |
| (Header_Size): Likewise. |
| |
| 2024-05-16 Marc Poulhiès <poulhies@adacore.com> |
| |
| * exp_ch7.adb (Unnest_Loop::Fixup_Inner_Scopes): detect a new |
| problematic pattern and fixup the scope accordingly. |
| |
| 2024-05-16 Piotr Trojanek <trojanek@adacore.com> |
| |
| * gnat_cuda.adb (Remove_CUDA_Device_Entities): Fix typo. |
| |
| 2024-05-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnat/s-finpri.ads (Header_Alignment): New function. |
| (Header_Size): Adjust description. |
| (Master_Node): Put Finalize_Address as first component. |
| (Collection_Node): Likewise. |
| * libgnat/s-finpri.adb (Header_Alignment): New function. |
| (Header_Size): Return the object size in storage units. |
| * libgnat/s-stposu.ads (Adjust_Controlled_Dereference): Replace |
| collection node with header in description. |
| * libgnat/s-stposu.adb (Adjust_Controlled_Dereference): Likewise. |
| (Allocate_Any_Controlled): Likewise. Pass the maximum of the |
| specified alignment and that of the header to the allocator. |
| (Deallocate_Any_Controlled): Likewise to the deallocator. |
| |
| 2024-05-16 Viljar Indus <indus@adacore.com> |
| |
| * exp_aggr.adb (Two_Pass_Aggregate_Expansion): |
| Explicitly create new Defining_Iterators for both |
| of the loops. |
| |
| 2024-05-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch6.adb (Check_Private_Overriding): Implement the second part |
| of RM 3.9.3(10) consistently in both cases. |
| |
| 2024-05-16 Piotr Trojanek <trojanek@adacore.com> |
| |
| * erroutc.adb (Set_Msg_Insertion_Reserved_Word): Fix casing for |
| CUDA appearing in error message strings. |
| (Set_Msg_Str): Likewise for CUDA being a part of a Name_Id. |
| |
| 2024-05-16 Ronan Desplanques <desplanques@adacore.com> |
| |
| * exp_ch4.adb (Expand_Composite_Equality): Call Error_Msg_N |
| instead of Error_Msg. |
| |
| 2024-05-16 Steve Baird <baird@adacore.com> |
| |
| * exp_attr.adb (Build_And_Insert_Type_Attr_Subp): Further tweaking |
| of the point where a compiler-generated Put_Image or streaming |
| subprogram is to be inserted in the tree. If one such subprogram |
| calls another (as is often the case with, for example, Put_Image |
| procedures for composite type and for a component type thereof), |
| then we want to avoid use-before-definition problems that can |
| result from inserting the caller ahead of the callee. |
| |
| 2024-05-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnat/s-finpri.ads (Lock_Type): New modular type. |
| (Collection_Node): Add Enclosing_Collection component. |
| (Finalization_Collection): Add Lock component. |
| * libgnat/s-finpri.adb: Add clauses for System.Atomic_Primitives. |
| (Attach_Object_To_Collection): Lock and unlock the collection. |
| Save a pointer to the enclosing collection in the node. |
| (Detach_Object_From_Collection): Lock and unlock the collection. |
| (Finalize): Likewise. |
| (Initialize): Initialize the lock. |
| (Lock_Collection): New procedure. |
| (Unlock_Collection): Likewise. |
| |
| 2024-05-16 Steve Baird <baird@adacore.com> |
| |
| * sem_attr.adb (Eval_Attribute): Expand existing checks for |
| generic formal types for which Is_Generic_Type returns False. In |
| that case, mark the attribute reference as nonstatic. |
| |
| 2024-05-16 Steve Baird <baird@adacore.com> |
| |
| * sem_util.adb (Copy_Node_With_Replacement): Add call to |
| Copy_Dimensions so that any dimension information associated with |
| the copied node is also associated with the resulting copy. |
| |
| 2024-05-16 Piotr Trojanek <trojanek@adacore.com> |
| |
| * gen_il-gen-gen_nodes.adb (N_Procedure_Specification): Remove |
| Aspect_Specifications field. |
| |
| 2024-05-16 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_ch13.adb (Analyze_Aspect_Specification): Consistently |
| reuse existing constant where possible. |
| |
| 2024-05-16 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_ch13.adb (Analyze_Aspect_Specification): Consistently |
| reuse existing constant where possible. |
| |
| 2024-05-16 Piotr Trojanek <trojanek@adacore.com> |
| |
| * aspects.ads (Aspect_Id): Fix ordering. |
| |
| 2024-05-16 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_prag.adb (Analyze_Pragma): Move case alternative to match |
| to alphabetic order. |
| |
| 2024-05-16 Piotr Trojanek <trojanek@adacore.com> |
| |
| * gnat_cuda.adb (Remove_CUDA_Device_Entities): Fix casing |
| (this primarily fixes a style, because the capitalization will |
| not be preserved by the error-reporting machinery anyway). |
| * sem_ch13.adb (Analyze_User_Aspect_Aspect_Specification): Fix |
| casing in error message. |
| |
| 2024-05-16 Piotr Trojanek <trojanek@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_pragmas.rst: Fix |
| documentation. |
| * sem_prag.adb: Fix comments. |
| * gnat_rm.texi: Regenerate. |
| |
| 2024-05-14 Piotr Trojanek <trojanek@adacore.com> |
| |
| * aspects.ads (Aspect_Id, Boolean_Aspect): Change categorization |
| of Boolean-valued SPARK aspects. |
| * sem_ch13.adb (Analyze_Aspect_Specification): Adapt CASE |
| statements to new classification of Boolean-valued SPARK |
| aspects. |
| |
| 2024-05-14 Ronan Desplanques <desplanques@adacore.com> |
| |
| * sem_ch13.adb (Validate_Unchecked_Conversions): Add node |
| parameters to Error_Msg calls. |
| |
| 2024-05-14 Marc Poulhiès <poulhies@adacore.com> |
| |
| * sem_util.adb: Typo fix in comment. |
| * exp_aggr.adb: Likewise. |
| |
| 2024-05-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch7.adb (Finalization Management): Add a short description of |
| the implementation of finalization chains. |
| |
| 2024-05-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch4.adb (Expand_Allocator_Expression): Move the first call to |
| Build_Allocate_Deallocate_Proc up to before the accessibility check. |
| |
| 2024-05-14 Ronan Desplanques <desplanques@adacore.com> |
| |
| * errout.adb (Validate_Specific_Warnings): Adapt to record |
| definition change. |
| * erroutc.adb (Set_Specific_Warning_On, Set_Specific_Warning_Off, |
| Warning_Specifically_Suppressed): Likewise. |
| * erroutc.ads: Change record definition. |
| |
| 2024-05-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch3.adb (Build_Default_Initialization): Do not generate the |
| protection for finalization collections. |
| (Build_Heap_Or_Pool_Allocator): Set the No_Initialization flag on |
| the declaration of the temporary. |
| * exp_ch4.adb (Build_Aggregate_In_Place): Do not build an allocation |
| procedure here. |
| (Expand_Allocator_Expression): Build an allocation procedure, if it |
| is required, only just before rewriting the allocator. |
| (Expand_N_Allocator): Do not build an allocation procedure if the |
| No_Initialization flag is set on the allocator, except for those |
| generated for special return objects. In other cases, build an |
| allocation procedure, if it is required, only before rewriting |
| the allocator. |
| * exp_ch7.ads (Make_Address_For_Finalize): New function declaration. |
| * exp_ch7.adb (Finalization Management): Update description for |
| dynamically allocated objects. |
| (Make_Address_For_Finalize): Remove declaration. |
| (Find_Last_Init): Change to function and move to... |
| (Process_Object_Declaration): Adjust to above change. |
| * exp_util.ads (Build_Allocate_Deallocate_Proc): Add Mark parameter |
| with Empty default and document it. |
| (Find_Last_Init): New function declaration. |
| * exp_util.adb (Build_Allocate_Deallocate_Proc): Add Mark parameter |
| with Empty default and pass it in recursive call. Deal with type |
| conversions created for interface types. Adjust call sequence to |
| Allocate_Any_Controlled by changing Collection to In/Out parameter |
| and removing Finalize_Address parameter. For a controlled object, |
| generate a conditional call to Attach_Object_To_Collection for an |
| allocation and to Detach_Object_From_Collection for a deallocation. |
| (Find_Last_Init): ...here. Compute the initialization type for an |
| allocator whose designating type is class wide specifically and also |
| handle concurrent types. |
| * rtsfind.ads (RE_Id): Add RE_Attach_Object_To_Collection and |
| RE_Detach_Object_From_Collection. |
| (RE_Unit_Table): Add entries for RE_Attach_Object_To_Collection and |
| RE_Detach_Object_From_Collection. |
| * libgnat/s-finpri.ads (Finalization_Started): Delete. |
| (Attach_Node_To_Collection): Likewise. |
| (Detach_Node_From_Collection): Move to... |
| (Attach_Object_To_Collection): New procedure declaration. |
| (Detach_Object_From_Collection): Likewise. |
| (Finalization_Collection): Remove Atomic for Finalization_Started. |
| Add pragma Inline for Initialize. |
| * libgnat/s-finpri.adb: Add clause for Ada.Unchecked_Conversion. |
| (To_Collection_Node_Ptr): New instance of Ada.Unchecked_Conversion. |
| (Detach_Node_From_Collection): ...here. |
| (Attach_Object_To_Collection): New procedure. |
| (Detach_Object_From_Collection): Likewise. |
| (Finalization_Started): Delete. |
| (Finalize): Replace allocation with attachment in comments. |
| * libgnat/s-stposu.ads (Allocate_Any_Controlled): Rename parameter |
| Context_Subpool into Named_Subpool, parameter Context_Collection |
| into Collection and change it to In/Out, and remove Fin_Address. |
| * libgnat/s-stposu.adb: Remove clause for Ada.Unchecked_Conversion |
| and Finalization_Primitives. |
| (To_Collection_Node_Ptr): Delete. |
| (Allocate_Any_Controlled): Rename parameter Context_Subpool into |
| Named_Subpool, parameter Context_Collection into Collection and |
| change it to In/Out, and remove Fin_Address. Do not lock/unlock |
| and do not attach the object, instead only displace its address. |
| (Deallocate_Any_Controlled): Do not lock/unlock and do not detach |
| the object. |
| (Header_Size_With_Padding): Use qualified name for Header_Size. |
| |
| 2024-05-14 Steve Baird <baird@adacore.com> |
| |
| * exp_attr.adb (Build_And_Insert_Type_Attr_Subp): If a subprogram |
| associated with a (library-level) type declared in another unit is |
| to be inserted somewhere in a list, then insert it at the head of |
| the list. |
| * sem_ch5.adb (Analyze_Assignment): Normally a limited-type |
| assignment is illegal. Relax this rule if Comes_From_Source is |
| False and the type is not immutably limited. |
| |
| 2024-05-14 Ronan Desplanques <desplanques@adacore.com> |
| |
| * errout.ads (Error_Msg): Add node parameter. |
| * errout.adb (Error_Msg): Add parameter and pass it to |
| the underlying call. |
| * sem_prag.adb (Validate_Compile_Time_Warning_Or_Error): Pass |
| pragma node when emitting errors. |
| |
| 2024-05-14 Ronan Desplanques <desplanques@adacore.com> |
| |
| * styleg.ads (Check_Xtra_Parens_Precedence): Moved ... |
| * style.ads (Check_Xtra_Parens_Precedence): ... here. Also |
| replace corresponding renaming. |
| * styleg.adb (Check_Xtra_Parens_Precedence): Moved ... |
| * style.adb (Check_Xtra_Parens_Precedence): here. Also use |
| Errout.Error_Msg and pass it a node parameter. |
| |
| 2024-05-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.ads (Convert_Aggr_In_Allocator): Rename Alloc into N, |
| replace Decl with Temp and adjust description. |
| (Convert_Aggr_In_Object_Decl): Alphabetize. |
| (Is_Delayed_Aggregate): Likewise. |
| * exp_aggr.adb (Convert_Aggr_In_Allocator): Rename Alloc into N |
| and replace Decl with Temp. Allocate a list only when neeeded. |
| (Convert_Array_Aggr_In_Allocator): Replace N with Decl and insert |
| new code before it. |
| * exp_ch4.adb (Build_Aggregate_In_Place): New procedure nested in |
| Expand_Allocator_Expression. |
| (Expand_Allocator_Expression): Call it to build aggregates in place. |
| Remove second parameter in calls to Build_Allocate_Deallocate_Proc. |
| (Expand_N_Allocator): Likewise. |
| * exp_ch13.adb (Expand_N_Free_Statement): Likewise. |
| * exp_util.ads (Build_Allocate_Deallocate_Proc): Remove Is_Allocate |
| parameter. |
| * exp_util.adb (Build_Allocate_Deallocate_Proc): Remove Is_Allocate |
| parameter and replace it with local variable of same name. Delete |
| useless pattern matching. |
| |
| 2024-05-14 Ronan Desplanques <desplanques@adacore.com> |
| |
| * usage.adb (Usage): Fix enabled-by-default indicators. |
| |
| 2024-05-14 Philippe Gil <gil@adacore.com> |
| |
| * libgnat/s-win32.ads (LocalFileTimeToFileTime): Swap parameters. |
| |
| 2024-05-14 Ronan Desplanques <desplanques@adacore.com> |
| |
| * restrict.adb (Violation_Of_No_Dependence): Tweak error |
| reporting calls. |
| |
| 2024-05-14 Ronan Desplanques <desplanques@adacore.com> |
| |
| * sem_prag.adb (Analyze_Pragma): Adapt call to new signature. |
| * erroutc.ads (Set_Specific_Warning_Off): change signature |
| and update documentation. |
| (Validate_Specific_Warnings): Move ... |
| * errout.adb: ... here and change signature. Also move body |
| of Validate_Specific_Warnings from erroutc.adb. |
| (Finalize): Adapt call. |
| * errout.ads (Set_Specific_Warning_Off): Adapt signature of |
| renaming. |
| * erroutc.adb (Set_Specific_Warning_Off): Adapt signature and |
| body. |
| (Validate_Specific_Warnings): Move to the body of Errout. |
| (Warning_Specifically_Suppressed): Adapt body. |
| |
| 2024-05-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.adb (Build_Array_Aggr_Code): Pass N in the call to |
| Build_Initialization_Call. |
| (Build_Record_Aggr_Code): Likewise. |
| (Convert_Aggr_In_Object_Decl): Likewise. |
| (Initialize_Discriminants): Likewise. |
| * exp_ch3.ads (Build_Initialization_Call): Replace Loc witn N. |
| * exp_ch3.adb (Build_Array_Init_Proc): Pass N in the call to |
| Build_Initialization_Call. |
| (Build_Default_Initialization): Likewise. |
| (Expand_N_Object_Declaration): Likewise. |
| (Build_Initialization_Call): Replace Loc witn N parameter and add |
| Loc local variable. Build a default subtype for an allocator of |
| a discriminated type with defaulted discriminants. |
| (Build_Record_Init_Proc): Pass the declaration of components in the |
| call to Build_Initialization_Call. |
| * exp_ch6.adb (Make_CPP_Constructor_Call_In_Allocator): Pass the |
| allocator in the call to Build_Initialization_Call. |
| |
| 2024-05-14 Ronan Desplanques <desplanques@adacore.com> |
| |
| * sem_warn.adb (Warn_On_Overlapping_Actuals): Fix typo. |
| |
| 2024-05-14 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_util.adb (Find_Hook_Context): Exclude N_*Aggregate Nkinds |
| of Parent (Par) from the early return in the second loop of the |
| In_Cond_Expr case, to prevent returning an aggregate from this |
| function rather than the enclosing declaration or statement. |
| |
| 2024-05-14 Steve Baird <baird@adacore.com> |
| |
| * exp_attr.adb: Replace 6 "not Present" tests with equivalent calls to "No". |
| |
| 2024-05-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch3.adb (Expand_N_Object_Declaration): Examine the Expression |
| field after the call to Default_Initialize_Object in order to set |
| Is_Known_Null, as well as Is_Known_Non_Null, on an access object. |
| |
| 2024-05-14 Steve Baird <baird@adacore.com> |
| |
| * exp_attr.adb: Change name of package Cached_Streaming_Ops to |
| reflect the fact that it is now also used for Put_Image |
| procedures. Similarly change other "Streaming_Op" names therein. |
| Add Validate_Cached_Candidate procedure to detect case where a |
| subprogram found in the cache cannot be reused. Add new generic |
| procedure Build_And_Insert_Type_Attr_Subp; the "Build" part is |
| handled by just calling a formal procedure; the bulk of this |
| (generic) procedure's code has to with deciding where in the tree |
| to insert the newly-constructed subprogram. Replace each later |
| "Build" call (and the following Insert_Action or |
| Compile_Stream_Body_In_Scope call) with a declare block that |
| instantiates and then calls this generic procedure. Delete the |
| now-unused procedure Compile_Stream_Body_In_Scope. A constructed |
| subprogram is entered in the appropriate cache if the |
| corresponding type is untagged; this replaces more complex tests. |
| A new function Interunit_Ref_OK is added to determine whether an |
| attribute reference occuring in one unit can safely refer to a |
| cached subprogram declared in another unit. |
| * exp_ch3.adb (Build_Predefined_Primitive_Bodies): A formal |
| parameter was deleted, so delete the corresponding actual in a |
| call. |
| * exp_put_image.adb (Build_Array_Put_Image_Procedure): Because the |
| procedure being built may be referenced more than once, the |
| generated procedure takes its source position info from the type |
| declaration instead of the (first) attribute reference. |
| (Build_Record_Put_Image_Procedure): Likewise. |
| * exp_put_image.ads (Build_Array_Put_Image_Procedure): Eliminate |
| now-unused Nod parameter. |
| (Build_Record_Put_Image_Procedure): Eliminate now-unused Loc parameter. |
| * sem_ch3.adb (Constrain_Discriminated_Type): For declaring a |
| subtype with a discriminant constraint, ignore privacy if |
| Comes_From_Source is false (as is already done if Is_Instance is |
| true). |
| * sem_res.adb (Resolve): When passed two type entities that have |
| the same underlying base type, Sem_Type.Covers may return False in |
| some cases because of privacy. [This can happen even if |
| Is_Private_Type returns False both for Etype (N) and for Typ; |
| Covers calls Base_Type, which can take a non-private argument and |
| yield a private result.] If Comes_From_Source (N) is False |
| (e.g., for a compiler-generated Put_Image or streaming subprogram), then |
| avoid that scenario by not calling Covers. Covers already has tests for |
| doing this sort of thing (see the calls therein to Full_View_Covers), |
| but the Comes_From_Source test is too coarse to apply there. So instead |
| we handle the problem here at the call site. |
| (Original_Implementation_Base_Type): A new function. Same as |
| Implementation_Base_Type except if the Original_Node attribute of |
| a non-derived type declaration indicates that it once was a derived |
| type declaration. Needed for looking through privacy. |
| (Valid Conversion): Ignore privacy when converting between different views |
| of the same type if Comes_From_Source is False for the conversion. |
| (Valid_Tagged_Conversion): An ancestor-to-descendant conversion is not an |
| illegal downward conversion if there is no type extension involved |
| (because the derivation was from an untagged view of the parent type). |
| |
| 2024-05-14 Steve Baird <baird@adacore.com> |
| |
| * sem_ch5.adb (Analyze_Case_Statement): Emit a message and return |
| early in the case where general case statements are allowed but |
| the selector expression is of a private type. This is done to |
| avoid a bugbox. |
| |
| 2024-05-14 Justin Squirek <squirek@adacore.com> |
| |
| * sem_util.adb (Set_Referenced_Modified): Use Original_Node to |
| avoid recursive calls on expanded / internal objects such that |
| source nodes get appropriately marked as referenced. |
| |
| 2024-05-14 Ronan Desplanques <desplanques@adacore.com> |
| |
| * sem_warn.adb (Warn_On_Overlapping_Actuals): Stop ignoring |
| warning suppression settings. |
| |
| 2024-05-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_util.adb (Build_Allocate_Deallocate_Proc): Pass the alignment |
| parameter in the inner call for a secondary stack allocation too. |
| |
| 2024-05-14 Javier Miranda <miranda@adacore.com> |
| |
| * sem_ch10.adb (Install_Inherited_Policy_Pragmas): New subprogram. |
| (Remove_Inherited_Policy_Pragmas): New subprogram. |
| (Analyze_Compilation_Unit): Call the new subprograms to |
| install and remove inherited assertion policy pragmas. |
| |
| 2024-05-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch4.adb (Expand_N_If_Expression): Set No_Initialization on the |
| declaration of the temporary in the by-reference case. |
| * exp_util.adb (Initialized_By_Access): Delete. |
| (Is_Allocated): Likewise. |
| (Initialized_By_Reference): New predicate. |
| (Is_Finalizable_Transient): If the transient object is of an access |
| type, do not return true unless it is initialized by a reference. |
| |
| 2024-05-14 Steve Baird <baird@adacore.com> |
| |
| * exp_attr.adb: Move computation of Accum_Typ entirely into the |
| function Build_Stat. |
| |
| 2024-05-14 Steve Baird <baird@adacore.com> |
| |
| * sem_ch12.ads: Declare new Instance_Context package, which |
| declares a private type Context with operations Save_And_Reset and |
| Restore. |
| * sem_ch12.adb: Provide body for new Instance_Context package. |
| * rtsfind.adb (Load_RTU): Wrap an Instance_Context Save/Restore |
| call pair around the call to Semantics. |
| * table.ads: Add initial value for Last_Val (because |
| Save_And_Reset expects Last_Val to be initialized). |
| |
| 2024-05-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.adb (Build_Record_Aggr_Code): Replace reference to |
| Build_Task_Allocate_Block_With_Init_Stmts in comment with reference |
| to Build_Task_Allocate_Block. |
| (Convert_Aggr_In_Allocator): Likewise for the call in the code. |
| * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Likewise. |
| * exp_ch3.ads: Alphabetize clauses. |
| (Build_Default_Initialization): New function declaration. |
| (Build_Default_Simple_Initialization): Likewise. |
| (Build_Initialization_Call): Add Target_Ref parameter with default. |
| * exp_ch3.adb (Build_Default_Initialization): New function extracted |
| from... |
| (Build_Default_Simple_Initialization): Likewise. |
| (Build_Initialization_Call): Add Target_Ref parameter with default. |
| (Expand_N_Object_Declaration): ...here. |
| (Default_Initialize_Object): Call Build_Default_Initialization and |
| Build_Default_Simple_Initialization. |
| * exp_ch4.adb (Expand_Allocator_Expression): Minor comment tweaks. |
| (Expand_N_Allocator): Call Build_Default_Initialization and |
| Build_Default_Simple_Initialization to implement the default |
| initialization of the allocated object. |
| * exp_ch9.ads (Build_Task_Allocate_Block): Delete. |
| (Build_Task_Allocate_Block_With_Init_Stmts): Rename into... |
| (Build_Task_Allocate_Block): ...this. |
| * exp_ch9.adb: Remove clauses for Exp_Tss. |
| (Build_Task_Allocate_Block): Delete. |
| (Build_Task_Allocate_Block_With_Init_Stmts): Rename into... |
| (Build_Task_Allocate_Block): ...this. |
| * exp_util.adb (Build_Allocate_Deallocate_Proc): Remove unnecessary |
| initialization expression, adjust commentary and replace early exit |
| with assertion. |
| * sem_ch4.adb (Analyze_Allocator): In the null-exclusion case, call |
| Apply_Compile_Time_Constraint_Error to insert the raise. |
| |
| 2024-05-14 Ronan Desplanques <desplanques@adacore.com> |
| |
| * styleg.ads (Check_Boolean_Operator): Moved ... |
| * style.ads (Check_Boolean_Operator): ... here. |
| * styleg.adb (Check_Boolean_Operator): Moved ... |
| * style.adb (Check_Boolean_Operator): ... here. Also add node |
| parameter to call to Errout.Error_Msg. |
| |
| 2024-05-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sprint.adb (Sprint_Node_Actual) <N_Raise_Statement>: Be prepared |
| for an empty Name. |
| <N_Raise_When_Statement>: Likewise. |
| |
| 2024-05-14 Yannick Moy <moy@adacore.com> |
| |
| * contracts.adb: Fix references to SPARK RM rules. |
| * freeze.adb: Same. |
| * ghost.adb: Fix references to SPARK RM rules. |
| (Check_Ghost_Context): Update checking of references to |
| ghost entities in assertion expressions. |
| * sem_ch6.adb: Fix references to SPARK RM rules. |
| * sem_prag.adb: Same. |
| |
| 2024-05-14 Yannick Moy <moy@adacore.com> |
| |
| * ghost.adb (Mark_And_Set_Ghost_Instantiation): Fix the current |
| Ghost policy for the instantiation. |
| |
| 2024-05-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch3.adb (Default_Initialize_Object): Return immediately when |
| either Has_Init_Expression or No_Initialization is set on the node. |
| Tidy up the rest of the code accordingly. |
| (Simple_Initialization_OK): Do not test Has_Init_Expression here. |
| |
| 2024-05-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * accessibility.adb: Remove clauses for Exp_Ch3. |
| * exp_ch3.ads (Init_Proc_Level_Formal): Move declaration to... |
| * exp_ch3.adb (Init_Proc_Level_Formal): Move body to... |
| * exp_util.ads (Init_Proc_Level_Formal): ...here. |
| (Inside_Init_Proc): Alphabetize. |
| * exp_util.adb (Init_Proc_Level_Formal): ...here. |
| |
| 2024-05-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_util.adb (Is_Potentially_Unevaluated): Remove code for |
| recovering the original structure of expressions with AND THEN. |
| |
| 2024-05-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_attr.adb (Attribute_22): Remove Put_Image and Object_Size. |
| * sem_attr.ads (Attribute_Imp_Def): Restore Object_Size. |
| |
| 2024-05-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch7.adb: Adjust the description of finalization management. |
| (Build_Finalizer): Rename scope master into master throughout. |
| * rtsfind.ads (RE_Id): Replace RE_Finalization_Scope_Master with |
| RE_Finalization_Master. |
| (RE_Unit_Table): Replace entry for RE_Finalization_Scope_Master with |
| entry for RE_Finalization_Master. |
| * libgnat/s-finpri.ads (Finalization_Scope_Master): Rename into... |
| (Finalization_Master): ...this. |
| (Attach_Object_To_Master): Adjust to above renaming. |
| (Chain_Node_To_Master): Likewise. |
| (Finalize_Master): Likewise. |
| * libgnat/s-finpri.adb (Attach_Object_To_Master): Likewise. |
| (Chain_Node_To_Master): Likewise. |
| (Finalize_Master): Likewise. |
| |
| 2024-05-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnat/s-imaged.ads (System.Image_D): Add Uns formal parameter. |
| * libgnat/s-imaged.adb: Add with clauses for System.Image_I, |
| System.Value_I_Spec and System.Value_U_Spec. |
| (Uns_Spec): New instance of System.Value_U_Spec. |
| (Int_Spec): New instance of System.Value_I_Spec. |
| (Image_I): New instance of System.Image_I. |
| (Set_Image_Integer): New renaming. |
| (Set_Image_Decimal): Replace 'Image with call to Set_Image_Integer. |
| * libgnat/s-imde32.ads (Uns32): New subtype. |
| (Impl): Pass Uns32 as second actual paramter to Image_D. |
| * libgnat/s-imde64.ads (Uns64): New subtype. |
| (Impl): Pass Uns64 as second actual paramter to Image_D. |
| * libgnat/s-imde128.ads (Uns128): New subtype. |
| (Impl): Pass Uns128 as second actual paramter to Image_D. |
| * libgnat/s-imagef.adb (Set_Image_Fixed): Document bounds for the |
| A, D and AF local constants. |
| |
| 2024-05-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_attr.adb (Attribute_22): Add Put_Image and Object_Size. |
| * sem_attr.ads (Attribute_Imp_Def): Remove Object_Size. |
| |
| 2024-05-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * aspects.adb (Copy_Aspects): Style fix. |
| * contracts.adb (Analyze_Contracts): Style fix. |
| (Save_Global_References_In_Contract): Remove extra guards. |
| * par_sco.adb (Traverse_Aspects): Move guard to the caller and |
| make it consistent with Save_Global_References_In_Contract. |
| * sem_ch12.adb (Has_Contracts): Remove extra guards. |
| * sem_ch3.adb (Delayed_Aspect_Present, Get_Partial_View_Aspect, |
| Check_Duplicate_Aspects): Likewise. |
| * sem_disp.adb (Check_Dispatching_Operation): Likewise. |
| |
| 2024-05-13 Bob Duff <duff@adacore.com> |
| |
| * errout.adb (Output_Messages): Protect against the total going |
| negative. |
| |
| 2024-05-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * contracts.adb (Append_Enabled_Item): Remove use of Split_PPC; |
| simplify. |
| * gen_il-fields.ads (Opt_Field_Enum): Remove flag definition. |
| * gen_il-gen-gen_nodes.adb (N_Aspect_Specification, N_Pragma): |
| Remove Split_PPC flags. |
| * gen_il-internals.adb (Image): Remove use of Split_PPC. |
| * par_sco.adb (Traverse_Aspects): Likewise. |
| * sem_ch13.adb (Make_Aitem_Pragma): Likewise. |
| * sem_ch6.adb (List_Inherited_Pre_Post_Aspects): Likewise. |
| * sem_prag.adb (Analyze_Pre_Post_Condition, Analyze_Pragma, |
| Find_Related_Declaration_Or_Body): Likewise. |
| * sem_util.adb (Applied_On_Conjunct): Likewise. |
| * sinfo.ads: Remove flag documentation. |
| * treepr.adb (Image): Remove use of Split_PPC. |
| |
| 2024-05-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_ch6.adb (Append_Message): Build the location string from |
| scratch and not rely on the one produced while splitting the |
| aspect into pragmas. |
| * exp_prag.adb (Expand_Pragma_Check): Split pre/post checks in |
| expansion. |
| * sem_ch13.adb (Analyze_Aspect_Specification): Don't split |
| pre/post expressions into conjuncts; don't add message with |
| location to the corresponding pragma. |
| * sem_prag.adb (Build_Pragma_Check_Equivalent): Inherited |
| pragmas no longer have messages that would need to be updated. |
| * sinput.adb (Build_Location_String): Adjust to keep previous |
| messages while using with inherited pragmas. |
| |
| 2024-05-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * contracts.adb (Inherit_Subprogram_Contract): Fix style. |
| * sem_ch5.adb (Analyze_Iterator_Specification): Likewise. |
| |
| 2024-05-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_util.adb (Has_No_Output): Iteration with |
| First_Formal/Next_Formal involves Entity_Ids. |
| |
| 2024-05-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_prag.adb (Analyze_Pragma): When processing pragma |
| Lock_Free, check if restriction No_Implementation_Pragmas is |
| enabled. |
| |
| 2024-05-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * gen_il-fields.ads (Opt_Field_Enum): |
| Remove Is_Expanded_Contract from the list of flags. |
| * gen_il-gen-gen_nodes.adb (N_Contract): Remove |
| Is_Expanded_Contract from the list of N_Contract fields. |
| * sinfo.ads (Is_Expanded_Contract): Remove comments for the flag |
| and its single occurrence in N_Contract. |
| |
| 2024-05-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_ch9.adb (Build_Protected_Subprogram_Body, |
| Build_Protected_Subprogram_Call_Cleanup): Reuse refactored |
| routine. |
| * sem_util.adb |
| (Has_Enabled_Aspect): Refactored repeated code. |
| (Is_Static_Function): Reuse refactored routine. |
| * sem_util.ads (Has_Enabled_Aspect): |
| New query routine refactored from repeated code. |
| |
| 2024-05-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_ch9.adb (Build_Protected_Subprogram_Call_Cleanup): If |
| aspect Exclusive_Functions is present then the cleanup of a |
| protected function now services queued entries, just like the |
| cleanup of a protected procedure. |
| |
| 2024-05-13 Bob Duff <duff@adacore.com> |
| |
| * sem_util.ads (Append_Entity_Name): Fix comment to reflect new |
| semantics. The comment said, "The qualification stops at an |
| enclosing scope has no source name (block or loop)." There seems |
| to be no reason for stopping; instead, we should SKIP things with |
| no source name. And the "loop" part was wrong. |
| * sem_util.adb (Append_Entity_Name): Do not stop the recursion; |
| skip to next-outer scope instead. Misc cleanup/simplification. |
| |
| 2024-05-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnat/s-finpri.adb (Finalize): Replace "master" by "collection" |
| in comments and add a comment about the form of the loop. |
| * libgnat/s-stposu.adb (Allocate_Any_Controlled): Tweak comment. |
| |
| 2024-05-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Remove s-finmas$(objext). |
| * einfo.ads (Anonymous_Masters): Rename into Anonymous_Collections. |
| (Finalization_Master): Rename into Finalization_Collection. |
| * gen_il-fields.ads (Opt_Field_Enum): Replace Anonymous_Masters |
| with Anonymous_Collections; and Finalization_Master with |
| Finalization_Collection. |
| * gen_il-gen-gen_entities.adb (Access_Kind): Likewise. |
| (E_Function): Likewise. |
| (E_Procedure): Likewise. |
| (E_Package): Likewise. |
| (E_Subprogram_Body): Likewise. |
| * exp_ch3.adb (Build_Heap_Or_Pool_Allocator): Adjust to renamings. |
| (Freeze_Type): Likewise. |
| (Stream_Operation_OK): Remove obsolete test. |
| * exp_ch4.adb (Expand_Allocator_Expression): Adjust to renamings. |
| (Expand_N_Allocator): Likewise. |
| * exp_ch6.ads (BIP_Formal_Kind): Replace BIP_Finalization_Master |
| with BIP_Collection. |
| (Needs_BIP_Finalization_Master): Rename into... |
| (Needs_BIP_Collection): ...this. |
| * exp_ch6.adb (BIP_Finalization_Master_Suffix): Delete. |
| (BIP_Collection_Suffix): New constant string. |
| (Add_Finalization_Master_Actual_To_Build_In_Place_Call): Rename to |
| (Add_Collection_Actual_To_Build_In_Place_Call): ...this and adjust. |
| (BIP_Formal_Suffix): Replace BIP_Finalization_Master alternative |
| with BIP_Collection alternative. |
| (BIP_Suffix_Kind): Replace test on BIP_Finalization_Master_Suffix |
| with test on BIP_Collection_Suffix. |
| (Is_Build_In_Place_Entity): Likewise. |
| (Make_Build_In_Place_Call_In_Allocator): Call Needs_BIP_Collection |
| and Add_Collection_Actual_To_Build_In_Place_Call. |
| (Make_Build_In_Place_Call_In_Anonymous_Context): Likewise. |
| (Make_Build_In_Place_Call_In_Assignment): Likewise. |
| (Make_Build_In_Place_Call_In_Object_Declaration): Likewise. |
| (Needs_BIP_Finalization_Master): Rename into... |
| (Needs_BIP_Collection): ...this. |
| (Needs_BIP_Alloc_Form): Call Needs_BIP_Collection. |
| * exp_ch7.ads (Build_Anonymous_Master): Rename into... |
| (Build_Anonymous_Collection): ...this. |
| (Build_Finalization_Master): Rename into... |
| (Build_Finalization_Collection): ...this. |
| * exp_ch7.adb (Allows_Finalization_Master): Rename into... |
| (Allows_Finalization_Collection): ...this. |
| (Build_BIP_Cleanup_Stmts): Adjust to renamings. |
| (Build_Anonymous_Master): Rename into... |
| (Build_Anonymous_Collection): ...this. Adjust to renamings. |
| (Build_Finalization_Master): Rename into... |
| (Build_Finalization_Collection): ...this. Adjust to renamings. |
| (Build_Finalizer): Adjust comment to renamings. |
| * exp_ch13.adb (Expand_N_Free_Statement): Adjust to renamings. |
| * exp_util.adb (Build_Allocate_Deallocate_Proc): Likewise. |
| (Requires_Cleanup_Actions): Adjust comment to renamings. |
| * freeze.adb (Freeze_All): Likewise. |
| * rtsfind.ads (RTU_Id): Remove System_Finalization_Masters. |
| (RE_Id): Remove RE_Finalization_Master & RE_Finalization_Master_Ptr |
| add RE_Finalization_Collection & RE_Finalization_Collection_Ptr. |
| Adjust RE_Add_Offset_To_Address and RE_Finalization_Scope_Master. |
| (RE_Unit_Table): Remove entries for RE_Finalization_Master & |
| RE_Finalization_Master_Ptr, add ones for RE_Finalization_Collection |
| & RE_Finalization_Collection_Ptr. Also adjust those of |
| RE_Add_Offset_To_Address and RE_Finalization_Scope_Master. |
| * sem_ch3.adb (Access_Type_Declaration): Adjust to renamings. |
| * sem_ch6.adb (Create_Extra_Formals): Likewise. |
| * sem_util.adb (Designated_Subtype_Mark): Likewise. |
| * libgnat/s-finpri.ads: Add clauses for Ada.Finalization and |
| System.Storage_Elements. |
| (Finalization_Collection): New limited controlled type. |
| (Finalization_Collection_Ptr): Likewise. |
| (Initialize): New overriding procedure. |
| (Finalize): Likewise. |
| (Finalization_Started): Likewise. |
| (Collection_Node): New type. |
| (Collection_Node_Ptr): Likewise. |
| (Attach_Node_To_Collection): New procedure. |
| (Detach_Node_From_Collection): Likewise. |
| (Header_Size): New function. |
| (Add_Offset_To_Address): Likewise. |
| * libgnat/s-finpri.adb (Add_Offset_To_Address): New function. |
| (Attach_Node_To_Collection): New procedure. |
| (Detach_Node_From_Collection): Likewise. |
| (Finalization_Started): Likewise. |
| (Finalize): New overriding procedure. |
| (Header_Size): New function. |
| (Initialize): New overriding procedure. |
| * libgnat/s-spsufi.ads (Finalize_And_Deallocate): Adjust comment. |
| * libgnat/s-spsufi.adb: Remove clause for Finalization_Masters and |
| add clause for Finalization_Primitives. |
| (Finalize_And_Deallocate): Finalize the Collection component. |
| * libgnat/s-stposu.ads: Remove clause for Finalization_Masters and |
| add clause for Finalization_Primitives. |
| (Root_Subpool): Replace Master component with Collection. |
| (Allocate_Any_Controlled): Replace Context_Master parameter with |
| Context_Collection parameter. |
| * libgnat/s-stposu.adb: Remove clauses for Finalization_Masters and |
| add clauses for Finalization_Primitives. |
| (Address_To_FM_Node_Ptr): Delete. |
| (To_Collection_Node_Ptr): New instance of Ada.Unchecked_Conversion. |
| (Adjust_Controlled_Dereference): Adjust comment to renamings. |
| (Allocate_Any_Controlled): Replace Context_Master parameter with |
| Context_Collection parameter. Adjust to renamings. |
| (Deallocate_Any_Controlled): Adjust to renamings. |
| (Print_Subpool): Likewise. |
| * libgnat/s-finmas.ads: Delete. |
| * libgnat/s-finmas.adb: Likewise. |
| |
| 2024-05-13 Ashley Gay <gay@adacore.com> |
| |
| * Makefile.rtl: remove i-vxinco.* from the build |
| * doc/gnat_rm/the_gnat_library.rst: Remove i-vxinco.ads from |
| the units documentation. |
| * impunit.adb: Remove i-vxinco from the list of available units |
| in GNATstudio. |
| * libgnarl/i-vxinco.adb: Remove. |
| * libgnarl/i-vxinco.ads: Ditto. |
| * libgnarl/s-interr__vxworks.adb: enrich comment |
| * libgnarl/s-vxwext__kernel.ads: fix comment |
| * libgnat/i-vxwork.ads: Remove deprecated interrupt connections |
| API, as well as an example. |
| * libgnat/i-vxwork__x86.ads: Ditto and add the paragma |
| Obscolescent to Attach_Handler |
| * gnat_rm.texi: Regenerate. |
| |
| 2024-05-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch3.adb (Build_Heap_Or_Pool_Allocator): Use the BIPstoragepool |
| formal parameter to retrieve the pool in the presence of a master. |
| * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Always pass |
| a pool reference along with the master reference. |
| (Make_Build_In_Place_Call_In_Object_Declaration): Likewise. |
| * exp_ch7.adb (Build_BIP_Cleanup_Stmts): Use the BIPstoragepool |
| formal parameter to retrieve the pool in the presence of a master. |
| (Create_Anonymous_Master): Do not call Set_Base_Pool. |
| (Build_Finalization_Master): Likewise. |
| * rtsfind.ads (RE_Id): Remove RE_Base_Pool and RE_Set_Base_Pool. |
| (RE_Unit_Table): Remove associated entries. |
| * libgnat/s-finmas.ads: Remove clause for System.Storage_Pools. |
| (Any_Storage_Pool_Ptr): Delete. |
| (Finalization_Master): Remove Base_Pool component. |
| (Base_Pool): Delete. |
| (Set_Base_Pool): Likewise. |
| * libgnat/s-finmas.adb (Base_Pool): Likewise. |
| (Set_Base_Pool): Likewise. |
| (Print_Master): Do not print Base_Pool. |
| |
| 2024-05-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call): |
| Rename Pool_Actual into Pool_Exp and use Empty as default value. |
| (Add_Finalization_Master_Actual_To_Build_In_Place_Call): Change the |
| names of the first two parameters and use a simpler code structure. |
| (Make_Build_In_Place_Call_In_Allocator): Rename the local variable |
| for the pool actual and set it to Empty if it is not used. |
| (Make_Build_In_Place_Call_In_Object_Declaration): Rename the local |
| variable for the master actual. |
| |
| 2024-05-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch3.adb (Expand_N_Object_Declaration): In the case of a |
| return object of a BIP function that needs finalization, save |
| the assignment statement made to initialize it, if any. |
| * exp_ch6.ads (BIP_Formal_Kind): Adjust description. |
| * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Make a |
| couple of adjustments to the commentary. |
| (Needs_BIP_Alloc_Form): Also return true if the function needs |
| a BIP_Finalization_Master parameter. |
| * exp_ch7.adb (Build_BIP_Cleanup_Stmts): Remove now always true |
| test on Needs_BIP_Alloc_Form. |
| (Attach_Object_To_Master_Node): Remove duplication in comment. |
| |
| 2024-05-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_util.adb (Get_Index_Bounds): Guard against missing Entity, |
| which happens on illegal constrained type declaration. |
| |
| 2024-05-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_attr.adb (Eval_Attribute): Treat Alignment like Component_Size |
| for array types. |
| |
| 2024-05-13 Steve Baird <baird@adacore.com> |
| |
| * sem_case.adb: Replace all tests of Core_Extensions_Allowed with |
| corresponding tests of All_Extensions_Allowed. |
| * sem_ch5.adb: Likewise. |
| * doc/gnat_rm/gnat_language_extensions.rst: update documentation. |
| * gnat_rm.texi: Regenerate. |
| |
| 2024-05-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_ch13.adb (New_Put_Image_Subprogram): In the nondeferred case |
| coming from an aspect and for a type with delaying freezing, also |
| freeze the subprogram immediately. |
| |
| 2024-05-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * libgnat/a-direct.adb (Start_Search_Internal): Combine subtype |
| and object declaration. |
| * libgnat/g-dirope.adb (Read): Replace convoluted unchecked |
| conversion with an overlay. |
| |
| 2024-05-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * libgnat/g-dirope.adb (Read): Use null-excluding, |
| access-to-constant type; replace element-by-element copy with |
| array assignments. |
| |
| 2024-05-13 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_aggr.adb (Expand_Container_Aggregate): Move determination of |
| whether the aggregate is an indexed aggregate earlier in the |
| procedure. Test Is_Indexed_Aggregate as a criterion for generating |
| a call to the container type's New_Indexed function, add proper |
| computation of bounds to pass in to the function, and remove later |
| code for generating such a call. Add and improve comments. |
| (Aggregate_Size): Remove special treatment of case where there is |
| exactly one component association, and instead loop over all |
| component associations to determine whether any of them have a |
| nonstatic length. If there is at least one such nonstatic |
| association, return -1. |
| (Build_Siz_Exp): Accumulate a sum of the sizes of each of the |
| component associations in Siz_Exp (which will only be used if |
| there any associations that are of Nkind |
| N_Iterated_Component_Association with a nonstatic range). |
| (Expand_Range_Component): Fix typos in the procedure's spec |
| comment and block comment. |
| |
| 2024-05-07 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_util.adb (Number_Of_Elements_In_Array): Fix counting of |
| elements in null arrays; remove redundant parenthesis; avoid |
| run-time conversion of 1 to universal integer. |
| |
| 2024-05-07 Piotr Trojanek <trojanek@adacore.com> |
| |
| * lib.ads, lib.adb (Primary_Stack_Count, Sec_Stack_Count, |
| Increment_Primary_Stack_Count, Increment_Sec_Stack_Count, |
| Unit_Record): Stack counts are never negative. |
| * ali.ads (Unit_Record): Likewise. |
| * bindgen.adb (Num_Primary_Stacks, Num_Sec_Stacks): Likewise. |
| * exp_ch3.adb (Count_Default_Sized_Task_Stacks): Likewise. |
| * sem_util.ads, sem_util.adb (Number_Of_Elements_In_Array): |
| Likewise. |
| |
| 2024-05-07 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_ch3.adb (Count_Default_Sized_Task_Stacks): Do not look for |
| tasks inside record discriminants; remove avoid repeated call to |
| Has_Task that happened for record components. |
| (Expand_N_Object_Declaration): Use high-level routine to detect |
| array types and subtypes; remove unused initial values. |
| |
| 2024-05-07 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_aggr.ads (Static_Array_Aggregate): Fix typo in comment. |
| |
| 2024-05-07 Piotr Trojanek <trojanek@adacore.com> |
| |
| * inline.adb (Has_Single_Return): Remove redundant check for |
| empty list, because First works also for empty list. |
| |
| 2024-05-07 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_ch4.adb (Useful): Remove redundant check for empty list, |
| because iteration with First works also for empty list; rename |
| local variable from L to Action. |
| |
| 2024-05-07 Piotr Trojanek <trojanek@adacore.com> |
| |
| * inline.adb (Has_Formal_With_Per_Object_Constrained_Component): |
| Use flag Has_Per_Object_Constraint which is set by analysis; |
| rename for consistency. |
| |
| 2024-05-07 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_attr.adb (Analyze_Access_Attribute): Replace loop with |
| Current_Scope_No_Loops. |
| |
| 2024-05-07 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_attr.adb (Analyze_Access_Attribute): Move code to IF |
| branch where its result is used. |
| |
| 2024-05-07 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_attr.adb (Analyze_Access_Attribute): Prevent search from |
| going too far. |
| * sem_ch3.adb (Analyze_Component_Declaration): Remove |
| Contains_POC; reuse Has_Discriminant_Dependent_Constraint. |
| |
| 2024-05-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * einfo.ads (Pending_Access_Types): Delete. |
| * exp_ch3.adb (Freeze_Type.Process_Pending_Access_Types): Likewise. |
| (Freeze_Type): Do not call Process_Pending_Access_Types. |
| * exp_ch7.ads (Make_Set_Finalize_Address_Call): Delete. |
| * exp_ch7.adb (Build_Finalization_Master.Add_Pending_Access_Type): |
| Delete. |
| (Build_Finalization_Master): Do not set Finalize_Address on the |
| master or call Add_Pending_Access_Type. |
| (Make_Set_Finalize_Address_Call): Delete. |
| * gen_il-fields.ads (Opt_Field_Enum): Remove Pending_Access_Types. |
| * gen_il-gen-gen_entities.adb (Type_Kind): Likewise. |
| * rtsfind.ads (RE_Id): Remove RE_Set_Finalize_Address. |
| (RE_Unit_Table): Likewise. |
| * sem_ch3.adb (Analyze_Full_Type_Declaration): Do not deal with |
| pending access types. |
| * libgnat/s-finmas.ads (Attach_Unprotected): Add Finalize_Address |
| second parameter. |
| (Delete_Finalize_Address_Unprotected): Delete. |
| (Finalize_Address): Likewise. |
| (Finalize_Address_Unprotected): Likewise. |
| (Is_Homogeneous): Likewise. |
| (Set_Finalize_Address): Likewise. |
| (Set_Finalize_Address_Unprotected): Likewise. |
| (Set_Heterogeneous_Finalize_Address_Unprotected): Likewise. |
| (Set_Is_Heterogeneous): Likewise. |
| (FM_Node): Add Finalize_Address component. |
| (Finalization_Master): Remove Is_Homogeneous and Finalize_Address |
| components. |
| * libgnat/s-finmas.adb: Remove with & use clauses for System.HTable. |
| (Finalize_Address_Table): Delete. |
| (Attach_Unprotected): Add Finalize_Address second parameter and save |
| its value in the Finalize_Address field of the node. |
| (Delete_Finalize_Address_Unprotected): Delete. |
| (Finalize): Call Finalize_Address saved in the nodes. |
| (Finalize_Address): Delete. |
| (Finalize_Address_Unprotected): Likewise. |
| (Hash): Likewise. |
| (Is_Homogeneous): Likewise. |
| (Print_Master): Adjust. |
| (Set_Finalize_Address): Delete. |
| (Set_Finalize_Address_Unprotected): Likewise. |
| (Set_Heterogeneous_Finalize_Address_Unprotected): Likewise. |
| (Set_Is_Heterogeneous): Likewise. |
| * libgnat/s-stposu.adb (Finalize_Address_Table_In_Use): Likewise. |
| (Allocate_Any_Controlled): Pass Fin_Address to Attach_Unprotected |
| and remove obsolete processing. |
| (Deallocate_Any_Controlled): Remove obsolete processing. |
| (Set_Pool_Of_Subpool): Do not call Set_Is_Heterogeneous. |
| |
| 2024-05-07 Joffrey Huguet <huguet@adacore.com> |
| |
| * libgnat/a-ngelfu.ads (Sqrt): Add Global contracts. |
| (Log): Likewise. |
| (Exp): Likewise. |
| ("**"): Likewise. |
| (Sin): Likewise. |
| (Cos): Likewise. |
| (Tan): Likewise. |
| (Cot): Likewise. |
| (Arcsin): Likewise. |
| (Arccos): Likewise. |
| (Arctan): Likewise. |
| (Arccot): Likewise. |
| (Sinh): Likewise. |
| (Cosh): Likewise. |
| (Tanh): Likewise. |
| (Coth): Likewise. |
| (Arcsinh): Likewise. |
| (Arccosh): Likewise. |
| (Arctanh): Likewise. |
| (Arccoth): Likewise. |
| |
| 2024-05-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * einfo.ads (Postconditions_Proc): Delete. |
| * gen_il-fields.ads (Opt_Field_Enum): Remove Postconditions_Proc. |
| * gen_il-gen-gen_entities.adb (E_Function): Likewise. |
| (E_Procedure): Likewise. |
| (E_Entry): Likewise. |
| (E_Entry_Family): Likewise. |
| |
| 2024-05-07 Ronan Desplanques <desplanques@adacore.com> |
| |
| * sinfo.ads: Fix typo. |
| |
| 2024-05-07 Bob Duff <duff@adacore.com> |
| |
| * exp_attr.adb (Attribute_Old): The 'Old attribute we are |
| processing here is in a postcondition, which cannot be inside the |
| "Wrapped_Statements" of the subprogram with that postcondition. So |
| remove the loop labeled "Climb the parent chain looking for |
| subprogram _Wrapped_Statements". The only way this loop could find |
| a Subp is if we are nested inside a subprogram that also has a |
| postcondition, and in that case we would find the wrong (outer) |
| one. In any case, Subp is set to Empty after the loop, so all |
| subsequent tests for Present (Subp) are necessarily False; remove |
| them and the corresponding code. Set Ins_Node unconditionally (to |
| the right thing). Remove obsolete comments. |
| * sem_util.adb (Determining_Expressions): Fix assertion; |
| Pragma_Test_Case was missing. |
| (Eligible_For_Conditional_Evaluation): Fix assert that could fail |
| in case of errors. |
| * libgnat/s-valspe.ads: Remove pragma Unevaluated_Use_Of_Old; |
| there are no uses of 'Old in this package. |
| |
| 2024-05-07 Yannick Moy <moy@adacore.com> |
| |
| * libgnat/a-strsea.adb (Index): Add assertions. |
| * libgnat/a-strsup.ads ("="): Remove useless precondition. |
| * libgnat/s-aridou.adb (Prove_Rounding_Case): Add assertions. |
| (Lemma_Shift_Right): Add call to lemma. |
| * libgnat/s-arit32.adb (Prove_Rounding_Case): Add assertion. |
| (Prove_ Signs): Add assertions. |
| (Scaled_Divide32): Add assertions. |
| |
| 2024-05-07 Steve Baird <baird@adacore.com> |
| |
| * sem_prag.adb (Analyze_Pragma): Restructure the loop over |
| possible resolutions of a No_Return pragma's argument so that |
| functions (and generic functions) are not processed until after it |
| is known whether there is a non-function candidate resolution. For |
| a pre-2022 Ada version, terminate the iteration before processing |
| functions if a non-function resolution is found. |
| |
| 2024-05-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnat/g-socthi.ads (C_Bind): Turn into inline function. |
| (C_Getpeername): Likewise. |
| (C_Getsockname): Likewise. |
| (C_Getsockopt): Likewise. |
| (C_Setsockopt): Likewise. |
| (Nonreentrant_Gethostbyaddr): Likewise. |
| * libgnat/g-socthi.adb (Syscall_Accept): Adjust profile. |
| (Syscall_Connect): Likewise. |
| (Syscall_Recvfrom): Likewise. |
| (Syscall_Sendto): Likewise. |
| (C_Bind): New function. |
| (C_Accept): Adjust to above change for profiles. |
| (C_Connect): Likewise. |
| (C_Getpeername): New function. |
| (C_Getsockname): Likewise. |
| (C_Getsockopt): Likewise. |
| (C_Recvfrom): Adjust to above change for profiles. |
| (C_Setsockopt): New function. |
| (Nonreentrant_Gethostbyaddr): Likewise. |
| |
| 2024-05-07 Bob Duff <duff@adacore.com> |
| |
| * par-ch3.adb (P_Component_Items): Move P_Aspect_Specifications |
| into the loop, so aspects can be attached to multiple component |
| declarations. |
| (P_Type_Declaration, P_Subtype_Declaration) |
| (P_Known_Discriminant_Part_Opt): Remove default for Semicolon in |
| calls to P_Aspect_Specifications. |
| * gen_il-gen-gen_nodes.adb (N_Discriminant_Specification): Add |
| Aspect_Specifications field to N_Discriminant_Specification, which |
| was missing. |
| * aspects.adb (Has_Aspect_Specifications_Flag): Make it True for |
| N_Discriminant_Specification. |
| * par-ch13.adb: Remove default for Semicolon in calls to |
| P_Aspect_Specifications. |
| (Get_Aspect_Specifications): Misc cleanup. |
| (P_Aspect_Specifications): Remove comment. It's not clear what |
| "the flag" is referring to, but anyway the first part of the |
| comment is obvious, and the second part is apparently obsolete. |
| Misc cleanup. |
| * par.adb (P_Aspect_Specifications, Get_Aspect_Specifications): |
| Remove default for Semicolon; calls are more readable that way. |
| Improve comments. |
| * par-ch12.adb: Remove default for Semicolon in calls to |
| P_Aspect_Specifications. |
| * par-ch6.adb: Likewise. |
| * par-ch7.adb: Likewise. |
| * par-ch9.adb: Likewise. |
| * par-endh.adb: Likewise. |
| |
| 2024-05-07 Justin Squirek <squirek@adacore.com> |
| |
| * sem_prag.adb (Defer_Compile_Time_Warning_Error_To_BE): Better |
| handle itypes such that the tree copy required for the expansion |
| of the pragma doesn't cause ordering problems with internal names. |
| |
| 2024-05-07 Yannick Moy <moy@adacore.com> |
| |
| * sem_res.adb (Resolve_Actuals): Add range check flag. |
| |
| 2024-05-07 Yannick Moy <moy@adacore.com> |
| |
| * sem_util.adb (Find_Placement_In_State_Space): Stop search for |
| placement when reaching the public state of a generic package. |
| |
| 2024-05-07 Javier Miranda <miranda@adacore.com> |
| |
| * sem_ch3.adb (Check_Return_Subtype_Indication): Add missing check |
| on statically compatible subtypes. |
| * sem_eval.adb (Subtypes_Statically_Compatible): Ensure that both |
| types are either scalar types or access types to evaluate this |
| predicate. |
| |
| 2024-05-07 Bob Duff <duff@adacore.com> |
| |
| * sem_ch13.adb (Resolve_Name): Clarify comment. |
| |
| 2024-05-07 Bob Duff <duff@adacore.com> |
| |
| * sem_ch13.adb (Resolve_Name): This is called only for names in |
| aspect_specifications. If the name is an overloaded |
| selected_component, reset the Entity. Note that this was already |
| done for N_Identifier in the code just below. |
| |
| 2024-05-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * repinfo.adb (List_Record_Info.List_Structural_Record_Layout): Add |
| another guard for private types after retrieving the parent in the |
| extension case. |
| |
| 2024-05-07 Yannick Moy <moy@adacore.com> |
| |
| * sem_util.adb (Is_Volatile_Function): Return True on functions |
| with side effects. |
| |
| 2024-05-07 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_prag.adb (Analyze_Global_Item): Handle side-effect |
| functions like procedures. |
| |
| 2024-05-07 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_prag.adb (Collect_Global_Item): Update comment. |
| |
| 2024-05-06 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_prag.adb (Collect_Global_Item): Handle functions with |
| side-effects. |
| |
| 2024-05-06 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_prag.adb (Collect_Global_Item): Move code. |
| |
| 2024-05-06 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_prag.adb (Find_Role): Handle functions with side-effects |
| like procedures. |
| |
| 2024-05-06 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_ch6.adb |
| (Make_Build_In_Place_Iface_Call_In_Object_Declaration): Set the |
| Is_Return_Object flag on the entity of the temp object created to |
| hold the BIP call result, from the flag on the passed-in object |
| declaration's entity. Update copyright notice to 2024. |
| |
| 2024-05-06 Bob Duff <duff@adacore.com> |
| |
| * sem_ch10.adb (Expand_With_Clause): Misc cleanup. |
| (Install_Private_With_Clauses): Avoid installing a private |
| with_clause that comes from an instantiated generic |
| (it is marked as Implicit_With, but doesn't come from a parent |
| with). Fix typo in comment, and other minor cleanups. |
| |
| 2024-05-06 Ronan Desplanques <desplanques@adacore.com> |
| |
| * sem_util.adb (Build_Default_Subtype): Tweak source location |
| information. |
| |
| 2024-05-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch7.adb (Build_Finalizer.Process_Declarations): Do not call |
| Processing_Actions for simple protected objects if the profile is |
| restricted. |
| * exp_util.adb (Requires_Cleanup_Actions): Do not return True for |
| simple protected objects if the profile is restricted. |
| |
| 2024-05-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * fe.h: Remove unused declarations and add 'extern' to others. |
| |
| 2024-05-06 Piotr Trojanek <trojanek@adacore.com> |
| |
| * einfo-utils.adb (Is_Relaxed_Initialization_State): Remove. |
| * einfo-utils.ads (Is_Relaxed_Initialization_State): Remove. |
| * einfo.ads: Remove description of removed aspect. |
| * fe.h (Is_Relaxed_Initialization_State): Remove. |
| * sem_prag.adb (Analyze_Abstract_State): Remove support for |
| Relaxed_Initialization. |
| * sem_util.adb (Has_Relaxed_Initialization): Likewise. |
| * sem_util.ads (Has_Relaxed_Initialization): Likewise. |
| |
| 2024-05-06 Justin Squirek <squirek@adacore.com> |
| |
| * sem_warn.adb (Within_Postcondition): Add coverage for |
| Preconditions |
| |
| 2024-05-06 Justin Squirek <squirek@adacore.com> |
| |
| * sem_warn.adb (Within_Postcondition): Add/modify comments to |
| document various cases. |
| |
| 2024-05-06 Justin Squirek <squirek@adacore.com> |
| |
| * sem_warn.adb (Within_Postcondition): Renamed to |
| Within_Contract_Or_Predicate. |
| |
| 2024-05-06 Justin Squirek <squirek@adacore.com> |
| |
| * sem_warn.adb (Within_Postcondition): Add case to ignore |
| references within generated predicate function calls. |
| |
| 2024-05-06 Ronan Desplanques <desplanques@adacore.com> |
| |
| * hostparm.ads: Fix reference to RM clause. |
| |
| 2024-05-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnat/s-finpri.ads (Finalize_Master): Remove obsolete reference |
| in the description. |
| (Finalize_Object): Document the effects of repeated calls. |
| |
| 2024-05-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * einfo.ads (Finalization_Master_Node_Or_Object): Rename into... |
| (Finalization_Master_Node): ...this and adjust description. |
| * exp_ch4.adb (Process_Transient_In_Expression): Attach the object |
| to its master node here. |
| * exp_ch7.ads (Attach_Object_To_Master_Node): New declaration. |
| * exp_ch7.adb (Attach_Object_To_Master_Node): New procedure. |
| (Build_Finalizer.Process_Declarations): Examine the type of a |
| variable to spot master nodes. |
| (Build_Finalizer.Process_Object_Declaration): Look only at the |
| object and deal specifically with the case of a master node. |
| (Build_Finalizer.Build_BIP_Cleanup_Stmts): Move to child function |
| of Attach_Object_To_Master_Node. |
| (Build_Finalizer.Make_Address_For_Finalize): Move to... |
| (Insert_Actions_In_Scope_Around.Process_Transient_In_Scope): Attach |
| the object to its master node here. |
| (Make_Address_For_Finalize): ...here. |
| (Make_Master_Node_Declaration): Adjust to above renaming and set |
| Finalization_Master_Node only on the object. |
| (Make_Suppress_Object_Finalize_Call): Adjust to above renaming and |
| attach the object to its master node here. |
| * exp_util.adb (Requires_Cleanup_Actions): Examine the type of a |
| variable to spot master nodes. |
| * gen_il-fields.ads (Opt_Field_Enum): Adjust to above renaming. |
| * gen_il-gen-gen_entities.adb (Allocatable_Kind): Likewise. |
| * rtsfind.ads (RE_Id): Add RE_Chain_Node_To_Master. |
| (RE_Unit_Table): Add entry for RE_Chain_Node_To_Master. |
| * libgnat/s-finpri.ads (Chain_Node_To_Master): New declaration. |
| * libgnat/s-finpri.adb (Chain_Node_To_Master): New procedure. |
| (Attach_Object_To_Master): Call it. |
| (Finalize_Master): Do not raise Program_Error on null addresses. |
| (Finalize_Object): Add assertion that the address is not null. |
| |
| 2024-05-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnarl/s-taprob.ads (Protection): Add cross-reference to the |
| counterpart in System.Tasking.Protected_Objects.Entries. |
| * libgnarl/s-taskin.ads (Locking Rules): Replace PO_Simple by |
| Protected_Objects. |
| * libgnarl/s-tpoben.ads (Protection_Entries): Likewise. |
| |
| 2024-05-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_attr.adb (Expand_N_Attribute_Reference) <Finalization_Size>: |
| Return 0 if the prefix is a dereference of an access value subject |
| to the No_Heap_Finalization pragma. |
| |
| 2024-05-06 Ronan Desplanques <desplanques@adacore.com> |
| |
| * exp_imgv.adb (Append_Table_To): Remove reference to removed |
| field. |
| * gen_il-fields.ads: Remove Is_Enum_Array_Aggregate field. |
| * gen_il-gen-gen_nodes.adb: Likewise. |
| * sem_aggr.adb: Tweak warning emission condition. |
| * sinfo.ads: Remove documentation for Is_Enum_Array_Aggregate. |
| |
| 2024-05-06 Piotr Trojanek <trojanek@adacore.com> |
| |
| * make.adb (Scan_Make_Arg): Remove redundant condition. |
| * switch-b.adb (Scan_Debug_Switches): Likewise. |
| * switch-c.adb (Scan_Front_End_Switches): Likewise. |
| |
| 2024-05-06 Yannick Moy <moy@adacore.com> |
| |
| * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Add guard. |
| |
| 2024-05-06 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_pakd.adb (Create_Packed_Array_Impl_Type): Set associated |
| node for the packed array itype. |
| * exp_util.adb (Possible_Side_Effect_In_SPARK): Remove |
| workaround for a missing associated node. |
| |
| 2024-05-06 Richard Kenner <kenner@adacore.com> |
| |
| * freeze.adb (Freeze_Entity): When changing the convention of |
| primitive to match that of the type, only do this for user-specified |
| primitives. |
| |
| 2024-05-06 Bob Duff <duff@adacore.com> |
| |
| * exp_put_image.adb (Build_Image_Call): Call Set_Uses_Sec_Stack on |
| the current scope. We don't do this at all call sites, because |
| there are three; better to do it here. |
| |
| 2024-05-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_attr.adb (Analyze_Attribute) <Attribute_Round>: Also accept it |
| for ordinary fixed point types. |
| * doc/gnat_rm/implementation_defined_attributes.rst (Round): New. |
| * gnat_rm.texi: Regenerate. |
| |
| 2024-05-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Use No instead of |
| not Present. |
| |
| 2024-05-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch7.adb (Build_Finalizer.Process_Object_Declaration): Adjust |
| the Sloc of the master node declaration in the degenerate case. |
| |
| 2024-05-06 Yannick Moy <moy@adacore.com> |
| |
| * inline.adb (Call_Can_Be_Inlined_In_GNATprove_Mode): |
| Add case to prevent inlining of call. |
| * inline.ads: Likewise. |
| * sem_res.adb (Resolve_Call): Update comment and message. |
| |
| 2024-05-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-finpri$(objext). |
| * contracts.adb (Add_Call_Helper): Append freeze actions to the |
| class-wide type rather than the specific tagged type. |
| * einfo.ads (Finalization_Master_Node_Or_Node): Document. |
| (Status_Flag_Or_Transient_Decl): Remove. |
| * exp_attr.adb (Expand_N_Attribute_Reference) <Address>: Do not |
| adjust a return object of a class-wide interface type. |
| * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Add test that |
| Finalize_Address is not already present as a condition for calling |
| Make_Finalize_Address_Body. |
| (Expand_Freeze_Record_Type): Call Make_Finalize_Address_Body for |
| class-wide types of both regular tagged types and interface types. |
| * exp_ch4.adb (Process_Transients_In_Expression): Replace the use |
| of hooks with the use of master nodes. |
| * exp_ch6.adb (Build_Flag_For_Function): Delete. |
| (Expand_N_Extended_Return_Statement): Create a master node for the |
| return object if it does not exist. At the end of the statement, |
| generate a call to Suppress_Object_Finalize. |
| (Expand_Non_Function_Return): Likewise just before the return. |
| * exp_ch7.ads (Make_Master_Node_Declaration): Declare. |
| (Make_Suppress_Object_Finalize_Call): Likewise. |
| * exp_ch7.adb (Build_Finalization_Master): Defer generating the |
| call to Set_Finalize_Address until freezing if the Finalize_Address |
| procedure has not been analyzed yet. |
| (Build_Finalizer): Reimplement the expansion using a finalization |
| scope master per finalizer. |
| (Insert_Actions_In_Scope_Around): Replace finalization hooks by |
| master nodes and calls to the Finalize_Object. |
| (Make_Master_Node_Declaration): New procedure. |
| (Make_Suppress_Object_Finalize_Call): Likewise. |
| * exp_util.ads (Build_Transient_Object_Statements): Delete. |
| * exp_util.adb (Build_Transient_Object_Statements): Likewise. |
| (Requires_Cleanup_Actions): Remove obsolete code and return true |
| for master nodes. |
| * gen_il-fields.ads (Opt_Field_Enum): Add |
| Finalization_Master_Node_Or_Object and |
| remove Status_Flag_Or_Transient_Decl. |
| * gen_il-gen-gen_entities.adb (Allocatable_Kind): Likewise. |
| * rtsfind.ads (RTU_Id): Add System_Finalization_Primitives. |
| (RE_Id): Add entities of System_Finalization_Primitives. |
| (RE_Unit_Table): Add entries for them. |
| * sem_ch3.adb (Analyze_Object_Declaration): For an array whose type |
| has an unconstrained first subtype and a controlled component, set |
| the Is_Constr_Array_Subt_With_Bounds flag. |
| * libgnat/s-finpri.ads: New file. |
| * libgnat/s-finpri.adb: Likewise. |
| |
| 2024-05-06 Yannick Moy <moy@adacore.com> |
| |
| * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Adapt checking. |
| |
| 2024-04-26 Jakub Jelinek <jakub@redhat.com> |
| |
| * gnatvsn.ads: Bump Library_Version to 15. |
| |
| 2024-04-15 Piotr Trojanek <trojanek@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_aspects.rst |
| (Exceptional_Cases): Add description for aspect. |
| * doc/gnat_rm/implementation_defined_pragmas.rst |
| (Exceptional_Cases): Add description for pragma. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-03-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/113979 |
| * exp_ch4.adb (Expand_N_Allocator): In the subtype indication case, |
| call Apply_Predicate_Check on the resulting access value if needed. |
| |
| 2024-02-26 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/113893 |
| * exp_ch7.adb (Build_Anonymous_Master): Do not build the master |
| for a local designated type. |
| * exp_util.adb (Build_Allocate_Deallocate_Proc): Force Needs_Fin |
| to false if no finalization master is attached to an access type |
| and assert that it is anonymous in this case. |
| * sem_res.adb (Resolve_Allocator): Mention that the object might |
| not be finalized at all in the warning given when the type is an |
| anonymous access-to-controlled type. |
| |
| 2024-01-23 Ronan Desplanques <desplanques@adacore.com> |
| |
| * gnatvsn.ads: Update year. |
| |
| 2024-01-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Use the |
| TYPE_CANONICAL of types when it comes to aliasing. |
| * gcc-interface/utils.cc (relate_alias_sets): Likewise. |
| |
| 2024-01-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Use a |
| separate FLD local variable to hold the first field of the fat |
| pointer type being built. |
| * gcc-interface/gigi.h (relate_alias_sets): Remove GNU_ prefix on |
| the first two parameters. |
| * gcc-interface/utils.cc (relate_alias_sets): Likewise and adjust. |
| |
| 2024-01-09 Viljar Indus <indus@adacore.com> |
| |
| * sem_attr.adb: avoid marking a use of the Address attribute |
| as a modification of its prefix. |
| |
| 2024-01-09 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_aggr.adb (Expand_Container_Aggregate): Change "not Present" |
| tests to tests using "No" (in two places). |
| |
| 2024-01-09 Bob Duff <duff@adacore.com> |
| |
| * sem_ch12.adb (Instantiate_Type): Make the relevant error message |
| conditional upon "Ekind (A_Gen_T) /= E_Incomplete_Type". Misc |
| cleanup. |
| |
| 2024-01-09 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_aggr.adb (Expand_Container_Aggregate): Add code to determine |
| whether the aggregate is an indexed aggregate, setting a flag |
| (Is_Indexed_Aggregate), which is tested to have proper separation |
| of treatment for the Add_Unnamed |
| (for positional aggregates) and New_Indexed (for indexed |
| aggregates) cases. In the code generating associations for indexed |
| aggregates, remove the code for Expressions cases entirely, since |
| the code for indexed aggregates is governed by the presence of |
| Component_Associations, and add an assertion that Expressions must |
| be Empty. Also, exclude empty aggregates from entering that code. |
| |
| 2024-01-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * rtsfind.ads (RE_Id): Remove RE_Attach. |
| (RE_Unit_Table): Likewise. |
| * libgnat/s-finmas.ads (Attach): Delete. |
| * libgnat/s-finmas.adb (Attach): Likewise. |
| |
| 2024-01-09 Tucker Taft <taft@adacore.com> |
| |
| * pprint.adb (List_Name): Check for "Box_Present" when displaying |
| a list, and emit "<>" if returns True. |
| * sem_scil.adb (Check_SCIL_Node): Handle case when the type of a |
| parameter is from a package that was mentioned in a limited with |
| clause, and make no further checks, since this check routine does |
| not have all the logic to check such a usage. |
| |
| 2024-01-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * freeze.adb (Freeze_Expression.Has_Decl_In_List): Deal specifically |
| with itypes that are class-wide subtypes. |
| |
| 2024-01-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnat/s-atopri.ads (Atomic_Store): New generic procedure. |
| (Atomic_Store_8): New instantiated procedure. |
| (Atomic_Store_16): Likewise. |
| (Atomic_Store_32): Likewise. |
| (Atomic_Store_64): Likewise. |
| * libgnat/s-atopri__32.ads (Atomic_Store): New generic procedure. |
| (Atomic_Store_8): New instantiated procedure. |
| (Atomic_Store_16): Likewise. |
| (Atomic_Store_32): Likewise. |
| * gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Implement the |
| support for __atomic_store_n and __sync_bool_compare_and_swap_n. |
| * gcc-interface/gigi.h (list_second): New inline function. |
| |
| 2024-01-09 Javier Miranda <miranda@adacore.com> |
| |
| * sem_ch6.adb (Analyze_Subprogram_Specification): Do not replace |
| the type of the formals with its corresponding record in |
| init-procs. |
| * sem_ch9.adb (Analyze_Requeue): Add missing support to requeue to |
| a procedure that denotes a renaming of an entry. |
| |
| 2024-01-09 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_util.adb (Possible_Side_Effect_In_SPARK): Refine handling of |
| itype declarations. |
| |
| 2024-01-09 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_ch6.adb (Analyze_Subprogram_Specification): Set Is_Inlined |
| flag by default in GNATprove mode. |
| * sem_res.adb (Resolve_Call): Only look at flag which is cleared |
| when inlined subprogram is detected to be recursive. |
| |
| 2024-01-09 Piotr Trojanek <trojanek@adacore.com> |
| |
| * inline.adb (Establish_Actual_Mapping_For_Inlined_Call): |
| Remove detection of recursive calls. |
| |
| 2024-01-09 Piotr Trojanek <trojanek@adacore.com> |
| |
| * inline.adb (Cannot_Inline): Cleanup use of 'Length; remove |
| dead code. |
| |
| 2024-01-09 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_aggr.adb (Resolve_Container_Aggregate): Use "No". |
| * sem_ch8.adb (Find_Direct_Name): Likewise. |
| |
| 2024-01-09 Steve Baird <baird@adacore.com> |
| |
| * sem_util.adb (Enclosing_Declaration): Instead of returning a |
| subprogram specification node, return its parent (which is |
| presumably a subprogram declaration). |
| * contracts.adb (Insert_Stable_Property_Check): Remove code |
| formerly needed to compensate for incorrect behavior of |
| Sem_Util.Enclosing_Declaration. |
| * exp_attr.adb (In_Available_Context): Remove code formerly needed |
| to compensate for incorrect behavior of |
| Sem_Util.Enclosing_Declaration. |
| * sem_ch8.adb (Is_Actual_Subp_Of_Inst): Remove code formerly |
| needed to compensate for incorrect behavior of |
| Sem_Util.Enclosing_Declaration. |
| |
| 2024-01-09 Steve Baird <baird@adacore.com> |
| |
| * sem_ch8.adb (Check_Constrained_Object): Before updating the |
| subtype mark of an object renaming declaration by calling Rewrite, |
| first check whether the destination of the Rewrite call exists. |
| * atree.adb (Copy_Slots): Return without performing any updates if |
| Destination equals Empty or Error, or if Source equals Empty. Any |
| of those conditions indicates an error case. |
| * sem_ch12.adb (Analyze_Formal_Derived_Type): Avoid cascading |
| errors. |
| * sem_ch3.adb (Analyze_Number_Declaration): In an error case, do |
| not pass Error as destination in a call to Rewrite. |
| (Find_Type_Of_Subtype_Indic): In an error case, do not pass Error |
| or Empty as destination in a call to Rewrite. |
| |
| 2024-01-09 Joffrey Huguet <huguet@adacore.com> |
| |
| * libgnat/i-cstrin.ads (Update): Fix precondition. |
| |
| 2024-01-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_aggr.adb (Resolve_Extension_Aggregate): Remove the unreachable |
| call to Transform_BIP_Assignment as well as the procedure. |
| |
| 2024-01-09 Bob Duff <duff@adacore.com> |
| |
| * lib-xref.adb (Generate_Reference): Do not count it as a read |
| reference if we're calling a TSS. |
| |
| 2024-01-09 Piotr Trojanek <trojanek@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_aspects.rst, |
| doc/gnat_rm/implementation_defined_pragmas.rst: Add sections for |
| Always_Terminates. |
| * gnat-style.texi: Regenerate. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2024-01-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/78207 |
| * libgnat/g-regexp.ads: Fix outdated comment. |
| |
| 2024-01-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/112781 |
| * exp_ch6.ads (Is_Build_In_Place_Function): Adjust description. |
| * exp_ch6.adb (Is_True_Build_In_Place_Function_Call): Delete. |
| (Is_Function_Call_With_BIP_Formals): New predicate. |
| (Is_Build_In_Place_Function_Call): Restore original semantics. |
| (Expand_Call_Helper): Adjust conditions guarding the calls to |
| Add_Dummy_Build_In_Place_Actuals to above renaming. |
| (Expand_N_Extended_Return_Statement): Adjust to above renaming. |
| (Expand_Simple_Function_Return): Likewise. Move the assertion |
| to after the transformation into an extended return statement. |
| (Make_Build_In_Place_Call_In_Allocator): Remove unreachable code. |
| (Make_Build_In_Place_Call_In_Assignment): Likewise. |
| |
| 2024-01-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/112781 |
| * sem_ch12.adb (Instantiate_Type): Use Etype instead of Base_Type |
| consistently to retrieve the ancestor for a derived type. |
| * sem_ch4.adb (Analyze_Explicit_Dereference): Test Is_Access_Type |
| consistently before accessing Designated_Type. |
| |
| 2024-01-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/utils2.cc (build_binary_op) <EQ_EXPR>: Relax |
| assertion for regular pointer types. |
| |
| 2024-01-04 David Malcolm <dmalcolm@redhat.com> |
| |
| * gcc-interface/lang.opt.urls: New file, autogenerated by |
| regenerate-opt-urls.py. |
| |
| 2024-01-03 Jakub Jelinek <jakub@redhat.com> |
| |
| * gnat_ugn.texi: Bump @copying's copyright year. |
| * gnat_rm.texi: Likewise. |
| |
| Copyright (C) 2024 Free Software Foundation, Inc. |
| |
| Copying and distribution of this file, with or without modification, |
| are permitted in any medium without royalty provided the copyright |
| notice and this notice are preserved. |