aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog85
-rw-r--r--gcc/DATESTAMP2
-rw-r--r--gcc/cp/ChangeLog12
-rw-r--r--gcc/cp/decl2.cc4
-rw-r--r--gcc/cp/pt.cc16
-rw-r--r--gcc/testsuite/ChangeLog155
-rw-r--r--gcc/testsuite/g++.dg/cpp1y/constexpr-recursion3.C15
-rw-r--r--gcc/testsuite/gcc.dg/pr87600.h2
-rw-r--r--gcc/testsuite/gcc.dg/pr89313.c2
-rw-r--r--gcc/testsuite/gcc.target/powerpc/block-cmp-8.c2
10 files changed, 286 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5aff75f..f4aa01b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,88 @@
+2025-05-09 Eric Botcazou <ebotcazou@adacore.com>
+
+ * vr-values.cc (simplify_using_ranges::simplify) <BIT_AND_EXPR>:
+ Do not call simplify_bit_ops_using_ranges for boolean types whose
+ precision is not 1.
+
+2025-05-09 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/114166
+ * tree-vect-stmts.cc (vectorizable_operation): Lower also
+ bitwise operations on word-mode vectors.
+
+2025-05-09 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-stmts.cc (vectorizable_operation): Remve non-SLP
+ path.
+
+2025-05-09 Andrew Pinski <quic_apinski@quicinc.com>
+
+ * gimple.h (gimple_cond_true_canonical_p): New function.
+ (gimple_cond_false_canonical_p): New function.
+ * gimple-fold.cc (replace_stmt_with_simplification): Return
+ false if replacing the operands of GIMPLE_COND with an INTEGER_CST
+ and already in canonical form.
+
+2025-05-09 Richard Biener <rguenther@suse.de>
+
+ PR rtl-optimization/120182
+ * dse.cc (canon_address): Constant addresses have no
+ separate store group.
+
+2025-05-09 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/119960
+ * tree-vect-slp.cc (vect_slp_can_convert_to_external):
+ Handle cases where defs from multiple BBs are ordered
+ by their dominance relation.
+
+2025-05-09 Jørgen Kvalsvik <j@lambda.is>
+
+ PR gcov-profile/120086
+ * gcov.cc (print_prime_path_lines): Use unsigned, format with
+ %u.
+ (print_prime_path_source): Likewise.
+ (output_path_coverage): Format with HOST_SIZE_T_PRINT_UNSIGNED,
+ use unsigned for pathno.
+
+2025-05-09 Jennifer Schmitz <jschmitz@nvidia.com>
+
+ * config/aarch64/aarch64-sve.md (*aarch64_sve_ptrue<mode>_ldr_str):
+ Add define_insn_and_split to fold predicated SVE loads/stores with
+ ptrue predicates to unpredicated instructions.
+
+2025-05-09 David Malcolm <dmalcolm@redhat.com>
+
+ PR other/116792
+ * Makefile.in (OBJS-libcommon): Add diagnostic-format-html.o.
+ * diagnostic-format-html.cc: Move here from
+ testsuite/gcc.dg/plugin/diagnostic_plugin_xhtml_format.cc.
+ Simplify includes. Rename "xhtml" to "html" throughout.
+ (write_escaped_text): Drop.
+ (class xhtml_stream_output_format): Drop.
+ (class html_file_output_format): Reimplement using
+ diagnostic_output_file.
+ (diagnostic_output_format_init_xhtml): Drop.
+ (diagnostic_output_format_init_xhtml_stderr): Drop.
+ (diagnostic_output_format_init_xhtml_file): Drop.
+ (diagnostic_output_format_open_html_file): New.
+ (make_html_sink): New.
+ (xhtml_format_selftests): Convert to...
+ (diagnostic_format_html_cc_tests): ...this.
+ (plugin_is_GPL_compatible): Drop.
+ (plugin_init): Drop.
+ * diagnostic-format-html.h: New file.
+ * doc/invoke.texi (-fdiagnostics-add-output=): Add
+ "experimental-html" scheme.
+ * opts-diagnostic.cc: Include "diagnostic-format-html.h".
+ (class html_scheme_handler): New.
+ (output_factory::output_factory): Add html_scheme_handler.
+ (html_scheme_handler::make_sink): New.
+ * selftest-run-tests.cc (selftest::run_tests): Call the new
+ selftests.
+ * selftest.h (selftest::diagnostic_format_html_cc_tests): New
+ decl.
+
2025-05-08 Andrew Pinski <quic_apinski@quicinc.com>
* gimple-fold.cc (replace_stmt_with_simplification): Return false
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 62c0f83..21a86ae 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250509
+20250510
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index df57002..51672a7 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,15 @@
+2025-05-09 Jason Merrill <jason@redhat.com>
+
+ * decl2.cc (determine_visibility): Ignore args for friend templates.
+
+2025-05-09 Jason Merrill <jason@redhat.com>
+
+ PR c++/99599
+ PR c++/120185
+ * class.cc (type_has_converting_constructor): Handle null parm.
+ * pt.cc (fn_type_unification): Skip early non-dep checking if
+ no concepts.
+
2025-05-08 Jason Merrill <jason@redhat.com>
PR c++/99599
diff --git a/gcc/cp/decl2.cc b/gcc/cp/decl2.cc
index 21156f1..15db1d6 100644
--- a/gcc/cp/decl2.cc
+++ b/gcc/cp/decl2.cc
@@ -3160,7 +3160,9 @@ determine_visibility (tree decl)
&& !attr)
{
int depth = TMPL_ARGS_DEPTH (args);
- if (DECL_VISIBILITY_SPECIFIED (decl))
+ if (DECL_UNINSTANTIATED_TEMPLATE_FRIEND_P (TI_TEMPLATE (tinfo)))
+ /* Class template args don't affect template friends. */;
+ else if (DECL_VISIBILITY_SPECIFIED (decl))
{
/* A class template member with explicit visibility
overrides the class visibility, so we need to apply
diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc
index 09f74a2..0d64a1c 100644
--- a/gcc/cp/pt.cc
+++ b/gcc/cp/pt.cc
@@ -17477,10 +17477,18 @@ tsubst_baselink (tree baselink, tree object_type,
if (!baselink)
{
- if ((complain & tf_error)
- && constructor_name_p (name, qualifying_scope))
- error ("cannot call constructor %<%T::%D%> directly",
- qualifying_scope, name);
+ if (complain & tf_error)
+ {
+ if (constructor_name_p (name, qualifying_scope))
+ error ("cannot call constructor %<%T::%D%> directly",
+ qualifying_scope, name);
+ else
+ /* Lookup succeeded at parse time, but failed during
+ instantiation; must be because we're trying to refer to it
+ while forming its declaration (c++/120204). */
+ error ("declaration of %<%T::%D%> depends on itself",
+ qualifying_scope, name);
+ }
return error_mark_node;
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 5ba940a..ce230e0 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,158 @@
+2025-05-09 Jason Merrill <jason@redhat.com>
+
+ PR c++/99599
+ PR c++/120185
+ * g++.dg/cpp2a/concepts-nondep6.C: New test.
+
+2025-05-09 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/opt106.adb: New test.
+ * gnat.dg/opt106_pkg1.ads, gnat.dg/opt106_pkg1.adb: New helper.
+ * gnat.dg/opt106_pkg2.ads, gnat.dg/opt106_pkg2.adb: Likewise.
+
+2025-05-09 Richard Biener <rguenther@suse.de>
+
+ PR rtl-optimization/120182
+ * gcc.dg/torture/pr120182.c: New testcase.
+
+2025-05-09 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/119960
+ * gcc.dg/vect/bb-slp-pr119960-1.c: New testcase.
+
+2025-05-09 Christophe Lyon <christophe.lyon@linaro.org>
+
+ * g++.dg/cpp2a/constinit16.C: Require tls.
+
+2025-05-09 Christophe Lyon <christophe.lyon@linaro.org>
+
+ * g++.dg/cpp2a/decomp2.C: Require tls_runtime.
+
+2025-05-09 Jiawei <jiawei@iscas.ac.cn>
+
+ * gcc.dg/pr119160.c: Limit backends.
+
+2025-05-09 Jennifer Schmitz <jschmitz@nvidia.com>
+
+ * gcc.target/aarch64/sve/ptrue_ldr_str.c: New test.
+ * gcc.target/aarch64/sve/acle/general/attributes_6.c: Adjust
+ expected outcome.
+ * gcc.target/aarch64/sve/cost_model_14.c: Adjust expected outcome.
+ * gcc.target/aarch64/sve/cost_model_4.c: Adjust expected outcome.
+ * gcc.target/aarch64/sve/cost_model_5.c: Adjust expected outcome.
+ * gcc.target/aarch64/sve/cost_model_6.c: Adjust expected outcome.
+ * gcc.target/aarch64/sve/cost_model_7.c: Adjust expected outcome.
+ * gcc.target/aarch64/sve/pcs/varargs_2_f16.c: Adjust expected outcome.
+ * gcc.target/aarch64/sve/pcs/varargs_2_f32.c: Adjust expected outcome.
+ * gcc.target/aarch64/sve/pcs/varargs_2_f64.c: Adjust expected outcome.
+ * gcc.target/aarch64/sve/pcs/varargs_2_mf8.c: Adjust expected outcome.
+ * gcc.target/aarch64/sve/pcs/varargs_2_s16.c: Adjust expected outcome.
+ * gcc.target/aarch64/sve/pcs/varargs_2_s32.c: Adjust expected outcome.
+ * gcc.target/aarch64/sve/pcs/varargs_2_s64.c: Adjust expected outcome.
+ * gcc.target/aarch64/sve/pcs/varargs_2_s8.c: Adjust expected outcome.
+ * gcc.target/aarch64/sve/pcs/varargs_2_u16.c: Adjust expected outcome.
+ * gcc.target/aarch64/sve/pcs/varargs_2_u32.c: Adjust expected outcome.
+ * gcc.target/aarch64/sve/pcs/varargs_2_u64.c: Adjust expected outcome.
+ * gcc.target/aarch64/sve/pcs/varargs_2_u8.c: Adjust expected outcome.
+ * gcc.target/aarch64/sve/peel_ind_2.c: Adjust expected outcome.
+ * gcc.target/aarch64/sve/single_1.c: Adjust expected outcome.
+ * gcc.target/aarch64/sve/single_2.c: Adjust expected outcome.
+ * gcc.target/aarch64/sve/single_3.c: Adjust expected outcome.
+ * gcc.target/aarch64/sve/single_4.c: Adjust expected outcome.
+
+2025-05-09 David Malcolm <dmalcolm@redhat.com>
+
+ PR other/116792
+ * gcc.dg/plugin/diagnostic_plugin_xhtml_format.cc: Move to
+ gcc/diagnostic-format-html.cc.
+ * gcc.dg/html-output/html-output.exp: New support script.
+ * gcc.dg/html-output/missing-semicolon.c: New test.
+ * gcc.dg/html-output/missing-semicolon.py: New test script.
+ * gcc.dg/plugin/diagnostic-test-xhtml-1.c: Deleted test.
+ * gcc.dg/plugin/plugin.exp (plugin_test_list): Drop moved plugin
+ and its deleted test.
+ * lib/gcc-dg.exp (load_lib): Add load_lib of scanhtml.exp.
+ * lib/htmltest.py: New support script.
+ * lib/scanhtml.exp: New support script, based on scansarif.exp.
+
+2025-05-09 Pan Li <pan2.li@intel.com>
+
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-6-i16.c: New test.
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-6-i32.c: New test.
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-6-i64.c: New test.
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-6-i8.c: New test.
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-6-u16.c: New test.
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-6-u32.c: New test.
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-6-u64.c: New test.
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-6-u8.c: New test.
+
+2025-05-09 Pan Li <pan2.li@intel.com>
+
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-5-i16.c: New test.
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-5-i32.c: New test.
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-5-i64.c: New test.
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-5-i8.c: New test.
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-5-u16.c: New test.
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-5-u32.c: New test.
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-5-u64.c: New test.
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-5-u8.c: New test.
+
+2025-05-09 Pan Li <pan2.li@intel.com>
+
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_binary.h: Add test
+ helper macros.
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-4-i16.c: New test.
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-4-i32.c: New test.
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-4-i64.c: New test.
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-4-i8.c: New test.
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-4-u16.c: New test.
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-4-u32.c: New test.
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-4-u64.c: New test.
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-4-u8.c: New test.
+
+2025-05-09 Pan Li <pan2.li@intel.com>
+
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_binary.h: Rename VX_BINARY
+ to VX_BINARY_CASE_0 for underlying case 1.
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-1-i16.c: Take the
+ new name for test.
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-1-i32.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-1-i64.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-1-i8.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-1-u16.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-1-u32.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-1-u64.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-1-u8.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-2-i16.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-2-i32.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-2-i64.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-2-i8.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-2-u16.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-2-u32.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-2-u64.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-2-u8.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-3-i16.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-3-i32.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-3-i64.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-3-i8.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-3-u16.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-3-u32.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-3-u64.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-3-u8.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-run-1-i16.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-run-1-i32.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-run-1-i64.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-run-1-i8.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-run-1-u16.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-run-1-u32.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-run-1-u64.c: Ditto
+ * gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-run-1-u8.c: Ditto
+
+2025-05-09 Pan Li <pan2.li@intel.com>
+
+ * gcc.target/riscv/rvv/rvv.exp: Separate test running of
+ rvv vx_vf.
+
2025-05-08 Harald Anlauf <anlauf@gmx.de>
PR fortran/120179
diff --git a/gcc/testsuite/g++.dg/cpp1y/constexpr-recursion3.C b/gcc/testsuite/g++.dg/cpp1y/constexpr-recursion3.C
new file mode 100644
index 0000000..cadbdf0
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp1y/constexpr-recursion3.C
@@ -0,0 +1,15 @@
+// PR c++/120204
+// { dg-do compile { target c++14 } }
+
+template<class T, int t>
+struct array{};
+
+template <typename... TArgs> struct ILEArglist {
+ using Sizes = array<int, sizeof...(TArgs)>;
+ static constexpr int size() { // { dg-bogus "not usable" }
+ Sizes &offsets_c = offsets; // { dg-error "depends on itself" }
+ return 0;
+ }
+ array<char, size()> offsets(); // { dg-error "constant expression" }
+};
+auto arglist = ILEArglist<>();
diff --git a/gcc/testsuite/gcc.dg/pr87600.h b/gcc/testsuite/gcc.dg/pr87600.h
index af91f63..c89071eb 100644
--- a/gcc/testsuite/gcc.dg/pr87600.h
+++ b/gcc/testsuite/gcc.dg/pr87600.h
@@ -7,7 +7,7 @@
#elif defined (__i386__)
# define REG1 "%eax"
# define REG2 "%edx"
-#elif defined (__powerpc__) || defined (__POWERPC__)
+#elif defined (__powerpc__) || defined (__POWERPC__) || defined (__PPC__)
# define REG1 "r3"
# define REG2 "r4"
#elif defined (__s390__)
diff --git a/gcc/testsuite/gcc.dg/pr89313.c b/gcc/testsuite/gcc.dg/pr89313.c
index 76cb091..7de64da 100644
--- a/gcc/testsuite/gcc.dg/pr89313.c
+++ b/gcc/testsuite/gcc.dg/pr89313.c
@@ -8,7 +8,7 @@
# define REG "r0"
#elif defined (__i386__)
# define REG "%eax"
-#elif defined (__powerpc__) || defined (__POWERPC__)
+#elif defined (__powerpc__) || defined (__POWERPC__) || defined (__PPC__)
# define REG "r3"
#elif defined (__s390__)
# define REG "0"
diff --git a/gcc/testsuite/gcc.target/powerpc/block-cmp-8.c b/gcc/testsuite/gcc.target/powerpc/block-cmp-8.c
index 22a48c8..0f35ddd 100644
--- a/gcc/testsuite/gcc.target/powerpc/block-cmp-8.c
+++ b/gcc/testsuite/gcc.target/powerpc/block-cmp-8.c
@@ -1,6 +1,6 @@
/* { dg-do run { target ilp32 } } */
/* { dg-options "-O2 -mpowerpc64" } */
-/* { dg-require-effective-target has_arch_ppc64 } */
+/* { dg-require-effective-target powerpc64 } */
/* { dg-timeout-factor 2 } */
/* Verify memcmp on m32 mpowerpc64 */