diff options
52 files changed, 1403 insertions, 36 deletions
@@ -1,3 +1,7 @@ +2025-11-03  Sam James  <sam@gentoo.org> + +	* configure: Regenerate. +  2025-10-30  Robin Dapp  <rdapp@ventanamicro.com>  	* MAINTAINERS: Add myself to reviewers/maintainers. diff --git a/config/ChangeLog b/config/ChangeLog index 473d9a0..0a70422 100644 --- a/config/ChangeLog +++ b/config/ChangeLog @@ -1,3 +1,8 @@ +2025-11-03  Sam James  <sam@gentoo.org> + +	* clang-plugin.m4: Sync with binutils. +	* gcc-plugin.m4: Ditto. +  2025-10-02  H.J. Lu  <hjl.tools@gmail.com>  	* clang-plugin.m4: Synced from binutils-gdb. diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9a0d334..8091f67 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,212 @@ +2025-11-03  Uros Bizjak  <ubizjak@gmail.com> + +	PR target/122534 +	* config/i386/i386.md (@test<mode>_ccno_1): +	Use <general_szext_operand> as operand 1 predicate. +	(testqi_ccz_1): Use general_operand as operand 1 predicate. +	(*testdi_1): Use x86_64_szext_general_operand as operand 1 predicate. +	(*testqi_1_maybe_si): Use general_operand as operand 1 predicate. +	Add (n,*a) alternative to allow UV pairing for pentium processor. +	(*test<mode>_1): Use <general_operand> as operand 1 predicate. + +2025-11-03  Sam James  <sam@gentoo.org> + +	* configure: Regenerate. + +2025-11-03  Jeff Law  <jlaw@ventanamicro.com> + +	PR rtl-optimization/122536 +	* simplify-rtx.cc (simplify_context::simplify_binary_operation_1): Fix +	guard against variable bit extracts in recent change. + +2025-11-03  Thomas Schwinge  <tschwinge@baylibre.com> + +	PR ipa/122512 +	* symtab.cc: Fix 'static_assert'. + +2025-11-03  Loeka Rogge  <loeka@synopsys.com> + +	* config/arc/simdext.md(movv2hi_insn): Change order for movv2hi +	for big-endian. + +2025-11-03  Tobias Burnus  <tburnus@baylibre.com> + +	PR libgomp/122281 +	PR middle-end/105001 +	* gimple.cc (gimple_copy): Add missing unshare_expr for +	GIMPLE_OMP_ATOMIC_LOAD and GIMPLE_OMP_ATOMIC_STORE. + +2025-11-03  Alfie Richards  <alfie.richards@arm.com> + +	PR c/122202 +	* doc/extend.texi (target function attribute): Update to describe FMV +	behaviour. +	(target_version function attribute): New section. +	(target_clones attribute): Update to descrbe new behaviour with +	target_version. +	(Function Multiversioning): Update to discuss both target_version and +	target based FMV. + +2025-11-03  Kito Cheng  <kito.cheng@sifive.com> + +	* config/riscv/riscv.cc (riscv_flatten_aggregate_field): Skip +	empty unions and zero-length arrays when flattening aggregate +	fields for ABI classification. +	(riscv_pass_aggregate_in_fpr_pair_p): Refactor to use separate +	field parsing and emit ABI change warning for affected types. +	(riscv_pass_aggregate_in_fpr_and_gpr_p): Likewise. + +2025-11-03  Alfie Richards  <alfie.richards@arm.com> + +	* config/aarch64/aarch64-option-extensions.def (dit): New fmv feature. +	(dpb): New fmv feature. +	(dpb2): New fmv feature. +	(memtag): Change to also define an FMV feature. +	(ssbs): Change to also define an FMV feature. +	(bti): New fmv feature. +	* config/aarch64/aarch64.cc (FEAT_SSBS): Add macro. +	(FEAT_MEMTAG): Ditto. + +2025-11-03  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp> + +	* config/xtensa/xtensa.md (int_iterator ANY_ROUND): +	Specify "flag_unsafe_math_optimizations" in the condition of the +	UNSPEC_ROUND element. +	(int_attr c_round): Remove. +	(l<m_round>sfsi2, *l<m_round>sfsi2_2x, *l<m_round>sfsi2_scaled): +	Remove " && <c_round>" from the conditions. + +2025-11-03  Guo Jie  <guojie@loongson.cn> + +	* config/loongarch/loongarch.cc (loongarch_modes_tieable_p): +	Make MODE_FLOAT and MODE_INT tieable. +	* config/loongarch/loongarch.md: Adjust constraints. + +2025-11-03  Guo Jie  <guojie@loongson.cn> + +	* config/loongarch/loongarch.md +	(and_load_zero_extend<mode>): New combiner. +	* config/loongarch/predicates.md +	(mask_operand):	New predicate. + +2025-11-03  Guo Jie  <guojie@loongson.cn> + +	* config/loongarch/lasx.md (lasx_xvpermi_q_<LASX:mode>): +	Add new splitter for optimization. + +2025-11-03  Guo Jie  <guojie@loongson.cn> + +	* config/loongarch/loongarch-protos.h +	(loongarch_use_bstrins_bstrpick_for_and): New proto. +	* config/loongarch/loongarch.cc +	(loongarch_use_bstrins_bstrpick_for_and): Decide whether +	to optimize. +	(loongarch_rtx_costs): Adjust the cost of AND operation. +	* config/loongarch/loongarch.md +	(bstrins_bstrpick_for_and_imm<mode>): New insn_and_split. + +2025-11-03  Guo Jie  <guojie@loongson.cn> + +	* config/loongarch/loongarch.cc +	(loongarch_can_change_mode_class): Support for conversion +	between scalar INT and scalar FP. + +2025-11-03  Guo Jie  <guojie@loongson.cn> + +	* config/loongarch/loongarch.cc (loongarch_rtx_costs): +	Correct the cost of mulh.{w[u]|d[u]}. + +2025-11-03  Tamar Christina  <tamar.christina@arm.com> + +	PR tree-optimization/122475 +	* tree-vect-loop.cc (vectorizable_reduction): Check for neutral_op. + +2025-11-03  H.J. Lu  <hjl.tools@gmail.com> + +	PR target/90262 +	* config/i386/i386-expand.cc (ix86_expand_unroll_movmem): New. +	(ix86_expand_n_move_movmem): Likewise. +	(ix86_expand_load_movmem): Likewise. +	(ix86_expand_store_movmem): Likewise. +	(ix86_expand_n_overlapping_move_movmem): Likewise. +	(ix86_expand_less_move_movmem): Likewise. +	(ix86_expand_movmem): Likewise. +	* config/i386/i386-protos.h (ix86_expand_movmem): Likewise. +	* config/i386/i386.md (movmem<mode>): Likewise. + +2025-11-03  Shreya Munnangi  <smunnangi1@ventanamicro.com> + +	PR target/52345 +	* simplify-rtx.cc (simplify_relational_operation_1): Optimize boolean +	IOR equality tests. + +2025-11-03  chenxiaolong  <chenxiaolong@loongson.cn> + +	* config/loongarch/lasx.md (vec_cast<mode>): New template +	implemention. +	(vec_insert_lo_<mode>): Dito. +	(vec_insert_hi_<mode>): Dito. +	* config/loongarch/lasxintrin.h (defined): Test for adding +	the builtin function. +	(__lasx_cast_128_s): Dito. +	(__lasx_cast_128_d): Dito. +	(__lasx_cast_128): Dito. +	(__lasx_concat_128_s): Dito. +	(__lasx_concat_128_d): Dito. +	(__lasx_concat_128): Dito. +	(__lasx_extract_128_lo_s): Dito. +	(__lasx_extract_128_hi_s): Dito. +	(__lasx_extract_128_lo_d): Dito. +	(__lasx_extract_128_hi_d): Dito. +	(__lasx_extract_128_lo): Dito. +	(__lasx_extract_128_hi): Dito. +	(__lasx_insert_128_lo_s): Dito. +	(__lasx_insert_128_hi_s): Dito. +	(__lasx_insert_128_lo_d): Dito. +	(__lasx_insert_128_hi_d): Dito. +	(__lasx_insert_128_lo): Dito. +	(__lasx_insert_128_hi): Dito. +	* config/loongarch/loongarch-builtins.cc +	(CODE_FOR_lasx_extract_128_lo_s): Add builtins and register +	icode. +	(CODE_FOR_lasx_extract_128_hi_s): Dito. +	(CODE_FOR_lasx_extract_128_lo_d): Dito. +	(CODE_FOR_lasx_extract_128_hi_d): Dito. +	(CODE_FOR_lasx_extract_128_lo): Dito. +	(CODE_FOR_lasx_extract_128_hi): Dito. +	(CODE_FOR_lasx_insert_128_lo_s): Dito. +	(CODE_FOR_lasx_insert_128_hi_s): Dito. +	(CODE_FOR_lasx_insert_128_lo_d): Dito. +	(CODE_FOR_lasx_insert_128_hi_d): Dito. +	(CODE_FOR_lasx_insert_128_lo): Dito. +	(CODE_FOR_lasx_insert_128_hi): Dito. +	(CODE_FOR_lasx_concat_128_s): Dito. +	(CODE_FOR_lasx_concat_128_d): Dito. +	(CODE_FOR_lasx_concat_128): Dito. +	(CODE_FOR_lasx_cast_128_s): Dito. +	(CODE_FOR_lasx_cast_128_d): Dito. +	(CODE_FOR_lasx_cast_128): Dito. +	(loongarch_expand_builtin_direct): For the newly added +	insertion or extraction, construct the parallel parameter +	corresponding to the operand. +	* config/loongarch/loongarch-c.cc +	(loongarch_update_cpp_builtins): Define +	__loongarch_asx_sx_conv. +	* config/loongarch/loongarch-ftypes.def: Declare the type +	of the builtin function. +	* doc/extend.texi: Add document description. + +2025-11-03  Lulu Cheng  <chenglulu@loongson.cn> + +	* config/loongarch/loongarch.cc (loongarch_move_integer): +	No new virtual register is allocated during immediate load. + +2025-11-03  Lulu Cheng  <chenglulu@loongson.cn> + +	PR target/122477 +	* config/loongarch/loongarch.cc +	(loongarch_split_reduction): Added handling of scalar mode. +  2025-11-02  Jeff Law  <jlaw@ventanamicro.com>  	* config/riscv/bitmanip.md (rotrsi3): Use the sign extended form diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index 2bb6e40..23733dc 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20251103 +20251104 diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 86629f3..c99021a 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,403 @@ +2025-11-03  Eric Botcazou  <ebotcazou@adacore.com> + +	PR ada/78175 +	* sem_ch12.adb (Hide_Current_Scope): Deal with a transient scope +	as current scope. +	(Remove_Parent): Likewise. + +2025-11-03  Eric Botcazou  <ebotcazou@adacore.com> + +	PR ada/55324 +	* par-ch3.adb (P_Type_Declaration): Give a better error message +	for illegal "abstract" in a type derivation. + +2025-11-03  Piotr Trojanek  <trojanek@adacore.com> + +	* exp_util.adb (Get_Current_Value_Condition): Guard against orphaned +	references in rewritten if-expressions. + +2025-11-03  Eric Botcazou  <ebotcazou@adacore.com> + +	* doc/gnat_rm/representation_clauses_and_pragmas.rst (Address +	Clauses): Adjust description of alignment checks. +	* sem_ch13.adb (Address_Clause_Check_Record): Remove now unused +	Alignment_Checks_Suppressed component. +	(Alignment_Checks_Suppressed): Delete. +	(Analyze_Attribute_Definition_Clause) <Attribute_Alignment>: Do not +	consider the status of range checks to decide whether to generate an +	alignment check.  Always generate it if an alignment clause is also +	given for the entity. +	<Attribute_Alignment>: Generate an alignment check if an address +	clause is also given for the entity. +	(Register_Address_Clause_Check): Adjust for above removal. +	(Validate_Address_Clauses): Test the Check_Address_Alignment flag +	on the clause to decide whether to give the warning. +	* gnat_rm.texi: Regenerate. +	* gnat_ugn.texi: Regenerate. + +2025-11-03  Eric Botcazou  <ebotcazou@adacore.com> + +	* checks.adb (Apply_Address_Clause_Check): Adjust self-reference in +	the opening comment. + +2025-11-03  Piotr Trojanek  <trojanek@adacore.com> + +	* exp_util.adb (Find_In_Enclosing_Context): Refactor from handling of +	IF statements. +	(Get_Current_Value_Condition): Reuse IF code for WHILE statements. + +2025-11-03  Piotr Trojanek  <trojanek@adacore.com> + +	* exp_util.adb (Get_Current_Value_Condition): Rewrite to not rely on +	Sloc and End_Span of an if statement. + +2025-11-03  Piotr Trojanek  <trojanek@adacore.com> + +	* sem_util.adb (Update_Semantic_Fields): Preserve tree structure when +	copying scalar range of a discrete type. + +2025-11-03  Piotr Trojanek  <trojanek@adacore.com> + +	* inline.adb (Process_Sloc): Remove. + +2025-11-03  Eric Botcazou  <ebotcazou@adacore.com> + +	PR ada/61127 +	* sem_ch12.adb (Associations.Match_Positional): Remove the always +	false condition that guards the error on a positional box. + +2025-11-03  Gary Dismukes  <dismukes@adacore.com> + +	* sem_disp.adb (Check_Dispatching_Call): Remove "elsif" that does error +	checking for abstract tag-indeterminate calls (seems to be no longer +	needed). + +2025-11-03  Marc Poulhiès  <poulhies@adacore.com> + +	* exp_ch7.adb (Fixup_Inner_Scopes): Adjust to handle N_Freeze_Entity nodes. +	* exp_unst.adb (Get_Level): Assert when the function didn't find the +	nested level (indicates that inner sub has scope pointing higher in +	the stack) + +2025-11-03  Ronan Desplanques  <desplanques@adacore.com> + +	* fname.adb (Is_Predefined_File_Name): Tweak. + +2025-11-03  Bob Duff  <duff@adacore.com> + +	* gen_il-gen-gen_nodes.adb (N_Exception_Declaration): +	Change Expression from Sm to Sy, to match other Expression fields. +	* gen_il-gen.adb (Setter_Needs_Parent): +	Expression no longer needs to be a special case. +	(Check_For_Syntactic_Field_Mismatch): +	Do not exempt Expression from the Sy/Sm mixing rule. +	This was the last such case, so remove all the exemption code. +	* gen_il-gen.ads: Update comments to match new code. +	* sinfo.ads (N_Exception_Declaration): +	Document the meaning of the Expression field, because it +	doesn't follow from the RM syntax of exception_declaration. +	* exp_ch11.adb: Minor comment fixes. + +2025-11-03  Eric Botcazou  <ebotcazou@adacore.com> + +	* sem_ch13.adb (Analyze_Attribute_Definition_Clause) +	<Attribute_Size>: Tweak wording of existing error message for the +	size of all elementary objects.  Move error handling for aliased +	objects into the block for objects and give a similar error for +	(nonaliased) floating-point objects. + +2025-11-03  Piotr Trojanek  <trojanek@adacore.com> + +	* exp_attr.adb (Rewrite_Attribute_Proc_Call)<Attribute_Put_Image>: +	Fix call to Analyze. + +2025-11-03  Piotr Trojanek  <trojanek@adacore.com> + +	* sem_attr.adb (Resolve_Attribute): Remove rewriting of a slice +	address expression. + +2025-11-03  Viljar Indus  <indus@adacore.com> + +	* libgnat/a-cbmutr.adb (Put_Image): Fix the condition and starting point +	for printing the tree. +	* libgnat/a-cimutr.adb (Put_Image): Likewise. +	* libgnat/a-comutr.adb (Put_Image): Likewise. + +2025-11-03  Viljar Indus  <indus@adacore.com> + +	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Avoid disabling +	the expander for ignored ghost regions if Codepeer_Mode is active. +	* sem_ch7.adb (Analyze_Package_Body_Helper): Likewise. +	* freeze.adb (Freeze_Entity): Avoid triggering special freezing +	action for entities within ignored ghost regions in Codepeer_Mode. + +2025-11-03  Viljar Indus  <indus@adacore.com> + +	* ghost.adb (Is_Ok_Context): consider ghost prefix to always +	be a valid ghost context. + +2025-11-03  Denis Mazzucato  <mazzucato@adacore.com> + +	* errout.adb (Set_Msg_Node): Support N_Attribute_Reference and +	nodes that denotes direct attribute definitions. +	* exp_dbug.ads: Description for the encoding of direct attribute +	definitions as tick are hard to deal in entity names. +	* erroutc.adb +	(Set_Msg_Insertion_Name): Replace underscore between prefix and +	attribute name in direct attribute definitions; at this point we +	lost the semantic information of node type and we resort to match +	the string name as described in exp_dbug.adb. +	* exp_aggr.adb (Convert_To_Positional): Use Needs_Construction and +	Has_Default_Constructor. +	* exp_ch3.adb (Build_Record_Init_Proc) +	(Expand_N_Object_Declaration): Likewise. +	* exp_attr.adb (Expand_N_Attribute_Reference): Likewise. +	* exp_ch4.adb (Expand_N_Allocator): Likewise. +	* exp_ch6.adb +	(Prepend_Constructor_Procedure_Prologue): Use +	Is_Constructor_Procedure. +	(Make_Parent_Constructor_Call): Use +	Direct_Attribute_Definition_Name. +	* gen_il-fields.ads: Remove Constructor_List and Constructor_Name. +	* gen_il-gen-gen_entities.adb: Likewise. +	* einfo.ads (Needs_Construction): Add description. +	(Has_Delayed_Aspects): Adjust indentation. +	* par-ch13.adb (P_Attribute_Designators): Parse attribute +	designators. +	(P_Representation_Clause): Use P_Attribute_Designators. +	* par-ch6.adb (P_Subprogram): Support attribute designators in +	subprogram name. +	(Rewrites_Entity_If_Direct_Attribute_Def): Fix the specification +	node in case of direct attribute definitions. +	* par-endh.adb (Check_End, Same_Label): Likewise. +	* par.adb (P_Attribute_Designators): Specification. +	* sem_attr.adb (Analyze_Attribute): Error when using 'Constructor +	outside procedure specification. +	(Analyze_Attribute): Add error handling code. +	* sem_ch3.adb (Analyze_Aspect_Specifications): Likewise. +	* sem_ch6.adb (Analyze_Direct_Attribute_Definition): Handle direct +	attribute definitions. Add error handling code for the +	'Construction attribute and set constructor flags when necessary. +	(Analyze_Subprogram_Specification): Use +	Analyze_Direct_Attribute_Definition. +	* sem_util.adb (Direct_Attribute_Definition_Name): Name of +	entities created for direct attribute definitions. We emit an +	error if multiple attributes. +	(Is_Direct_Attribute_Subp_Spec): Helper to check whether a +	subprogram specification is a direct attribute definition. +	(Is_Constructor_Procedure): Helper to check whether a subprogram +	is a constructor procedure. +	(Has_Default_Constructor): Check whether the default constructor +	exists. +	(Default_Constructor): Not used anymore. +	(Parameter_Count): Likewise. +	(Process_End_Label): Get_Attribute_Reference_Name_String encodes +	also direct attribute definition end labels. +	* sem_util.ads: Likewise. +	* snames.ads-tmpl: Support for 'Constructor attribute. +	* snames.adb-tmpl (Is_Direct_Attribute_Definition_Name): Helper to +	check attributes allowed in direct attribute definitions. +	* aspects.ads: Remove constructor aspect. +	* sem_ch13.adb: Likewise. + +2025-11-03  Eric Botcazou  <ebotcazou@adacore.com> + +	PR ada/122161 +	* sem_ch12.adb: Improve the description of Check_Generic_Actuals, +	Restore_Private_Views and Switch_View, and alphabetize them. +	(Check_Generic_Actuals): Make actuals visible only if needed. +	(Install_Formal_Packages): Pass exact Is_Formal_Box parameter and +	remove call to Set_Is_Hidden. +	(Instantiate_Formal_Package): Use Next_Non_Pragma consistently in +	the loop computing the visibility of actuals. +	(Analyze_Package_Instantiation): Use named second parameter in the +	call to Restore_Private_Views. +	(Analyze_Subprogram_Instantiation): Likewise. +	(Instantiate_Package_Body): Likewise and for Check_Generic_Actuals. +	(Instantiate_Subprogram_Body): Likewise. +	(Restore_Env): Replace call to Restore_Private_Views. +	(Restore_Private_Views): Remove default value for second parameter +	and test of presence for first parameter.  Consistently clear the +	Is_Potentially_Use_Visible flag when setting the Is_Hidden flag. +	Remove call to Set_Is_Hidden for a formal package of the enclosing +	generic unit, if any. + +2025-11-03  Bob Duff  <duff@adacore.com> + +	* gen_il-gen.adb (N_Short_Circuit): +	Make Actions syntactic. +	(N_Case_Expression_Alternative): Likewise. +	* gen_il-gen-gen_nodes.adb (Create_Type): +	No longer exempt Actions from the syntactic/semantic ordering rule. +	(Check_For_Syntactic_Field_Mismatch): +	No longer exempt Actions from the syntactic/semantic mixing rule. +	* sinfo.ads (N_Compound_Statement): +	Add comment. + +2025-11-03  Marc Poulhiès  <poulhies@adacore.com> + +	* sem_aux.adb (Enclosing_Dynamic_Scope): Remove comment. + +2025-11-03  Bob Duff  <duff@adacore.com> + +	* einfo.ads: Remove unused fields. +	* gen_il-fields.ads: Likewise. +	* gen_il-gen-gen_entities.adb: Likewise. +	* gen_il-gen-gen_nodes.adb: Likewise. +	* sinfo.ads: Likewise. +	* gen_il-gen.adb (Compile): Remove obsolete comment. + +2025-11-03  Ronan Desplanques  <desplanques@adacore.com> + +	* libgnat/s-stratt__cheri.adb (W_80IEEE): New procedure. + +2025-11-03  Ronan Desplanques  <desplanques@adacore.com> + +	* libgnat/s-stratt.adb (W_80IEEE): Make constant local. + +2025-11-03  Bob Duff  <duff@adacore.com> + +	* einfo.ads (Has_Pragma_Controlled): Remove. +	(Is_Activation_Record): Document usage by llvm. +	* gen_il-fields.ads (Opt_Field_Enum): +	Remove Has_Pragma_Controlled. +	* gen_il-gen-gen_entities.adb (Access_Kind): +	Remove Has_Pragma_Controlled. +	* sem_prag.adb: +	Remove setting of Has_Pragma_Controlled. +	* sinfo.ads (Corresponding_Entry_Body): +	Document usage by codepeer. + +2025-11-03  Alexandre Oliva  <oliva@adacore.com> + +	* exp_ch3.adb (Expand_N_Object_Declaration): Insert ctor call +	after representation clauses. + +2025-11-03  Bob Duff  <duff@adacore.com> + +	* atree.adb (Same_Node_To_Fetch_From): +	Use Node_To_Fetch_From_If_Set, and remove handler. +	* einfo-utils.adb (Root_Type_If_Set): +	Return Empty if Base_Type_If_Set returns Empty. +	Return Empty if we find Etype (T) = Empty. +	(Underlying_Type): Use "Has_Non_Limited_View..." instead +	of "Present (Non_Limited_View...)", because the latter raises +	an exception when given the wrong Ekind. + +2025-11-03  Ronan Desplanques  <desplanques@adacore.com> + +	* gen_il-fields.ads (Is_IEEE_Extended_Precision): New flag. +	* gen_il-gen-gen_entities.adb: Likewise. +	* gen_il-internals.adb (Image): Likewise. +	* treepr.adb (Image): Likewise. +	* einfo.ads: Document new flag. +	* cstand.adb (Copy_Float_Type, Register_Float_Type): Use new flag. +	* libgnat/s-stratt.ads (W_80IEEE): New procedure. +	* libgnat/s-stratt.adb (W_80IEEE): Likewise. +	* exp_strm.adb (Get_Primitives): Select new procedure when +	appropriate. +	* rtsfind.ads: Register new runtime procedure. +	* sem_ch3.adb (Build_Derived_Numeric_Type, +	Analyze_Subtype_Declaration): Propagate new flag. + +2025-11-03  Eric Botcazou  <ebotcazou@adacore.com> + +	PR ada/122160 +	* sem_res.adb (Resolve_Op_Concat_Rest): Do not build the subtype of +	the second operand again if it has already been built. +	(Resolve_String_Literal): Do not defer the creation of the subtype +	for the right operand of a concatenation whose left operand may be +	the null string. + +2025-11-03  Gary Dismukes  <dismukes@adacore.com> + +	* exp_ch6.ads (Make_Build_In_Place_Call_In_Allocator): Simplify comment. +	* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Remove obsolete +	comment about not being able to allocate fixed-size controlled results +	on the caller side, and replace another obsolete comment with a simpler +	comment. Call Build_Allocate_Deallocate_Proc when the function doesn't +	need a BIPalloc formal to ensure that function results with controlled +	parts allocated on the caller side will be chained for finalization. +	(Make_Build_In_Place_Call_In_Object_Declaration): Call Needs_BIP_Collection +	on the function's Entity_Id rather than the function call. +	(Needs_BIP_Collection): If a BIP function doesn't need a BIPalloc formal +	then it doesn't need a BIP collection either; return False in that case. +	(Needs_BIP_Alloc_Form): Remove test of Needs_BIP_Collection. +	* exp_ch7.adb (Expand_Cleanup_Actions): Move test of Uses_Sec_Stack +	to be the first conjunct in setting of Needs_Sec_Stack_Mark, and put +	the other tests in a disjunction subsidiary to that. Improve preceding +	comment. + +2025-11-03  Bob Duff  <duff@adacore.com> + +	* gen_il-gen-gen_nodes.adb: Rename Default_Expression to be +	Expression. +	* gen_il-gen.adb (Check_For_Syntactic_Field_Mismatch): Do not +	exempt Default_Expression from the rule. +	* par-ch12.adb (P_Formal_Object_Declarations): Use renamed setter. +	* sem_ch12.adb (Default): Use renamed getter. +	(Analyze_Formal_Object_Declaration): Likewise. +	* sprint.adb (Sprint_Node_Actual): Use renamed getter. +	* sinfo.ads: Fix comments. + +2025-11-03  Bob Duff  <duff@adacore.com> + +	* style.adb (Check_Xtra_Parens_Precedence): +	Give warning based on Original_Node. + +2025-11-03  Eric Botcazou  <ebotcazou@adacore.com> + +	PR ada/122161 +	* sem_ch12.adb (Check_Generic_Actuals): Consistently set the +	Is_Potentially_Use_Visible flag on actuals whenever the Is_Hidden +	flag is cleared. +	(Restore_Private_Views): Clear the Is_Potentially_Use_Visible flag +	explicitly on the entities of an actual package. + +2025-11-03  Ronan Desplanques  <desplanques@adacore.com> + +	* libgnat/s-trasym.ads (Calling_Entity): New function. +	* libgnat/s-trasym.adb (Calling_Entity): Add dummy body. +	* libgnat/s-trasym__dwarf.adb (Calling_Entity): New function. +	(Symbolic_Traceback, Symbolic_Traceback_No_Lock, +	Module_Symbolic_Traceback, Multi_Module_Symbolic_Traceback): Add +	Subprg_Name_Only parameter and corresponding functionality. +	(Symbolic_Traceback_No_Lock): Fix typo in documentation comment. +	* libgnat/s-dwalin.ads (Symbolic_Traceback): Likewise. +	* libgnat/s-dwalin.adb (Symbolic_Traceback): Likewise. + +2025-11-03  Bob Duff  <duff@adacore.com> + +	* gen_il-gen-gen_nodes.adb (N_Op): +	Make Chars syntactic, and move it down into subclasses +	N_Binary_Op and N_Unary_Op. +	* gen_il-gen.adb (Create_Type): +	Do not exempt Chars from the ordering rule. +	(Exception_To_Inheritance_Rule): Exempt Chars from the +	inheritance rule. +	(Check_For_Syntactic_Field_Mismatch): +	Do not exempt Chars from the syntactic mismatch rule. +	This is the main point of this change. +	(Put_Make_Bodies): The Nmake functions for types in N_Op +	will now take a Chars parameter, which should always +	default to No_Name. This will be overwritten by the +	special-case Set_Chars call. Assert that it is in +	fact defaulted. +	* exp_ch4.adb (Expand_Array_Comparison): +	Use the Nkind instead of the Chars, which seems cleaner. +	Use a case instead of an elsif chain. +	* sem_attr.adb (Proper_Op): Minor cleanup. +	* sem_ch8.adb: Minor reformatting. +	* sem_res.adb (Operator_Kind): Tighten up the result subtype. + +2025-11-03  Viljar Indus  <indus@adacore.com> + +	* exp_attr.adb (Expand_N_Attribute_Reference): Use the +	First_Subtype when creating the procedure for stream +	attributes. +	(Get_Array_Stream_Item_Type): New method for calculating +	the type for the Item argument for streaming methods. +  2025-11-02  Eric Botcazou  <ebotcazou@adacore.com>  	* locales.c (is_iso_639_3): New static function. diff --git a/gcc/ada/par-ch3.adb b/gcc/ada/par-ch3.adb index 56c1b89..ee0958d 100644 --- a/gcc/ada/par-ch3.adb +++ b/gcc/ada/par-ch3.adb @@ -757,8 +757,7 @@ package body Ch3 is                       Typedef_Node := P_Derived_Type_Def_Or_Private_Ext_Decl;                       if Saved_Token = Tok_Synchronized then -                        if Nkind (Typedef_Node) = -                          N_Derived_Type_Definition +                        if Nkind (Typedef_Node) = N_Derived_Type_Definition                          then                             Error_Msg_N                               ("SYNCHRONIZED not allowed for record extension", @@ -864,7 +863,13 @@ package body Ch3 is              Set_Abstract_Present (Typedef_Node, Abstract_Present);           elsif Abstract_Present then -            Error_Msg ("ABSTRACT not allowed here, ignored", Abstract_Loc); +            if Nkind (Typedef_Node) = N_Derived_Type_Definition then +               Error_Msg +                 ("ABSTRACT allowed only for record extension, ignored", +                  Abstract_Loc); +            else +               Error_Msg ("ABSTRACT not allowed here, ignored", Abstract_Loc); +            end if;           end if;           Decl_Node := New_Node (N_Full_Type_Declaration, Type_Loc); diff --git a/gcc/ada/sem_ch12.adb b/gcc/ada/sem_ch12.adb index 702939a..363abe3 100644 --- a/gcc/ada/sem_ch12.adb +++ b/gcc/ada/sem_ch12.adb @@ -810,11 +810,11 @@ package body Sem_Ch12 is     --  the suffix is removed is added to Prims_List to restore them later.     procedure Install_Parent (P : Entity_Id; In_Body : Boolean := False); -   --  When compiling an instance of a child unit the parent (which is -   --  itself an instance) is an enclosing scope that must be made -   --  immediately visible. This procedure is also used to install the non- -   --  generic parent of a generic child unit when compiling its body, so -   --  that full views of types in the parent are made visible. +   --  When compiling an instance of a child unit, the parent P is an enclosing +   --  scope that must be made immediately visible. In_Body is True if this is +   --  done for an instance body and False for an instance spec. Note that the +   --  procedure does not insert P on the scope stack above the current scope, +   --  but instead pushes P and then pushes an extra copy of the current scope.     --  The functions Instantiate_... perform various legality checks and build     --  the declarations for instantiated generic parameters. In all of these @@ -930,7 +930,7 @@ package body Sem_Ch12 is     --  subprogram declaration N.     procedure Remove_Parent (In_Body : Boolean := False); -   --  Reverse effect after instantiation of child is complete +   --  Reverse Install_Parent's effect after instantiation of child is complete     function Renames_Standard_Subprogram (Subp : Entity_Id) return Boolean;     --  Determine whether Subp renames one of the subprograms defined in the @@ -11168,10 +11168,20 @@ package body Sem_Ch12 is     ------------------------     procedure Hide_Current_Scope is -      C : constant Entity_Id := Current_Scope; +      C : Entity_Id;        E : Entity_Id;     begin +      C := Current_Scope; + +      --  The analysis of the actual parameters may have created a transient +      --  scope after the extra copy of the current scope was pushed onto the +      --  stack, so we need to skip it. + +      if Scope_Is_Transient then +         C := Scope (C); +      end if; +        Set_Is_Hidden_Open_Scope (C);        E := First_Entity (C); @@ -11194,7 +11204,6 @@ package body Sem_Ch12 is           Set_Is_Immediately_Visible (C, False);           Append_Elmt (C, Hidden_Entities);        end if; -     end Hide_Current_Scope;     -------------- @@ -16948,20 +16957,33 @@ package body Sem_Ch12 is     procedure Remove_Parent (In_Body : Boolean := False) is        S : Entity_Id := Current_Scope; -      --  S is the scope containing the instantiation just completed. The scope -      --  stack contains the parent instances of the instantiation, followed by -      --  the original S. +      --  S is the extra copy of the current scope that has been pushed by +      --  Install_Parent. The scope stack next contains the parents of the +      --  instance followed by the original S.        Cur_P  : Entity_Id;        E      : Entity_Id; -      P      : Entity_Id;        Hidden : Elmt_Id; +      P      : Entity_Id; +      SE     : Scope_Stack_Entry;     begin -      --  After child instantiation is complete, remove from scope stack the -      --  extra copy of the current scope, and then remove parent instances. -        if not In_Body then +         --  If the analysis of the actual parameters has created a transient +         --  scope after the extra copy of the current scope was pushed onto +         --  the stack, we first need to save this transient scope and pop it. + +         if Scope_Is_Transient then +            SE := Scope_Stack.Table (Scope_Stack.Last); +            Scope_Stack.Decrement_Last; +            S := Current_Scope; +         else +            SE := (Is_Transient => False, others => <>); +         end if; + +         --  After child instantiation is complete, remove from scope stack the +         --  extra copy of the current scope, and then remove the parents. +           Pop_Scope;           while Current_Scope /= S loop @@ -17045,6 +17067,12 @@ package body Sem_Ch12 is              Next_Elmt (Hidden);           end loop; +         --  Restore the transient scope that was popped on entry, if any + +         if SE.Is_Transient then +            Scope_Stack.Append (SE); +         end if; +        else           --  Each body is analyzed separately, and there is no context that           --  needs preserving from one body instance to the next, so remove all diff --git a/gcc/analyzer/checker-event.cc b/gcc/analyzer/checker-event.cc index 790ebc7..3e54c2a 100644 --- a/gcc/analyzer/checker-event.cc +++ b/gcc/analyzer/checker-event.cc @@ -833,6 +833,14 @@ start_cfg_edge_event::should_print_expr_p (tree expr)    return false;  } +/* class catch_cfg_edge_event : public cfg_edge_event.  */ + +diagnostics::paths::event::meaning +catch_cfg_edge_event::get_meaning () const +{ +  return meaning (verb::catch_); +} +  /* class call_event : public superedge_event.  */  /* call_event's ctor.  */ @@ -1034,6 +1042,12 @@ setjmp_event::print_desc (pretty_printer &pp) const  	     get_user_facing_name (m_setjmp_call));  } +diagnostics::paths::event::meaning +setjmp_event::get_meaning () const +{ +  return meaning (verb::setjmp_); +} +  /* Implementation of checker_event::prepare_for_emission vfunc for setjmp_event.     Record this setjmp's event ID into the path, so that rewind events can @@ -1066,6 +1080,12 @@ rewind_event::get_setjmp_caller () const    return m_eedge->m_dest->get_function ()->decl;  } +diagnostics::paths::event::meaning +rewind_event::get_meaning () const +{ +  return meaning (verb::longjmp_); +} +  /* rewind_event's ctor.  */  rewind_event::rewind_event (const exploded_edge *eedge, @@ -1163,6 +1183,12 @@ rewind_to_setjmp_event::prepare_for_emission (checker_path *path,  /* class throw_event : public checker_event.  */ +diagnostics::paths::event::meaning +throw_event::get_meaning () const +{ +  return meaning (verb::throw_); +} +  /* class explicit_throw_event : public throw_event.  */  void  explicit_throw_event::print_desc (pretty_printer &pp) const @@ -1205,6 +1231,12 @@ unwind_event::print_desc (pretty_printer &pp) const      pp_printf (&pp, "unwinding stack frame");  } +diagnostics::paths::event::meaning +unwind_event::get_meaning () const +{ +  return meaning (verb::unwind_); +} +  /* class warning_event : public checker_event.  */  /* Implementation of diagnostics::paths::event::print_desc vfunc for diff --git a/gcc/analyzer/checker-event.h b/gcc/analyzer/checker-event.h index 909e388..fc51be1 100644 --- a/gcc/analyzer/checker-event.h +++ b/gcc/analyzer/checker-event.h @@ -539,6 +539,8 @@ public:        pp_string (&pp, "...catching exception here");    } +  meaning get_meaning () const override; +  private:    tree m_type;  }; @@ -666,6 +668,8 @@ public:    void print_desc (pretty_printer &pp) const final override; +  meaning get_meaning () const override; +    void prepare_for_emission (checker_path *path,  			     pending_diagnostic *pd,  			     diagnostics::paths::event_id_t emission_id) final override; @@ -688,6 +692,8 @@ public:    tree get_setjmp_caller () const;    const exploded_edge *get_eedge () const { return m_eedge; } +  meaning get_meaning () const override; +   protected:    rewind_event (const exploded_edge *eedge,  		enum event_kind kind, @@ -754,6 +760,8 @@ public:    {    } +  meaning get_meaning () const override; +  protected:    const exploded_node *m_enode;    const gcall &m_throw_call; @@ -817,6 +825,8 @@ public:    {    } +  meaning get_meaning () const override; +    void print_desc (pretty_printer &pp) const final override;    int m_num_frames; diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 7ec028c..4a2232e 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -12213,7 +12213,7 @@  	(compare:CCNO  	  (and:SWI48  	    (match_operand:SWI48 0 "nonimmediate_operand") -	    (match_operand:SWI48 1 "<nonmemory_szext_operand>")) +	    (match_operand:SWI48 1 "<general_szext_operand>"))  	  (const_int 0)))])  (define_expand "testqi_ccz_1" @@ -12221,7 +12221,7 @@  	(compare:CCZ  	  (and:QI  	    (match_operand:QI 0 "nonimmediate_operand") -	    (match_operand:QI 1 "nonmemory_operand")) +	    (match_operand:QI 1 "general_operand"))  	  (const_int 0)))])  (define_insn "*testdi_1" @@ -12229,7 +12229,7 @@  	(compare  	  (and:DI  	    (match_operand:DI 0 "nonimmediate_operand" "%r,rm") -	    (match_operand:DI 1 "x86_64_szext_nonmemory_operand" "Z,re")) +	    (match_operand:DI 1 "x86_64_szext_general_operand" "Z,re"))  	 (const_int 0)))]    "TARGET_64BIT     && ix86_match_ccmode @@ -12242,7 +12242,8 @@  	 (satisfies_constraint_Z (operands[1])  	  && (!CONST_INT_P (operands[1])  	      || val_signbit_known_set_p (SImode, INTVAL (operands[1])))) -	 ? CCZmode : CCNOmode)" +	 ? CCZmode : CCNOmode) +   && !(MEM_P (operands[0]) && MEM_P (operands[1]))"    "@     test{l}\t{%k1, %k0|%k0, %k1}     test{q}\t{%1, %0|%0, %1}" @@ -12253,12 +12254,13 @@    [(set (reg FLAGS_REG)  	(compare  	  (and:QI -	    (match_operand:QI 0 "nonimmediate_operand" "%qm,qm,r") -	    (match_operand:QI 1 "nonmemory_operand" "q,n,n")) +	    (match_operand:QI 0 "nonimmediate_operand" "%qm,*a,qm,r") +	    (match_operand:QI 1 "general_operand" "q,n,n,n"))  	  (const_int 0)))]    "ix86_match_ccmode (insn,  		      CONST_INT_P (operands[1]) -		      && INTVAL (operands[1]) >= 0 ? CCNOmode : CCZmode)" +		      && INTVAL (operands[1]) >= 0 ? CCNOmode : CCZmode) +   && !(MEM_P (operands[0]) && MEM_P (operands[1]))"  {    if (get_attr_mode (insn) == MODE_SI)      { @@ -12270,7 +12272,7 @@  }    [(set_attr "type" "test")     (set (attr "mode") -     (cond [(eq_attr "alternative" "2") +     (cond [(eq_attr "alternative" "3")  	      (const_string "SI")  	    (and (match_test "optimize_insn_for_size_p ()")  		 (and (match_operand 0 "ext_QIreg_operand") @@ -12278,16 +12280,17 @@  	      (const_string "SI")  	   ]  	   (const_string "QI"))) -   (set_attr "pent_pair" "uv,np,np")]) +   (set_attr "pent_pair" "uv,uv,np,np")])  (define_insn "*test<mode>_1"    [(set (reg FLAGS_REG)  	(compare  	  (and:SWI124  	    (match_operand:SWI124 0 "nonimmediate_operand" "%<r>m,*a,<r>m") -	    (match_operand:SWI124 1 "<nonmemory_szext_operand>" "<r>,<i>,<i>")) -	 (const_int 0)))] -  "ix86_match_ccmode (insn, CCNOmode)" +	    (match_operand:SWI124 1 "<general_operand>" "<r>,<i>,<i>")) +	  (const_int 0)))] +  "ix86_match_ccmode (insn, CCNOmode) +   && !(MEM_P (operands[0]) && MEM_P (operands[1]))"    "test{<imodesuffix>}\t{%1, %0|%0, %1}"    [(set_attr "type" "test")     (set_attr "mode" "<MODE>") diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 08d1fa7..9a8c394 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,23 @@ +2025-11-03  Jason Merrill  <jason@redhat.com> + +	* name-lookup.cc (name_lookup::adl_class_fns): Include all +	namespace-scope friends. + +2025-11-03  Jason Merrill  <jason@redhat.com> + +	* name-lookup.cc (pushdecl): Discard built-in sooner. + +2025-11-03  Jason Merrill  <jason@redhat.com> + +	* module.cc (trees_in::decl_value): Don't add an instantiation to +	CLASSTYPE_MEMBER_VEC. + +2025-11-03  Jason Merrill  <jason@redhat.com> + +	* module.cc (module_state::write_namespaces): Handle +	TREE_DEPRECATED. +	(module_state::read_namespaces): Likewise. +  2025-11-02  Nathaniel Shead  <nathanieloshead@gmail.com>  	PR c++/122421 diff --git a/gcc/cp/decl2.cc b/gcc/cp/decl2.cc index 0073f83..9e135af 100644 --- a/gcc/cp/decl2.cc +++ b/gcc/cp/decl2.cc @@ -2885,7 +2885,12 @@ min_vis_expr_r (tree *tp, int */*walk_subtrees*/, void *data)  	  break;  	}      addressable: -      if (! TREE_PUBLIC (t)) +      if (decl_linkage (t) == lk_none) +	tpvis = type_visibility (TREE_TYPE (t)); +      /* Decls that have had their visibility constrained will report +	 as external linkage, but we still want to transitively constrain +	 if we refer to them, so just check TREE_PUBLIC instead.  */ +      else if (!TREE_PUBLIC (t))  	tpvis = VISIBILITY_ANON;        else  	tpvis = DECL_VISIBILITY (t); diff --git a/gcc/cp/parser.cc b/gcc/cp/parser.cc index 5836122..f642900 100644 --- a/gcc/cp/parser.cc +++ b/gcc/cp/parser.cc @@ -83,7 +83,7 @@ enum non_integral_constant {    NIC_FUNC_CALL,    /* an increment */    NIC_INC, -  /* an decrement */ +  /* a decrement */    NIC_DEC,    /* an array reference */    NIC_ARRAY_REF, @@ -3782,7 +3782,7 @@ cp_parser_non_integral_constant_expression (cp_parser  *parser,  		       "cannot appear in a constant-expression");  		return true;  	      case NIC_DEC: -		error ("an decrement " +		error ("a decrement "  		       "cannot appear in a constant-expression");  		return true;  	      case NIC_ARRAY_REF: diff --git a/gcc/diagnostics/paths.cc b/gcc/diagnostics/paths.cc index 824b810..8e29dae 100644 --- a/gcc/diagnostics/paths.cc +++ b/gcc/diagnostics/paths.cc @@ -97,6 +97,22 @@ event::meaning::maybe_get_verb_str (enum verb v)        return "branch";      case verb::danger:        return "danger"; + +    /* Special control flow operations. + +       These are not part of SARIF v2.1.0 section 3.38.8, but the +       spec allows other values; see +       https://github.com/oasis-tcs/sarif-spec/issues/735  */ +    case verb::throw_: +      return "throw"; +    case verb::catch_: +      return "catch"; +    case verb::unwind_: +      return "unwind"; +    case verb::setjmp_: +      return "setjmp"; +    case verb::longjmp_: +      return "longjmp";      }  } diff --git a/gcc/diagnostics/paths.h b/gcc/diagnostics/paths.h index d30c420..f7dff8d 100644 --- a/gcc/diagnostics/paths.h +++ b/gcc/diagnostics/paths.h @@ -96,7 +96,14 @@ class event      return_,      branch, -    danger +    danger, + +    // Special control flow operations: +    throw_, +    catch_, +    unwind_, // unwinding stack frame(s) during exception-handling +    setjmp_, +    longjmp_    };    enum class noun    { @@ -131,6 +138,10 @@ class event        m_property (property::unknown)      {      } +    meaning (enum verb verb) +    : m_verb (verb), m_noun (noun::unknown), m_property (property::unknown) +    { +    }      meaning (enum verb verb, enum noun noun)      : m_verb (verb), m_noun (noun), m_property (property::unknown)      { diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 5501bca..ffaf520 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,10 @@ +2025-11-03  Steve Kargl  <kargls@comcast.net> + +	PR fortran/122513 +	* resolve.cc (check_default_none_expr): Do not allow an +	iterator in a locality spec. Allow a named constant to be +	used within the loop. +  2025-11-01  Harald Anlauf  <anlauf@gmx.de>  	PR fortran/78640 diff --git a/gcc/simplify-rtx.cc b/gcc/simplify-rtx.cc index 53592d2..59a86c6 100644 --- a/gcc/simplify-rtx.cc +++ b/gcc/simplify-rtx.cc @@ -4184,6 +4184,46 @@ simplify_context::simplify_binary_operation_1 (rtx_code code,  		 not do an AND.  */  	      if ((nzop0 & ~val1) == 0)  		return op0; + +	      /* Canonicalize (and (subreg (lshiftrt X shift)) mask) into +		 (and (lshiftrt (subreg X) shift) mask). + +		 Keeps shift and AND in the same mode, improving recognition. +		 Only applied when subreg is a lowpart, shift is valid, +		 and no precision is lost.  */ +	      if (SUBREG_P (op0) && subreg_lowpart_p (op0) +		  && GET_CODE (XEXP (op0, 0)) == LSHIFTRT +		  && CONST_INT_P (XEXP (XEXP (op0, 0), 1)) +		  && INTVAL (XEXP (XEXP (op0, 0), 1)) >= 0 +		  && INTVAL (XEXP (XEXP (op0, 0), 1)) < HOST_BITS_PER_WIDE_INT +		  && ((INTVAL (XEXP (XEXP (op0, 0), 1)) +		      + floor_log2 (val1)) +		      < GET_MODE_PRECISION (as_a <scalar_int_mode> (mode)))) +		{ +		  tem = XEXP (XEXP (op0, 0), 0); +		  if (SUBREG_P (tem)) +		    { +		      if (subreg_lowpart_p (tem)) +			tem = SUBREG_REG (tem); +		      else +			tem = NULL_RTX; +		    } +		  if (tem != NULL_RTX) +		    { +		      offset = subreg_lowpart_offset (mode, GET_MODE (tem)); +		      tem = simplify_gen_subreg (mode, tem, GET_MODE (tem), +						 offset); +		      if (tem) +			{ +			  unsigned shiftamt = INTVAL (XEXP (XEXP (op0, 0), 1)); +			  rtx shiftamtrtx = gen_int_shift_amount (mode, +								  shiftamt); +			  op0 = simplify_gen_binary (LSHIFTRT, mode, tem, +						     shiftamtrtx); +			  return simplify_gen_binary (AND, mode, op0, op1); +			} +		    } +		}  	    }  	  nzop1 = nonzero_bits (trueop1, mode);  	  /* If we are clearing all the nonzero bits, the result is zero.  */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 452c9c9..7a2f15e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,210 @@ +2025-11-03  Eric Botcazou  <ebotcazou@adacore.com> + +	* gnat.dg/generic_inst15.adb: New test. +	* gnat.dg/generic_inst15_pkg-g.ads: New helper. +	* gnat.dg/generic_inst15_pkg.ads: Likewise. + +2025-11-03  Eric Botcazou  <ebotcazou@adacore.com> + +	* gnat.dg/specs/abstract1.ads: New test. + +2025-11-03  Uros Bizjak  <ubizjak@gmail.com> + +	PR target/122534 +	* gcc.target/i386/pr122534.c: New test. + +2025-11-03  Robin Dapp  <rdapp.gcc@gmail.com> + +	* gcc.target/riscv/rvv/base/pr119115.c: Add -std=gnu99. + +2025-11-03  Steve Kargl  <kargls@comcast.net> + +	PR fortran/122513 +	* gfortran.dg/pr122513.f90: New test. + +2025-11-03  Jason Merrill  <jason@redhat.com> + +	* g++.dg/lookup/koenig16.C: New test. +	* g++.dg/modules/adl-11_a.C: New file. +	* g++.dg/modules/adl-11_b.C: New file. + +2025-11-03  Jason Merrill  <jason@redhat.com> + +	* g++.dg/modules/builtin-9_a.C: New test. +	* g++.dg/modules/builtin-9_b.C: New test. + +2025-11-03  Jason Merrill  <jason@redhat.com> + +	* g++.dg/modules/clone-5_a.C: New test. +	* g++.dg/modules/clone-5_b.C: New test. + +2025-11-03  Jason Merrill  <jason@redhat.com> + +	* g++.dg/modules/namespace-15_a.C: New test. +	* g++.dg/modules/namespace-15_b.C: New test. + +2025-11-03  Georg-Johann Lay  <avr@gjlay.de> + +	* gcc.target/avr/torture/pr92606.c: Use LPM even if LPMx +	is available. + +2025-11-03  Loeka Rogge  <loeka@synopsys.com> + +	* gcc.target/arc/movv2hi-be.c: New test. + +2025-11-03  Kito Cheng  <kito.cheng@sifive.com> + +	* g++.dg/abi/param2.C: Add -Wno-psabi option for RISC-V. +	* g++.target/riscv/abi/empty-struct+union-1.cc: New test. +	* g++.target/riscv/abi/empty-struct+union-2.cc: New test. +	* g++.target/riscv/abi/empty-struct+union-3.cc: New test. +	* g++.target/riscv/abi/empty-struct+union-4.cc: New test. +	* g++.target/riscv/abi/empty-struct-1.cc: New test. +	* g++.target/riscv/abi/empty-struct-2.cc: New test. +	* g++.target/riscv/abi/empty-struct-3.cc: New test. +	* g++.target/riscv/abi/empty-struct-4.cc: New test. +	* g++.target/riscv/abi/empty-struct-5.cc: New test. +	* g++.target/riscv/abi/empty-struct-6.cc: New test. +	* g++.target/riscv/abi/empty-struct-7.cc: New test. +	* g++.target/riscv/abi/empty-struct-8.cc: New test. +	* g++.target/riscv/abi/empty-struct-9.cc: New test. +	* g++.target/riscv/abi/empty-struct-10.cc: New test. +	* g++.target/riscv/abi/empty-struct-11.cc: New test. +	* g++.target/riscv/abi/empty-struct-12.cc: New test. +	* g++.target/riscv/abi/empty-union-1.cc: New test. +	* g++.target/riscv/abi/empty-union-2.cc: New test. +	* g++.target/riscv/abi/empty-union-3.cc: New test. +	* g++.target/riscv/abi/empty-union-4.cc: New test. +	* g++.target/riscv/riscv.exp: Add abi subdirectory. +	* gcc.dg/compat/pr83487-1_x.c: Add -Wno-psabi option for RISC-V. +	* gcc.dg/compat/pr83487-1_y.c: Likewise. +	* gcc.dg/compat/pr83487-2_x.c: Likewise. +	* gcc.dg/compat/pr83487-2_y.c: Likewise. +	* gcc.dg/torture/pr28814.c: Likewise. +	* gcc.target/riscv/abi/empty-struct+union-1.c: New test. +	* gcc.target/riscv/abi/empty-struct+union-2.c: New test. +	* gcc.target/riscv/abi/empty-struct+union-3.c: New test. +	* gcc.target/riscv/abi/empty-struct+union-4.c: New test. +	* gcc.target/riscv/abi/empty-struct-1.c: New test. +	* gcc.target/riscv/abi/empty-struct-2.c: New test. +	* gcc.target/riscv/abi/empty-struct-3.c: New test. +	* gcc.target/riscv/abi/empty-struct-4.c: New test. +	* gcc.target/riscv/abi/empty-struct-5.c: New test. +	* gcc.target/riscv/abi/empty-struct-6.c: New test. +	* gcc.target/riscv/abi/empty-struct-7.c: New test. +	* gcc.target/riscv/abi/empty-struct-8.c: New test. +	* gcc.target/riscv/abi/empty-struct-9.c: New test. +	* gcc.target/riscv/abi/empty-struct-10.c: New test. +	* gcc.target/riscv/abi/empty-struct-11.c: New test. +	* gcc.target/riscv/abi/empty-struct-12.c: New test. +	* gcc.target/riscv/abi/empty-union-1.c: New test. +	* gcc.target/riscv/abi/empty-union-2.c: New test. +	* gcc.target/riscv/abi/empty-union-3.c: New test. +	* gcc.target/riscv/abi/empty-union-4.c: New test. +	* gcc.target/riscv/riscv.exp: Add abi subdirectory. + +2025-11-03  Alfie Richards  <alfie.richards@arm.com> + +	PR target/122405 +	* g++.target/aarch64/mv-cpu-features.C: Add HWCAP_ATOMICS and +	HWCAP2_RNG defines. + +2025-11-03  Alfie Richards  <alfie.richards@arm.com> + +	* gcc.target/aarch64/fmv_priority.in: Update for new features. +	* gcc.target/aarch64/fmv_priority1.c: Ditto. +	* gcc.target/aarch64/fmv_priority2.c: Ditto. + +2025-11-03  Eric Botcazou  <ebotcazou@adacore.com> + +	* gnat.dg/vect19.ads, gnat.dg/vect19.adb: New test. +	* gnat.dg/vect19_pkg.ads, gnat.dg/vect19_pkg.adb: New helper. + +2025-11-03  Guo Jie  <guojie@loongson.cn> + +	* gcc.target/loongarch/mode-tieable-opt.c: New test. + +2025-11-03  Guo Jie  <guojie@loongson.cn> + +	* gcc.target/loongarch/mem-and-mask-opt.c: New test. + +2025-11-03  Guo Jie  <guojie@loongson.cn> + +	* gcc.target/loongarch/vec_pack_unpack_256.c: Adjust to changed +	lasx_xvpermi_q_<LASX:mode> template. +	* gcc.target/loongarch/vector/lasx/lasx-builtin.c: Ditto. +	* gcc.target/loongarch/lasx-xvpermi_q-opt.c: New test. + +2025-11-03  Guo Jie  <guojie@loongson.cn> + +	* gcc.target/loongarch/and-large-immediate-opt.c: New test. + +2025-11-03  Guo Jie  <guojie@loongson.cn> + +	* gcc.target/loongarch/extendsidi2-combine.c: New test. +	* gcc.target/loongarch/spill-less.c: New test. + +2025-11-03  Guo Jie  <guojie@loongson.cn> + +	* gcc.target/loongarch/mulh_wu.c: New test. + +2025-11-03  Tamar Christina  <tamar.christina@arm.com> + +	PR tree-optimization/122475 +	* gcc.dg/vect/pr122475.c: New test. +	* gcc.target/aarch64/sve/vect-reduc-bool-19.c: New test. +	* gcc.target/aarch64/sve/vect-reduc-bool-20.c: New test. + +2025-11-03  H.J. Lu  <hjl.tools@gmail.com> + +	* gcc.target/i386/builtin-memmove-1a.c: New test. +	* gcc.target/i386/builtin-memmove-1b.c: Likewise. +	* gcc.target/i386/builtin-memmove-1c.c: Likewise. +	* gcc.target/i386/builtin-memmove-1d.c: Likewise. +	* gcc.target/i386/builtin-memmove-2a.c: Likewise. +	* gcc.target/i386/builtin-memmove-2b.c: Likewise. +	* gcc.target/i386/builtin-memmove-2c.c: Likewise. +	* gcc.target/i386/builtin-memmove-2d.c: Likewise. +	* gcc.target/i386/builtin-memmove-3a.c: Likewise. +	* gcc.target/i386/builtin-memmove-3b.c: Likewise. +	* gcc.target/i386/builtin-memmove-3c.c: Likewise. +	* gcc.target/i386/builtin-memmove-4a.c: Likewise. +	* gcc.target/i386/builtin-memmove-4b.c: Likewise. +	* gcc.target/i386/builtin-memmove-4c.c: Likewise. +	* gcc.target/i386/builtin-memmove-5a.c: Likewise. +	* gcc.target/i386/builtin-memmove-5b.c: Likewise. +	* gcc.target/i386/builtin-memmove-5c.c: Likewise. +	* gcc.target/i386/builtin-memmove-6.c: Likewise. +	* gcc.target/i386/builtin-memmove-7.c: Likewise. +	* gcc.target/i386/builtin-memmove-8.c: Likewise. +	* gcc.target/i386/builtin-memmove-9.c: Likewise. +	* gcc.target/i386/builtin-memmove-10.c: Likewise. +	* gcc.target/i386/builtin-memmove-11a.c: Likewise. +	* gcc.target/i386/builtin-memmove-11b.c: Likewise. +	* gcc.target/i386/builtin-memmove-11c.c: Likewise. +	* gcc.target/i386/builtin-memmove-12.c: Likewise. +	* gcc.target/i386/builtin-memmove-13.c: Likewise. +	* gcc.target/i386/builtin-memmove-14.c: Likewise. +	* gcc.target/i386/builtin-memmove-15.c: Likewise. + +2025-11-03  Shreya Munnangi  <smunnangi1@ventanamicro.com> + +	PR target/52345 +	* gcc.target/riscv/pr52345.c: Add new test cases. + +2025-11-03  chenxiaolong  <chenxiaolong@loongson.cn> + +	* gcc.target/loongarch/vector/lasx/vect-concat-128-256-result.c: New test. +	* gcc.target/loongarch/vector/lasx/vect-concat-128-256.c: New test. +	* gcc.target/loongarch/vector/lasx/vect-extract-256-128-result.c: New test. +	* gcc.target/loongarch/vector/lasx/vect-extract-256-128.c: New test. +	* gcc.target/loongarch/vector/lasx/vect-insert-128-256-result.c: New test. +	* gcc.target/loongarch/vector/lasx/vect-insert-128-256.c: New test. + +2025-11-03  Lulu Cheng  <chenglulu@loongson.cn> + +	* gcc.target/loongarch/imm-load.c: Modify. +  2025-11-02  Gaius Mulley  <gaiusmod2@gmail.com>  	PR modula2/122499 diff --git a/gcc/testsuite/g++.dg/analyzer/exception-path-1-sarif.py b/gcc/testsuite/g++.dg/analyzer/exception-path-1-sarif.py new file mode 100644 index 0000000..8958d96 --- /dev/null +++ b/gcc/testsuite/g++.dg/analyzer/exception-path-1-sarif.py @@ -0,0 +1,22 @@ +from sarif import * + +import pytest + +@pytest.fixture(scope='function', autouse=True) +def sarif(): +    return sarif_from_env() + +def test_kinds(sarif): +    result = get_result_by_index(sarif, 0) + +    assert result['level'] == 'note' + +    events = result["codeFlows"][0]["threadFlows"][0]['locations'] + +    # Event "(1)": "throwing exception of type 'value_error' here..." (index == 0) +    assert events[0]['location']['message']['text'] == "throwing exception of type 'value_error' here..." +    assert events[0]['kinds'] == ["throw"] + +    # Event "(2)": "...catching exception of type 'value_error' here" (index == 1) +    assert events[1]['location']['message']['text'] == "...catching exception of type 'value_error' here" +    assert events[1]['kinds'] == ["catch"] diff --git a/gcc/testsuite/g++.dg/analyzer/exception-path-1.C b/gcc/testsuite/g++.dg/analyzer/exception-path-1.C index 486ca193..d923d62 100644 --- a/gcc/testsuite/g++.dg/analyzer/exception-path-1.C +++ b/gcc/testsuite/g++.dg/analyzer/exception-path-1.C @@ -1,3 +1,5 @@ +/* { dg-additional-options "-fdiagnostics-add-output=sarif" } */ +  /* Verify that we follow the correct paths when we know the typeinfo of     an exception.  */ @@ -32,3 +34,10 @@ int test ()    __analyzer_dump_path (); // { dg-bogus "path" }    return 0;  } + +/* Verify that some JSON was written to a file with the expected name.  */ +/* { dg-final { verify-sarif-file } } */ + +/* Use a Python script to verify various properties about the generated +   .sarif file: +   { dg-final { run-sarif-pytest exception-path-1.C "exception-path-1-sarif.py" } } */ diff --git a/gcc/testsuite/g++.dg/analyzer/exception-path-unwind-multiple-2-sarif.py b/gcc/testsuite/g++.dg/analyzer/exception-path-unwind-multiple-2-sarif.py new file mode 100644 index 0000000..b817a64 --- /dev/null +++ b/gcc/testsuite/g++.dg/analyzer/exception-path-unwind-multiple-2-sarif.py @@ -0,0 +1,23 @@ +from sarif import * + +import pytest + +@pytest.fixture(scope='function', autouse=True) +def sarif(): +    return sarif_from_env() + +def test_kinds(sarif): +    result = get_result_by_index(sarif, 0) + +    assert result['level'] == 'note' + +    events = result["codeFlows"][0]["threadFlows"][0]['locations'] + +    assert events[-4]['location']['message']['text'] == "throwing exception of type 'value_error' here..." +    assert events[-4]['kinds'] == ["throw"] + +    assert events[-3]['location']['message']['text'] == "unwinding 2 stack frames" +    assert events[-3]['kinds'] == ["unwind"] + +    assert events[-2]['location']['message']['text'] == "...catching exception of type 'value_error' here" +    assert events[-2]['kinds'] == ["catch"] diff --git a/gcc/testsuite/g++.dg/analyzer/exception-path-unwind-multiple-2.C b/gcc/testsuite/g++.dg/analyzer/exception-path-unwind-multiple-2.C index 2608f17..aa1ff89 100644 --- a/gcc/testsuite/g++.dg/analyzer/exception-path-unwind-multiple-2.C +++ b/gcc/testsuite/g++.dg/analyzer/exception-path-unwind-multiple-2.C @@ -1,3 +1,5 @@ +/* { dg-additional-options "-fdiagnostics-add-output=sarif" } */ +  /* Verify that we follow the correct paths when we know the typeinfo of     an exception: interprocedural case where unwind multiple frame,     failing to match the type.  */ @@ -53,3 +55,10 @@ int outer ()    __analyzer_dump_path (); // { dg-bogus "path" }    return 0;  } + +/* Verify that some JSON was written to a file with the expected name.  */ +/* { dg-final { verify-sarif-file } } */ + +/* Use a Python script to verify various properties about the generated +   .sarif file: +   { dg-final { run-sarif-pytest exception-path-unwind-multiple-2.C "exception-path-unwind-multiple-2-sarif.py" } } */ diff --git a/gcc/testsuite/g++.dg/modules/internal-16.C b/gcc/testsuite/g++.dg/modules/internal-16.C new file mode 100644 index 0000000..4a928ae --- /dev/null +++ b/gcc/testsuite/g++.dg/modules/internal-16.C @@ -0,0 +1,30 @@ +// PR c++/122253 +// { dg-additional-options "-fmodules -Wtemplate-names-tu-local" } + +export module M; + +template <int> struct ic {}; +struct S { +  constexpr operator int() const { return 5; } +  constexpr int operator&() const { return 8; } +}; + +template <typename T> inline void a(T) { +  T a; +  static T b; +  ic<a>{}; +  ic<b>{}; +  ic<&a>{}; +  ic<&b>{}; +} + +template <typename T> inline auto b(T x) { +  return [&](auto y) { +    return [=](auto z) { +      return ic<(int)x + (int)&y + (int)z>{}; +    }; +  }; +} + +template void a(S); +ic<5 + 8 + 5> x = b(S{})(S{})(S{}); diff --git a/gcc/testsuite/gcc.dg/analyzer/setjmp-3-sarif.py b/gcc/testsuite/gcc.dg/analyzer/setjmp-3-sarif.py new file mode 100644 index 0000000..922d338 --- /dev/null +++ b/gcc/testsuite/gcc.dg/analyzer/setjmp-3-sarif.py @@ -0,0 +1,23 @@ +from sarif import * + +import pytest + +@pytest.fixture(scope='function', autouse=True) +def sarif(): +    return sarif_from_env() + +def test_kinds(sarif): +    result = get_result_by_index(sarif, 0) + +    assert result['level'] == 'note' + +    events = result["codeFlows"][0]["threadFlows"][0]['locations'] + +    assert events[1]['location']['message']['text'] == "'setjmp' called here" +    assert events[1]['kinds'] == ["setjmp"] + +    assert events[6]['location']['message']['text'] == "rewinding from 'longjmp' in 'inner'..." +    assert events[6]['kinds'] == ["longjmp"] + +    assert events[7]['location']['message']['text'].startswith("...to 'setjmp' in 'outer'") +    assert events[7]['kinds'] == ["longjmp"] diff --git a/gcc/testsuite/gcc.dg/analyzer/setjmp-3.c b/gcc/testsuite/gcc.dg/analyzer/setjmp-3.c index 3e4f870..a19ce84 100644 --- a/gcc/testsuite/gcc.dg/analyzer/setjmp-3.c +++ b/gcc/testsuite/gcc.dg/analyzer/setjmp-3.c @@ -1,4 +1,6 @@  /* { dg-additional-options "-fdiagnostics-show-line-numbers -fdiagnostics-path-format=inline-events -fdiagnostics-show-caret" } */ +/* { dg-additional-options "-fdiagnostics-add-output=sarif" } */ +  /* { dg-enable-nn-line-numbers "" } */  /* { dg-require-effective-target indirect_jumps } */ @@ -107,3 +109,10 @@ void outer (void)      |      |       (11) here      |      { dg-end-multiline-output "" } */ + +/* Verify that some JSON was written to a file with the expected name.  */ +/* { dg-final { verify-sarif-file } } */ + +/* Use a Python script to verify various properties about the generated +   .sarif file: +   { dg-final { run-sarif-pytest setjmp-3.c "setjmp-3-sarif.py" } } */ diff --git a/gcc/testsuite/gcc.target/i386/pr122534.c b/gcc/testsuite/gcc.target/i386/pr122534.c new file mode 100644 index 0000000..b1988fb --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr122534.c @@ -0,0 +1,15 @@ +/* PR target/122534 */ +/* { dg-do compile } */ +/* { dg-options "-O2" } */ + +int test (unsigned long p[6], int index) +{ +  __SIZE_TYPE__ i; + +  for (i = 0; i < 6; i++) +    if (p[i] & (1UL << index)) +      return i; +  return 0; +} + +/* { dg-final { scan-assembler-not "and" } } */ diff --git a/gcc/testsuite/gcc.target/powerpc/rlwimi-2.c b/gcc/testsuite/gcc.target/powerpc/rlwimi-2.c index bafa371..afbde0e 100644 --- a/gcc/testsuite/gcc.target/powerpc/rlwimi-2.c +++ b/gcc/testsuite/gcc.target/powerpc/rlwimi-2.c @@ -6,7 +6,7 @@  /* { dg-final { scan-assembler-times {(?n)^\s+blr} 6750 } } */  /* { dg-final { scan-assembler-times {(?n)^\s+mr} 643 { target ilp32 } } } */  /* { dg-final { scan-assembler-times {(?n)^\s+mr} 11 { target lp64 } } } */ -/* { dg-final { scan-assembler-times {(?n)^\s+rldicl} 7790 { target lp64 } } } */ +/* { dg-final { scan-assembler-times {(?n)^\s+rldicl} 6754 { target lp64 } } } */  /* { dg-final { scan-assembler-times {(?n)^\s+rlwimi} 1692 { target ilp32 } } } */  /* { dg-final { scan-assembler-times {(?n)^\s+rlwimi} 1666 { target lp64 } } } */ diff --git a/gcc/testsuite/gfortran.dg/pr122513-2.f90 b/gcc/testsuite/gfortran.dg/pr122513-2.f90 new file mode 100644 index 0000000..3f6c5c4 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr122513-2.f90 @@ -0,0 +1,18 @@ +! { dg-do compile } + +! PR fortran/122513 + +! The error is not really new but seems to be untested +! before. The example is from the mentioned PR. + +program test +  implicit none +  integer :: i +  do concurrent (i=1:2) default (none) local(i) ! { dg-error "Index variable 'i' at .1. cannot be specified in a locality-spec" } +     block +       integer, dimension(2,3), parameter :: & +            ii = reshape((/ 1,2,3,4,5,6 /), (/2, 3/)) +       print*,ii(i,:) +     end block +  end do +end program test diff --git a/gcc/testsuite/gnat.dg/generic_inst15.adb b/gcc/testsuite/gnat.dg/generic_inst15.adb new file mode 100644 index 0000000..e1abf04 --- /dev/null +++ b/gcc/testsuite/gnat.dg/generic_inst15.adb @@ -0,0 +1,27 @@ +--  { dg-do compile } + +with Ada.Command_Line; use Ada.Command_Line; +with Ada.Directories; use Ada.Directories; +with Ada.Text_IO; use Ada.Text_IO; + +with Generic_Inst15_Pkg; +with Generic_Inst15_Pkg.G; + +procedure Generic_Inst15 is + +  procedure Print_Word +     (Word     : in out Generic_Inst15_Pkg.Word_Type; +      Continue :    out Boolean) +  is +  begin +     Ada.Text_IO.Put_Line(Generic_Inst15_Pkg.Get_Word(Word)); +     Continue := True; +  end; + +  package Word_Lister is new Generic_Inst15_Pkg.G +     (Order   => Generic_Inst15_Pkg.Word_Order'Val (Positive'Value (Argument(1))), +      Process => Print_Word); + +begin +   null; +end; diff --git a/gcc/testsuite/gnat.dg/generic_inst15_pkg-g.ads b/gcc/testsuite/gnat.dg/generic_inst15_pkg-g.ads new file mode 100644 index 0000000..371f2fe --- /dev/null +++ b/gcc/testsuite/gnat.dg/generic_inst15_pkg-g.ads @@ -0,0 +1,8 @@ +generic +   Order : Word_Order; +   with procedure Process +     (Word     : in out Word_Type; +      Continue :    out Boolean); +package Generic_Inst15_Pkg.G is +   procedure Translate (Code : in Book_Code_Type) is null; +end Generic_Inst15_Pkg.G; diff --git a/gcc/testsuite/gnat.dg/generic_inst15_pkg.ads b/gcc/testsuite/gnat.dg/generic_inst15_pkg.ads new file mode 100644 index 0000000..d83af45 --- /dev/null +++ b/gcc/testsuite/gnat.dg/generic_inst15_pkg.ads @@ -0,0 +1,37 @@ +private with Ada.Containers.Indefinite_Vectors; +private with Ada.Strings.Unbounded; + +package Generic_Inst15_Pkg is +   type Word_Order is +     (wo_Alpha, +      wo_Position, +      wo_Frequency_Alpha, +      wo_Frequency_Position); + +   subtype Book_Code_Type is String (1 .. 24); + +   type Word_Type is private; +   type Word_Status is (ws_Single, ws_Multi, ws_Not_All, ws_Unknown); +   type Translation_Index is new Natural range 1 .. 10; + +   function Get_Word (Self : in Word_Type) return String; + +   type Book_Type is private; + +private + +   package Translation_List is new Ada.Containers.Indefinite_Vectors ( +      Index_Type   => Translation_Index, +      Element_Type => String, +      "="          => "="); + +   type Word_Type is record +      Is_All : Boolean := False; +      Translations : Translation_List.Vector; +   end record; + +   type Book_Type is record +      Line  : Positive := 1; +      Index : Positive := 1; +   end record; +end Generic_Inst15_Pkg; diff --git a/gcc/testsuite/gnat.dg/specs/abstract1.ads b/gcc/testsuite/gnat.dg/specs/abstract1.ads new file mode 100644 index 0000000..4674424 --- /dev/null +++ b/gcc/testsuite/gnat.dg/specs/abstract1.ads @@ -0,0 +1,9 @@ +-- { dg-do compile } + +package Abstract1 is + +  type T is abstract tagged null record; + +  type S is abstract new T; -- { dg-error "allowed only for record extension" } + +end Abstract1; diff --git a/libatomic/ChangeLog b/libatomic/ChangeLog index d154795..5be3caf 100644 --- a/libatomic/ChangeLog +++ b/libatomic/ChangeLog @@ -1,3 +1,7 @@ +2025-11-03  Sam James  <sam@gentoo.org> + +	* configure: Regenerate. +  2025-10-09  Prathamesh Kulkarni  <prathameshk@nvidia.com>  	    Matthew Malcolmson  <mmalcolmson@nvidia.com> diff --git a/libbacktrace/ChangeLog b/libbacktrace/ChangeLog index fc2ba89..8f5a662 100644 --- a/libbacktrace/ChangeLog +++ b/libbacktrace/ChangeLog @@ -1,3 +1,7 @@ +2025-11-03  Sam James  <sam@gentoo.org> + +	* configure: Regenerate. +  2025-10-02  H.J. Lu  <hjl.tools@gmail.com>  	* Makefile.in: Regenerated. diff --git a/libcc1/ChangeLog b/libcc1/ChangeLog index dff34a4..2e1759b 100644 --- a/libcc1/ChangeLog +++ b/libcc1/ChangeLog @@ -1,3 +1,7 @@ +2025-11-03  Sam James  <sam@gentoo.org> + +	* configure: Regenerate. +  2025-10-09  David Malcolm  <dmalcolm@redhat.com>  	* context.cc: Define INCLUDE_VECTOR. diff --git a/libffi/ChangeLog b/libffi/ChangeLog index fa099ad..9bf40ee 100644 --- a/libffi/ChangeLog +++ b/libffi/ChangeLog @@ -1,3 +1,7 @@ +2025-11-03  Sam James  <sam@gentoo.org> + +	* configure: Regenerate. +  2025-10-05  Sam James  <sam@gentoo.org>  	* Makefile.in: Regenerate. diff --git a/libgcobol/ChangeLog b/libgcobol/ChangeLog index 315e1cc..3a08d9e 100644 --- a/libgcobol/ChangeLog +++ b/libgcobol/ChangeLog @@ -1,3 +1,7 @@ +2025-11-03  Sam James  <sam@gentoo.org> + +	* configure: Regenerate. +  2025-10-28  Sam James  <sam@gentoo.org>  	PR cobol/122451 diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index c4a8b8e..8460c5d 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,7 @@ +2025-11-03  Sam James  <sam@gentoo.org> + +	* configure: Regenerate. +  2025-10-05  Sam James  <sam@gentoo.org>  	* Makefile.in: Regenerate. diff --git a/libgm2/ChangeLog b/libgm2/ChangeLog index 2be94fa..f16c525 100644 --- a/libgm2/ChangeLog +++ b/libgm2/ChangeLog @@ -1,3 +1,7 @@ +2025-11-03  Sam James  <sam@gentoo.org> + +	* configure: Regenerate. +  2025-10-24  Gaius Mulley  <gaiusmod2@gmail.com>  	PR modula2/122407 diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog index 5066792..e2e14eb 100644 --- a/libgomp/ChangeLog +++ b/libgomp/ChangeLog @@ -1,3 +1,26 @@ +2025-11-03  Sam James  <sam@gentoo.org> + +	* configure: Regenerate. + +2025-11-03  Tobias Burnus  <tburnus@baylibre.com> + +	PR libgomp/122543 +	* testsuite/libgomp.fortran/omp_target_memset.f90: Move fptr inside +	the target to avoid implicit mapping of its uninit pointee. +	* testsuite/libgomp.fortran/omp_target_memset-2.f90: Likewise. + +2025-11-03  Thomas Schwinge  <tschwinge@baylibre.com> + +	PR libgomp/122281 +	* testsuite/libgomp.c/pr122281.c: Fix for non-USM offloading +	execution. + +2025-11-03  Tobias Burnus  <tburnus@baylibre.com> + +	PR libgomp/122281 +	PR middle-end/105001 +	* testsuite/libgomp.c/pr122281.c: New file. +  2025-10-28  Thomas Schwinge  <tschwinge@baylibre.com>  	* env.c (initialize_env): Simplify 'parse_stacksize' call. diff --git a/libgrust/ChangeLog b/libgrust/ChangeLog index a4cab10..770d1ae 100644 --- a/libgrust/ChangeLog +++ b/libgrust/ChangeLog @@ -1,3 +1,7 @@ +2025-11-03  Sam James  <sam@gentoo.org> + +	* configure: Regenerate. +  2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>  	* libformat_parser/src/lib.rs (struct FFIOpt): Likewise and diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog index c60cf28..aedadc0 100644 --- a/libiberty/ChangeLog +++ b/libiberty/ChangeLog @@ -1,3 +1,7 @@ +2025-11-03  Sam James  <sam@gentoo.org> + +	* configure: Regenerate. +  2025-10-02  H.J. Lu  <hjl.tools@gmail.com>  	* aclocal.m4: Regenerated. diff --git a/libitm/ChangeLog b/libitm/ChangeLog index fd20bb0..a5f4052 100644 --- a/libitm/ChangeLog +++ b/libitm/ChangeLog @@ -1,3 +1,7 @@ +2025-11-03  Sam James  <sam@gentoo.org> + +	* configure: Regenerate. +  2025-10-05  Sam James  <sam@gentoo.org>  	* Makefile.in: Regenerate. diff --git a/libobjc/ChangeLog b/libobjc/ChangeLog index 5ddf80e..75f7677 100644 --- a/libobjc/ChangeLog +++ b/libobjc/ChangeLog @@ -1,3 +1,7 @@ +2025-11-03  Sam James  <sam@gentoo.org> + +	* configure: Regenerate. +  2025-10-05  Sam James  <sam@gentoo.org>  	* aclocal.m4: Regenerate. diff --git a/libphobos/ChangeLog b/libphobos/ChangeLog index b803c61..aa006e8 100644 --- a/libphobos/ChangeLog +++ b/libphobos/ChangeLog @@ -1,3 +1,7 @@ +2025-11-03  Sam James  <sam@gentoo.org> + +	* configure: Regenerate. +  2025-10-05  Sam James  <sam@gentoo.org>  	* Makefile.in: Regenerate. diff --git a/libquadmath/ChangeLog b/libquadmath/ChangeLog index 63eb0ba..cff21dc 100644 --- a/libquadmath/ChangeLog +++ b/libquadmath/ChangeLog @@ -1,3 +1,7 @@ +2025-11-03  Sam James  <sam@gentoo.org> + +	* configure: Regenerate. +  2025-10-05  Sam James  <sam@gentoo.org>  	* Makefile.in: Regenerate. diff --git a/libsanitizer/ChangeLog b/libsanitizer/ChangeLog index 8bfc854..a97c5d9 100644 --- a/libsanitizer/ChangeLog +++ b/libsanitizer/ChangeLog @@ -1,3 +1,7 @@ +2025-11-03  Sam James  <sam@gentoo.org> + +	* configure: Regenerate. +  2025-10-05  Sam James  <sam@gentoo.org>  	* Makefile.in: Regenerate. diff --git a/libssp/ChangeLog b/libssp/ChangeLog index 37aafa3..f5799c5 100644 --- a/libssp/ChangeLog +++ b/libssp/ChangeLog @@ -1,3 +1,7 @@ +2025-11-03  Sam James  <sam@gentoo.org> + +	* configure: Regenerate. +  2025-10-05  Sam James  <sam@gentoo.org>  	* Makefile.in: Regenerate. diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 5d54d30..6b26fdd 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,34 @@ +2025-11-03  Sam James  <sam@gentoo.org> + +	* configure: Regenerate. + +2025-11-03  Jason Merrill  <jason@redhat.com> + +	* include/bits/quoted_string.h: Add ADL friends. +	* libsupc++/exception_ptr.h: Add ADL friend. + +2025-11-03  Jason Merrill  <jason@redhat.com> + +	* src/c++23/std.cc.in: Move TBB macro shenanigans after +	bits/stdc++.h. + +2025-11-03  Jason Merrill  <jason@redhat.com> + +	* include/precompiled/stdc++.h: Remove <cassert>. +	* testsuite/util/exception/safety.h: Add <cassert>. +	* testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: +	Don't define _GLIBCXX_NO_ASSERT. + +2025-11-03  Jason Merrill  <jason@redhat.com> + +	* include/bits/ios_base.h: Add attribs to _Ios_Fmtflags, +	_Ios_Iostate, _ios_seekdir. +	* testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Remove +	unneeded cases. +	* testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise. +	* testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise. +	* testsuite/27_io/ios_base/types/seekdir/case_label.cc: Likewise. +  2025-11-02  Jason Merrill  <jason@redhat.com>  	* src/c++23/std.cc.in: Uncomment usings for vprint_*_buffered. diff --git a/libvtv/ChangeLog b/libvtv/ChangeLog index c4f2770..a1a4ab4 100644 --- a/libvtv/ChangeLog +++ b/libvtv/ChangeLog @@ -1,3 +1,7 @@ +2025-11-03  Sam James  <sam@gentoo.org> + +	* configure: Regenerate. +  2025-10-05  Sam James  <sam@gentoo.org>  	* Makefile.in: Regenerate. diff --git a/lto-plugin/ChangeLog b/lto-plugin/ChangeLog index 9c4d232..ae77f79 100644 --- a/lto-plugin/ChangeLog +++ b/lto-plugin/ChangeLog @@ -1,3 +1,7 @@ +2025-11-03  Sam James  <sam@gentoo.org> + +	* configure: Regenerate. +  2025-10-05  Sam James  <sam@gentoo.org>  	* Makefile.in: Regenerate. diff --git a/zlib/ChangeLog b/zlib/ChangeLog index ebe9a00..c12dcf8 100644 --- a/zlib/ChangeLog +++ b/zlib/ChangeLog @@ -1,3 +1,7 @@ +2025-11-03  Sam James  <sam@gentoo.org> + +	* configure: Regenerate. +  2025-10-02  H.J. Lu  <hjl.tools@gmail.com>  	* Makefile.in: Regenerated.  | 
