From f8c38830d9c61e33d7daa8873cb12fb6f8f6fd66 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mar 24 2021 10:50:05 +0000 Subject: 11.0.1-0.3.fc34 --- diff --git a/.gitignore b/.gitignore index 1c11cc9..5b2898a 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,4 @@ /gcc-11.0.1-20210307.tar.xz /gcc-11.0.1-20210319.tar.xz /isl-0.18.tar.bz2 +/gcc-11.0.1-20210324.tar.xz diff --git a/gcc.spec b/gcc.spec index 3c432b2..40465a2 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,5 +1,5 @@ -%global DATE 20210319 -%global gitrev e4dd2d1e93fef51f05cef0ed942fdc7dfd83dafd +%global DATE 20210324 +%global gitrev aae01c864baeefadc9bb5312de389116f77ccb83 %global gcc_version 11.0.1 %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}.2%{?dist} +Release: %{gcc_release}.3%{?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 @@ -264,14 +264,9 @@ Patch9: gcc11-foffload-default.patch Patch10: gcc11-Wno-format-security.patch Patch11: gcc11-rh1574936.patch Patch12: gcc11-d-shared-libphobos.patch -Patch13: gcc11-pr99378-revert.patch -Patch14: gcc11-pr99388.patch -Patch15: gcc11-pr91710.patch -Patch16: gcc11-pr99230.patch -Patch17: gcc11-pr99490.patch -Patch18: gcc11-pr99562.patch -Patch19: gcc11-pr99650.patch -Patch20: gcc11-pr99341-revert.patch +Patch13: gcc11-pr91710.patch +Patch14: gcc11-pr99490.patch +Patch15: gcc11-pr99341-revert.patch Patch100: gcc11-fortran-fdec-duplicates.patch Patch101: gcc11-fortran-flogical-as-integer.patch @@ -794,14 +789,9 @@ to NVidia PTX capable devices if available. %patch11 -p0 -b .rh1574936~ %endif %patch12 -p0 -b .d-shared-libphobos~ -%patch13 -p0 -b .pr99378-revert~ -%patch14 -p0 -b .pr99388~ -%patch15 -p0 -b .pr91710~ -%patch16 -p0 -b .pr99230~ -%patch17 -p0 -b .pr99490~ -%patch18 -p0 -b .pr99562~ -%patch19 -p0 -b .pr99650~ -%patch20 -p0 -b .pr99341-revert~ +%patch13 -p0 -b .pr91710~ +%patch14 -p0 -b .pr99490~ +%patch15 -p0 -b .pr99341-revert~ %if 0%{?rhel} >= 9 %patch100 -p1 -b .fortran-fdec-duplicates~ @@ -3136,6 +3126,16 @@ end %endif %changelog +* Wed Mar 24 2021 Jakub Jelinek 11.0.1-0.3 +- update from trunk + - PRs analyzer/99614, c++/99239, c++/99283, c++/99318, c++/99425, c++/99456, + c++/99480, c++/99687, c/99588, fortran/93660, fortran/99688, + rtl-optimization/99680, target/97252, target/97926, target/98914, + target/99540, target/99581, target/99652, target/99660, target/99661, + target/99663, target/99679, target/99702, target/99704, target/99733, + tree-optimization/99296, tree-optimization/99656, + tree-optimization/99694, tree-optimization/99721 + * Fri Mar 19 2021 Jakub Jelinek 11.0.1-0.2 - update from trunk - PRs c++/90448, c++/96268, c++/96749, c++/97973, c++/98480, c++/98704, diff --git a/gcc11-pr99230.patch b/gcc11-pr99230.patch deleted file mode 100644 index 75cf6d2..0000000 --- a/gcc11-pr99230.patch +++ /dev/null @@ -1,137 +0,0 @@ -2021-03-18 Jakub Jelinek - - PR debug/99230 - * c-gimplify.c (c_genericize_control_stmt): Handle STATEMENT_LIST. - - * cp-gimplify.c (cp_genericize_r) : Remove - special code, instead call c_genericize_control_stmt. - - * gcc.dg/pr99230.c: New test. - ---- gcc/c-family/c-gimplify.c.jj 2021-01-04 10:25:50.402102825 +0100 -+++ gcc/c-family/c-gimplify.c 2021-03-17 19:19:20.052702095 +0100 -@@ -497,6 +497,35 @@ c_genericize_control_stmt (tree *stmt_p, - genericize_omp_for_stmt (stmt_p, walk_subtrees, data, func, lh); - break; - -+ case STATEMENT_LIST: -+ if (TREE_SIDE_EFFECTS (stmt)) -+ { -+ tree_stmt_iterator i; -+ int nondebug_stmts = 0; -+ bool clear_side_effects = true; -+ /* Genericization can clear TREE_SIDE_EFFECTS, e.g. when -+ transforming an IF_STMT into COND_EXPR. If such stmt -+ appears in a STATEMENT_LIST that contains only that -+ stmt and some DEBUG_BEGIN_STMTs, without -g where the -+ STATEMENT_LIST wouldn't be present at all the resulting -+ expression wouldn't have TREE_SIDE_EFFECTS set, so make sure -+ to clear it even on the STATEMENT_LIST in such cases. */ -+ for (i = tsi_start (stmt); !tsi_end_p (i); tsi_next (&i)) -+ { -+ tree t = tsi_stmt (i); -+ if (TREE_CODE (t) != DEBUG_BEGIN_STMT && nondebug_stmts < 2) -+ nondebug_stmts++; -+ walk_tree_1 (tsi_stmt_ptr (i), func, data, NULL, lh); -+ if (TREE_CODE (t) != DEBUG_BEGIN_STMT -+ && (nondebug_stmts > 1 || TREE_SIDE_EFFECTS (tsi_stmt (i)))) -+ clear_side_effects = false; -+ } -+ if (clear_side_effects) -+ TREE_SIDE_EFFECTS (stmt) = 0; -+ *walk_subtrees = 0; -+ } -+ break; -+ - default: - break; - } ---- gcc/cp/cp-gimplify.c.jj 2021-03-04 09:42:27.602123905 +0100 -+++ gcc/cp/cp-gimplify.c 2021-03-17 19:38:42.743888589 +0100 -@@ -1464,35 +1464,6 @@ cp_genericize_r (tree *stmt_p, int *walk - walk_subtrees = 0; - break; - -- case STATEMENT_LIST: -- if (TREE_SIDE_EFFECTS (stmt)) -- { -- tree_stmt_iterator i; -- int nondebug_stmts = 0; -- bool clear_side_effects = true; -- /* Genericization can clear TREE_SIDE_EFFECTS, e.g. when -- transforming an IF_STMT into COND_EXPR. If such stmt -- appears in a STATEMENT_LIST that contains only that -- stmt and some DEBUG_BEGIN_STMTs, without -g where the -- STATEMENT_LIST wouldn't be present at all the resulting -- expression wouldn't have TREE_SIDE_EFFECTS set, so make sure -- to clear it even on the STATEMENT_LIST in such cases. */ -- for (i = tsi_start (stmt); !tsi_end_p (i); tsi_next (&i)) -- { -- tree t = tsi_stmt (i); -- if (TREE_CODE (t) != DEBUG_BEGIN_STMT && nondebug_stmts < 2) -- nondebug_stmts++; -- cp_walk_tree (tsi_stmt_ptr (i), cp_genericize_r, data, NULL); -- if (TREE_CODE (t) != DEBUG_BEGIN_STMT -- && (nondebug_stmts > 1 || TREE_SIDE_EFFECTS (tsi_stmt (i)))) -- clear_side_effects = false; -- } -- if (clear_side_effects) -- TREE_SIDE_EFFECTS (stmt) = 0; -- *walk_subtrees = 0; -- } -- break; -- - case OMP_DISTRIBUTE: - /* Need to explicitly instantiate copy ctors on class iterators of - composite distribute parallel for. */ -@@ -1566,6 +1537,7 @@ cp_genericize_r (tree *stmt_p, int *walk - case OMP_SIMD: - case OMP_LOOP: - case OACC_LOOP: -+ case STATEMENT_LIST: - /* These cases are handled by shared code. */ - c_genericize_control_stmt (stmt_p, walk_subtrees, data, - cp_genericize_r, cp_walk_subtrees); ---- gcc/testsuite/gcc.dg/pr99230.c.jj 2021-03-17 19:34:26.633711074 +0100 -+++ gcc/testsuite/gcc.dg/pr99230.c 2021-03-17 19:33:30.210332887 +0100 -@@ -0,0 +1,40 @@ -+/* PR debug/99230 */ -+/* { dg-do compile } */ -+/* { dg-options "-O2 --param logical-op-non-short-circuit=0 -fcompare-debug --param=jump-table-max-growth-ratio-for-speed=5000" } */ -+ -+extern void fn2 (void); -+extern void fn3 (int); -+int a, b; -+void -+fn1 (void) -+{ -+ int c; -+ short d; -+ switch (a) { -+ case 22000: -+ fn2 (); -+ case 22300: -+ b = 0; -+ case 22600: -+ case 22601: -+ case 22900: -+ fn3 (1); -+ case 20100: -+ fn3 (2); -+ case 20200: -+ fn3 (3); -+ case 20300: -+ fn3 (4); -+ case 20400: -+ fn3 (5); -+ case 20310: -+ fn3 (4); -+ case 20410: -+ fn3 (5); -+ } -+ if (d || c) { -+ do -+ ; -+ while (0); -+ } -+} diff --git a/gcc11-pr99378-revert.patch b/gcc11-pr99378-revert.patch deleted file mode 100644 index ea7f937..0000000 --- a/gcc11-pr99378-revert.patch +++ /dev/null @@ -1,94 +0,0 @@ -Revert: -2021-03-18 Vladimir N. Makarov - - PR target/99422 - * lra-constraints.c (process_address_1): Use lookup_constraint - only for a single constraint. - -2021-03-10 Vladimir N. Makarov - - PR target/99422 - * lra-constraints.c (process_address_1): Don't check unknown - constraint, use X for empty constraint. - -2021-03-09 Vladimir N. Makarov - - PR target/99454 - * lra-constraints.c (process_address_1): Process constraint 'g' - separately and digital constraints containing more one digit. - -2021-03-09 Vladimir N. Makarov - - PR target/99454 - * lra-constraints.c (process_address_1): Process 0..9 constraints - in process_address_1. - -2021-03-08 Vladimir N. Makarov - - PR target/99422 - * lra-constraints.c (skip_contraint_modifiers): New function. - (process_address_1): Use it before lookup_constraint call. - -2021-03-05 Vladimir N. Makarov - - PR target/99378 - * lra-constraints.c (process_address_1): Skip decomposing address - for asm insn operand with unknown constraint. - ---- gcc/lra-constraints.c.jj 2021-03-19 13:53:38.094778251 +0100 -+++ gcc/lra-constraints.c 2021-03-19 14:23:16.017389900 +0100 -@@ -3392,21 +3392,6 @@ equiv_address_substitution (struct addre - return change_p; - } - --/* Skip all modifiers and whitespaces in constraint STR and return the -- result. */ --static const char * --skip_contraint_modifiers (const char *str) --{ -- for (;;str++) -- switch (*str) -- { -- case '+' : case '&' : case '=': case '*': case ' ': case '\t': -- case '$': case '^' : case '%': case '?': case '!': -- break; -- default: return str; -- } --} -- - /* Major function to make reloads for an address in operand NOP or - check its correctness (If CHECK_ONLY_P is true). The supported - cases are: -@@ -3441,8 +3426,8 @@ process_address_1 (int nop, bool check_o - HOST_WIDE_INT scale; - rtx op = *curr_id->operand_loc[nop]; - rtx mem = extract_mem_from_operand (op); -- const char *constraint; -- enum constraint_num cn; -+ const char *constraint = curr_static_id->operand[nop].constraint; -+ enum constraint_num cn = lookup_constraint (constraint); - bool change_p = false; - - if (MEM_P (mem) -@@ -3450,21 +3435,6 @@ process_address_1 (int nop, bool check_o - && GET_CODE (XEXP (mem, 0)) == SCRATCH) - return false; - -- constraint -- = skip_contraint_modifiers (curr_static_id->operand[nop].constraint); -- if (IN_RANGE (constraint[0], '0', '9')) -- { -- char *end; -- unsigned long dup = strtoul (constraint, &end, 10); -- constraint -- = skip_contraint_modifiers (curr_static_id->operand[dup].constraint); -- } -- if (*skip_contraint_modifiers (constraint -- + CONSTRAINT_LEN (constraint[0], -- constraint)) != '\0') -- cn = CONSTRAINT__UNKNOWN; -- else -- cn = lookup_constraint (*constraint == '\0' ? "X" : constraint); - if (insn_extra_address_constraint (cn) - /* When we find an asm operand with an address constraint that - doesn't satisfy address_operand to begin with, we clear diff --git a/gcc11-pr99388.patch b/gcc11-pr99388.patch deleted file mode 100644 index 4ecfdc0..0000000 --- a/gcc11-pr99388.patch +++ /dev/null @@ -1,92 +0,0 @@ -2021-03-04 Jakub Jelinek - - PR debug/99388 - * dwarf2out.c (insert_float): Change return type from void to - unsigned, handle GET_MODE_SIZE (mode) == 2 and return element size. - (mem_loc_descriptor, loc_descriptor, add_const_value_attribute): - Adjust callers. - ---- gcc/dwarf2out.c.jj 2021-03-03 09:53:55.391191719 +0100 -+++ gcc/dwarf2out.c 2021-03-04 15:51:23.174396552 +0100 -@@ -3825,7 +3825,7 @@ static void add_data_member_location_att - static bool add_const_value_attribute (dw_die_ref, rtx); - static void insert_int (HOST_WIDE_INT, unsigned, unsigned char *); - static void insert_wide_int (const wide_int &, unsigned char *, int); --static void insert_float (const_rtx, unsigned char *); -+static unsigned insert_float (const_rtx, unsigned char *); - static rtx rtl_for_decl_location (tree); - static bool add_location_or_const_value_attribute (dw_die_ref, tree, bool); - static bool tree_add_const_value_attribute (dw_die_ref, tree); -@@ -16292,11 +16292,12 @@ mem_loc_descriptor (rtx rtl, machine_mod - scalar_float_mode float_mode = as_a (mode); - unsigned int length = GET_MODE_SIZE (float_mode); - unsigned char *array = ggc_vec_alloc (length); -+ unsigned int elt_size = insert_float (rtl, array); - -- insert_float (rtl, array); - mem_loc_result->dw_loc_oprnd2.val_class = dw_val_class_vec; -- mem_loc_result->dw_loc_oprnd2.v.val_vec.length = length / 4; -- mem_loc_result->dw_loc_oprnd2.v.val_vec.elt_size = 4; -+ mem_loc_result->dw_loc_oprnd2.v.val_vec.length -+ = length / elt_size; -+ mem_loc_result->dw_loc_oprnd2.v.val_vec.elt_size = elt_size; - mem_loc_result->dw_loc_oprnd2.v.val_vec.array = array; - } - } -@@ -16866,11 +16867,11 @@ loc_descriptor (rtx rtl, machine_mode mo - { - unsigned int length = GET_MODE_SIZE (smode); - unsigned char *array = ggc_vec_alloc (length); -+ unsigned int elt_size = insert_float (rtl, array); - -- insert_float (rtl, array); - loc_result->dw_loc_oprnd2.val_class = dw_val_class_vec; -- loc_result->dw_loc_oprnd2.v.val_vec.length = length / 4; -- loc_result->dw_loc_oprnd2.v.val_vec.elt_size = 4; -+ loc_result->dw_loc_oprnd2.v.val_vec.length = length / elt_size; -+ loc_result->dw_loc_oprnd2.v.val_vec.elt_size = elt_size; - loc_result->dw_loc_oprnd2.v.val_vec.array = array; - } - } -@@ -19689,7 +19690,7 @@ insert_wide_int (const wide_int &val, un - - /* Writes floating point values to dw_vec_const array. */ - --static void -+static unsigned - insert_float (const_rtx rtl, unsigned char *array) - { - long val[4]; -@@ -19699,11 +19700,19 @@ insert_float (const_rtx rtl, unsigned ch - real_to_target (val, CONST_DOUBLE_REAL_VALUE (rtl), mode); - - /* real_to_target puts 32-bit pieces in each long. Pack them. */ -+ if (GET_MODE_SIZE (mode) < 4) -+ { -+ gcc_assert (GET_MODE_SIZE (mode) == 2); -+ insert_int (val[0], 2, array); -+ return 2; -+ } -+ - for (i = 0; i < GET_MODE_SIZE (mode) / 4; i++) - { - insert_int (val[i], 4, array); - array += 4; - } -+ return 4; - } - - /* Attach a DW_AT_const_value attribute for a variable or a parameter which -@@ -19752,9 +19761,10 @@ add_const_value_attribute (dw_die_ref di - scalar_float_mode mode = as_a (GET_MODE (rtl)); - unsigned int length = GET_MODE_SIZE (mode); - unsigned char *array = ggc_vec_alloc (length); -+ unsigned int elt_size = insert_float (rtl, array); - -- insert_float (rtl, array); -- add_AT_vec (die, DW_AT_const_value, length / 4, 4, array); -+ add_AT_vec (die, DW_AT_const_value, length / elt_size, elt_size, -+ array); - } - return true; - diff --git a/gcc11-pr99562.patch b/gcc11-pr99562.patch deleted file mode 100644 index 1ef63a6..0000000 --- a/gcc11-pr99562.patch +++ /dev/null @@ -1,39 +0,0 @@ -2021-03-13 Jakub Jelinek - - PR debug/99562 - PR debug/66728 - * dwarf2out.c (get_full_len): Use get_precision rather than - min_precision. - (add_const_value_attribute): Make sure add_AT_wide argument has - precision prec rather than some very wide one. - ---- gcc/dwarf2out.c.jj 2021-03-11 14:01:43.385194205 +0100 -+++ gcc/dwarf2out.c 2021-03-12 17:34:49.365207265 +0100 -@@ -385,13 +385,12 @@ dump_struct_debug (tree type, enum debug - #endif - - /* Get the number of HOST_WIDE_INTs needed to represent the precision -- of the number. Some constants have a large uniform precision, so -- we get the precision needed for the actual value of the number. */ -+ of the number. */ - - static unsigned int - get_full_len (const wide_int &op) - { -- int prec = wi::min_precision (op, UNSIGNED); -+ int prec = wi::get_precision (op); - return ((prec + HOST_BITS_PER_WIDE_INT - 1) - / HOST_BITS_PER_WIDE_INT); - } -@@ -19732,8 +19731,9 @@ add_const_value_attribute (dw_die_ref di - { - wide_int w1 = rtx_mode_t (rtl, MAX_MODE_INT); - unsigned int prec = MIN (wi::min_precision (w1, UNSIGNED), -- (unsigned int)CONST_WIDE_INT_NUNITS (rtl) * HOST_BITS_PER_WIDE_INT); -- wide_int w = wi::zext (w1, prec); -+ (unsigned int) CONST_WIDE_INT_NUNITS (rtl) -+ * HOST_BITS_PER_WIDE_INT); -+ wide_int w = wide_int::from (w1, prec, UNSIGNED); - add_AT_wide (die, DW_AT_const_value, w); - } - return true; diff --git a/gcc11-pr99650.patch b/gcc11-pr99650.patch deleted file mode 100644 index 031c272..0000000 --- a/gcc11-pr99650.patch +++ /dev/null @@ -1,44 +0,0 @@ -2021-03-18 Jakub Jelinek - - PR c++/99650 - * decl.c (cp_finish_decomp): Diagnose void initializers when - using tuple_element and get. - - * g++.dg/cpp1z/decomp55.C: New test. - ---- gcc/cp/decl.c.jj 2021-03-16 21:17:41.014498713 +0100 -+++ gcc/cp/decl.c 2021-03-18 19:31:22.430149523 +0100 -@@ -8629,6 +8629,11 @@ cp_finish_decomp (tree decl, tree first, - : get_tuple_element_type (type, i)); - input_location = sloc; - -+ if (VOID_TYPE_P (eltype)) -+ { -+ error ("forming reference to void"); -+ eltype = error_mark_node; -+ } - if (init == error_mark_node || eltype == error_mark_node) - { - inform (dloc, "in initialization of structured binding " ---- gcc/testsuite/g++.dg/cpp1z/decomp55.C.jj 2021-03-18 19:43:07.958457494 +0100 -+++ gcc/testsuite/g++.dg/cpp1z/decomp55.C 2021-03-18 19:42:35.099815746 +0100 -@@ -0,0 +1,19 @@ -+// PR c++/99650 -+// { dg-do compile { target c++17 } } -+ -+namespace std { -+ template struct tuple_size; -+ template struct tuple_element; -+} -+ -+struct A { -+ int i; -+ template void get() { } -+}; -+ -+template<> struct std::tuple_size { static const int value = 2; }; -+template struct std::tuple_element { using type = void; }; -+ -+A a = { 42 }; -+auto [ x, y ] = a; // { dg-error "forming reference to void" } -+// { dg-message "in initialization of structured binding variable 'x'" "" { target *-*-* } .-1 } diff --git a/sources b/sources index 877c36e..030c3fa 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -SHA512 (gcc-11.0.1-20210319.tar.xz) = 5e8469f34601f9fd30439509129a738f61c61357f260cc6addffdea1a6b14eba0cf7030ad6e32dd000f08b0fbba13e90d6618e5d699658000675cdfe22c919f1 +SHA512 (gcc-11.0.1-20210324.tar.xz) = 3f7fb2bb2098b021efe5e3dcf128a91525adc49ace1ad4120bbccc95827c45affe9beacfff43b03a0da30fcb6f8ea1a22ab7bd05f2aed05b0541f8c2ca4cfd0c SHA512 (isl-0.18.tar.bz2) = 85d0b40f4dbf14cb99d17aa07048cdcab2dc3eb527d2fbb1e84c41b2de5f351025370e57448b63b2b8a8cf8a0843a089c3263f9baee1542d5c2e1cb37ed39d94 SHA512 (newlib-cygwin-50e2a63b04bdd018484605fbb954fd1bd5147fa0.tar.xz) = 002a48a7b689a81abbf16161bcaec001a842e67dfbe372e9e109092703bfc666675f16198f60ca429370e8850d564547dc505df81bc3aaca4ce6defbc014ad6c SHA512 (nvptx-tools-5f6f343a302d620b0868edab376c00b15741e39e.tar.xz) = f6d10db94fa1570ae0f94df073fa3c73c8e5ee16d59070b53d94f7db0de8a031bc44d7f3f1852533da04b625ce758e022263855ed43cfc6867e0708d001e53c7