diff --git a/.gitignore b/.gitignore index 66ca0a7..16d11cc 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,4 @@ /gcc-11.0.0-20210109.tar.xz /gcc-11.0.0-20210113.tar.xz /gcc-11.0.0-20210116.tar.xz +/gcc-11.0.0-20210119.tar.xz diff --git a/gcc.spec b/gcc.spec index 86f8247..5a69606 100644 --- a/gcc.spec +++ b/gcc.spec @@ -276,6 +276,7 @@ Patch13: gcc11-pr98672.patch Patch14: gcc11-pr98687.patch Patch15: gcc11-pr98721.patch Patch16: gcc11-pr98742.patch +Patch17: gcc11-pr98638.patch # On ARM EABI systems, we do want -gnueabi to be part of the # target triple. @@ -791,6 +792,7 @@ to NVidia PTX capable devices if available. %patch14 -p0 -b .pr98687~ %patch15 -p0 -b .pr98721~ %patch16 -p0 -b .pr98742~ +%patch17 -p0 -b .pr98638~ rm -f libgomp/testsuite/*/*task-detach* @@ -3085,7 +3087,8 @@ end - fix miscompilation of portable signed multiplication overflow check (#1916576, PR tree-optimization/98727) - switch to DWARF 5 by default -- fix PRs c++/98672, c++/98687, c++/98742, tree-optimization/98721 +- fix PRs c++/98672, c++/98687, c++/98742, middle-end/98638, + tree-optimization/98721 * Sat Jan 16 2021 Jakub Jelinek 11.0.0-0.14 - update from trunk diff --git a/gcc11-pr98638.patch b/gcc11-pr98638.patch new file mode 100644 index 0000000..c399a30 --- /dev/null +++ b/gcc11-pr98638.patch @@ -0,0 +1,29 @@ +Since SSA names do leak into global tree data structures like +TYPE_SIZE or in this case GFC_DECL_SAVED_DESCRIPTOR because of +frontend bugs we have to be careful to wipe references to the +CFG when we deconstruct SSA form because we now do ggc_free that. + +Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed. + +2021-01-19 Richard Biener + + PR middle-end/98638 + * tree-ssanames.c (fini_ssanames): Zero SSA_NAME_DEF_STMT. + +--- gcc/tree-ssanames.c ++++ gcc/tree-ssanames.c +@@ -102,6 +102,14 @@ init_ssanames (struct function *fn, int size) + void + fini_ssanames (struct function *fn) + { ++ unsigned i; ++ tree name; ++ /* Some SSA names leak into global tree data structures so we can't simply ++ ggc_free them. But make sure to clear references to stmts since we now ++ ggc_free the CFG itself. */ ++ FOR_EACH_VEC_SAFE_ELT (SSANAMES (fn), i, name) ++ if (name) ++ SSA_NAME_DEF_STMT (name) = NULL; + vec_free (SSANAMES (fn)); + vec_free (FREE_SSANAMES (fn)); + vec_free (FREE_SSANAMES_QUEUE (fn)); diff --git a/sources b/sources index 6d46e14..9f41955 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (gcc-11.0.0-20210116.tar.xz) = befda0f25ccc682205d2ed6a50edba3da059042fa0a25e3a435011765c8f61e895eef52ebeed7de0bf61f97ee8308645779f3dc55675cabe51acc6ea74c517b0 +SHA512 (gcc-11.0.0-20210119.tar.xz) = 67fc01799d7af841f5b2b63fe40fc5eac01fe25cb6bb0994de46babbdabe8aee384ea0fbd41b5ac7b53b32ce5724618cb0026ac2e1d3d2431751b225f8e96783 SHA512 (newlib-cygwin-50e2a63b04bdd018484605fbb954fd1bd5147fa0.tar.xz) = 002a48a7b689a81abbf16161bcaec001a842e67dfbe372e9e109092703bfc666675f16198f60ca429370e8850d564547dc505df81bc3aaca4ce6defbc014ad6c SHA512 (nvptx-tools-5f6f343a302d620b0868edab376c00b15741e39e.tar.xz) = f6d10db94fa1570ae0f94df073fa3c73c8e5ee16d59070b53d94f7db0de8a031bc44d7f3f1852533da04b625ce758e022263855ed43cfc6867e0708d001e53c7