diff --git a/.gitignore b/.gitignore index dbccc8a..3bfbff8 100644 --- a/.gitignore +++ b/.gitignore @@ -54,3 +54,7 @@ /gcc-11.2.1-20211018.tar.xz /gcc-11.2.1-20211019.tar.xz /gcc-11.2.1-20211203.tar.xz +/gcc-11.2.1-20220125.tar.xz +/gcc-11.2.1-20220127.tar.xz +/gcc-11.2.1-20220401.tar.xz +/gcc-11.3.1-20220421.tar.xz diff --git a/gcc.spec b/gcc.spec index a310bcf..89e8939 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,10 +1,10 @@ -%global DATE 20211203 -%global gitrev e41308252e835ddedcabfd4a98240080c6583a43 -%global gcc_version 11.2.1 +%global DATE 20220421 +%global gitrev 1d3172725999deb0dca93ac70393ed9a0ad0da3f +%global gcc_version 11.3.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 7 +%global gcc_release 2 %global nvptx_tools_gitrev 5f6f343a302d620b0868edab376c00b15741e39e %global newlib_cygwin_gitrev 50e2a63b04bdd018484605fbb954fd1bd5147fa0 %global _unpackaged_files_terminate_build 0 @@ -271,6 +271,7 @@ Patch14: gcc11-libgcc-link.patch Patch15: gcc11-pr101786.patch Patch16: gcc11-stringify-__VA_OPT__.patch Patch17: gcc11-stringify-__VA_OPT__-2.patch +Patch18: gcc11-pr105331.patch Patch100: gcc11-fortran-fdec-duplicates.patch Patch101: gcc11-fortran-flogical-as-integer.patch @@ -800,6 +801,7 @@ to NVidia PTX capable devices if available. %patch15 -p0 -b .pr101786~ %patch16 -p0 -b .stringify-__VA_OPT__~ %patch17 -p0 -b .stringify-__VA_OPT__-2~ +%patch18 -p0 -b .pr105331~ %if 0%{?rhel} >= 9 %patch100 -p1 -b .fortran-fdec-duplicates~ @@ -3148,6 +3150,112 @@ end %endif %changelog +* Thu Apr 21 2022 Jakub Jelinek 11.3.1-2 +- update from releases/gcc-11-branch + - PRs debug/105203, gcov-profile/105282, libstdc++/105324, target/105257 + +* Thu Apr 21 2022 Jakub Jelinek 11.3.1-1 +- update from releases/gcc-11-branch + - GCC 11.3 release + - PRs c++/98249, c++/99893, c++/100608, c++/101051, c++/101532, c++/101677, + c++/101717, c++/101894, c++/102869, c++/103105, c++/103328, + c++/103341, c++/103455, c++/103706, c++/103885, c++/103943, + c++/104008, c++/104079, c++/104225, c++/104507, c++/104565, + c++/105003, c++/105064, c++/105143, c++/105186, c++/105256, c/101585, + debug/105203, fortran/102992, fortran/104210, fortran/104228, + fortran/104570, fortran/105138, gcov-profile/105282, ipa/103083, + ipa/103432, jit/100613, libstdc++/90943, libstdc++/100516, + libstdc++/103630, libstdc++/103638, libstdc++/103650, + libstdc++/103955, libstdc++/104098, libstdc++/104301, + libstdc++/104542, libstdc++/104859, libstdc++/105021, + libstdc++/105027, middle-end/104497, middle-end/105165, + rtl-optimization/104985, rtl-optimization/105028, + rtl-optimization/105211, target/80556, target/100106, target/104117, + target/104474, target/104853, target/104894, target/105214, + target/105257, tree-optimization/99121, tree-optimization/104880, + tree-optimization/105053, tree-optimization/105070, + tree-optimization/105189, tree-optimization/105198, + tree-optimization/105226, tree-optimization/105232, + tree-optimization/105235 +- fix bogus -Wuninitialized warning on va_arg with complex types on x86_64 + (PR target/105331) +- remove bogus assertion in std::from_chars (PR libstdc++/105324) + +* Fri Apr 1 2022 Jakub Jelinek 11.2.1-10 +- update from releases/gcc-11-branch + - PRs ada/98724, ada/104258, ada/104767, ada/104861, c++/58646, c++/59950, + c++/61611, c++/95036, c++/100468, c++/101030, c++/101095, c++/101371, + c++/101515, c++/101767, c++/102045, c++/102123, c++/102538, + c++/102740, c++/102990, c++/103057, c++/103186, c++/103291, + c++/103299, c++/103337, c++/103711, c++/103769, c++/103968, + c++/104107, c++/104108, c++/104284, c++/104410, c++/104472, + c++/104513, c++/104568, c++/104667, c++/104806, c++/104847, + c++/104944, c++/104994, c++/105035, c++/105061, c/82283, c/84685, + c/104510, c/104711, d/104659, d/105004, debug/104337, debug/104517, + debug/104557, fortran/66193, fortran/99585, fortran/100337, + fortran/103790, fortran/104211, fortran/104311, fortran/104331, + fortran/104430, fortran/104619, fortran/104811, go/100537, + libgomp/104385, libstdc++/101231, libstdc++/102358, libstdc++/103904, + libstdc++/104442, lto/104237, lto/104333, lto/104617, + middle-end/95115, middle-end/99578, middle-end/100464, + middle-end/100680, middle-end/100775, middle-end/100786, + middle-end/104307, middle-end/104402, middle-end/104446, + middle-end/104786, middle-end/104971, middle-end/105032, + preprocessor/104147, rtl-optimization/104544, rtl-optimization/104589, + rtl-optimization/104777, rtl-optimization/104814, sanitizer/102656, + sanitizer/104449, sanitizer/105093, target/79754, target/87496, + target/99708, target/99754, target/100784, target/101324, + target/102140, target/102952, target/102957, target/103307, + target/103627, target/103925, target/104090, target/104208, + target/104219, target/104253, target/104362, target/104448, + target/104451, target/104453, target/104458, target/104462, + target/104469, target/104502, target/104674, target/104681, + target/104688, target/104775, target/104890, target/104910, + target/104923, target/104963, target/104998, target/105000, + target/105052, target/105058, target/105068, testsuite/103556, + testsuite/103586, testsuite/104730, testsuite/104759, + testsuite/105055, tree-optimization/45178, tree-optimization/100834, + tree-optimization/101636, tree-optimization/102819, + tree-optimization/102893, tree-optimization/103169, + tree-optimization/103361, tree-optimization/103489, + tree-optimization/103544, tree-optimization/103596, + tree-optimization/103641, tree-optimization/103864, + tree-optimization/104263, tree-optimization/104288, + tree-optimization/104511, tree-optimization/104601, + tree-optimization/104675, tree-optimization/104782, + tree-optimization/104931, tree-optimization/105094 +- fix x86 vector initialization expansion fallback (PR target/105123) + +* Thu Jan 25 2022 Jakub Jelinek 11.2.1-9 +- update from releases/gcc-11-branch + - PRs fortran/104127, fortran/104212, fortran/104227, target/101529 +- fix up va-opt-6.c testcase + +* Tue Jan 25 2022 Jakub Jelinek 11.2.1-8 +- update from releases/gcc-11-branch + - PRs ada/103538, analyzer/101962, bootstrap/103688, c++/85846, c++/95009, + c++/98394, c++/99911, c++/100493, c++/101715, c++/102229, c++/102933, + c++/103012, c++/103198, c++/103480, c++/103703, c++/103714, + c++/103758, c++/103783, c++/103831, c++/103912, c++/104055, c/97548, + c/101289, c/101537, c/103587, c/103881, d/103604, debug/103838, + debug/103874, fortran/67804, fortran/83079, fortran/101329, + fortran/101762, fortran/102332, fortran/102717, fortran/102787, + fortran/103411, fortran/103412, fortran/103418, fortran/103473, + fortran/103505, fortran/103588, fortran/103591, fortran/103606, + fortran/103607, fortran/103609, fortran/103610, fortran/103692, + fortran/103717, fortran/103718, fortran/103719, fortran/103776, + fortran/103777, fortran/103778, fortran/103782, fortran/103789, + ipa/101354, jit/103562, libfortran/103634, libstdc++/100017, + libstdc++/102994, libstdc++/103453, libstdc++/103501, + libstdc++/103549, libstdc++/103877, libstdc++/103919, + middle-end/101751, middle-end/102860, middle-end/103813, objc/103639, + preprocessor/89971, preprocessor/102432, rtl-optimization/102478, + rtl-optimization/103837, rtl-optimization/103860, + rtl-optimization/103908, sanitizer/102911, target/102347, + target/103465, target/103661, target/104172, target/104188, + tree-optimization/101615, tree-optimization/103523, + tree-optimization/103603, tree-optimization/103995 + * Fri Dec 3 2021 Jakub Jelinek 11.2.1-7 - update from releases/gcc-11-branch - PRs ada/100486, c++/70796, c++/92746, c++/93286, c++/94490, c++/102642, diff --git a/gcc11-libgcc-link.patch b/gcc11-libgcc-link.patch index 8551934..1904c4b 100644 --- a/gcc11-libgcc-link.patch +++ b/gcc11-libgcc-link.patch @@ -19,7 +19,6 @@ that also repeats later in the @multilib_flags@, which should be harmless. 2021-08-04 Jakub Jelinek * config/t-slibgcc (SHLIB_LINK): Add $(LDFLAGS). - * config/t-slibgcc-darwin (SHLIB_LINK): Likewise. * config/t-slibgcc-vms (SHLIB_LINK): Likewise. --- libgcc/config/t-slibgcc @@ -33,17 +32,6 @@ that also repeats later in the @multilib_flags@, which should be harmless. -o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp @multilib_flags@ \ $(SHLIB_OBJS) $(SHLIB_LC) && \ rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \ ---- libgcc/config/t-slibgcc-darwin -+++ libgcc/config/t-slibgcc-darwin -@@ -15,7 +15,7 @@ SHLIB_LC = -lc - # Note that this version is used for the loader, not the linker; the linker - # uses the stub versions named by the versioned members of $(INSTALL_FILES). - --SHLIB_LINK = $(CC) $(LIBGCC2_CFLAGS) -dynamiclib -nodefaultlibs \ -+SHLIB_LINK = $(CC) $(LIBGCC2_CFLAGS) $(LDFLAGS) -dynamiclib -nodefaultlibs \ - -install_name @shlib_slibdir@/$(SHLIB_INSTALL_NAME) \ - -single_module -o $(SHLIB_DIR)/$(SHLIB_SONAME) \ - -Wl,-exported_symbols_list,$(SHLIB_MAP) \ --- libgcc/config/t-slibgcc-vms +++ libgcc/config/t-slibgcc-vms @@ -22,7 +22,7 @@ SHLIB_LINK = \ diff --git a/gcc11-libstdc++-docs.patch b/gcc11-libstdc++-docs.patch index 4b4f9f8..b044a4d 100644 --- a/gcc11-libstdc++-docs.patch +++ b/gcc11-libstdc++-docs.patch @@ -4,7 +4,7 @@ FSF

