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