From 058986cf08637d6d8cd03f96188996a6c8f5b38d Mon Sep 17 00:00:00 2001 From: DistroBaker Date: Sat, 23 Jan 2021 19:57:57 +0000 Subject: [PATCH] Merged update from upstream sources This is an automated DistroBaker update from upstream sources. If you do not know what this is about or would like to opt out, contact the OSCI team. Source: https://src.fedoraproject.org/rpms/gcc.git#2a97a4485a84bad8a4cbcc39a7ea535632d7b887 --- .gitignore | 1 + gcc.spec | 48 +++++----- gcc11-libgomp-task.patch | 69 --------------- gcc11-pr98638.patch | 29 ------ gcc11-pr98672.patch | 87 ------------------ gcc11-pr98681.patch | 48 ++++++++++ gcc11-pr98687.patch | 130 --------------------------- gcc11-pr98721.patch | 91 ------------------- gcc11-pr98742.patch | 42 --------- gcc11-pr98751.patch | 185 --------------------------------------- gcc11-pr98765.patch | 83 ------------------ sources | 2 +- 12 files changed, 77 insertions(+), 738 deletions(-) delete mode 100644 gcc11-libgomp-task.patch delete mode 100644 gcc11-pr98638.patch delete mode 100644 gcc11-pr98672.patch create mode 100644 gcc11-pr98681.patch delete mode 100644 gcc11-pr98687.patch delete mode 100644 gcc11-pr98721.patch delete mode 100644 gcc11-pr98742.patch delete mode 100644 gcc11-pr98751.patch delete mode 100644 gcc11-pr98765.patch diff --git a/.gitignore b/.gitignore index 16d11cc..c8bd1c1 100644 --- a/.gitignore +++ b/.gitignore @@ -30,3 +30,4 @@ /gcc-11.0.0-20210113.tar.xz /gcc-11.0.0-20210116.tar.xz /gcc-11.0.0-20210119.tar.xz +/gcc-11.0.0-20210123.tar.xz diff --git a/gcc.spec b/gcc.spec index 96ba798..8b82fbf 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,5 +1,5 @@ -%global DATE 20210119 -%global gitrev 4b9bffe2c626b87d403f11674a5bd63c6078c777 +%global DATE 20210123 +%global gitrev 6efa61bd94ae86200aaed7ec513de6b3726220bf %global gcc_version 11.0.0 %global gcc_major 11 # Note, gcc_release must be integer, if you want to add suffixes to @@ -119,7 +119,7 @@ Summary: Various compilers (C, C++, Objective-C, ...) Name: gcc Version: %{gcc_version} -Release: %{gcc_release}.16%{?dist} +Release: %{gcc_release}.17%{?dist} # libgcc, libgfortran, libgomp, libstdc++ and crtstuff have # GCC Runtime Exception. License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD @@ -272,14 +272,7 @@ Patch9: gcc11-Wno-format-security.patch Patch10: gcc11-rh1574936.patch Patch11: gcc11-d-shared-libphobos.patch Patch12: gcc11-pr98338-workaround.patch -Patch13: gcc11-pr98672.patch -Patch14: gcc11-pr98687.patch -Patch15: gcc11-pr98721.patch -Patch16: gcc11-pr98742.patch -Patch17: gcc11-pr98638.patch -Patch18: gcc11-pr98765.patch -Patch19: gcc11-libgomp-task.patch -Patch20: gcc11-pr98751.patch +Patch13: gcc11-pr98681.patch # On ARM EABI systems, we do want -gnueabi to be part of the # target triple. @@ -791,14 +784,7 @@ to NVidia PTX capable devices if available. %endif %patch11 -p0 -b .d-shared-libphobos~ %patch12 -p0 -b .pr98338-workaround~ -%patch13 -p0 -b .pr98672~ -%patch14 -p0 -b .pr98687~ -%patch15 -p0 -b .pr98721~ -%patch16 -p0 -b .pr98742~ -%patch17 -p0 -b .pr98638~ -%patch18 -p0 -b .pr98765~ -%patch19 -p0 -b .libgomp-task~ -%patch20 -p0 -b .pr98751~ +%patch13 -p0 -b .pr98681~ rm -f libgomp/testsuite/*/*task-detach* @@ -3085,9 +3071,29 @@ end %endif %changelog +* Sat Jan 23 2021 Jakub Jelinek 11.0.0-0.17 +- update from trunk + - PRs ada/98740, c++/41437, c++/58993, c++/71879, c++/82613, c++/95434, + c++/96623, c++/97399, c++/97966, c++/98333, c++/98530, c++/98545, + c++/98624, c++/98659, c++/98744, fortran/96320, fortran/98476, + fortran/98565, fortran/98757, fortran/98763, gcov-profile/98739, + ipa/97673, ipa/98330, ipa/98690, middle-end/98664, middle-end/98773, + middle-end/98793, rtl-optimization/92294, rtl-optimization/98694, + rtl-optimization/98722, rtl-optimization/98777, sanitizer/95693, + target/79251, target/96372, target/96891, target/98065, target/98093, + target/98348, target/98636, testsuite/97301, testsuite/98241, + testsuite/98795, tree-optimization/47059, tree-optimization/90248, + tree-optimization/96674, tree-optimization/98255, + tree-optimization/98535, tree-optimization/98758, + tree-optimization/98766, tree-optimization/98786 + - ensure for empty CUs -gdwarf-5 emits at least the required 0th directory + and filename entry in the .debug_line section (#1919243, PR debug/98796) +- fix aarch64 bug where emitted ubfix insn can't be assembled + (PR target/98681) + * Wed Jan 20 2021 Jakub Jelinek 11.0.0-0.16 -- fix DWARF5 -g -flto -ffat-lto-objects, so that LTO sections can be stripped off - later (PR debug/98765) +- fix DWARF5 -g -flto -ffat-lto-objects, so that LTO sections can be stripped + off later (PR debug/98765) - fix GOMP_task caller stack corruption on s390x - libgccjit DWARF5 fixes (PR debug/98751) diff --git a/gcc11-libgomp-task.patch b/gcc11-libgomp-task.patch deleted file mode 100644 index b0ba04e..0000000 --- a/gcc11-libgomp-task.patch +++ /dev/null @@ -1,69 +0,0 @@ -2021-01-20 Jakub Jelinek - - * task.c (GOMP_task): Rename priority argument to priority_arg, - add priority automatic variable and modify that variable. Instead of - clearing detach argument when GOMP_TASK_FLAG_DETACH bit is not set, - check flags for that bit. - ---- libgomp/task.c.jj 2021-01-18 07:18:42.362339622 +0100 -+++ libgomp/task.c 2021-01-20 17:23:36.973758174 +0100 -@@ -354,10 +354,11 @@ task_fulfilled_p (struct gomp_task *task - void - GOMP_task (void (*fn) (void *), void *data, void (*cpyfn) (void *, void *), - long arg_size, long arg_align, bool if_clause, unsigned flags, -- void **depend, int priority, void *detach) -+ void **depend, int priority_arg, void *detach) - { - struct gomp_thread *thr = gomp_thread (); - struct gomp_team *team = thr->ts.team; -+ int priority = 0; - - #ifdef HAVE_BROKEN_POSIX_SEMAPHORES - /* If pthread_mutex_* is used for omp_*lock*, then each task must be -@@ -385,13 +386,12 @@ GOMP_task (void (*fn) (void *), void *da - } - } - -- if ((flags & GOMP_TASK_FLAG_PRIORITY) == 0) -- priority = 0; -- else if (priority > gomp_max_task_priority_var) -- priority = gomp_max_task_priority_var; -- -- if ((flags & GOMP_TASK_FLAG_DETACH) == 0) -- detach = NULL; -+ if (__builtin_expect ((flags & GOMP_TASK_FLAG_PRIORITY) != 0, 0)) -+ { -+ priority = priority_arg; -+ if (priority > gomp_max_task_priority_var) -+ priority = gomp_max_task_priority_var; -+ } - - if (!if_clause || team == NULL - || (thr->task && thr->task->final_task) -@@ -415,7 +415,7 @@ GOMP_task (void (*fn) (void *), void *da - || (flags & GOMP_TASK_FLAG_FINAL); - task.priority = priority; - -- if (detach) -+ if ((flags & GOMP_TASK_FLAG_DETACH) != 0) - { - task.detach = true; - gomp_sem_init (&task.completion_sem, 0); -@@ -443,7 +443,7 @@ GOMP_task (void (*fn) (void *), void *da - else - fn (data); - -- if (detach && !task_fulfilled_p (&task)) -+ if (task.detach && !task_fulfilled_p (&task)) - gomp_sem_wait (&task.completion_sem); - - /* Access to "children" is normally done inside a task_lock -@@ -484,7 +484,7 @@ GOMP_task (void (*fn) (void *), void *da - task->kind = GOMP_TASK_UNDEFERRED; - task->in_tied_task = parent->in_tied_task; - task->taskgroup = taskgroup; -- if (detach) -+ if ((flags & GOMP_TASK_FLAG_DETACH) != 0) - { - task->detach = true; - gomp_sem_init (&task->completion_sem, 0); diff --git a/gcc11-pr98638.patch b/gcc11-pr98638.patch deleted file mode 100644 index c399a30..0000000 --- a/gcc11-pr98638.patch +++ /dev/null @@ -1,29 +0,0 @@ -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/gcc11-pr98672.patch b/gcc11-pr98672.patch deleted file mode 100644 index b7ac680..0000000 --- a/gcc11-pr98672.patch +++ /dev/null @@ -1,87 +0,0 @@ -2021-01-15 Jakub Jelinek - - PR c++/98672 - * constexpr.c (potential_constant_expression_1) , - : If the condition isn't constant true, check if - the loop body can contain a return stmt. - - * g++.dg/cpp1y/constexpr-98672.C: New test. - ---- gcc/cp/constexpr.c.jj 2021-01-13 19:19:44.368469462 +0100 -+++ gcc/cp/constexpr.c 2021-01-14 12:02:27.347042704 +0100 -@@ -8190,7 +8190,17 @@ potential_constant_expression_1 (tree t, - /* If we couldn't evaluate the condition, it might not ever be - true. */ - if (!integer_onep (tmp)) -- return true; -+ { -+ /* Before returning true, check if the for body can contain -+ a return. */ -+ hash_set pset; -+ check_for_return_continue_data data = { &pset, NULL_TREE }; -+ if (tree ret_expr -+ = cp_walk_tree (&FOR_BODY (t), check_for_return_continue, -+ &data, &pset)) -+ *jump_target = ret_expr; -+ return true; -+ } - } - if (!RECUR (FOR_EXPR (t), any)) - return false; -@@ -8219,7 +8229,17 @@ potential_constant_expression_1 (tree t, - tmp = cxx_eval_outermost_constant_expr (tmp, true); - /* If we couldn't evaluate the condition, it might not ever be true. */ - if (!integer_onep (tmp)) -- return true; -+ { -+ /* Before returning true, check if the while body can contain -+ a return. */ -+ hash_set pset; -+ check_for_return_continue_data data = { &pset, NULL_TREE }; -+ if (tree ret_expr -+ = cp_walk_tree (&WHILE_BODY (t), check_for_return_continue, -+ &data, &pset)) -+ *jump_target = ret_expr; -+ return true; -+ } - if (!RECUR (WHILE_BODY (t), any)) - return false; - if (breaks (jump_target) || continues (jump_target)) ---- gcc/testsuite/g++.dg/cpp1y/constexpr-98672.C.jj 2021-01-14 12:19:24.842438847 +0100 -+++ gcc/testsuite/g++.dg/cpp1y/constexpr-98672.C 2021-01-14 12:07:33.935551155 +0100 -@@ -0,0 +1,35 @@ -+// PR c++/98672 -+// { dg-do compile { target c++14 } } -+ -+void -+foo () -+{ -+} -+ -+constexpr int -+bar () -+{ -+ for (int i = 0; i < 5; ++i) -+ return i; -+ foo (); -+ return 0; -+} -+ -+constexpr int -+baz () -+{ -+ int i = 0; -+ while (i < 5) -+ { -+ if (i == 3) -+ return i; -+ else -+ ++i; -+ } -+ foo (); -+ return 0; -+} -+ -+constexpr int i = bar (); -+constexpr int j = baz (); -+static_assert (i == 0 && j == 3, ""); diff --git a/gcc11-pr98681.patch b/gcc11-pr98681.patch new file mode 100644 index 0000000..6b2bb1f --- /dev/null +++ b/gcc11-pr98681.patch @@ -0,0 +1,48 @@ +2021-01-22 Jakub Jelinek + + PR target/98681 + * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p): + Use UINTVAL (shft_amnt) and UINTVAL (mask) instead of INTVAL (shft_amnt) + and INTVAL (mask). Add && INTVAL (mask) > 0 condition. + + * gcc.c-torture/execute/pr98681.c: New test. + +--- gcc/config/aarch64/aarch64.c.jj 2021-01-13 11:36:27.069888393 +0100 ++++ gcc/config/aarch64/aarch64.c 2021-01-22 18:53:18.611518461 +0100 +@@ -12060,10 +12060,11 @@ aarch64_mask_and_shift_for_ubfiz_p (scal + rtx shft_amnt) + { + return CONST_INT_P (mask) && CONST_INT_P (shft_amnt) +- && INTVAL (shft_amnt) < GET_MODE_BITSIZE (mode) +- && exact_log2 ((INTVAL (mask) >> INTVAL (shft_amnt)) + 1) >= 0 +- && (INTVAL (mask) +- & ((HOST_WIDE_INT_1U << INTVAL (shft_amnt)) - 1)) == 0; ++ && INTVAL (mask) > 0 ++ && UINTVAL (shft_amnt) < GET_MODE_BITSIZE (mode) ++ && exact_log2 ((UINTVAL (mask) >> UINTVAL (shft_amnt)) + 1) >= 0 ++ && (UINTVAL (mask) ++ & ((HOST_WIDE_INT_1U << UINTVAL (shft_amnt)) - 1)) == 0; + } + + /* Return true if the masks and a shift amount from an RTX of the form +--- gcc/testsuite/gcc.c-torture/execute/pr98681.c.jj 2021-01-22 16:45:05.102070501 +0100 ++++ gcc/testsuite/gcc.c-torture/execute/pr98681.c 2021-01-22 16:44:34.165416961 +0100 +@@ -0,0 +1,18 @@ ++/* PR target/98681 */ ++ ++__attribute__((noipa)) int ++foo (int x) ++{ ++ if (x > 32) ++ return (x << -64) & 255; ++ else ++ return x; ++} ++ ++int ++main () ++{ ++ if (foo (32) != 32 || foo (-150) != -150) ++ __builtin_abort (); ++ return 0; ++} diff --git a/gcc11-pr98687.patch b/gcc11-pr98687.patch deleted file mode 100644 index d2e1ce0..0000000 --- a/gcc11-pr98687.patch +++ /dev/null @@ -1,130 +0,0 @@ -My recent patch that introduced push_using_decl_bindings didn't -handle USING_DECL redeclaration, therefore things broke. This -patch amends that. Note that I don't know if the other parts of -finish_nonmember_using_decl are needed (e.g. the binding->type -setting) -- I couldn't trigger it by any of my hand-made testcases. - -Sorry for not thinking harder about redeclarations in the original -patch :(. - -2021-01-15 Marek Polacek - - PR c++/98687 - * name-lookup.c (push_using_decl_bindings): If we found an - existing local binding, update it if it's not identical. - - * g++.dg/lookup/using64.C: New test. - * g++.dg/lookup/using65.C: New test. - ---- gcc/cp/name-lookup.c -+++ gcc/cp/name-lookup.c -@@ -9285,8 +9285,24 @@ push_operator_bindings () - void - push_using_decl_bindings (tree decl) - { -- push_local_binding (DECL_NAME (decl), USING_DECL_DECLS (decl), -- /*using*/true); -+ tree name = DECL_NAME (decl); -+ tree value = USING_DECL_DECLS (decl); -+ -+ cxx_binding *binding = find_local_binding (current_binding_level, name); -+ if (binding) -+ { -+ if (value == binding->value) -+ /* Redeclaration of this USING_DECL. */; -+ else if (binding->value && TREE_CODE (value) == OVERLOAD) -+ { -+ /* We already have this binding, so replace it. */ -+ update_local_overload (IDENTIFIER_BINDING (name), value); -+ IDENTIFIER_BINDING (name)->value = value; -+ } -+ } -+ else -+ /* Install the new binding. */ -+ push_local_binding (DECL_NAME (decl), value, /*using*/true); - } - - #include "gt-cp-name-lookup.h" ---- gcc/testsuite/g++.dg/lookup/using64.C -+++ gcc/testsuite/g++.dg/lookup/using64.C -@@ -0,0 +1,60 @@ -+// PR c++/98687 -+// { dg-do compile } -+ -+struct S { }; -+ -+namespace N { -+ template -+ bool operator==(T, int); -+ -+ template -+ void X(T); -+} -+ -+namespace M { -+ template -+ bool operator==(T, double); -+} -+ -+template -+bool fn1 (T t) -+{ -+ using N::operator==; -+ return t == 1; -+} -+ -+template -+bool fn2 (T t) -+{ -+ // Redeclaration. -+ using N::operator==; -+ using N::operator==; -+ return t == 1; -+} -+ -+template -+bool fn3 (T t) -+{ -+ // Need update_local_overload. -+ using N::operator==; -+ using M::operator==; -+ return t == 1; -+} -+ -+template -+void fn4 (T t) -+{ -+ struct X { }; -+ using N::X; -+ X(1); -+} -+ -+void -+g () -+{ -+ S s; -+ fn1 (s); -+ fn2 (s); -+ fn3 (s); -+ fn4 (s); -+} ---- gcc/testsuite/g++.dg/lookup/using65.C -+++ gcc/testsuite/g++.dg/lookup/using65.C -@@ -0,0 +1,17 @@ -+// PR c++/98687 -+// { dg-do compile } -+ -+extern "C" namespace std { -+ double log1p(double); -+} -+namespace std_fallback { -+ template void log1p(); -+} -+template struct log1p_impl { -+ static int run() { -+ using std::log1p; -+ using std_fallback::log1p; -+ return 0; -+ } -+}; -+void log1p() { log1p_impl::run(); } diff --git a/gcc11-pr98721.patch b/gcc11-pr98721.patch deleted file mode 100644 index 6459a9c..0000000 --- a/gcc11-pr98721.patch +++ /dev/null @@ -1,91 +0,0 @@ -2021-01-19 Jakub Jelinek - - PR tree-optimization/98721 - * builtins.c (access_ref::inform_access): Don't assume - SSA_NAME_IDENTIFIER must be non-NULL. Print messages about - object whenever allocfn is NULL, rather than only when DECL_P - is true. Use %qE instead of %qD for that. Formatting fixes. - - * gcc.dg/pr98721-1.c: New test. - * gcc.dg/pr98721-2.c: New test. - ---- gcc/builtins.c.jj 2021-01-18 19:07:16.022895507 +0100 -+++ gcc/builtins.c 2021-01-19 11:56:52.247070923 +0100 -@@ -4414,8 +4414,8 @@ access_ref::inform_access (access_mode m - MAXREF on which the result is based. */ - const offset_int orng[] = - { -- offrng[0] - maxref.offrng[0], -- wi::smax (offrng[1] - maxref.offrng[1], offrng[0]), -+ offrng[0] - maxref.offrng[0], -+ wi::smax (offrng[1] - maxref.offrng[1], offrng[0]), - }; - - /* Add the final PHI's offset to that of each of the arguments -@@ -4493,12 +4493,15 @@ access_ref::inform_access (access_mode m - /* Strip the SSA_NAME suffix from the variable name and - recreate an identifier with the VLA's original name. */ - ref = gimple_call_lhs (stmt); -- ref = SSA_NAME_IDENTIFIER (ref); -- const char *id = IDENTIFIER_POINTER (ref); -- size_t len = strcspn (id, ".$"); -- if (!len) -- len = strlen (id); -- ref = get_identifier_with_length (id, len); -+ if (SSA_NAME_IDENTIFIER (ref)) -+ { -+ ref = SSA_NAME_IDENTIFIER (ref); -+ const char *id = IDENTIFIER_POINTER (ref); -+ size_t len = strcspn (id, ".$"); -+ if (!len) -+ len = strlen (id); -+ ref = get_identifier_with_length (id, len); -+ } - } - else - { -@@ -4557,13 +4560,13 @@ access_ref::inform_access (access_mode m - return; - } - -- if (DECL_P (ref)) -+ if (allocfn == NULL_TREE) - { - if (*offstr) -- inform (loc, "at offset %s into source object %qD of size %s", -+ inform (loc, "at offset %s into source object %qE of size %s", - offstr, ref, sizestr); - else -- inform (loc, "source object %qD of size %s", ref, sizestr); -+ inform (loc, "source object %qE of size %s", ref, sizestr); - - return; - } ---- gcc/testsuite/gcc.dg/pr98721-1.c.jj 2021-01-19 12:15:03.825600828 +0100 -+++ gcc/testsuite/gcc.dg/pr98721-1.c 2021-01-19 12:14:24.730045488 +0100 -@@ -0,0 +1,14 @@ -+/* PR tree-optimization/98721 */ -+/* { dg-do compile } */ -+/* { dg-options "-O2" } */ -+ -+int -+foo (int n) -+{ -+ if (n <= 0) -+ { -+ char vla[n]; /* { dg-message "source object 'vla' of size 0" } */ -+ return __builtin_strlen (vla); /* { dg-warning "'__builtin_strlen' reading 1 or more bytes from a region of size 0" } */ -+ } -+ return -1; -+} ---- gcc/testsuite/gcc.dg/pr98721-2.c.jj 2021-01-19 12:00:16.005742548 +0100 -+++ gcc/testsuite/gcc.dg/pr98721-2.c 2021-01-19 11:59:29.372275423 +0100 -@@ -0,0 +1,8 @@ -+/* PR tree-optimization/98721 */ -+/* { dg-do compile } */ -+ -+int -+foo (void) -+{ -+ return __builtin_strlen (__builtin_alloca_with_align (0, 16)); /* { dg-warning "'__builtin_strlen' reading 1 or more bytes from a region of size 0" } */ -+} /* { dg-message "source object '' of size 0" "" { target *-*-* } .-1 } */ diff --git a/gcc11-pr98742.patch b/gcc11-pr98742.patch deleted file mode 100644 index 1b76510..0000000 --- a/gcc11-pr98742.patch +++ /dev/null @@ -1,42 +0,0 @@ -2021-01-19 Jakub Jelinek - - PR c++/98742 - * semantics.c (finish_omp_clauses) : If - error_operand_p, remove clause without further checking. Check - for non-NULL TYPE_NAME. - - * c-c++-common/gomp/task-detach-2.c: New test. - ---- gcc/cp/semantics.c.jj 2021-01-16 22:52:33.608413922 +0100 -+++ gcc/cp/semantics.c 2021-01-19 10:53:07.979801786 +0100 -@@ -7430,12 +7430,18 @@ finish_omp_clauses (tree clauses, enum c - remove = true; - break; - } -+ else if (error_operand_p (t)) -+ { -+ remove = true; -+ break; -+ } - else - { - tree type = TYPE_MAIN_VARIANT (TREE_TYPE (t)); - if (!type_dependent_expression_p (t) - && (!INTEGRAL_TYPE_P (type) - || TREE_CODE (type) != ENUMERAL_TYPE -+ || TYPE_NAME (type) == NULL_TREE - || (DECL_NAME (TYPE_NAME (type)) - != get_identifier ("omp_event_handle_t")))) - { ---- gcc/testsuite/c-c++-common/gomp/task-detach-2.c.jj 2021-01-19 11:07:29.345948289 +0100 -+++ gcc/testsuite/c-c++-common/gomp/task-detach-2.c 2021-01-19 11:06:57.090317518 +0100 -@@ -0,0 +1,9 @@ -+/* PR c++/98742 */ -+/* { dg-do compile } */ -+ -+void -+foo () -+{ -+#pragma omp task detach(0) /* { dg-error "before numeric constant" } */ -+ ; -+} diff --git a/gcc11-pr98751.patch b/gcc11-pr98751.patch deleted file mode 100644 index c0caaf8..0000000 --- a/gcc11-pr98751.patch +++ /dev/null @@ -1,185 +0,0 @@ -2021-01-19 David Malcolm - - PR debug/98751 - * dwarf2out.c (output_line_info): Rename static variable - "generation", moving it out of the function to... - (output_line_info_generation): New. - (init_sections_and_labels): Likewise, renaming the variable to... - (init_sections_and_labels_generation): New. - (dwarf2out_c_finalize): Reset the new variables. - ---- gcc/dwarf2out.c -+++ gcc/dwarf2out.c -@@ -12709,22 +12709,27 @@ output_one_line_info_table (dw_line_info_table *table) - dw2_asm_output_data (1, DW_LNE_end_sequence, NULL); - } - -+static unsigned int output_line_info_generation; -+ - /* Output the source line number correspondence information. This - information goes into the .debug_line section. */ - - static void - output_line_info (bool prologue_only) - { -- static unsigned int generation; - char l1[MAX_ARTIFICIAL_LABEL_BYTES], l2[MAX_ARTIFICIAL_LABEL_BYTES]; - char p1[MAX_ARTIFICIAL_LABEL_BYTES], p2[MAX_ARTIFICIAL_LABEL_BYTES]; - bool saw_one = false; - int opc; - -- ASM_GENERATE_INTERNAL_LABEL (l1, LINE_NUMBER_BEGIN_LABEL, generation); -- ASM_GENERATE_INTERNAL_LABEL (l2, LINE_NUMBER_END_LABEL, generation); -- ASM_GENERATE_INTERNAL_LABEL (p1, LN_PROLOG_AS_LABEL, generation); -- ASM_GENERATE_INTERNAL_LABEL (p2, LN_PROLOG_END_LABEL, generation++); -+ ASM_GENERATE_INTERNAL_LABEL (l1, LINE_NUMBER_BEGIN_LABEL, -+ output_line_info_generation); -+ ASM_GENERATE_INTERNAL_LABEL (l2, LINE_NUMBER_END_LABEL, -+ output_line_info_generation); -+ ASM_GENERATE_INTERNAL_LABEL (p1, LN_PROLOG_AS_LABEL, -+ output_line_info_generation); -+ ASM_GENERATE_INTERNAL_LABEL (p2, LN_PROLOG_END_LABEL, -+ output_line_info_generation++); - - if (!XCOFF_DEBUGGING_INFO) - { -@@ -28589,6 +28594,10 @@ output_macinfo (const char *debug_line_label, bool early_lto_debug) - macinfo_label_base += macinfo_label_base_adj; - } - -+/* As init_sections_and_labels may get called multiple times, have a -+ generation count for labels. */ -+static unsigned init_sections_and_labels_generation; -+ - /* Initialize the various sections and labels for dwarf output and prefix - them with PREFIX if non-NULL. Returns the generation (zero based - number of times function was called). */ -@@ -28596,10 +28605,6 @@ output_macinfo (const char *debug_line_label, bool early_lto_debug) - static unsigned - init_sections_and_labels (bool early_lto_debug) - { -- /* As we may get called multiple times have a generation count for -- labels. */ -- static unsigned generation = 0; -- - if (early_lto_debug) - { - if (!dwarf_split_debug_info) -@@ -28634,7 +28639,7 @@ init_sections_and_labels (bool early_lto_debug) - SECTION_DEBUG | SECTION_EXCLUDE, NULL); - ASM_GENERATE_INTERNAL_LABEL (debug_skeleton_abbrev_section_label, - DEBUG_SKELETON_ABBREV_SECTION_LABEL, -- generation); -+ init_sections_and_labels_generation); - - /* Somewhat confusing detail: The skeleton_[abbrev|info] sections - stay in the main .o, but the skeleton_line goes into the split -@@ -28644,14 +28649,14 @@ init_sections_and_labels (bool early_lto_debug) - SECTION_DEBUG | SECTION_EXCLUDE, NULL); - ASM_GENERATE_INTERNAL_LABEL (debug_skeleton_line_section_label, - DEBUG_SKELETON_LINE_SECTION_LABEL, -- generation); -+ init_sections_and_labels_generation); - debug_str_offsets_section - = get_section (DEBUG_LTO_DWO_STR_OFFSETS_SECTION, - SECTION_DEBUG | SECTION_EXCLUDE, - NULL); - ASM_GENERATE_INTERNAL_LABEL (debug_skeleton_info_section_label, - DEBUG_SKELETON_INFO_SECTION_LABEL, -- generation); -+ init_sections_and_labels_generation); - debug_str_dwo_section = get_section (DEBUG_LTO_STR_DWO_SECTION, - DEBUG_STR_DWO_SECTION_FLAGS, - NULL); -@@ -28667,7 +28672,8 @@ init_sections_and_labels (bool early_lto_debug) - debug_line_section = get_section (DEBUG_LTO_LINE_SECTION, - SECTION_DEBUG | SECTION_EXCLUDE, NULL); - ASM_GENERATE_INTERNAL_LABEL (debug_line_section_label, -- DEBUG_LINE_SECTION_LABEL, generation); -+ DEBUG_LINE_SECTION_LABEL, -+ init_sections_and_labels_generation); - - debug_str_section = get_section (DEBUG_LTO_STR_SECTION, - DEBUG_STR_SECTION_FLAGS -@@ -28711,7 +28717,7 @@ init_sections_and_labels (bool early_lto_debug) - SECTION_DEBUG, NULL); - ASM_GENERATE_INTERNAL_LABEL (debug_skeleton_abbrev_section_label, - DEBUG_SKELETON_ABBREV_SECTION_LABEL, -- generation); -+ init_sections_and_labels_generation); - - /* Somewhat confusing detail: The skeleton_[abbrev|info] sections - stay in the main .o, but the skeleton_line goes into the -@@ -28721,13 +28727,13 @@ init_sections_and_labels (bool early_lto_debug) - SECTION_DEBUG | SECTION_EXCLUDE, NULL); - ASM_GENERATE_INTERNAL_LABEL (debug_skeleton_line_section_label, - DEBUG_SKELETON_LINE_SECTION_LABEL, -- generation); -+ init_sections_and_labels_generation); - debug_str_offsets_section - = get_section (DEBUG_DWO_STR_OFFSETS_SECTION, - SECTION_DEBUG | SECTION_EXCLUDE, NULL); - ASM_GENERATE_INTERNAL_LABEL (debug_skeleton_info_section_label, - DEBUG_SKELETON_INFO_SECTION_LABEL, -- generation); -+ init_sections_and_labels_generation); - debug_loc_section = get_section (dwarf_version >= 5 - ? DEBUG_DWO_LOCLISTS_SECTION - : DEBUG_DWO_LOC_SECTION, -@@ -28767,31 +28773,37 @@ init_sections_and_labels (bool early_lto_debug) - } - - ASM_GENERATE_INTERNAL_LABEL (abbrev_section_label, -- DEBUG_ABBREV_SECTION_LABEL, generation); -+ DEBUG_ABBREV_SECTION_LABEL, -+ init_sections_and_labels_generation); - ASM_GENERATE_INTERNAL_LABEL (debug_info_section_label, -- DEBUG_INFO_SECTION_LABEL, generation); -+ DEBUG_INFO_SECTION_LABEL, -+ init_sections_and_labels_generation); - info_section_emitted = false; - ASM_GENERATE_INTERNAL_LABEL (debug_line_section_label, -- DEBUG_LINE_SECTION_LABEL, generation); -+ DEBUG_LINE_SECTION_LABEL, -+ init_sections_and_labels_generation); - /* There are up to 4 unique ranges labels per generation. - See also output_rnglists. */ - ASM_GENERATE_INTERNAL_LABEL (ranges_section_label, -- DEBUG_RANGES_SECTION_LABEL, generation * 4); -+ DEBUG_RANGES_SECTION_LABEL, -+ init_sections_and_labels_generation * 4); - if (dwarf_version >= 5 && dwarf_split_debug_info) - ASM_GENERATE_INTERNAL_LABEL (ranges_base_label, - DEBUG_RANGES_SECTION_LABEL, -- 1 + generation * 4); -+ 1 + init_sections_and_labels_generation * 4); - ASM_GENERATE_INTERNAL_LABEL (debug_addr_section_label, -- DEBUG_ADDR_SECTION_LABEL, generation); -+ DEBUG_ADDR_SECTION_LABEL, -+ init_sections_and_labels_generation); - ASM_GENERATE_INTERNAL_LABEL (macinfo_section_label, - (dwarf_strict && dwarf_version < 5) - ? DEBUG_MACINFO_SECTION_LABEL -- : DEBUG_MACRO_SECTION_LABEL, generation); -+ : DEBUG_MACRO_SECTION_LABEL, -+ init_sections_and_labels_generation); - ASM_GENERATE_INTERNAL_LABEL (loc_section_label, DEBUG_LOC_SECTION_LABEL, -- generation); -+ init_sections_and_labels_generation); - -- ++generation; -- return generation - 1; -+ ++init_sections_and_labels_generation; -+ return init_sections_and_labels_generation - 1; - } - - /* Set up for Dwarf output at the start of compilation. */ -@@ -32379,6 +32391,8 @@ dwarf2out_c_finalize (void) - base_types.release (); - XDELETEVEC (producer_string); - producer_string = NULL; -+ output_line_info_generation = 0; -+ init_sections_and_labels_generation = 0; - } - - #include "gt-dwarf2out.h" diff --git a/gcc11-pr98765.patch b/gcc11-pr98765.patch deleted file mode 100644 index e4cda36..0000000 --- a/gcc11-pr98765.patch +++ /dev/null @@ -1,83 +0,0 @@ -2021-01-20 Jakub Jelinek - - PR debug/98765 - * dwarf2out.c (reset_indirect_string): Also reset indirect strings - with DW_FORM_line_strp form. - (prune_unused_types_update_strings): Don't add into debug_str_hash - indirect strings with DW_FORM_line_strp form. - (adjust_name_comp_dir): New function. - (dwarf2out_finish): Call it on CU DIEs after resetting - debug_line_str_hash. - ---- gcc/dwarf2out.c.jj 2021-01-20 08:32:09.612958930 +0100 -+++ gcc/dwarf2out.c 2021-01-20 15:41:30.343417095 +0100 -@@ -4733,7 +4733,9 @@ int - reset_indirect_string (indirect_string_node **h, void *) - { - struct indirect_string_node *node = *h; -- if (node->form == DW_FORM_strp || node->form == dwarf_FORM (DW_FORM_strx)) -+ if (node->form == DW_FORM_strp -+ || node->form == DW_FORM_line_strp -+ || node->form == dwarf_FORM (DW_FORM_strx)) - { - free (node->label); - node->label = NULL; -@@ -29477,8 +29479,9 @@ prune_unused_types_update_strings (dw_di - s->refcount++; - /* Avoid unnecessarily putting strings that are used less than - twice in the hash table. */ -- if (s->refcount -- == ((DEBUG_STR_SECTION_FLAGS & SECTION_MERGE) ? 1 : 2)) -+ if (s->form != DW_FORM_line_strp -+ && (s->refcount -+ == ((DEBUG_STR_SECTION_FLAGS & SECTION_MERGE) ? 1 : 2))) - { - indirect_string_node **slot - = debug_str_hash->find_slot_with_hash (s->str, -@@ -31325,6 +31328,33 @@ reset_dies (dw_die_ref die) - FOR_EACH_CHILD (die, c, reset_dies (c)); - } - -+/* reset_indirect_string removed the references coming from DW_AT_name -+ and DW_AT_comp_dir attributes on compilation unit DIEs. Readd them as -+ .debug_line_str strings again. */ -+ -+static void -+adjust_name_comp_dir (dw_die_ref die) -+{ -+ for (int i = 0; i < 2; i++) -+ { -+ dwarf_attribute attr_kind = i ? DW_AT_comp_dir : DW_AT_name; -+ dw_attr_node *a = get_AT (die, attr_kind); -+ if (a == NULL || a->dw_attr_val.val_class != dw_val_class_str) -+ continue; -+ -+ if (!debug_line_str_hash) -+ debug_line_str_hash -+ = hash_table::create_ggc (10); -+ -+ struct indirect_string_node *node -+ = find_AT_string_in_table (a->dw_attr_val.v.val_str->str, -+ debug_line_str_hash); -+ set_indirect_string (node); -+ node->form = DW_FORM_line_strp; -+ a->dw_attr_val.v.val_str = node; -+ } -+} -+ - /* Output stuff that dwarf requires at the end of every file, - and generate the DWARF-2 debugging info. */ - -@@ -31398,6 +31428,12 @@ dwarf2out_finish (const char *filename) - { - debug_line_str_hash->traverse (NULL); - debug_line_str_hash = NULL; -+ if (asm_outputs_debug_line_str ()) -+ { -+ adjust_name_comp_dir (comp_unit_die ()); -+ for (limbo_die_node *node = cu_die_list; node; node = node->next) -+ adjust_name_comp_dir (node->die); -+ } - } - } - diff --git a/sources b/sources index 9f41955..34f651a 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (gcc-11.0.0-20210119.tar.xz) = 67fc01799d7af841f5b2b63fe40fc5eac01fe25cb6bb0994de46babbdabe8aee384ea0fbd41b5ac7b53b32ce5724618cb0026ac2e1d3d2431751b225f8e96783 +SHA512 (gcc-11.0.0-20210123.tar.xz) = 0c1ee7eab7ef8380c168e4841360667fe7f07d93df54c2f5c814d7830ec812f6087e0ded2761db5f316e1a16772fbc5c39c31a3b2862a3e455c44edc29eb624b SHA512 (newlib-cygwin-50e2a63b04bdd018484605fbb954fd1bd5147fa0.tar.xz) = 002a48a7b689a81abbf16161bcaec001a842e67dfbe372e9e109092703bfc666675f16198f60ca429370e8850d564547dc505df81bc3aaca4ce6defbc014ad6c SHA512 (nvptx-tools-5f6f343a302d620b0868edab376c00b15741e39e.tar.xz) = f6d10db94fa1570ae0f94df073fa3c73c8e5ee16d59070b53d94f7db0de8a031bc44d7f3f1852533da04b625ce758e022263855ed43cfc6867e0708d001e53c7