-+ Release 11.2.1 ++ Release 11.3.1 +

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation @@ -17,7 +17,7 @@

- The API documentation, rendered into HTML, can be viewed online + The API documentation, rendered into HTML, can be viewed locally -+ for the 11.2.1 release, ++ for the 11.3.1 release, + online for each GCC release and diff --git a/gcc11-pr105331.patch b/gcc11-pr105331.patch new file mode 100644 index 0000000..fa1a9d3 --- /dev/null +++ b/gcc11-pr105331.patch @@ -0,0 +1,33 @@ +2022-04-21 Jakub Jelinek + + PR target/105331 + * config/i386/i386.c (ix86_gimplify_va_arg): Mark va_arg_tmp + temporary TREE_ADDRESSABLE before trying to gimplify ADDR_EXPR + of it. + + * gcc.dg/pr105331.c: New test. + +--- gcc/config/i386/i386.c.jj 2022-04-12 09:20:07.566662842 +0200 ++++ gcc/config/i386/i386.c 2022-04-21 12:03:32.201951522 +0200 +@@ -4891,6 +4891,7 @@ ix86_gimplify_va_arg (tree valist, tree + { + int i, prev_size = 0; + tree temp = create_tmp_var (type, "va_arg_tmp"); ++ TREE_ADDRESSABLE (temp) = 1; + + /* addr = &temp; */ + t = build1 (ADDR_EXPR, build_pointer_type (type), temp); +--- gcc/testsuite/gcc.dg/pr105331.c.jj 2022-04-21 12:09:34.398906718 +0200 ++++ gcc/testsuite/gcc.dg/pr105331.c 2022-04-21 12:09:07.304283903 +0200 +@@ -0,0 +1,11 @@ ++/* PR target/105331 */ ++/* { dg-do compile } */ ++/* { dg-options "-O -Wuninitialized" } */ ++ ++#include ++ ++int ++foo (va_list *va) ++{ ++ return va_arg (*va, double _Complex); /* { dg-bogus "may be used uninitialized" } */ ++} diff --git a/gcc11-stringify-__VA_OPT__-2.patch b/gcc11-stringify-__VA_OPT__-2.patch index 987f738..5874bc1 100644 --- a/gcc11-stringify-__VA_OPT__-2.patch +++ b/gcc11-stringify-__VA_OPT__-2.patch @@ -33,7 +33,7 @@ gcc/testsuite/ --- libcpp/macro.c.jj +++ libcpp/macro.c -@@ -295,7 +295,7 @@ static cpp_context *next_context (cpp_reader *); +@@ -295,7 +295,7 @@ static cpp_context *next_context (cpp_re static const cpp_token *padding_token (cpp_reader *, const cpp_token *); static const cpp_token *new_string_token (cpp_reader *, uchar *, unsigned int); static const cpp_token *stringify_arg (cpp_reader *, const cpp_token **, @@ -42,7 +42,7 @@ gcc/testsuite/ static void paste_all_tokens (cpp_reader *, const cpp_token *); static bool paste_tokens (cpp_reader *, location_t, const cpp_token **, const cpp_token *); -@@ -834,8 +834,7 @@ cpp_quote_string (uchar *dest, const uchar *src, unsigned int len) +@@ -826,8 +826,7 @@ cpp_quote_string (uchar *dest, const uch /* Convert a token sequence FIRST to FIRST+COUNT-1 to a single string token according to the rules of the ISO C #-operator. */ static const cpp_token * @@ -52,7 +52,7 @@ gcc/testsuite/ { unsigned char *dest; unsigned int i, escape_it, backslash_count = 0; -@@ -852,24 +851,6 @@ stringify_arg (cpp_reader *pfile, const cpp_token **first, unsigned int count, +@@ -844,24 +843,6 @@ stringify_arg (cpp_reader *pfile, const { const cpp_token *token = first[i]; @@ -77,7 +77,7 @@ gcc/testsuite/ if (token->type == CPP_PADDING) { if (source == NULL -@@ -1003,6 +984,7 @@ paste_tokens (cpp_reader *pfile, location_t location, +@@ -995,6 +976,7 @@ paste_tokens (cpp_reader *pfile, locatio return false; } @@ -85,7 +85,7 @@ gcc/testsuite/ *plhs = lhs; _cpp_pop_buffer (pfile); return true; -@@ -1945,8 +1927,7 @@ replace_args (cpp_reader *pfile, cpp_hashnode *node, cpp_macro *macro, +@@ -1937,8 +1919,7 @@ replace_args (cpp_reader *pfile, cpp_has if (src->flags & STRINGIFY_ARG) { if (!arg->stringified) @@ -95,7 +95,7 @@ gcc/testsuite/ } else if ((src->flags & PASTE_LEFT) || (src != macro->exp.tokens && (src[-1].flags & PASTE_LEFT))) -@@ -2066,11 +2047,46 @@ replace_args (cpp_reader *pfile, cpp_hashnode *node, cpp_macro *macro, +@@ -2065,11 +2046,46 @@ replace_args (cpp_reader *pfile, cpp_has { unsigned int count = start ? paste_flag - start : tokens_buff_count (buff); diff --git a/gcc11-stringify-__VA_OPT__.patch b/gcc11-stringify-__VA_OPT__.patch index 3a2a71f..101b026 100644 --- a/gcc11-stringify-__VA_OPT__.patch +++ b/gcc11-stringify-__VA_OPT__.patch @@ -66,7 +66,7 @@ gcc/testsuite/ /* The state variable: 0 means not parsing -@@ -284,7 +294,8 @@ static _cpp_buff *collect_args (cpp_reader *, const cpp_hashnode *, +@@ -284,7 +294,8 @@ static _cpp_buff *collect_args (cpp_read static cpp_context *next_context (cpp_reader *); static const cpp_token *padding_token (cpp_reader *, const cpp_token *); static const cpp_token *new_string_token (cpp_reader *, uchar *, unsigned int); @@ -76,7 +76,7 @@ gcc/testsuite/ static void paste_all_tokens (cpp_reader *, const cpp_token *); static bool paste_tokens (cpp_reader *, location_t, const cpp_token **, const cpp_token *); -@@ -818,10 +829,11 @@ cpp_quote_string (uchar *dest, const uchar *src, unsigned int len) +@@ -812,10 +823,11 @@ cpp_quote_string (uchar *dest, const uch return dest; } @@ -91,7 +91,7 @@ gcc/testsuite/ { unsigned char *dest; unsigned int i, escape_it, backslash_count = 0; -@@ -834,9 +846,27 @@ stringify_arg (cpp_reader *pfile, macro_arg *arg) +@@ -828,9 +840,27 @@ stringify_arg (cpp_reader *pfile, macro_ *dest++ = '"'; /* Loop, reading in the argument's tokens. */ @@ -121,7 +121,7 @@ gcc/testsuite/ if (token->type == CPP_PADDING) { -@@ -923,7 +953,7 @@ paste_tokens (cpp_reader *pfile, location_t location, +@@ -917,7 +947,7 @@ paste_tokens (cpp_reader *pfile, locatio cpp_token *lhs; unsigned int len; @@ -130,7 +130,7 @@ gcc/testsuite/ buf = (unsigned char *) alloca (len); end = lhsend = cpp_spell_token (pfile, *plhs, buf, true); -@@ -949,8 +979,10 @@ paste_tokens (cpp_reader *pfile, location_t location, +@@ -943,8 +973,10 @@ paste_tokens (cpp_reader *pfile, locatio location_t saved_loc = lhs->src_loc; _cpp_pop_buffer (pfile); @@ -143,7 +143,7 @@ gcc/testsuite/ /* We have to remove the PASTE_LEFT flag from the old lhs, but we want to keep the new location. */ -@@ -962,8 +994,10 @@ paste_tokens (cpp_reader *pfile, location_t location, +@@ -956,8 +988,10 @@ paste_tokens (cpp_reader *pfile, locatio /* Mandatory error for all apart from assembler. */ if (CPP_OPTION (pfile, lang) != CLK_ASM) cpp_error_with_line (pfile, CPP_DL_ERROR, location, 0, @@ -156,7 +156,7 @@ gcc/testsuite/ return false; } -@@ -1039,7 +1073,10 @@ paste_all_tokens (cpp_reader *pfile, const cpp_token *lhs) +@@ -1033,7 +1067,10 @@ paste_all_tokens (cpp_reader *pfile, con abort (); } if (!paste_tokens (pfile, virt_loc, &lhs, rhs)) @@ -168,7 +168,7 @@ gcc/testsuite/ } while (rhs->flags & PASTE_LEFT); -@@ -1906,7 +1943,8 @@ replace_args (cpp_reader *pfile, cpp_hashnode *node, cpp_macro *macro, +@@ -1900,7 +1937,8 @@ replace_args (cpp_reader *pfile, cpp_has if (src->flags & STRINGIFY_ARG) { if (!arg->stringified) @@ -178,11 +178,10 @@ gcc/testsuite/ } else if ((src->flags & PASTE_LEFT) || (src != macro->exp.tokens && (src[-1].flags & PASTE_LEFT))) -@@ -2029,7 +2067,24 @@ replace_args (cpp_reader *pfile, cpp_hashnode *node, cpp_macro *macro, +@@ -2023,6 +2061,24 @@ replace_args (cpp_reader *pfile, cpp_has paste_flag = tokens_buff_last_token_ptr (buff); } -- if (src->flags & PASTE_LEFT) + if (vaopt_tracker.stringify ()) + { + unsigned int count @@ -199,12 +198,12 @@ gcc/testsuite/ + tokens_buff_add_token (buff, virt_locs, + t, t->src_loc, t->src_loc, + NULL, 0); ++ continue; + } -+ else if (src->flags & PASTE_LEFT) - { - /* With a non-empty __VA_OPT__ on the LHS of ##, the last - token should be flagged PASTE_LEFT. */ -@@ -3585,7 +3640,10 @@ create_iso_definition (cpp_reader *pfile) + if (start && paste_flag == start && (*start)->flags & PASTE_LEFT) + /* If __VA_OPT__ expands to nothing (either because __VA_ARGS__ + is empty or because it is __VA_OPT__() ), drop PASTE_LEFT +@@ -3584,7 +3640,10 @@ create_iso_definition (cpp_reader *pfile function-like macros when lexing the subsequent token. */ if (macro->count > 1 && token[-1].type == CPP_HASH && macro->fun_like) { diff --git a/sources b/sources index a7e012b..5ba9a7a 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -SHA512 (gcc-11.2.1-20211203.tar.xz) = 3cf64d3af541b9e80a2d5dd95a1257afefda554cfa16b757a7f861701e3da2d6917dbb1f4cd74301ffaf45e92c441642b8c589a10698a9103a216620f0849626 +SHA512 (gcc-11.3.1-20220421.tar.xz) = c631a8a990a6977b70a878c34a69c64dd49387edae0931ef64433cbf5f361ecec6a4118a9a5b1eab57b354eecea125297f721ddd25daebc2290749a7eae17af2 SHA512 (isl-0.18.tar.bz2) = 85d0b40f4dbf14cb99d17aa07048cdcab2dc3eb527d2fbb1e84c41b2de5f351025370e57448b63b2b8a8cf8a0843a089c3263f9baee1542d5c2e1cb37ed39d94 SHA512 (newlib-cygwin-50e2a63b04bdd018484605fbb954fd1bd5147fa0.tar.xz) = 002a48a7b689a81abbf16161bcaec001a842e67dfbe372e9e109092703bfc666675f16198f60ca429370e8850d564547dc505df81bc3aaca4ce6defbc014ad6c SHA512 (nvptx-tools-5f6f343a302d620b0868edab376c00b15741e39e.tar.xz) = f6d10db94fa1570ae0f94df073fa3c73c8e5ee16d59070b53d94f7db0de8a031bc44d7f3f1852533da04b625ce758e022263855ed43cfc6867e0708d001e53c7 diff --git a/update-gcc.sh b/update-gcc.sh index 644b209..bacec6a 100755 --- a/update-gcc.sh +++ b/update-gcc.sh @@ -3,5 +3,5 @@ git clone --depth 1 git://gcc.gnu.org/git/gcc.git gcc-dir.tmp git --git-dir=gcc-dir.tmp/.git fetch --depth 1 origin $1 d=`date --iso | sed 's/-//g'` -git --git-dir=gcc-dir.tmp/.git archive --prefix=gcc-11.2.1-$d/ $1 | xz -9e > gcc-11.2.1-$d.tar.xz +git --git-dir=gcc-dir.tmp/.git archive --prefix=gcc-11.3.1-$d/ $1 | xz -9e > gcc-11.3.1-$d.tar.xz rm -rf gcc-dir.tmp