diff --git a/.gitignore b/.gitignore index f78dd62..b1c7793 100644 --- a/.gitignore +++ b/.gitignore @@ -67,3 +67,4 @@ /gcc-12.0.1-20220222.tar.xz /gcc-12.0.1-20220306.tar.xz /gcc-12.0.1-20220308.tar.xz +/gcc-12.0.1-20220401.tar.xz diff --git a/gcc.spec b/gcc.spec index df07676..4135f36 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,5 +1,5 @@ -%global DATE 20220308 -%global gitrev a525ce3ad147ce96a7c5fad4099fe2155af45324 +%global DATE 20220401 +%global gitrev 8c714de722b2df674be4eda3e525a9c4a1eee009 %global gcc_version 12.0.1 %global gcc_major 12 # Note, gcc_release must be integer, if you want to add suffixes to @@ -120,7 +120,7 @@ Summary: Various compilers (C, C++, Objective-C, ...) Name: gcc Version: %{gcc_version} -Release: %{gcc_release}.12%{?dist} +Release: %{gcc_release}.13%{?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 @@ -270,9 +270,6 @@ Patch8: gcc12-no-add-needed.patch Patch9: gcc12-Wno-format-security.patch Patch10: gcc12-rh1574936.patch Patch11: gcc12-d-shared-libphobos.patch -Patch12: gcc12-pr104781.patch -Patch13: gcc12-pr104777.patch -Patch14: gcc12-pr104839.patch Patch100: gcc12-fortran-fdec-duplicates.patch Patch101: gcc12-fortran-flogical-as-integer.patch @@ -794,9 +791,6 @@ to NVidia PTX capable devices if available. %patch10 -p0 -b .rh1574936~ %endif %patch11 -p0 -b .d-shared-libphobos~ -%patch12 -p0 -b .pr104781~ -%patch13 -p0 -b .pr104777~ -%patch14 -p0 -b .pr104839~ %if 0%{?rhel} >= 9 %patch100 -p1 -b .fortran-fdec-duplicates~ @@ -3170,6 +3164,71 @@ end %endif %changelog +* Fri Apr 1 2022 Jakub Jelinek 12.0.1-0.13 +- update from trunk + - PRs ada/104767, ada/104861, analyzer/95000, analyzer/99771, + analyzer/103533, analyzer/104308, analyzer/104793, analyzer/104863, + analyzer/104943, analyzer/104954, analyzer/104955, analyzer/104979, + analyzer/104997, analyzer/105017, analyzer/105057, analyzer/105074, + analyzer/105087, c++/39751, c++/58646, c++/59426, c++/65396, + c++/71637, c++/84964, c++/87820, c++/92918, c++/93280, c++/95999, + c++/96329, c++/96437, c++/96440, c++/96645, c++/96780, c++/98644, + c++/99445, c++/100474, c++/101030, c++/101515, c++/101767, c++/102045, + c++/102071, c++/102123, c++/102137, c++/102489, c++/102538, + c++/102740, c++/102869, c++/102990, c++/103177, c++/103291, + c++/103299, c++/103337, c++/103455, c++/103460, c++/103769, + c++/103943, c++/103968, c++/104008, c++/104108, c++/104284, + c++/104476, c++/104527, c++/104568, c++/104583, c++/104608, + c++/104620, c++/104622, c++/104623, c++/104641, c++/104752, + c++/104806, c++/104823, c++/104846, c++/104847, c++/104944, + c++/104994, c++/105003, c++/105006, c++/105035, c++/105050, + c++/105061, c++/105064, c++/105067, c++/105092, c/82283, c/84685, + c/98198, c/104711, d/103528, d/104911, d/105004, debug/104564, + debug/104778, fortran/50549, fortran/100892, fortran/103039, + fortran/103560, fortran/103691, fortran/104126, fortran/104570, + fortran/104571, fortran/104811, fortran/104849, fortran/104999, + ipa/102513, ipa/103083, ipa/103171, ipa/104813, jit/63854, + libgcc/86224, libgomp/105042, libstdc++/92546, libstdc++/103407, + libstdc++/104242, libstdc++/104859, libstdc++/104866, + libstdc++/104870, libstdc++/104875, libstdc++/104990, + libstdc++/105021, libstdc++/105027, lto/102426, middle-end/90115, + middle-end/98420, middle-end/99578, middle-end/100680, + middle-end/102330, middle-end/103597, middle-end/104086, + middle-end/104285, middle-end/104436, middle-end/104774, + middle-end/104786, middle-end/104869, middle-end/104885, + middle-end/104892, middle-end/104966, middle-end/104971, + middle-end/104975, middle-end/105032, middle-end/105049, other/65095, + other/102664, other/104899, other/105114, rtl-optimization/103775, + rtl-optimization/104814, rtl-optimization/104961, + rtl-optimization/104989, rtl-optimization/105028, + rtl-optimization/105091, sanitizer/105093, target/86722, target/91229, + target/94680, target/96882, target/99754, target/102125, + target/102215, target/102772, target/102986, target/103074, + target/104004, target/104666, target/104688, target/104714, + target/104762, target/104783, target/104790, target/104815, + target/104818, target/104829, target/104840, target/104842, + target/104857, target/104868, target/104882, target/104890, + target/104898, target/104902, target/104903, target/104910, + target/104916, target/104923, target/104925, target/104946, + target/104952, target/104957, target/104963, target/104967, + target/104974, target/104976, target/104977, target/104978, + target/104982, target/104998, target/105000, target/105011, + target/105052, target/105058, target/105066, target/105068, + testsuite/102841, testsuite/104759, testsuite/105055, + testsuite/105085, tree-optimization/80334, tree-optimization/84201, + tree-optimization/90356, tree-optimization/98335, + tree-optimization/100834, tree-optimization/101895, + tree-optimization/102008, tree-optimization/102586, + tree-optimization/102645, tree-optimization/102943, + tree-optimization/104645, tree-optimization/104755, + tree-optimization/104851, tree-optimization/104880, + tree-optimization/104941, tree-optimization/104942, + tree-optimization/104960, tree-optimization/104970, + tree-optimization/105012, tree-optimization/105053, + tree-optimization/105056, tree-optimization/105070, + tree-optimization/105080, tree-optimization/105094, + tree-optimization/105109 + * Tue Mar 8 2022 Jakub Jelinek 12.0.1-0.12 - fix up promoted SUBREG handling (#2045160, PR rtl-optimization/104839) - fix up check for asm goto (PR rtl-optimization/104777) diff --git a/gcc12-pr104777.patch b/gcc12-pr104777.patch deleted file mode 100644 index 1e541dd..0000000 --- a/gcc12-pr104777.patch +++ /dev/null @@ -1,61 +0,0 @@ -2022-03-08 Marek Polacek - - PR rtl-optimization/104777 - * rtl.cc (classify_insn): For ASM_OPERANDS, return JUMP_INSN only if - ASM_OPERANDS_LABEL_VEC has at least one element. - - * gcc.dg/torture/tls/pr104777.c: New test. - ---- gcc/rtl.cc -+++ gcc/rtl.cc -@@ -765,7 +765,7 @@ classify_insn (rtx x) - return CALL_INSN; - if (ANY_RETURN_P (x)) - return JUMP_INSN; -- if (GET_CODE (x) == ASM_OPERANDS && ASM_OPERANDS_LABEL_VEC (x)) -+ if (GET_CODE (x) == ASM_OPERANDS && ASM_OPERANDS_LABEL_LENGTH (x)) - return JUMP_INSN; - if (GET_CODE (x) == SET) - { -@@ -794,7 +794,7 @@ classify_insn (rtx x) - if (has_return_p) - return JUMP_INSN; - if (GET_CODE (XVECEXP (x, 0, 0)) == ASM_OPERANDS -- && ASM_OPERANDS_LABEL_VEC (XVECEXP (x, 0, 0))) -+ && ASM_OPERANDS_LABEL_LENGTH (XVECEXP (x, 0, 0))) - return JUMP_INSN; - } - #ifdef GENERATOR_FILE ---- gcc/testsuite/gcc.dg/torture/tls/pr104777.c -+++ gcc/testsuite/gcc.dg/torture/tls/pr104777.c -@@ -0,0 +1,30 @@ -+/* PR rtl-optimization/104777 */ -+/* { dg-do compile } */ -+/* { dg-require-effective-target tls } */ -+ -+int savestate_r; -+int savestate_ssb; -+extern void abort(); -+__thread int loop; -+void f (void) -+{ -+ int savestate_r0_5; -+ int savestate_r1_6; -+ -+ __asm__("" : "=m" (savestate_ssb), "=r" (savestate_r)); -+ savestate_r0_5 = savestate_r; -+ if (savestate_r0_5 == 0) -+ { -+ __asm__ __volatile__("" : : "m" (loop)); -+ abort (); -+ } -+ -+ __asm__("" : "=m" (savestate_ssb), "=r" (savestate_r)); -+ savestate_r1_6 = savestate_r; -+ if (savestate_r1_6 != 0) -+ return; -+ -+ __asm__ __volatile__("" : : "m" (loop)); -+ abort (); -+ -+} diff --git a/gcc12-pr104781.patch b/gcc12-pr104781.patch deleted file mode 100644 index a82b05d..0000000 --- a/gcc12-pr104781.patch +++ /dev/null @@ -1,81 +0,0 @@ -Since eh_return doesn't work with stack realignment, disable SSE on -unwind-c.c and unwind-dw2.c to avoid stack realignment with the 4-byte -incoming stack to avoid SSE usage which is caused by - -commit 609e8c492d62d92465460eae3d43dfc4b2c68288 -Author: H.J. Lu -Date: Sat Feb 26 14:17:23 2022 -0800 - - x86: Always return pseudo register in ix86_gen_scratch_sse_rtx - -when pseudo vector registers are used to expand memset. - -gcc/ - - PR target/104781 - * config/i386/i386.cc (ix86_expand_epilogue): Sorry if there is - stack realignment with eh_return or regparm nested function. - * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Define. - -gcc/testsuite/ - - PR target/104781 - * gcc.target/i386/eh_return-1.c: Add -mincoming-stack-boundary=4. - * gcc.target/i386/eh_return-2.c: Likewise. - ---- gcc/config/i386/i386.cc -+++ gcc/config/i386/i386.cc -@@ -9444,12 +9444,15 @@ ix86_expand_epilogue (int style) - rtx sa = EH_RETURN_STACKADJ_RTX; - rtx_insn *insn; - -- /* %ecx can't be used for both DRAP register and eh_return. */ -- if (crtl->drap_reg) -- gcc_assert (REGNO (crtl->drap_reg) != CX_REG); -+ /* Stack realignment doesn't work with eh_return. */ -+ if (crtl->stack_realign_needed) -+ sorry ("Stack realignment not supported with " -+ "%<__builtin_eh_return%>"); - - /* regparm nested functions don't work with eh_return. */ -- gcc_assert (!ix86_static_chain_on_stack); -+ if (ix86_static_chain_on_stack) -+ sorry ("regparm nested function not supported with " -+ "%<__builtin_eh_return%>"); - - if (frame_pointer_needed) - { ---- gcc/config/i386/i386.h.jj 2022-02-25 12:06:45.535493490 +0100 -+++ gcc/config/i386/i386.h 2022-03-08 11:20:43.207043370 +0100 -@@ -2848,6 +2848,12 @@ extern enum attr_cpu ix86_schedule; - #define NUM_X86_64_MS_CLOBBERED_REGS 12 - #endif - -+/* __builtin_eh_return can't handle stack realignment, so disable SSE in -+ libgcc functions that call it. */ -+#ifndef __x86_64__ -+#define LIBGCC2_UNWIND_ATTRIBUTE __attribute__((target ("no-sse"))) -+#endif -+ - /* - Local variables: - version-control: t ---- gcc/testsuite/gcc.target/i386/eh_return-1.c -+++ gcc/testsuite/gcc.target/i386/eh_return-1.c -@@ -1,5 +1,5 @@ - /* { dg-do compile } */ --/* { dg-options "-O2 -march=haswell -mno-avx512f -mtune-ctrl=avx256_move_by_pieces" } */ -+/* { dg-options "-O2 -mincoming-stack-boundary=4 -march=haswell -mno-avx512f -mtune-ctrl=avx256_move_by_pieces" } */ - - struct _Unwind_Context - { ---- gcc/testsuite/gcc.target/i386/eh_return-2.c -+++ gcc/testsuite/gcc.target/i386/eh_return-2.c -@@ -1,6 +1,6 @@ - /* PR target/101772 */ - /* { dg-do compile } */ --/* { dg-additional-options "-O0 -march=x86-64 -mstackrealign" } */ -+/* { dg-additional-options "-O0 -mincoming-stack-boundary=4 -march=x86-64 -mstackrealign" } */ - - struct _Unwind_Context _Unwind_Resume_or_Rethrow_this_context; - diff --git a/gcc12-pr104839.patch b/gcc12-pr104839.patch deleted file mode 100644 index e9f432a..0000000 --- a/gcc12-pr104839.patch +++ /dev/null @@ -1,70 +0,0 @@ -2022-03-08 Jakub Jelinek - - PR rtl-optimization/104839 - * simplify-rtx.cc (simplify_unary_operation_1) : - Use SRP_SIGNED instead of incorrect 1 in SUBREG_PROMOTED_SET. - (simplify_unary_operation_1) : Use SRP_UNSIGNED - instead of incorrect 0 in SUBREG_PROMOTED_SET. - - * gcc.c-torture/execute/pr104839.c: New test. - ---- gcc/simplify-rtx.cc.jj 2022-02-23 09:17:04.000000000 +0100 -+++ gcc/simplify-rtx.cc 2022-03-08 16:31:20.823246404 +0100 -@@ -1527,7 +1527,7 @@ simplify_context::simplify_unary_operati - if (partial_subreg_p (temp)) - { - SUBREG_PROMOTED_VAR_P (temp) = 1; -- SUBREG_PROMOTED_SET (temp, 1); -+ SUBREG_PROMOTED_SET (temp, SRP_SIGNED); - } - return temp; - } -@@ -1662,7 +1662,7 @@ simplify_context::simplify_unary_operati - if (partial_subreg_p (temp)) - { - SUBREG_PROMOTED_VAR_P (temp) = 1; -- SUBREG_PROMOTED_SET (temp, 0); -+ SUBREG_PROMOTED_SET (temp, SRP_UNSIGNED); - } - return temp; - } ---- gcc/testsuite/gcc.c-torture/execute/pr104839.c.jj 2022-03-08 16:46:51.418440078 +0100 -+++ gcc/testsuite/gcc.c-torture/execute/pr104839.c 2022-03-08 16:46:27.044774203 +0100 -@@ -0,0 +1,37 @@ -+/* PR rtl-optimization/104839 */ -+ -+__attribute__((noipa)) short -+foo (void) -+{ -+ return -1; -+} -+ -+__attribute__((noipa)) int -+bar (void) -+{ -+ short i = foo (); -+ if (i == -2) -+ return 2; -+ long k = i; -+ int j = -1; -+ volatile long s = 300; -+ if (k < 0) -+ { -+ k += s; -+ if (k < 0) -+ j = 0; -+ } -+ else if (k >= s) -+ j = 0; -+ if (j != -1) -+ return 1; -+ return 0; -+} -+ -+int -+main () -+{ -+ if (bar () != 0) -+ __builtin_abort (); -+ return 0; -+} diff --git a/sources b/sources index 2736944..3bcaa25 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -SHA512 (gcc-12.0.1-20220308.tar.xz) = 4c714250c056d680ab5135317185e89e28ed9f6a70a5943eab3c610c38907b9696d07b141cda8d703a1fd1b93cf2407c0f92ab452c9f797c3da472748aed8844 +SHA512 (gcc-12.0.1-20220401.tar.xz) = 6297c2c9828b9098ca5dad79ac5233d178264a5327522fbc61fce66940d4c551e37a7b5b070fe24942343c35920effef1cc8abf973e81105939bbb557bcf5846 SHA512 (isl-0.18.tar.bz2) = 85d0b40f4dbf14cb99d17aa07048cdcab2dc3eb527d2fbb1e84c41b2de5f351025370e57448b63b2b8a8cf8a0843a089c3263f9baee1542d5c2e1cb37ed39d94 SHA512 (newlib-cygwin-50e2a63b04bdd018484605fbb954fd1bd5147fa0.tar.xz) = 002a48a7b689a81abbf16161bcaec001a842e67dfbe372e9e109092703bfc666675f16198f60ca429370e8850d564547dc505df81bc3aaca4ce6defbc014ad6c SHA512 (nvptx-tools-5f6f343a302d620b0868edab376c00b15741e39e.tar.xz) = f6d10db94fa1570ae0f94df073fa3c73c8e5ee16d59070b53d94f7db0de8a031bc44d7f3f1852533da04b625ce758e022263855ed43cfc6867e0708d001e53c7