Update gcc to 15.2.1-7
Resolves: RHEL-116514 Assisted-by: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
869d62c66d
commit
4242c96651
@ -5,7 +5,7 @@ index b64e71dae22..5bf47b20820 100644
|
||||
@@ -12,7 +12,6 @@
|
||||
jump threading opportunities. Skip the later tests on aarch64. */
|
||||
/* { dg-final { scan-tree-dump-not "Jumps threaded" "dom3" { target { ! aarch64*-*-* } } } } */
|
||||
/* { dg-final { scan-tree-dump "Jumps threaded: 9" "thread2" { target { ! aarch64*-*-* } } } } */
|
||||
/* { dg-final { scan-tree-dump "Jumps threaded: 10" "thread2" { target { ! aarch64*-*-* } } } } */
|
||||
-/* { dg-final { scan-tree-dump "Jumps threaded: 17" "thread2" { target { aarch64*-*-* } } } } */
|
||||
|
||||
enum STATE {
|
||||
|
||||
@ -15,13 +15,13 @@ BuildRequires: gcc-toolset-%{gts_ver}-devel
|
||||
%{?scl:%global __strip %%{_scl_root}/usr/bin/strip}
|
||||
%{?scl:%global __objdump %%{_scl_root}/usr/bin/objdump}
|
||||
%{?scl:%scl_package gcc}
|
||||
%global DATE 20250521
|
||||
%global gitrev b9def1721b12cae307c1a1ebc49030fce6531dfa
|
||||
%global gcc_version 15.1.1
|
||||
%global DATE 20260123
|
||||
%global gitrev 226e8310eed1ce10784f98f199e1aa4b12ca86b7
|
||||
%global gcc_version 15.2.1
|
||||
%global gcc_major 15
|
||||
# Note, gcc_release must be integer, if you want to add suffixes to
|
||||
# %%{release}, append them after %%{gcc_release} on Release: line.
|
||||
%global gcc_release 2
|
||||
%global gcc_release 7
|
||||
%global nvptx_tools_gitrev 87ce9dc5999e5fca2e1d3478a30888d9864c9804
|
||||
%global newlib_cygwin_gitrev d35cc82b5ec15bb8a5fe0fe11e183d1887992e99
|
||||
%global isl_version 0.24
|
||||
@ -360,6 +360,9 @@ Patch9: gcc15-Wno-format-security.patch
|
||||
Patch10: gcc15-rh1574936.patch
|
||||
Patch11: gcc15-d-shared-libphobos.patch
|
||||
Patch12: gcc15-pr119006.patch
|
||||
Patch13: gcc15-pr123273.patch
|
||||
Patch14: gcc15-pr123667.patch
|
||||
Patch15: gcc15-pr123737.patch
|
||||
|
||||
Patch50: isl-rh2155127.patch
|
||||
|
||||
@ -721,6 +724,9 @@ so that there cannot be any synchronization problems.
|
||||
%patch -P10 -p0 -b .rh1574936~
|
||||
%patch -P11 -p0 -b .d-shared-libphobos~
|
||||
%patch -P12 -p0 -b .pr119006~
|
||||
%patch -P13 -p0 -b .pr123273~
|
||||
%patch -P14 -p0 -b .pr123667~
|
||||
%patch -P15 -p0 -b .pr123737~
|
||||
|
||||
%patch -P100 -p1 -b .fortran-fdec-duplicates~
|
||||
|
||||
@ -2908,6 +2914,30 @@ fi
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Mon Jan 26 2026 Siddhesh Poyarekar <siddhesh@redhat.com> 15.2.1-7
|
||||
- update from releases/gcc-15 branch (RHEL-116514)
|
||||
- PRs ada/68179, ada/123060, ada/123088, ada/123096, ada/123138, ada/123185,
|
||||
ada/123289, ada/123302, ada/123306, ada/123371, ada/123589,
|
||||
analyzer/122975, analyzer/123085, c/123156, c++/91388, c++/114764,
|
||||
c++/116952, c++/120446, c++/121854, c++/121966, c++/122048,
|
||||
c++/122070, c++/122550, c++/122668, c++/122752, c++/122772,
|
||||
c++/122834, c++/122922, c++/123331, c++/123597, debug/121964,
|
||||
diagnostics/120063, fortran/107406, libfortran/122936,
|
||||
libstdc++/120446, libstdc++/122812, libstdc++/122907,
|
||||
libstdc++/123147, middle-end/111817, middle-end/123107,
|
||||
middle-end/123392, middle-end/123703, rtl-optimization/121773,
|
||||
rtl-optimization/122215, rtl-optimization/123121,
|
||||
rtl-optimization/123523, target/117575, target/119130,
|
||||
target/120250, target/121192, target/121485, target/123022,
|
||||
target/123092, target/123155, target/123217, target/123460,
|
||||
target/123484, target/123489, target/123521, target/123607,
|
||||
target/123742, testsuite/123353, tree-optimization/122793,
|
||||
tree-optimization/122868, tree-optimization/123040,
|
||||
tree-optimization/123300, tree-optimization/123351,
|
||||
tree-optimization/123372, tree-optimization/123431,
|
||||
tree-optimization/123513, tree-optimization/123602,
|
||||
tree-optimization/123736, tree-optimization/123741
|
||||
|
||||
* Mon Jun 16 2025 Marek Polacek <polacek@redhat.com> 15.1.1-2.3
|
||||
- re-enable annobin-plugin and offload-nvptx
|
||||
- configure with --enable-host-pie --enable-host-bind-now (RHEL-95594)
|
||||
|
||||
54
gcc15-pr123273.patch
Normal file
54
gcc15-pr123273.patch
Normal file
@ -0,0 +1,54 @@
|
||||
2026-01-06 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR preprocessor/123273
|
||||
* lex.cc (cpp_directive_only_process): Only go to done_comment
|
||||
for '/' if star is true and esc is false. When seeing '\\' with
|
||||
esc set to true, clear esc as well as star instead of keeping esc
|
||||
set.
|
||||
|
||||
* c-c++-common/cpp/dir-only-10.c: New test.
|
||||
* c-c++-common/cpp/dir-only-11.c: New test.
|
||||
|
||||
--- libcpp/lex.cc.jj 2026-01-02 09:56:10.417332292 +0100
|
||||
+++ libcpp/lex.cc 2026-01-05 16:40:26.413766032 +0100
|
||||
@@ -5461,7 +5461,13 @@ cpp_directive_only_process (cpp_reader *
|
||||
switch (c)
|
||||
{
|
||||
case '\\':
|
||||
- esc = true;
|
||||
+ if (esc)
|
||||
+ {
|
||||
+ star = false;
|
||||
+ esc = false;
|
||||
+ }
|
||||
+ else
|
||||
+ esc = true;
|
||||
break;
|
||||
|
||||
case '\r':
|
||||
@@ -5492,7 +5498,7 @@ cpp_directive_only_process (cpp_reader *
|
||||
break;
|
||||
|
||||
case '/':
|
||||
- if (star)
|
||||
+ if (star && !esc)
|
||||
goto done_comment;
|
||||
/* FALLTHROUGH */
|
||||
|
||||
--- gcc/testsuite/c-c++-common/cpp/dir-only-10.c.jj 2026-01-05 17:04:26.144566116 +0100
|
||||
+++ gcc/testsuite/c-c++-common/cpp/dir-only-10.c 2026-01-05 17:05:02.226946201 +0100
|
||||
@@ -0,0 +1,5 @@
|
||||
+/* PR preprocessor/123273 */
|
||||
+/* { dg-do preprocess } */
|
||||
+/* { dg-options -fdirectives-only } */
|
||||
+
|
||||
+/* *\/""" */
|
||||
--- gcc/testsuite/c-c++-common/cpp/dir-only-11.c.jj 2026-01-05 17:05:18.498666647 +0100
|
||||
+++ gcc/testsuite/c-c++-common/cpp/dir-only-11.c 2026-01-05 17:06:17.574651691 +0100
|
||||
@@ -0,0 +1,6 @@
|
||||
+/* PR preprocessor/123273 */
|
||||
+/* { dg-do preprocess } */
|
||||
+/* { dg-options -fdirectives-only } */
|
||||
+
|
||||
+/* *\\
|
||||
+/""" */
|
||||
94
gcc15-pr123667.patch
Normal file
94
gcc15-pr123667.patch
Normal file
@ -0,0 +1,94 @@
|
||||
2026-01-21 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/123667
|
||||
* semantics.cc (finish_decltype_type): Allow a structured binding
|
||||
for ptds.saved to have DECL_HAS_VALUE_EXPR_P cleared, if it is
|
||||
not within current_function_decl, but in that case assert that
|
||||
lookup_decomp_type succeeded.
|
||||
|
||||
* g++.dg/cpp1z/decomp66.C: New test.
|
||||
* g++.dg/cpp1z/decomp67.C: New test.
|
||||
|
||||
--- gcc/cp/semantics.cc.jj 2026-01-15 16:33:46.000000000 +0100
|
||||
+++ gcc/cp/semantics.cc 2026-01-21 17:55:14.272577246 +0100
|
||||
@@ -13062,12 +13062,16 @@ finish_decltype_type (tree expr, bool id
|
||||
{
|
||||
if (ptds.saved)
|
||||
{
|
||||
- gcc_checking_assert (DECL_HAS_VALUE_EXPR_P (expr));
|
||||
+ gcc_checking_assert (DECL_HAS_VALUE_EXPR_P (expr)
|
||||
+ || (DECL_CONTEXT (expr)
|
||||
+ != current_function_decl));
|
||||
/* DECL_HAS_VALUE_EXPR_P is always set if
|
||||
- processing_template_decl. If lookup_decomp_type
|
||||
+ processing_template_decl at least for structured bindings
|
||||
+ within the template. If lookup_decomp_type
|
||||
returns non-NULL, it is the tuple case. */
|
||||
if (tree ret = lookup_decomp_type (expr))
|
||||
return ret;
|
||||
+ gcc_checking_assert (DECL_HAS_VALUE_EXPR_P (expr));
|
||||
}
|
||||
if (DECL_HAS_VALUE_EXPR_P (expr))
|
||||
/* Expr is an array or struct subobject proxy, handle
|
||||
--- gcc/testsuite/g++.dg/cpp1z/decomp66.C.jj 2026-01-21 17:59:28.122275457 +0100
|
||||
+++ gcc/testsuite/g++.dg/cpp1z/decomp66.C 2026-01-21 17:58:30.737247916 +0100
|
||||
@@ -0,0 +1,23 @@
|
||||
+// PR c++/123667
|
||||
+// { dg-do compile { target c++14 } }
|
||||
+// { dg-options "" }
|
||||
+
|
||||
+namespace std {
|
||||
+ template <typename T> struct tuple_size;
|
||||
+ template <int, typename> struct tuple_element;
|
||||
+}
|
||||
+
|
||||
+struct A {
|
||||
+ int i;
|
||||
+ template <int I> int &get () { return i; }
|
||||
+};
|
||||
+
|
||||
+template <> struct std::tuple_size <A> { static const int value = 2; };
|
||||
+template <int I> struct std::tuple_element <I,A> { using type = int; };
|
||||
+
|
||||
+int
|
||||
+main ()
|
||||
+{
|
||||
+ auto [ x, y ] = A { 0 }; // { dg-warning "structured bindings only available with" "" { target c++14_down } }
|
||||
+ [] (auto t) { using z = decltype (x); } (1);
|
||||
+}
|
||||
--- gcc/testsuite/g++.dg/cpp1z/decomp67.C.jj 2026-01-21 17:59:31.139224331 +0100
|
||||
+++ gcc/testsuite/g++.dg/cpp1z/decomp67.C 2026-01-21 17:59:07.235629406 +0100
|
||||
@@ -0,0 +1,33 @@
|
||||
+// PR c++/123667
|
||||
+// { dg-do compile { target c++11 } }
|
||||
+// { dg-options "" }
|
||||
+
|
||||
+namespace std {
|
||||
+ template <typename T> struct tuple_size;
|
||||
+ template <int, typename> struct tuple_element;
|
||||
+}
|
||||
+
|
||||
+struct A {
|
||||
+ int i;
|
||||
+ template <int I> int &get () { return i; }
|
||||
+};
|
||||
+
|
||||
+template <> struct std::tuple_size <A> { static const int value = 2; };
|
||||
+template <int I> struct std::tuple_element <I,A> { using type = int; };
|
||||
+
|
||||
+auto [ x, y ] = A { 0 }; // { dg-warning "structured bindings only available with" "" { target c++14_down } }
|
||||
+
|
||||
+template <int N>
|
||||
+void
|
||||
+foo ()
|
||||
+{
|
||||
+ using a = decltype (x);
|
||||
+ auto [ x, y ] = A { 0 }; // { dg-warning "structured bindings only available with" "" { target c++14_down } }
|
||||
+ using b = decltype (x);
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+bar ()
|
||||
+{
|
||||
+ foo <42> ();
|
||||
+}
|
||||
86
gcc15-pr123737.patch
Normal file
86
gcc15-pr123737.patch
Normal file
@ -0,0 +1,86 @@
|
||||
2026-01-21 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/123737
|
||||
* parser.cc (cp_parser_expression): Don't handle CPP_EMBED just
|
||||
as the last byte in it if expression has or might have overloaded
|
||||
type. In that case call build_x_compound_expr for each byte
|
||||
in CPP_EMBED separately.
|
||||
|
||||
* g++.dg/cpp/embed-28.C: New test.
|
||||
* g++.dg/parse/comma3.C: New test.
|
||||
|
||||
--- gcc/cp/parser.cc.jj 2026-01-20 01:13:20.324260446 +0100
|
||||
+++ gcc/cp/parser.cc 2026-01-21 14:04:32.086336386 +0100
|
||||
@@ -12132,10 +12132,24 @@ cp_parser_expression (cp_parser* parser,
|
||||
and one CPP_NUMBER plus CPP_COMMA before it and one
|
||||
CPP_COMMA plus CPP_NUMBER after it is guaranteed by
|
||||
the preprocessor. Thus, parse the whole CPP_EMBED just
|
||||
- as a single INTEGER_CST, the last byte in it. */
|
||||
+ as a single INTEGER_CST, the last byte in it. Though,
|
||||
+ don't use that shortcut if the comma operator could be
|
||||
+ overloaded. */
|
||||
tree raw_data = cp_lexer_peek_token (parser->lexer)->u.value;
|
||||
location_t loc = cp_lexer_peek_token (parser->lexer)->location;
|
||||
cp_lexer_consume_token (parser->lexer);
|
||||
+ if (OVERLOAD_TYPE_P (TREE_TYPE (expression))
|
||||
+ || type_dependent_expression_p (expression))
|
||||
+ for (unsigned i = 0; i < RAW_DATA_LENGTH (raw_data) - 1U; ++i)
|
||||
+ {
|
||||
+ assignment_expression
|
||||
+ = *raw_data_iterator (raw_data, i);
|
||||
+ assignment_expression.set_location (loc);
|
||||
+ expression
|
||||
+ = build_x_compound_expr (loc, expression,
|
||||
+ assignment_expression, NULL_TREE,
|
||||
+ complain_flags (decltype_p));
|
||||
+ }
|
||||
assignment_expression
|
||||
= *raw_data_iterator (raw_data, RAW_DATA_LENGTH (raw_data) - 1);
|
||||
assignment_expression.set_location (loc);
|
||||
--- gcc/testsuite/g++.dg/cpp/embed-28.C.jj 2026-01-21 14:11:14.617520864 +0100
|
||||
+++ gcc/testsuite/g++.dg/cpp/embed-28.C 2026-01-21 14:11:01.121749695 +0100
|
||||
@@ -0,0 +1,19 @@
|
||||
+// PR c++/123737
|
||||
+// { dg-do run }
|
||||
+// { dg-options "--embed-dir=${srcdir}/c-c++-common/cpp/embed-dir" }
|
||||
+
|
||||
+struct A {
|
||||
+ A (int x) : a (0), e (x) {}
|
||||
+ unsigned long a, e;
|
||||
+ A &operator, (int) { ++a; return *this; }
|
||||
+ ~A () { if (a != e) __builtin_abort (); }
|
||||
+};
|
||||
+
|
||||
+int
|
||||
+main ()
|
||||
+{
|
||||
+ A a = 231;
|
||||
+ a,
|
||||
+#embed <magna-carta.txt> limit (231)
|
||||
+ ;
|
||||
+}
|
||||
--- gcc/testsuite/g++.dg/parse/comma3.C.jj 2026-01-21 14:08:53.834908004 +0100
|
||||
+++ gcc/testsuite/g++.dg/parse/comma3.C 2026-01-21 12:15:02.334948163 +0100
|
||||
@@ -0,0 +1,22 @@
|
||||
+// PR c++/123737
|
||||
+// { dg-do run }
|
||||
+
|
||||
+struct A {
|
||||
+ A (int x) : a (0), e (x) {}
|
||||
+ unsigned long a, e;
|
||||
+ A &operator, (int) { ++a; return *this; }
|
||||
+ ~A () { if (a != e) __builtin_abort (); }
|
||||
+};
|
||||
+
|
||||
+int
|
||||
+main ()
|
||||
+{
|
||||
+ A a = 131;
|
||||
+ a, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
|
||||
+}
|
||||
2
sources
2
sources
@ -1,4 +1,4 @@
|
||||
SHA512 (gcc-15.1.1-20250521.tar.xz) = 86b06902e10aa6eba4ccbe54e97fee17838e21484e4f6d4aef2e93d0687b04e82f00655828ac0233f4026cd0d2df08bbdfe7dc2eeafc8908cab183584d2fb8ee
|
||||
SHA512 (gcc-15.2.1-20260123.tar.xz) = c4f0513e4027632f2d62b1feead9fa197e46f796212bd7f07eaff9b2e84a1230b601f3a6f2cabfc9994ca0e47f95b21fcb9a182575a27e30100e3206d6767070
|
||||
SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95
|
||||
SHA512 (newlib-cygwin-d35cc82b5ec15bb8a5fe0fe11e183d1887992e99.tar.xz) = ef9495745a96d1d76f9f425c4a48c807fface36a1aa92351c5d024103678d144d046e8de55d195103784472c14874e29e4b9284d5d6a2e7bb27fd98c8455a881
|
||||
SHA512 (nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz) = 941e763af8601b89f0e4ec48a2d68ae0a8e70ee1e6ba6859394b021ad7bd7d143cc529f3c35c08d7f84e5554980ddcc97cf05b6c4755c2bc36c91161b79e8cea
|
||||
|
||||
Loading…
Reference in New Issue
Block a user