11.1.1-3
This commit is contained in:
parent
a31fadcc09
commit
604b6369b8
1
.gitignore
vendored
1
.gitignore
vendored
@ -44,3 +44,4 @@
|
||||
/gcc-11.0.1-20210423.tar.xz
|
||||
/gcc-11.1.1-20210428.tar.xz
|
||||
/gcc-11.1.1-20210512.tar.xz
|
||||
/gcc-11.1.1-20210531.tar.xz
|
||||
|
24
gcc.spec
24
gcc.spec
@ -1,10 +1,10 @@
|
||||
%global DATE 20210512
|
||||
%global gitrev 2274d6c6dc94803fb17a8466bace08a15b387509
|
||||
%global DATE 20210531
|
||||
%global gitrev e8a00355f6fd6fe219de22855d92c351911519da
|
||||
%global gcc_version 11.1.1
|
||||
%global gcc_major 11
|
||||
# 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 3
|
||||
%global nvptx_tools_gitrev 5f6f343a302d620b0868edab376c00b15741e39e
|
||||
%global newlib_cygwin_gitrev 50e2a63b04bdd018484605fbb954fd1bd5147fa0
|
||||
%global _unpackaged_files_terminate_build 0
|
||||
@ -265,8 +265,7 @@ Patch10: gcc11-Wno-format-security.patch
|
||||
Patch11: gcc11-rh1574936.patch
|
||||
Patch12: gcc11-d-shared-libphobos.patch
|
||||
Patch13: gcc11-pr99341-revert.patch
|
||||
Patch14: gcc11-pr100379.patch
|
||||
Patch15: gcc11-pr100566.patch
|
||||
Patch14: gcc11-pr100797.patch
|
||||
|
||||
Patch100: gcc11-fortran-fdec-duplicates.patch
|
||||
Patch101: gcc11-fortran-flogical-as-integer.patch
|
||||
@ -790,8 +789,7 @@ to NVidia PTX capable devices if available.
|
||||
%endif
|
||||
%patch12 -p0 -b .d-shared-libphobos~
|
||||
%patch13 -p0 -b .pr99341-revert~
|
||||
%patch14 -p0 -b .pr100379~
|
||||
%patch15 -p0 -b .pr100566~
|
||||
%patch14 -p0 -b .pr100797~
|
||||
|
||||
%if 0%{?rhel} >= 9
|
||||
%patch100 -p1 -b .fortran-fdec-duplicates~
|
||||
@ -3134,6 +3132,18 @@ end
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Mon May 31 2021 Jakub Jelinek <jakub@redhat.com> 11.1.1-3
|
||||
- update from releases/gcc-11-branch
|
||||
- PRs bootstrap/100552, c++/100205, c++/100261, c++/100281, c++/100367,
|
||||
c++/100372, c++/100489, c++/100502, c++/100634, c++/100644,
|
||||
c++/100659, c/100550, fortran/98411, fortran/100551, fortran/100602,
|
||||
fortran/100633, fortran/100656, ipa/100513, libstdc++/100361,
|
||||
libstdc++/100479, libstdc++/100630, middle-end/100471,
|
||||
middle-end/100508, middle-end/100509, preprocessor/100392,
|
||||
target/94177, target/99725, target/99960, target/99977, target/100419,
|
||||
target/100563, target/100626, target/100767, testsuite/96488,
|
||||
tree-optimization/100492, tree-optimization/100519
|
||||
|
||||
* Wed May 12 2021 Jakub Jelinek <jakub@redhat.com> 11.1.1-2
|
||||
- update from releases/gcc-11-branch
|
||||
- PRs c++/98032, c++/100319, c++/100362, c/100450, fortran/100274,
|
||||
|
@ -1,115 +0,0 @@
|
||||
2021-05-10 Tamar Christina <tamar.christina@arm.com>
|
||||
|
||||
PR sanitizer/100379
|
||||
* sanitizer_common/sanitizer_platform.h: Define
|
||||
SANITIZER_LINUX_CYCLADES to one if linux/cyclades.h header exist.
|
||||
* sanitizer_common/sanitizer_platform_limits_posix.h: Conditionalize
|
||||
cyclades support on SANITIZER_LINUX_CYCLADES.
|
||||
* sanitizer_common/sanitizer_platform_limits_posix.cpp: Likewise.
|
||||
* sanitizer_common/sanitizer_common_interceptors_ioctl.inc: Likewise.
|
||||
|
||||
--- libsanitizer/sanitizer_common/sanitizer_platform.h.jj 2021-04-20 10:33:08.702324327 +0200
|
||||
+++ libsanitizer/sanitizer_common/sanitizer_platform.h 2021-05-12 15:44:53.035964205 +0200
|
||||
@@ -367,4 +367,17 @@
|
||||
#define SANITIZER_SUPPORTS_INIT_FOR_DLOPEN 0
|
||||
#endif
|
||||
|
||||
+// Kernel has removed this header, as such check for it's existance
|
||||
+// before trying to include defines from it.
|
||||
+// https://lkml.org/lkml/2021/3/2/153
|
||||
+#ifdef __has_include
|
||||
+# if __has_include(<linux/cyclades.h>) && !SANITIZER_ANDROID
|
||||
+# define SANITIZER_LINUX_CYCLADES 1
|
||||
+# else
|
||||
+# define SANITIZER_LINUX_CYCLADES 0
|
||||
+# endif
|
||||
+#else
|
||||
+# define SANITIZER_LINUX_CYCLADES 0
|
||||
+#endif
|
||||
+
|
||||
#endif // SANITIZER_PLATFORM_H
|
||||
--- libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h.jj 2021-04-20 10:33:08.703324315 +0200
|
||||
+++ libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h 2021-05-12 15:44:53.039964162 +0200
|
||||
@@ -981,7 +981,9 @@ extern unsigned struct_vt_mode_sz;
|
||||
|
||||
#if SANITIZER_LINUX && !SANITIZER_ANDROID
|
||||
extern unsigned struct_ax25_parms_struct_sz;
|
||||
+#if SANITIZER_LINUX_CYCLADES
|
||||
extern unsigned struct_cyclades_monitor_sz;
|
||||
+#endif
|
||||
extern unsigned struct_input_keymap_entry_sz;
|
||||
extern unsigned struct_ipx_config_data_sz;
|
||||
extern unsigned struct_kbdiacrs_sz;
|
||||
@@ -1326,6 +1328,7 @@ extern unsigned IOCTL_VT_WAITACTIVE;
|
||||
#endif // SANITIZER_LINUX
|
||||
|
||||
#if SANITIZER_LINUX && !SANITIZER_ANDROID
|
||||
+#if SANITIZER_LINUX_CYCLADES
|
||||
extern unsigned IOCTL_CYGETDEFTHRESH;
|
||||
extern unsigned IOCTL_CYGETDEFTIMEOUT;
|
||||
extern unsigned IOCTL_CYGETMON;
|
||||
@@ -1335,6 +1338,7 @@ extern unsigned IOCTL_CYSETDEFTHRESH;
|
||||
extern unsigned IOCTL_CYSETDEFTIMEOUT;
|
||||
extern unsigned IOCTL_CYSETTHRESH;
|
||||
extern unsigned IOCTL_CYSETTIMEOUT;
|
||||
+#endif
|
||||
extern unsigned IOCTL_EQL_EMANCIPATE;
|
||||
extern unsigned IOCTL_EQL_ENSLAVE;
|
||||
extern unsigned IOCTL_EQL_GETMASTRCFG;
|
||||
--- libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp.jj 2021-04-20 10:33:08.703324315 +0200
|
||||
+++ libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp 2021-05-12 15:44:53.040964151 +0200
|
||||
@@ -131,7 +131,9 @@ typedef struct user_fpregs elf_fpregset_
|
||||
# include <sys/procfs.h>
|
||||
#endif
|
||||
#include <sys/user.h>
|
||||
-#include <linux/cyclades.h>
|
||||
+#if SANITIZER_LINUX_CYCLADES
|
||||
+# include <linux/cyclades.h>
|
||||
+#endif
|
||||
#include <linux/if_eql.h>
|
||||
#include <linux/if_plip.h>
|
||||
#include <linux/lp.h>
|
||||
@@ -449,7 +451,9 @@ unsigned struct_ElfW_Phdr_sz = sizeof(El
|
||||
|
||||
#if SANITIZER_LINUX && !SANITIZER_ANDROID
|
||||
unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct);
|
||||
+#if SANITIZER_LINUX_CYCLADES
|
||||
unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor);
|
||||
+#endif
|
||||
#if EV_VERSION > (0x010000)
|
||||
unsigned struct_input_keymap_entry_sz = sizeof(struct input_keymap_entry);
|
||||
#else
|
||||
@@ -815,6 +819,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(El
|
||||
#endif // SANITIZER_LINUX
|
||||
|
||||
#if SANITIZER_LINUX && !SANITIZER_ANDROID
|
||||
+#if SANITIZER_LINUX_CYCLADES
|
||||
unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH;
|
||||
unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT;
|
||||
unsigned IOCTL_CYGETMON = CYGETMON;
|
||||
@@ -824,6 +829,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(El
|
||||
unsigned IOCTL_CYSETDEFTIMEOUT = CYSETDEFTIMEOUT;
|
||||
unsigned IOCTL_CYSETTHRESH = CYSETTHRESH;
|
||||
unsigned IOCTL_CYSETTIMEOUT = CYSETTIMEOUT;
|
||||
+#endif
|
||||
unsigned IOCTL_EQL_EMANCIPATE = EQL_EMANCIPATE;
|
||||
unsigned IOCTL_EQL_ENSLAVE = EQL_ENSLAVE;
|
||||
unsigned IOCTL_EQL_GETMASTRCFG = EQL_GETMASTRCFG;
|
||||
--- libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc.jj 2021-04-20 10:33:08.698324371 +0200
|
||||
+++ libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc 2021-05-12 15:44:53.027964291 +0200
|
||||
@@ -366,6 +366,7 @@ static void ioctl_table_fill() {
|
||||
|
||||
#if SANITIZER_LINUX && !SANITIZER_ANDROID
|
||||
// _(SIOCDEVPLIP, WRITE, struct_ifreq_sz); // the same as EQL_ENSLAVE
|
||||
+#if SANITIZER_LINUX_CYCLADES
|
||||
_(CYGETDEFTHRESH, WRITE, sizeof(int));
|
||||
_(CYGETDEFTIMEOUT, WRITE, sizeof(int));
|
||||
_(CYGETMON, WRITE, struct_cyclades_monitor_sz);
|
||||
@@ -375,6 +376,7 @@ static void ioctl_table_fill() {
|
||||
_(CYSETDEFTIMEOUT, NONE, 0);
|
||||
_(CYSETTHRESH, NONE, 0);
|
||||
_(CYSETTIMEOUT, NONE, 0);
|
||||
+#endif
|
||||
_(EQL_EMANCIPATE, WRITE, struct_ifreq_sz);
|
||||
_(EQL_ENSLAVE, WRITE, struct_ifreq_sz);
|
||||
_(EQL_GETMASTRCFG, WRITE, struct_ifreq_sz);
|
@ -1,69 +0,0 @@
|
||||
2021-05-12 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/100566
|
||||
* tree-ssa-sccvn.c (dominated_by_p_w_unex): Properly handle
|
||||
allow_back for all edge queries.
|
||||
|
||||
* gcc.dg/torture/pr100566.c: New testcase.
|
||||
|
||||
--- gcc/tree-ssa-sccvn.c
|
||||
+++ gcc/tree-ssa-sccvn.c
|
||||
@@ -4529,7 +4529,8 @@ dominated_by_p_w_unex (basic_block bb1, basic_block bb2, bool allow_back)
|
||||
/* Iterate to the single executable bb2 successor. */
|
||||
edge succe = NULL;
|
||||
FOR_EACH_EDGE (e, ei, bb2->succs)
|
||||
- if (e->flags & EDGE_EXECUTABLE)
|
||||
+ if ((e->flags & EDGE_EXECUTABLE)
|
||||
+ || (!allow_back && (e->flags & EDGE_DFS_BACK)))
|
||||
{
|
||||
if (succe)
|
||||
{
|
||||
@@ -4547,7 +4548,8 @@ dominated_by_p_w_unex (basic_block bb1, basic_block bb2, bool allow_back)
|
||||
{
|
||||
FOR_EACH_EDGE (e, ei, succe->dest->preds)
|
||||
if (e != succe
|
||||
- && (e->flags & EDGE_EXECUTABLE))
|
||||
+ && ((e->flags & EDGE_EXECUTABLE)
|
||||
+ || (!allow_back && (e->flags & EDGE_DFS_BACK))))
|
||||
{
|
||||
succe = NULL;
|
||||
break;
|
||||
--- gcc/testsuite/gcc.dg/torture/pr100566.c
|
||||
+++ gcc/testsuite/gcc.dg/torture/pr100566.c
|
||||
@@ -0,0 +1,36 @@
|
||||
+/* { dg-do run } */
|
||||
+
|
||||
+volatile int s, c;
|
||||
+
|
||||
+__attribute__((noipa)) void
|
||||
+foo (void)
|
||||
+{
|
||||
+ if (c++ > 1)
|
||||
+ __builtin_abort ();
|
||||
+}
|
||||
+
|
||||
+__attribute__((noipa)) int
|
||||
+bar (void)
|
||||
+{
|
||||
+ int i = 0, j = s;
|
||||
+ if (j == 0)
|
||||
+ goto lab;
|
||||
+ for (i = 0; i < j; i++)
|
||||
+ {
|
||||
+ lab:
|
||||
+ foo ();
|
||||
+ if (!j)
|
||||
+ goto lab;
|
||||
+ }
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+int
|
||||
+main ()
|
||||
+{
|
||||
+ s = 1;
|
||||
+ bar ();
|
||||
+ if (c != 1)
|
||||
+ __builtin_abort ();
|
||||
+ return 0;
|
||||
+}
|
91
gcc11-pr100797.patch
Normal file
91
gcc11-pr100797.patch
Normal file
@ -0,0 +1,91 @@
|
||||
2021-05-27 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/100797
|
||||
PR c++/95719
|
||||
* call.c (build_over_call): Adjust base_binfo in
|
||||
resolves_to_fixed_type_p case.
|
||||
|
||||
* g++.dg/inherit/virtual15.C: New test.
|
||||
|
||||
--- gcc/cp/call.c
|
||||
+++ gcc/cp/call.c
|
||||
@@ -9152,18 +9152,32 @@ build_over_call (struct z_candidate *cand, int flags, tsubst_flags_t complain)
|
||||
if (base_binfo == error_mark_node)
|
||||
return error_mark_node;
|
||||
}
|
||||
- tree converted_arg = build_base_path (PLUS_EXPR, arg,
|
||||
- base_binfo, 1, complain);
|
||||
|
||||
/* If we know the dynamic type of the object, look up the final overrider
|
||||
in the BINFO. */
|
||||
if (DECL_VINDEX (fn) && (flags & LOOKUP_NONVIRTUAL) == 0
|
||||
&& resolves_to_fixed_type_p (arg))
|
||||
{
|
||||
- fn = lookup_vfn_in_binfo (DECL_VINDEX (fn), base_binfo);
|
||||
- flags |= LOOKUP_NONVIRTUAL;
|
||||
+ tree ov = lookup_vfn_in_binfo (DECL_VINDEX (fn), base_binfo);
|
||||
+
|
||||
+ /* And unwind base_binfo to match. If we don't find the type we're
|
||||
+ looking for in BINFO_INHERITANCE_CHAIN, we're looking at diamond
|
||||
+ inheritance; for now do a normal virtual call in that case. */
|
||||
+ tree octx = DECL_CONTEXT (ov);
|
||||
+ tree obinfo = base_binfo;
|
||||
+ while (obinfo && !SAME_BINFO_TYPE_P (BINFO_TYPE (obinfo), octx))
|
||||
+ obinfo = BINFO_INHERITANCE_CHAIN (obinfo);
|
||||
+ if (obinfo)
|
||||
+ {
|
||||
+ fn = ov;
|
||||
+ base_binfo = obinfo;
|
||||
+ flags |= LOOKUP_NONVIRTUAL;
|
||||
+ }
|
||||
}
|
||||
|
||||
+ tree converted_arg = build_base_path (PLUS_EXPR, arg,
|
||||
+ base_binfo, 1, complain);
|
||||
+
|
||||
argarray[j++] = converted_arg;
|
||||
parm = TREE_CHAIN (parm);
|
||||
if (first_arg != NULL_TREE)
|
||||
--- gcc/testsuite/g++.dg/inherit/virtual15.C
|
||||
+++ gcc/testsuite/g++.dg/inherit/virtual15.C
|
||||
@@ -0,0 +1,18 @@
|
||||
+// PR c++/100797
|
||||
+// { dg-do run }
|
||||
+
|
||||
+bool ok = false;
|
||||
+struct S1 { virtual ~S1() {} };
|
||||
+struct S2 { virtual void f1() = 0; };
|
||||
+struct S3: S1, S2 {
|
||||
+ void f1() { f2(); }
|
||||
+ virtual void f2() = 0;
|
||||
+};
|
||||
+struct S4: S3 {
|
||||
+ void f2() { ok = true; }
|
||||
+ using S2::f1;
|
||||
+};
|
||||
+int main() {
|
||||
+ S4().f1();
|
||||
+ if (!ok) __builtin_abort ();
|
||||
+}
|
||||
--- gcc/testsuite/g++.dg/inherit/virtual15a.C
|
||||
+++ gcc/testsuite/g++.dg/inherit/virtual15a.C
|
||||
@@ -0,0 +1,19 @@
|
||||
+// PR c++/100797 plus diamond inheritance
|
||||
+// { dg-do run }
|
||||
+
|
||||
+bool ok = false;
|
||||
+struct S1 { virtual ~S1() {} };
|
||||
+struct S2 { virtual void f1() = 0; };
|
||||
+struct S3: S1, virtual S2 {
|
||||
+ void f1() { f2(); }
|
||||
+ virtual void f2() = 0;
|
||||
+};
|
||||
+struct SX: virtual S2 { };
|
||||
+struct S4: SX, S3 {
|
||||
+ void f2() { ok = true; }
|
||||
+ using S2::f1;
|
||||
+};
|
||||
+int main() {
|
||||
+ S4().f1();
|
||||
+ if (!ok) __builtin_abort ();
|
||||
+}
|
2
sources
2
sources
@ -1,4 +1,4 @@
|
||||
SHA512 (gcc-11.1.1-20210512.tar.xz) = 6cc7d8a3a641182c1d7d0d74097daef8c98a6feeedcb73fd1414831fec94930ec35baba11b67bc729bde1ed827799df33b7982799d4d2a07a189375d1262d8c8
|
||||
SHA512 (gcc-11.1.1-20210531.tar.xz) = e09a4e70d672c354b8b08660ecbe33cfb0b49fd67a6afb9c1b261aef9a6ed4daf2a15b616d62ce230cd556f6cbbd137038f6a4d109d4a9a84758e7be3a77a93d
|
||||
SHA512 (isl-0.18.tar.bz2) = 85d0b40f4dbf14cb99d17aa07048cdcab2dc3eb527d2fbb1e84c41b2de5f351025370e57448b63b2b8a8cf8a0843a089c3263f9baee1542d5c2e1cb37ed39d94
|
||||
SHA512 (newlib-cygwin-50e2a63b04bdd018484605fbb954fd1bd5147fa0.tar.xz) = 002a48a7b689a81abbf16161bcaec001a842e67dfbe372e9e109092703bfc666675f16198f60ca429370e8850d564547dc505df81bc3aaca4ce6defbc014ad6c
|
||||
SHA512 (nvptx-tools-5f6f343a302d620b0868edab376c00b15741e39e.tar.xz) = f6d10db94fa1570ae0f94df073fa3c73c8e5ee16d59070b53d94f7db0de8a031bc44d7f3f1852533da04b625ce758e022263855ed43cfc6867e0708d001e53c7
|
||||
|
Loading…
Reference in New Issue
Block a user