diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 308 | ||||
-rw-r--r-- | gcc/DATESTAMP | 2 | ||||
-rw-r--r-- | gcc/ada/ChangeLog | 115 | ||||
-rw-r--r-- | gcc/config/riscv/riscv.cc | 4 | ||||
-rw-r--r-- | gcc/cp/ChangeLog | 14 | ||||
-rw-r--r-- | gcc/doc/install.texi | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 190 | ||||
-rw-r--r-- | gcc/testsuite/c-c++-common/cpp/va-opt-6.c | 10 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/DRs/dr2579.C | 9 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp2a/concepts-using6.C | 20 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/c23-attr-syntax-6.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/cpp/paste12-2.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/cpp/paste12.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/cpp/paste14-2.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/cpp/paste14.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-1-u32-from-u64.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-1-u64-from-u128.c | 1 |
17 files changed, 677 insertions, 18 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d73ba82..4b6bc90 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,311 @@ +2025-08-04 Hans-Peter Nilsson <hp@bitrange.com> + + * defaults.h (MAX_FIXED_MODE_SIZE): Default to 2 * BITS_PER_WORD + for larger-than-32-bitters. + * doc/tm.texi.in (MAX_FIXED_MODE_SIZE): Adjust accordingly. Tweak + wording. + * doc/tm.texi: Regenerate. + +2025-08-04 David Malcolm <dmalcolm@redhat.com> + + * dump-context.h: Convert "enum optinfo_item_kind" into + "enum class kind" within class optinfo_item. + * dumpfile.cc: Likewise. Use "auto" in a few places. + Convert "enum optinfo_kind" to "enum class kind" within + class optinfo. + * opt-problem.cc: Likewise. + * optinfo-emit-json.cc: Likewise. + * optinfo.cc: Likewise. + * optinfo.h: Likewise. + +2025-08-04 David Malcolm <dmalcolm@redhat.com> + + PR diagnostics/116253 + * diagnostics/context.cc (context::set_nesting_level): New. + * diagnostics/context.h (context::set_nesting_level): New decl. + * doc/libgdiagnostics/topics/compatibility.rst + (LIBGDIAGNOSTICS_ABI_5): New. + * doc/libgdiagnostics/topics/physical-locations.rst + (diagnostic_manager_set_debug_physical_locations): New. + * libgdiagnostics++.h (manager::set_debug_physical_locations): + New. + * libgdiagnostics-private.h + (private_diagnostic_set_nesting_level): New decl. + * libgdiagnostics.cc (diagnostic_manager::diagnostic_manager): + Initialize m_debug_physical_locations. + (diagnostic_manager::new_location_from_file_and_line): Add debug + printing. + (diagnostic_manager::new_location_from_file_line_column): + Likewise. + (diagnostic_manager::new_location_from_range): Likewise. + (diagnostic_manager::set_debug_physical_locations): New. + (diagnostic_manager::ensure_linemap_for_file_and_line): Avoid + redundant calls to linemap_add. + (diagnostic_manager::new_location): Add debug printing. + (diagnostic_manager::m_debug_physical_locations): New field. + (diagnostic::diagnostic): Initialize m_nesting_level. + (diagnostic::get_nesting_level): New accessor. + (diagnostic::set_nesting_level): New. + (diagnostic::m_nesting_level): New field. + (diagnostic_manager::emit_va): Set and reset the nesting level + of the context from that of the diagnostic. + (diagnostic_manager_set_debug_physical_locations): New. + (private_diagnostic_set_nesting_level): New. + * libgdiagnostics.h + (diagnostic_manager_set_debug_physical_locations): New decl. + * libgdiagnostics.map (LIBGDIAGNOSTICS_ABI_5): New. + * libsarifreplay.cc (sarif_replayer::handle_result_obj): Support + the "nestingLevel" property. + * libsarifreplay.h (replay_options::m_debug_physical_locations): + New field. + * sarif-replay.cc: Add -fdebug-physical-locations. + +2025-08-04 David Malcolm <dmalcolm@redhat.com> + + PR diagnostics/116792 + * diagnostics/html-sink.cc + (html_builder::make_element_for_diagnostic): Don't add the + metadata element if it's empty. + (html_builder::make_element_for_metadata): Return null rather than + an empty element. + +2025-08-04 David Malcolm <dmalcolm@redhat.com> + + * diagnostics/context.h: Move struct counters to its own header + and include it. + * diagnostics/counters.h: New file, from the above. + +2025-08-04 David Malcolm <dmalcolm@redhat.com> + + * diagnostics/context.h: Split struct source_printing_options out + into "diagnostics/source-printing-options.h" and include it. + * diagnostics/source-printing-options.h: New file, from the above. + +2025-08-04 David Malcolm <dmalcolm@redhat.com> + + * diagnostics/context.cc: Update for renaming of option_manager to + option_id_manager and of context::m_option_mgr to + context::m_option_id_mgr. + * diagnostics/context.h: Likewise, moving class declaration to a + new diagnostics/option-id-manager.h. + * diagnostics/lazy-paths.cc: Likewise. + * diagnostics/option-id-manager.h: New file, from material in + diagnostics/context.h. + * lto-wrapper.cc: Update for renaming of option_manager to + option_id_manager. + * opts-common.cc: Likewise. + * opts-diagnostic.h: Likewise. + * opts.cc: Likewise. + * toplev.cc: Likewise. + +2025-08-04 David Malcolm <dmalcolm@redhat.com> + + * diagnostics/buffering.h: Update comment to refer to output sinks + rather than output formats. + +2025-08-04 David Malcolm <dmalcolm@redhat.com> + + * gimple-warn-recursion.cc (pass_warn_recursion::execute): Add + missing auto_diagnostic_group. + +2025-08-04 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> + + PR rtl-optimization/121303 + * avoid-store-forwarding.cc (is_store_forwarding): Add check + for `off_val` in `is_store_forwarding`. + +2025-08-04 Richard Biener <rguenther@suse.de> + + * tree-vect-slp.cc (vect_analyze_slp): When analyzing a loop + and slp instance discovery fails, immediately fail the whole + process. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-sve-builtins.cc + (function_expander::expand): Assert that the return value + has an appropriate mode. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-protos.h + (aarch64_convert_sve_data_to_pred): Remove the mode argument. + * config/aarch64/aarch64.cc + (aarch64_sve_emit_int_cmp): Allow PRED_MODE to be VNx16BI or + the natural predicate mode for the data mode. + (aarch64_convert_sve_data_to_pred): Remove the mode argument + and instead always create a VNx16BI result. + (aarch64_expand_sve_const_pred): Update call accordingly. + * config/aarch64/aarch64-sve-builtins-base.cc + (svdupq_impl::expand): Likewise, ensuring that the result + has mode VNx16BI. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-protos.h + (aarch64_emit_sve_pred_vec_duplicate): Declare. + * config/aarch64/aarch64.cc + (aarch64_emit_sve_pred_vec_duplicate): New function. + * config/aarch64/aarch64-sve.md (vec_duplicate<PRED_ALL:mode>): Use it. + * config/aarch64/aarch64-sve-builtins-base.cc + (svdup_impl::expand): Handle boolean values specially. Check for + constants and fall back on aarch64_emit_sve_pred_vec_duplicate + for the variable case, ensuring that the result has mode VNx16BI. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/iterators.md (PNEXT_ONLY): New int iterator. + * config/aarch64/aarch64-sve.md + (@aarch64_sve_<sve_pred_op><mode>): Restrict SVE_PITER pattern + to VNx16BI_ONLY. + (@aarch64_sve_<sve_pred_op><mode>): New PNEXT_ONLY pattern for + PRED_HSD. + (*aarch64_sve_<sve_pred_op><mode>): Likewise. + (*aarch64_sve_<sve_pred_op><mode>_cc): Likewise. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-sve2.md (@aarch64_pred_<sve_int_op><mode>): + Split SVE2_MATCH pattern into a VNx16QI_ONLY define_ins and a + VNx8HI_ONLY define_expand. Use a VNx16BI destination for the latter. + (*aarch64_pred_<sve_int_op><mode>): New SVE2_MATCH pattern for + VNx8HI_ONLY. + (*aarch64_pred_<sve_int_op><mode>_cc): Likewise. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-sve.md (@aarch64_pred_fac<cmp_op><mode>): + Replace with... + (@aarch64_pred_fac<cmp_op><mode>_acle): ...this new expander. + (*aarch64_pred_fac<cmp_op><mode>_strict_acle): New pattern. + * config/aarch64/aarch64-sve-builtins-base.cc + (svac_impl::expand): Update accordingly. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-sve.md (@aarch64_pred_fcm<cmp_op><mode>_acle) + (*aarch64_pred_fcm<cmp_op><mode>_acle, @aarch64_pred_fcmuo<mode>_acle) + (*aarch64_pred_fcmuo<mode>_acle): New patterns. + * config/aarch64/aarch64-sve-builtins-base.cc + (svcmp_impl::expand, svcmpuo_impl::expand): Use them. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-sve.md (@aarch64_pred_cmp<cmp_op><mode>_wide): + Split into VNx16QI_ONLY and SVE_FULL_HSI patterns. Use VNx16BI + results for both. + (*aarch64_pred_cmp<cmp_op><mode>_wide): New pattern. + (*aarch64_pred_cmp<cmp_op><mode>_wide_cc): Likewise. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-sve.md + (*aarch64_pred_cmp<cmp_op><mode>_wide_cc): Turn into a + define_insn_and_rewrite and rewrite the governing predicate + of the comparison so that it is identical to the PTEST's. + (*aarch64_pred_cmp<cmp_op><mode>_wide_ptest): Likewise. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-sve.md (@aarch64_pred_cmp<cmp_op><mode>_wide) + (*aarch64_pred_cmp<cmp_op><mode>_wide_cc): Use <VPRED> instead of + VNx16BI for the governing predicate. + (*aarch64_pred_cmp<cmp_op><mode>_wide_ptest): Likewise. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-sve.md (@aarch64_pred_cmp<cmp_op><mode>_acle) + (*aarch64_pred_cmp<cmp_op><mode>_acle, *cmp<cmp_op><mode>_acle_cc) + (*cmp<cmp_op><mode>_acle_and): New patterns that yield VNx16BI + results for all element types. + * config/aarch64/aarch64-sve-builtins-base.cc + (svcmp_impl::expand): Use them. + (svcmp_wide_impl::expand): Likewise when implementing an svcmp_wide + against an in-range constant. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-sve.md (@aarch64_sve_punpk<perm_hilo>_acle) + (*aarch64_sve_punpk<perm_hilo>_acle): New patterns. + * config/aarch64/aarch64-sve-builtins-base.cc + (svunpk_impl::expand): Use them for boolean svunpk*. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + PR target/121294 + * config/aarch64/aarch64.md (UNSPEC_REV_PRED): New unspec. + * config/aarch64/aarch64-sve.md (@aarch64_sve_rev<mode>_acle) + (*aarch64_sve_rev<mode>_acle): New patterns. + * config/aarch64/aarch64-sve-builtins-base.cc + (svrev_impl::expand): Use the new patterns for boolean svrev. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + PR target/121294 + * config/aarch64/iterators.md (UNSPEC_TRN1_CONV): Delete. + (UNSPEC_PERMUTE_PRED): New unspec. + * config/aarch64/aarch64-sve.md (@aarch64_sve_trn1_conv<mode>): + Replace with... + (@aarch64_sve_<perm_insn><mode>_acle) + (*aarch64_sve_<perm_insn><mode>_acle): ...these new patterns. + * config/aarch64/aarch64.cc (aarch64_expand_sve_const_pred_trn): + Update accordingly. + * config/aarch64/aarch64-sve-builtins-functions.h + (binary_permute::expand): Use the new _acle patterns for + predicate operations. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + PR testsuite/121118 + * config/aarch64/iterators.md (VNx16BI_ONLY): New mode iterator. + * config/aarch64/predicates.md (aarch64_ptrue_all_operand): New + predicate. + * config/aarch64/aarch64-sve.md + (@aarch64_sve_while_<while_optab_cmp><GPI:mode><VNx16BI_ONLY:mode>_acle) + (@aarch64_sve_while_<while_optab_cmp><GPI:mode><PRED_HSD:mode>_acle) + (*aarch64_sve_while_<while_optab_cmp><GPI:mode><PRED_HSD:mode>_acle) + (*while_<while_optab_cmp><GPI:mode><PRED_HSD:mode>_acle_cc): New + patterns. + * config/aarch64/aarch64-sve-builtins-functions.h + (while_comparison::expand): Use the new _acle patterns that + always return a VNx16BI. + * config/aarch64/aarch64-sve-builtins-sve2.cc + (svwhilerw_svwhilewr_impl::expand): Likewise. + * config/aarch64/aarch64.cc + (aarch64_sve_move_pred_via_while): Likewise. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + PR target/121293 + * config/aarch64/aarch64-sve-builtins-base.cc (svdupq_lane::expand): + Use aarch64_sve_reinterpret instead of subregs. Explicitly + reinterpret the result back to the required mode, rather than + leaving the caller to take a subreg. + +2025-08-04 Richard Biener <rguenther@suse.de> + + PR tree-optimization/121362 + * tree-ssa-sccvn.cc (vn_reference_lookup_3): Generalize + aggregate copy handling. + +2025-08-04 Filip Kastl <fkastl@suse.cz> + + * doc/invoke.texi: Add remark about -options being documented + under -fdump-tree. Remove remark about -graph working only for + RTL. + +2025-08-04 H.J. Lu <hjl.tools@gmail.com> + + PR target/120941 + * config/i386/i386-features.cc (x86_cse_kind): Moved before + ix86_place_single_vector_set. + (redundant_load): Likewise. + (ix86_place_single_vector_set): Replace the last argument to the + pointer to redundant_load. For X86_CSE_VEC_DUP, don't place the + vector set outside of the loop to avoid extra spills. + (remove_redundant_vector_load): Pass load to + ix86_place_single_vector_set. + 2025-08-03 Georg-Johann Lay <avr@gjlay.de> * config/avr/avr.md (define_insn_and_split) [reload_completed]: diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index 85faa76..3724f15 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20250804 +20250805 diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 85464e3..063d6a7 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,118 @@ +2025-08-04 Viljar Indus <indus@adacore.com> + + * contracts.adb: Use Is_Ignored_In_Codegen instead of just + using Is_Ignored. + * exp_ch6.adb: Likewise. + * exp_prag.adb: Likewise. + * exp_util.adb: Likewise. + * frontend.adb: Avoid removal of ignored nodes in GNATProve_Mode. + * gnat1drv.adb: Avoid forcing Assertions_Enabled in GNATProve_Mode. + * lib-writ.adb (Write_With_File_Names): Avoid early exit + with ignored entities in GNATProve_Mode. + * lib-xref.adb: Likewise. + * opt.adb: Remove check for Assertions_Enabled. + * sem_attr.adb: Use Is_Ignored_In_Codegen instead of Is_Ignored. + * sem_ch13.adb: Likewise. Additionally always add predicates in + GNATProve_Mode. + * sem_prag.adb: Likewise. Additionally remove modifications + to applied policies in GNATProve_Mode. + * sem_util.adb (Is_Ignored_In_Codegen): New function that overrides + Is_Ignored in GNATProve_Mode and Codepeer_Mode. + (Is_Ignored_Ghost_Pragma_In_Codegen): Likewise for + Is_Ignored_Ghost_Pragma. + (Is_Ignored_Ghost_Entity_In_Codegen): Likewise for + Is_Ignored_Ghost_Entity. + (Policy_In_List): Remove overriding of policies in GNATProve_Mode. + * sem_util.ads: Add specs for new functions. + * (Predicates_Enabled): Always generate predicates in + GNATProve_Mode. + +2025-08-04 Bob Duff <duff@adacore.com> + + * treepr.adb (Print_Node_Ref): Protect against + Entity (N) being empty before calling + Compile_Time_Known_Value. + +2025-08-04 Viljar Indus <indus@adacore.com> + + * sem_prag.adb (Validate_Compile_Time_Warning_Errors): + Check if the original compile time pragma was replaced and + validate the original node instead. + +2025-08-04 Viljar Indus <indus@adacore.com> + + * sem_prag.adb (Validate_Compile_Time_Warning_Or_Error): + simplify the implementation. + +2025-08-04 Steve Baird <baird@adacore.com> + + * exp_ch6.adb (Apply_Access_Discrims_Accessibility_Check): If the + accessibility level being checked is known statically, then + statically check it against the level of the function being + returned from. + +2025-08-04 Viljar Indus <indus@adacore.com> + + * atree.adb: update references to Ghost_Mode. + * exp_ch3.adb: use a structure type to store all of the existing + ghost mode related state variables. + * exp_disp.adb: Likewise. + * exp_spark.adb: Likewise. + * exp_util.adb: Likewise. + * expander.adb: Likewise. + * freeze.adb: Likewise and replace references to existing ghost + mode variables. + * ghost.adb (Install_Ghost_Region): install the changes of + the region in to the new Ghost_Config structure. + (Restore_Ghost_Region): Use the new Ghost_Config instead. + In general replace all references to the existing ghost mode + variables with the new structure equivalent. + * ghost.ads (Restore_Ghost_Region): update the spec. + * opt.ads (Ghost_Config_Type): A new type that has two of the + previous ghost code related global variables as memembers - + Ghost_Mode and Ignored_Ghost_Region. + (Ghost_Config) New variable to store the previous Ghost_Mode and + Ignored_Ghost_Region info. + * rtsfind.adb: Replace references to existing ghost mode variables. + * sem.adb: Likewise. + * sem_ch12.adb: Likewise. + * sem_ch13.adb: Likewise. + * sem_ch3.adb: Likewise. + * sem_ch5.adb: Likewise. + * sem_ch6.adb: Likewise. + * sem_ch7.adb: Likewise. + * sem_prag.adb: Likewise. + * sem_util.adb: Likewise. + +2025-08-04 Steve Baird <baird@adacore.com> + + * freeze.adb (Freeze_Profile): Do not emit a warning stating that + a formal parameter's size is 8 if the parameter's size is not 8. + +2025-08-04 Viljar Indus <indus@adacore.com> + + * table.adb (Max): Move variable to the body and initialize + it with the same value as in the Init function. + * table.ads (Max): Likewise. + +2025-08-04 Bob Duff <duff@adacore.com> + + * par.adb: Move and rewrite some comments. + (Util): Shared code and comments for dealing with + defining_identifier_lists. + * par-util.adb (Append): Shared code for appending + one identifier onto Defining_Identifiers. + (P_Def_Ids): Shared code for parsing a defining_identifier_list. + Unfortunately, this is not used in all cases, because some of + them mix in sophisticated error recovery, which we do not + modify here. + * par-ch12.adb (P_Formal_Object_Declarations): + Use Defining_Identifiers and related code. + * par-ch3.adb (P_Identifier_Declarations): Likewise. + (P_Known_Discriminant_Part_Opt): Likewise. + (P_Component_Items): Likewise. + * par-ch6.adb (P_Formal_Part): Likewise. + 2025-07-31 Eric Botcazou <ebotcazou@gcc.gnu.org> Revert: diff --git a/gcc/config/riscv/riscv.cc b/gcc/config/riscv/riscv.cc index 0a9fcef..e0d8904 100644 --- a/gcc/config/riscv/riscv.cc +++ b/gcc/config/riscv/riscv.cc @@ -13867,9 +13867,9 @@ riscv_expand_xmode_usmul (rtx dest, rtx x, rtx y) riscv_emit_binary (MULT, mul, x, y); if (TARGET_64BIT) - emit_insn (gen_usmuldi3_highpart (mulhu, x, y)); + emit_insn (gen_umuldi3_highpart (mulhu, x, y)); else - emit_insn (gen_usmulsi3_highpart (mulhu, x, y)); + emit_insn (gen_umulsi3_highpart (mulhu, x, y)); riscv_emit_binary (NE, overflow_p, mulhu, CONST0_RTX (Xmode)); riscv_emit_unary (NEG, overflow_p, overflow_p); diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 3f76afd..3ab14f0 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,17 @@ +2025-08-04 Patrick Palka <ppalka@redhat.com> + + PR c++/121351 + PR c++/119859 + * class.cc (add_method): Substitute outer template arguments + into constraints before comparing them if the declarations are + from different classes. + +2025-08-04 Patrick Palka <ppalka@redhat.com> + + PR c++/120620 + * constexpr.cc (cxx_dynamic_cast_fn_p): Return true only + for synthesized __dynamic_cast. + 2025-08-01 Nathaniel Shead <nathanieloshead@gmail.com> PR c++/108080 diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index f3f1445..64c1217 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -1887,8 +1887,8 @@ Produce code conforming to version 20191213. In the absence of this configuration option the default version is 20191213. @item --enable-__cxa_atexit -Define if you want to use @code{__cxa_atexit}, rather than atexit, to -register C++ destructors for local statics and global objects. +Define if you want to use @code{__cxa_atexit}, rather than @code{atexit}, +to register C++ destructors for local statics and global objects. This is essential for fully standards-compliant handling of destructors, but requires @code{__cxa_atexit} in libc. This option is currently only available on systems with GNU libc. When enabled, this diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b43cbb7..f9f3de6 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,193 @@ +2025-08-04 Patrick Palka <ppalka@redhat.com> + + PR c++/121351 + * g++.dg/cpp2a/concepts-using6.C: New test. + +2025-08-04 Patrick Palka <ppalka@redhat.com> + + PR c++/121351 + PR c++/119859 + * g++.dg/cpp2a/concepts-using5.C: New test. + * g++.dg/cpp2a/concepts-using5a.C: New test. + +2025-08-04 Patrick Palka <ppalka@redhat.com> + + PR c++/120620 + * g++.dg/cpp2a/constexpr-dynamic19.C: New test. + * g++.dg/cpp2a/constexpr-dynamic1a.C: New test. + +2025-08-04 David Malcolm <dmalcolm@redhat.com> + + PR diagnostics/116253 + * gcc.dg/plugin/diagnostic-test-nesting-html.c: New test. + * gcc.dg/plugin/diagnostic-test-nesting-html.py: New test script. + * gcc.dg/plugin/plugin.exp: Add it. + * libgdiagnostics.dg/test-multiple-lines.c: Update expected output + to show fix-it hint. + * sarif-replay.dg/2.1.0-valid/nested-diagnostics-1.sarif: New test. + +2025-08-04 David Malcolm <dmalcolm@redhat.com> + + PR diagnostics/116792 + * gcc.dg/plugin/diagnostic-test-graphs-html.py: Remove trailing + space from expected text of message. + * sarif-replay.dg/2.1.0-valid/embedded-links-check-html.py: + Likewise. + * sarif-replay.dg/2.1.0-valid/graphs-check-html.py: Likewise. + +2025-08-04 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> + + PR rtl-optimization/121303 + * gcc.target/i386/pr121303.c: New test. + +2025-08-04 Jakub Jelinek <jakub@redhat.com> + + PR preprocessor/120778 + * g++.dg/DRs/dr2580.C: New test. + +2025-08-04 Jakub Jelinek <jakub@redhat.com> + + PR preprocessor/120778 + * g++.dg/DRs/dr2578.C: New test. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + * gcc.target/aarch64/sve/acle/general/dupq_13.c: New test. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + * gcc.target/aarch64/sve/acle/general/dup_1.c: New test. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + * gcc.target/aarch64/sve/acle/general/pnext_3.c: New test. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + * gcc.target/aarch64/sve2/acle/general/match_4.c: New test. + * gcc.target/aarch64/sve2/acle/general/nmatch_1.c: Likewise. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + * gcc.target/aarch64/sve/acle/general/acge_1.c: New test. + * gcc.target/aarch64/sve/acle/general/acgt_1.c: Likewise. + * gcc.target/aarch64/sve/acle/general/acle_1.c: Likewise. + * gcc.target/aarch64/sve/acle/general/aclt_1.c: Likewise. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + * gcc.target/aarch64/sve/acle/general/cmpeq_6.c: New test. + * gcc.target/aarch64/sve/acle/general/cmpge_9.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmpgt_9.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmple_9.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmplt_9.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmpne_5.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmpuo_1.c: Likewise. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + * gcc.target/aarch64/sve/acle/general/cmpeq_5.c: New test. + * gcc.target/aarch64/sve/acle/general/cmpge_7.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmpge_8.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmpgt_7.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmpgt_8.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmple_7.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmple_8.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmplt_7.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmplt_8.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmpne_4.c: Likewise. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + * gcc.target/aarch64/sve/acle/general/cmpeq_1.c: Check the number + of PTRUEs. + * gcc.target/aarch64/sve/acle/general/cmpge_5.c: New test. + * gcc.target/aarch64/sve/acle/general/cmpge_6.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmpgt_5.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmpgt_6.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmple_5.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmple_6.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmplt_5.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmplt_6.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmpne_3.c: Likewise. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + * gcc.target/aarch64/sve/acle/general/cmpeq_1.c: Add more tests. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + * gcc.target/aarch64/sve/pred_clobber_1.c: Disable combine. + * gcc.target/aarch64/sve/pred_clobber_2.c: Likewise. + * gcc.target/aarch64/sve/pred_clobber_3.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmpeq_2.c: Add more cases. + * gcc.target/aarch64/sve/acle/general/cmpeq_4.c: New test. + * gcc.target/aarch64/sve/acle/general/cmpge_1.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmpge_2.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmpge_3.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmpge_4.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmpgt_1.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmpgt_2.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmpgt_3.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmpgt_4.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmple_1.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmple_2.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmple_3.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmple_4.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmplt_1.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmplt_2.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmplt_3.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmplt_4.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmpne_1.c: Likewise. + * gcc.target/aarch64/sve/acle/general/cmpne_2.c: Likewise. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + * gcc.target/aarch64/sve/acle/general/unpkhi_1.c: New test. + * gcc.target/aarch64/sve/acle/general/unpklo_1.c: Likewise. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + PR target/121294 + * gcc.target/aarch64/sve/acle/general/rev_2.c: New test. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + PR target/121294 + * gcc.target/aarch64/sve/acle/general/perm_2.c: New test. + * gcc.target/aarch64/sve/acle/general/perm_3.c: Likewise. + * gcc.target/aarch64/sve/acle/general/perm_4.c: Likewise. + * gcc.target/aarch64/sve/acle/general/perm_5.c: Likewise. + * gcc.target/aarch64/sve/acle/general/perm_6.c: Likewise. + * gcc.target/aarch64/sve/acle/general/perm_7.c: Likewise. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + PR testsuite/121118 + * gcc.target/aarch64/sve/acle/general/pr121118_1.c: New test. + * gcc.target/aarch64/sve/acle/general/whilele_13.c: Likewise. + * gcc.target/aarch64/sve/acle/general/whilelt_6.c: Likewise. + * gcc.target/aarch64/sve2/acle/general/whilege_1.c: Likewise. + * gcc.target/aarch64/sve2/acle/general/whilegt_1.c: Likewise. + * gcc.target/aarch64/sve2/acle/general/whilerw_5.c: Likewise. + * gcc.target/aarch64/sve2/acle/general/whilewr_5.c: Likewise. + +2025-08-04 Richard Sandiford <richard.sandiford@arm.com> + + PR target/121293 + * gcc.target/aarch64/sve/acle/general/dupq_lane_9.c: New test. + +2025-08-04 Richard Biener <rguenther@suse.de> + + PR tree-optimization/121362 + * gcc.dg/tree-ssa/ssa-fre-105.c: New testcase. + * gcc.dg/tree-ssa/ssa-fre-106.c: Likewise. + +2025-08-04 H.J. Lu <hjl.tools@gmail.com> + + PR target/120941 + * gcc.target/i386/pr120941-1.c: New test. + 2025-08-03 Jakub Jelinek <jakub@redhat.com> PR preprocessor/120778 diff --git a/gcc/testsuite/c-c++-common/cpp/va-opt-6.c b/gcc/testsuite/c-c++-common/cpp/va-opt-6.c index 8a7761b..9a92431 100644 --- a/gcc/testsuite/c-c++-common/cpp/va-opt-6.c +++ b/gcc/testsuite/c-c++-common/cpp/va-opt-6.c @@ -3,15 +3,15 @@ /* { dg-options "-std=c++20" { target c++ } } */ #define a "" -#define b(...) a ## #__VA_OPT__(1) /* { dg-error "pasting \"a\" and \"\"\"\" does not give a valid preprocessing token" } */ -#define c(...) a ## #__VA_OPT__(1) /* { dg-error "pasting \"a\" and \"\"1\"\" does not give a valid preprocessing token" } */ +#define b(...) a ## #__VA_OPT__(1) /* { dg-error "pasting 'a' and '\"\"' does not give a valid preprocessing token" } */ +#define c(...) a ## #__VA_OPT__(1) /* { dg-error "pasting 'a' and '\"1\"' does not give a valid preprocessing token" } */ #define d(...) #__VA_OPT__(1) ## ! #define e(...) #__VA_OPT__(1) ## ! #define f(...) #__VA_OPT__(. ## !) #define g(...) #__VA_OPT__(. ## !) b() c(1) -d( ) /* { dg-error "pasting \"\"\"\" and \"!\" does not give a valid preprocessing token" } */ -e( 1 ) /* { dg-error "pasting \"\"1\"\" and \"!\" does not give a valid preprocessing token" } */ +d( ) /* { dg-error "pasting '\"\"' and '!' does not give a valid preprocessing token" } */ +e( 1 ) /* { dg-error "pasting '\"1\"' and '!' does not give a valid preprocessing token" } */ f() -g(0) /* { dg-error "pasting \".\" and \"!\" does not give a valid preprocessing token" } */ +g(0) /* { dg-error "pasting '.' and '!' does not give a valid preprocessing token" } */ diff --git a/gcc/testsuite/g++.dg/DRs/dr2579.C b/gcc/testsuite/g++.dg/DRs/dr2579.C new file mode 100644 index 0000000..dda3643 --- /dev/null +++ b/gcc/testsuite/g++.dg/DRs/dr2579.C @@ -0,0 +1,9 @@ +// DR 2579 - Undefined behavior when token pasting does not create a preprocessing token +// { dg-do preprocess } +// { dg-options "-pedantic-errors" } + +#define A(a, b) a ## b +A(5,6) +A(-,32) // { dg-error "pasting '-' and '32' does not give a valid preprocessing token" } +A("","") // { dg-error "pasting '\"\"' and '\"\"' does not give a valid preprocessing token" } +A(\,u0393) diff --git a/gcc/testsuite/g++.dg/cpp2a/concepts-using6.C b/gcc/testsuite/g++.dg/cpp2a/concepts-using6.C new file mode 100644 index 0000000..a40519a --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp2a/concepts-using6.C @@ -0,0 +1,20 @@ +// PR c++/121351 +// { dg-do compile { target c++20 } } + +template<class T> concept C = true; + +template<class T> +struct A { + template<class U> void f(U) requires C<T>; // #1 +}; + +template<class T> +struct B : A<T*> { + using A<T*>::f; + template<class U> void f(U) requires C<T>; // #2 +}; + +int main() { + B<int> b; + b.f(42); // { dg-error "ambiguous" } #1 and #2 don't correspond +} diff --git a/gcc/testsuite/gcc.dg/c23-attr-syntax-6.c b/gcc/testsuite/gcc.dg/c23-attr-syntax-6.c index f8c5b0f..4e6b80b 100644 --- a/gcc/testsuite/gcc.dg/c23-attr-syntax-6.c +++ b/gcc/testsuite/gcc.dg/c23-attr-syntax-6.c @@ -45,7 +45,7 @@ typedef int [[__extension__ __extension__]] b2; /* { dg-error {'extension' attri typedef int [[__extension__ unknown_attribute]] b3; /* { dg-error {'unknown_attribute' attribute ignored} } */ typedef int [[__extension__ gnu:vector_size(4)]] b4; /* { dg-error {expected '\]' before ':'} } */ /* { dg-error {'gnu' attribute ignored} "" { target *-*-* } .-1 } */ -typedef int [[__extension__ gnu JOIN2(:,:) vector_size (4)]] b5; /* { dg-error {pasting ":" and ":" does not give a valid preprocessing token} } */ +typedef int [[__extension__ gnu JOIN2(:,:) vector_size (4)]] b5; /* { dg-error {pasting ':' and ':' does not give a valid preprocessing token} } */ /* { dg-error {expected '\]' before ':'} "" { target *-*-* } .-1 } */ /* { dg-error {'gnu' attribute ignored} "" { target *-*-* } .-2 } */ typedef int [[__extension__ gnu : : vector_size (4)]] b6; /* { dg-error {expected '\]' before ':'} } */ @@ -81,7 +81,7 @@ typedef int [[gnu :: vector_size (4)]] b18; /* { dg-error {attributes before C23 typedef int [[gnu FOO vector_size (4)]] b19; /* { dg-error {attributes before C23} } */ typedef int [[gnu :: vector_size (sizeof (void (*)(...)))]] b20; /* { dg-error {attributes before C23} } */ /* { dg-error {requires a named argument before} "" { target *-*-* } .-1 } */ -typedef int [[gnu JOIN2(:,:) vector_size (4)]] b21; /* { dg-error {pasting ":" and ":" does not give a valid preprocessing token} } */ +typedef int [[gnu JOIN2(:,:) vector_size (4)]] b21; /* { dg-error {pasting ':' and ':' does not give a valid preprocessing token} } */ /* { dg-error {expected '\]' before ':'} "" { target *-*-* } .-1 } */ /* { dg-error {'gnu' attribute ignored} "" { target *-*-* } .-2 } */ /* { dg-error {attributes before C23} "" { target *-*-* } .-3 } */ diff --git a/gcc/testsuite/gcc.dg/cpp/paste12-2.c b/gcc/testsuite/gcc.dg/cpp/paste12-2.c index 6e2e4f1..f46645a 100644 --- a/gcc/testsuite/gcc.dg/cpp/paste12-2.c +++ b/gcc/testsuite/gcc.dg/cpp/paste12-2.c @@ -6,6 +6,6 @@ /* Test correct diagnostics when pasting in #include. Source: PR preprocessor/6780. */ -#define inc2(a,b) <##a.b> /* { dg-error "pasting \"<\" and \"stdio\" does not" } */ +#define inc2(a,b) <##a.b> /* { dg-error "pasting '<' and 'stdio' does not" } */ #define INC(X) inc2(X,h) #include INC(stdio) diff --git a/gcc/testsuite/gcc.dg/cpp/paste12.c b/gcc/testsuite/gcc.dg/cpp/paste12.c index 3e0f7b9..f6b3696 100644 --- a/gcc/testsuite/gcc.dg/cpp/paste12.c +++ b/gcc/testsuite/gcc.dg/cpp/paste12.c @@ -8,4 +8,4 @@ #define inc2(a,b) <##a.b> #define INC(X) inc2(X,h) -#include INC(stdio) /* { dg-error "pasting \"<\" and \"stdio\" does not" } */ +#include INC(stdio) /* { dg-error "pasting '<' and 'stdio' does not" } */ diff --git a/gcc/testsuite/gcc.dg/cpp/paste14-2.c b/gcc/testsuite/gcc.dg/cpp/paste14-2.c index 3b23ada..bb51999 100644 --- a/gcc/testsuite/gcc.dg/cpp/paste14-2.c +++ b/gcc/testsuite/gcc.dg/cpp/paste14-2.c @@ -4,8 +4,8 @@ { dg-do preprocess } */ -#define foo - ## >> /* { dg-error "pasting \"-\" and \">>\"" } */ +#define foo - ## >> /* { dg-error "pasting '-' and '>>'" } */ foo -#define bar = ## == /* { dg-error "pasting \"=\" and \"==\"" } */ +#define bar = ## == /* { dg-error "pasting '=' and '=='" } */ bar diff --git a/gcc/testsuite/gcc.dg/cpp/paste14.c b/gcc/testsuite/gcc.dg/cpp/paste14.c index 043d5e5..d60b328 100644 --- a/gcc/testsuite/gcc.dg/cpp/paste14.c +++ b/gcc/testsuite/gcc.dg/cpp/paste14.c @@ -5,6 +5,6 @@ */ #define foo - ## >> -foo /* { dg-error "pasting \"-\" and \">>\"" } */ +foo /* { dg-error "pasting '-' and '>>'" } */ #define bar = ## == -bar /* { dg-error "pasting \"=\" and \"==\"" } */ +bar /* { dg-error "pasting '=' and '=='" } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-1-u32-from-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-1-u32-from-u64.c index 8d5449b..fa3758a 100644 --- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-1-u32-from-u64.c +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-1-u32-from-u64.c @@ -9,3 +9,5 @@ DEF_SAT_U_MUL_FMT_1_WRAP(NT, WT) /* { dg-final { scan-tree-dump-times ".SAT_MUL" 1 "optimized" } } */ +/* { dg-final { scan-assembler-not "\.L\[0-9\]+" } } */ +/* { dg-final { scan-assembler-times "mulhu" 1 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-1-u64-from-u128.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-1-u64-from-u128.c index d8a01d1..b1bf4fa 100644 --- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-1-u64-from-u128.c +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-1-u64-from-u128.c @@ -10,3 +10,4 @@ DEF_SAT_U_MUL_FMT_1_WRAP(NT, WT) /* { dg-final { scan-tree-dump-times ".SAT_MUL" 1 "optimized" } } */ /* { dg-final { scan-assembler-not "\.L\[0-9\]+" } } */ +/* { dg-final { scan-assembler-times "mulhu" 1 } } */ |