12.0.1-0.9

This commit is contained in:
Jakub Jelinek 2022-02-22 11:56:00 +01:00
parent 9743a6a9b0
commit b0dddd2d05
5 changed files with 23 additions and 1349 deletions

1
.gitignore vendored
View File

@ -64,3 +64,4 @@
/gcc-12.0.1-20220205.tar.xz
/gcc-12.0.1-20220212.tar.xz
/gcc-12.0.1-20220214.tar.xz
/gcc-12.0.1-20220222.tar.xz

View File

@ -1,5 +1,5 @@
%global DATE 20220214
%global gitrev 7222fb983d798306a83666324a92fce5e5881eb7
%global DATE 20220222
%global gitrev 9780ea50d2a0fb2b07bc9a0f71e28e9c1ef5e235
%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}.8%{?dist}
Release: %{gcc_release}.9%{?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,8 +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-ifcvt-revert.patch
Patch13: gcc12-pr104253.patch
Patch100: gcc12-fortran-fdec-duplicates.patch
Patch101: gcc12-fortran-flogical-as-integer.patch
@ -793,8 +791,6 @@ to NVidia PTX capable devices if available.
%patch10 -p0 -b .rh1574936~
%endif
%patch11 -p0 -b .d-shared-libphobos~
%patch12 -p0 -b .ifcvt-revert~
%patch13 -p0 -b .pr104253~
%if 0%{?rhel} >= 9
%patch100 -p1 -b .fortran-fdec-duplicates~
@ -824,6 +820,7 @@ cp -a libstdc++-v3/config/cpu/i{4,3}86/atomicity.h
LC_ALL=C sed -i -e 's/\xa0/ /' gcc/doc/options.texi
sed -i -e 's/Common Driver Var(flag_report_bug)/& Init(1)/' gcc/common.opt
sed -i -e 's/context->report_bug = false;/context->report_bug = true;/' gcc/diagnostic.cc
%ifarch ppc
if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
@ -3167,6 +3164,23 @@ end
%endif
%changelog
* Tue Feb 22 2022 Jakub Jelinek <jakub@redhat.com> 12.0.1-0.9
- update from trunk
- PRs analyzer/104524, analyzer/104560, analyzer/104576, c++/85493,
c++/90451, c++/94944, c++/95036, c++/104107, c++/104507, c++/104539,
c++/104565, c/104506, c/104510, c/104531, c/104532, debug/104517,
debug/104557, fortran/77693, fortran/104211, libstdc++/104542,
libstdc++/104559, lto/104617, middle-end/104355, middle-end/104522,
rtl-optimization/104447, rtl-optimization/104498,
rtl-optimization/104544, sanitizer/102656, target/99708, target/99881,
target/100056, target/100874, target/103069, target/104253,
target/104257, target/104335, target/104440, target/104448,
target/104536, target/104581, target/104598, target/104612,
testsuite/104146, tree-optimization/96881, tree-optimization/103771,
tree-optimization/104519, tree-optimization/104526,
tree-optimization/104543, tree-optimization/104551,
tree-optimization/104582, tree-optimization/104604
* Mon Feb 14 2022 Jakub Jelinek <jakub@redhat.com> 12.0.1-0.8
- update from trunk
- PRs ada/97504, ada/98724, c/104505, fortran/104228, libstdc++/100912,

File diff suppressed because it is too large Load Diff

View File

@ -1,200 +0,0 @@
If you are on a PowerPC system where the default long double is IEEE
128-bit, GCC will use the wrong names for some of the conversion functions
for the __ibm128 type.
What is happening is when the defult long double is IEEE 128-bit, the
various convert, truncation, and extend functions did not specify a
default name for the conversion. The machine indepentent portions of the
compiler would construct a call with an 'if' name (IFmode being the mode
for IBM 128-bit floating point). This patch specifies to use the
tradiational 'tf' name for these conversion functions.
2022-01-28 Michael Meissner <meissner@the-meissners.org>
gcc/
PR target/104253
* config/rs6000/rs6000.cc (init_float128_ibm): Use the TF names
for builtin conversions between __ibm128 and DImode when long
double uses the IEEE 128-bit format.
gcc/testsuite/
PR target/104253
* gcc.target/powerpc/pr104253.c: New test.
---
gcc/config/rs6000/rs6000.cc | 6 +
gcc/testsuite/gcc.target/powerpc/pr104253.c | 154 ++++++++++++++++++++
2 files changed, 160 insertions(+)
create mode 100644 gcc/testsuite/gcc.target/powerpc/pr104253.c
--- gcc/config/rs6000/rs6000.cc
+++ gcc/config/rs6000/rs6000.cc
@@ -11113,6 +11113,12 @@ init_float128_ibm (machine_mode mode)
set_conv_libfunc (trunc_optab, DDmode, mode, "__dpd_trunctfdd");
set_conv_libfunc (sext_optab, TDmode, mode, "__dpd_extendtftd");
+ set_conv_libfunc (sfix_optab, DImode, mode, "__fixtfdi");
+ set_conv_libfunc (ufix_optab, DImode, mode, "__fixunstfdi");
+
+ set_conv_libfunc (sfloat_optab, mode, DImode, "__floatditf");
+ set_conv_libfunc (ufloat_optab, mode, DImode, "__floatunditf");
+
if (TARGET_POWERPC64)
{
set_conv_libfunc (sfix_optab, TImode, mode, "__fixtfti");
--- gcc/testsuite/gcc.target/powerpc/pr104253.c
+++ gcc/testsuite/gcc.target/powerpc/pr104253.c
@@ -0,0 +1,154 @@
+/*
+ * Require float128 support because __ibm128 currently is not enabled unless we
+ * also have __float128 support.
+ */
+
+/* { dg-do run } */
+/* { require-effective-target ppc_float128_sw } */
+/* { dg-options "-O2 -mvsx -mfloat128" } */
+
+/*
+ * PR target/104253
+ *
+ * Verify that the various conversions to and from __ibm128 work. When the
+ * default for long double is changed to IEEE 128-bit, originally GCC would
+ * call the functions using an 'if' name instead of 'tf.
+ */
+
+#include <stdlib.h>
+
+extern float ibm128_to_sf (__ibm128) __attribute__((noinline));
+extern double ibm128_to_df (__ibm128) __attribute__((noinline));
+extern int ibm128_to_si (__ibm128) __attribute__((noinline));
+extern long long ibm128_to_di (__ibm128) __attribute__((noinline));
+extern unsigned int ibm128_to_usi (__ibm128) __attribute__((noinline));
+extern unsigned long long ibm128_to_udi (__ibm128) __attribute__((noinline));
+
+extern __ibm128 sf_to_ibm128 (float) __attribute__((noinline));
+extern __ibm128 df_to_ibm128 (double) __attribute__((noinline));
+extern __ibm128 si_to_ibm128 (int) __attribute__((noinline));
+extern __ibm128 di_to_ibm128 (long long) __attribute__((noinline));
+extern __ibm128 usi_to_ibm128 (unsigned int) __attribute__((noinline));
+extern __ibm128 udi_to_ibm128 (unsigned long long) __attribute__((noinline));
+
+float
+ibm128_to_sf (__ibm128 x)
+{
+ return x;
+}
+
+double
+ibm128_to_df (__ibm128 x)
+{
+ return x;
+}
+
+int
+ibm128_to_si (__ibm128 x)
+{
+ return x;
+}
+
+long long
+ibm128_to_di (__ibm128 x)
+{
+ return x;
+}
+
+unsigned int
+ibm128_to_usi (__ibm128 x)
+{
+ return x;
+}
+
+unsigned long long
+ibm128_to_udi (__ibm128 x)
+{
+ return x;
+}
+
+__ibm128
+sf_to_ibm128 (float x)
+{
+ return x;
+}
+
+__ibm128
+df_to_ibm128 (double x)
+{
+ return x;
+}
+
+__ibm128
+si_to_ibm128 (int x)
+{
+ return x;
+}
+
+__ibm128
+di_to_ibm128 (long long x)
+{
+ return x;
+}
+
+__ibm128
+usi_to_ibm128 (unsigned int x)
+{
+ return x;
+}
+
+__ibm128
+udi_to_ibm128 (unsigned long long x)
+{
+ return x;
+}
+
+volatile float seven_sf = 7.0f;
+volatile double seven_df = 7.0;
+volatile int seven_si = 7;
+volatile long long seven_di = 7LL;
+volatile unsigned int seven_usi = 7U;
+volatile unsigned long long seven_udi = 7ULL;
+volatile __ibm128 seven_ibm128 = 7.0;
+
+int
+main (void)
+{
+ if (seven_ibm128 != sf_to_ibm128 (seven_sf))
+ abort ();
+
+ if (seven_ibm128 != df_to_ibm128 (seven_df))
+ abort ();
+
+ if (seven_ibm128 != si_to_ibm128 (seven_si))
+ abort ();
+
+ if (seven_ibm128 != di_to_ibm128 (seven_di))
+ abort ();
+
+ if (seven_ibm128 != usi_to_ibm128 (seven_usi))
+ abort ();
+
+ if (seven_ibm128 != udi_to_ibm128 (seven_udi))
+ abort ();
+
+ if (seven_sf != ibm128_to_sf (seven_ibm128))
+ abort ();
+
+ if (seven_df != ibm128_to_df (seven_ibm128))
+ abort ();
+
+ if (seven_si != ibm128_to_si (seven_ibm128))
+ abort ();
+
+ if (seven_di != ibm128_to_di (seven_ibm128))
+ abort ();
+
+ if (seven_usi != ibm128_to_usi (seven_ibm128))
+ abort ();
+
+ if (seven_udi != ibm128_to_udi (seven_ibm128))
+ abort ();
+
+ return 0;
+}

View File

@ -1,4 +1,4 @@
SHA512 (gcc-12.0.1-20220214.tar.xz) = a6f590b9facf2c80ec73d41ccd5bcd404722b76f7ff06d82f30b8b956349df4efa049b72285be1a76da52e851ef327b8fe42d05ea7e62149b2a4236611a8355f
SHA512 (gcc-12.0.1-20220222.tar.xz) = 70426bab483df8ddcc58f80f709c087cb3c9e4992ddb910dc55986fbf8a0aa4067f401e3c2fad1e7a5d7832e18d3f24316ccd7a18db6601059a4b46325c6a899
SHA512 (isl-0.18.tar.bz2) = 85d0b40f4dbf14cb99d17aa07048cdcab2dc3eb527d2fbb1e84c41b2de5f351025370e57448b63b2b8a8cf8a0843a089c3263f9baee1542d5c2e1cb37ed39d94
SHA512 (newlib-cygwin-50e2a63b04bdd018484605fbb954fd1bd5147fa0.tar.xz) = 002a48a7b689a81abbf16161bcaec001a842e67dfbe372e9e109092703bfc666675f16198f60ca429370e8850d564547dc505df81bc3aaca4ce6defbc014ad6c
SHA512 (nvptx-tools-5f6f343a302d620b0868edab376c00b15741e39e.tar.xz) = f6d10db94fa1570ae0f94df073fa3c73c8e5ee16d59070b53d94f7db0de8a031bc44d7f3f1852533da04b625ce758e022263855ed43cfc6867e0708d001e53c7