Compare commits

...

38 Commits
master ... f26

Author SHA1 Message Date
Jakub Jelinek 23129117d6 7.3.1-2 2018-01-30 13:25:50 +01:00
Jakub Jelinek 01379efd2a 7.3.1-2 2018-01-30 11:44:15 +01:00
Jakub Jelinek eabbef478b 7.3.1-1 2018-01-25 11:53:24 +01:00
Jeff Law 924e2261d5 - Fix -fstack-clash-protection codegen issue on 32 bit x86 (#1536555) 2018-01-25 11:52:35 +01:00
Jakub Jelinek 4f6215525c 7.2.1-7 2018-01-17 03:49:58 +01:00
Jakub Jelinek ef8dec9cf9 7.2.1-7 2018-01-17 00:46:14 +01:00
Jakub Jelinek e5fdbefc99 7.2.1-6 2018-01-17 00:46:14 +01:00
Jakub Jelinek 1f8654ce48 7.2.1-5 2018-01-17 00:46:14 +01:00
Jakub Jelinek aa5419ac99 7.2.1-5 2018-01-17 00:46:14 +01:00
Jakub Jelinek 02742a4983 7.2.1-5 2018-01-17 00:46:14 +01:00
Marek Polacek 139dd1290c Disable annobin for now. Adjust sanitizer_linux.cc patch. 2018-01-17 00:46:14 +01:00
Jeff Law 7a8a8e7184 - Fix problem with large outgoing args and -fstack-clash-protection
on aarch64 (#1518823)
2018-01-17 00:46:14 +01:00
Jeff Law ce60403bef - Backport -fstack-clash-protection from development trunk (#1512529) 2018-01-17 00:46:14 +01:00
Jakub Jelinek 3dcf8052da 7.2.1-2 2017-09-15 13:16:40 +02:00
Marek Polacek 085992df86 7.2.1-1 2017-09-15 13:16:40 +02:00
Marek Polacek 6e912d0925 7.2.1-1 2017-09-15 13:16:40 +02:00
Jakub Jelinek eec4b843dd 7.2.1-1 2017-09-15 13:16:40 +02:00
Jakub Jelinek 984ab31b1d Drop .1 suffix from Release 2017-09-15 13:16:40 +02:00
Jakub Jelinek 7c8d8c4f7f 7.1.1-7 2017-09-15 13:16:04 +02:00
Fedora Release Engineering 0c5acb61c7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild 2017-09-15 13:14:59 +02:00
Jakub Jelinek caabcaafac 7.1.1-6 2017-09-15 13:14:59 +02:00
Jakub Jelinek beba6c7f81 7.1.1-6 2017-09-15 13:14:59 +02:00
Jakub Jelinek e4d350db67 7.1.1-6 2017-09-15 13:14:59 +02:00
Jakub Jelinek d898f48f0c 7.1.1-6 2017-09-15 13:14:59 +02:00
Jakub Jelinek 3ed08a4301 7.1.1-5 2017-09-15 13:14:59 +02:00
Jakub Jelinek 90cceafa81 7.1.1-5 2017-09-15 13:14:59 +02:00
Jakub Jelinek 9e8f689b47 7.1.1-4 2017-09-15 13:14:59 +02:00
Jakub Jelinek ac66e939af 7.1.1-4 2017-07-09 14:34:00 +02:00
Jakub Jelinek 2af465b9b2 7.1.1-3 2017-06-22 09:56:37 +02:00
Jakub Jelinek 77114d4fc8 7.1.1-2 2017-05-26 15:25:29 +02:00
Jakub Jelinek 872d384f80 7.1.1-1 2017-05-03 11:07:20 +02:00
Jakub Jelinek 508fab281f 7.1.1-1 2017-05-03 11:07:06 +02:00
Jakub Jelinek 61fd90690a 7.0.1-0.16 2017-04-25 22:07:34 +02:00
Jakub Jelinek 1d4b05390b 7.0.1-0.15 2017-04-21 12:33:26 +02:00
Jakub Jelinek fc78aadaef 7.0.1-0.14 2017-04-10 20:18:24 +02:00
Jakub Jelinek 3077b83e7b 7.0.1-0.14 2017-04-10 16:24:39 +02:00
Jakub Jelinek f5a1b0d64a 7.0.1-0.14 2017-04-10 16:24:30 +02:00
Jakub Jelinek 7969d7f1d4 7.0.1-0.13 2017-03-27 13:23:52 +02:00
12 changed files with 3064 additions and 302 deletions

18
.gitignore vendored
View File

@ -11,3 +11,21 @@
/gcc-7.0.1-20170225.tar.bz2 /gcc-7.0.1-20170225.tar.bz2
/gcc-7.0.1-20170308.tar.bz2 /gcc-7.0.1-20170308.tar.bz2
/gcc-7.0.1-20170309.tar.bz2 /gcc-7.0.1-20170309.tar.bz2
/gcc-7.0.1-20170327.tar.bz2
/gcc-7.0.1-20170410.tar.bz2
/gcc-7.0.1-20170421.tar.bz2
/gcc-7.0.1-20170425.tar.bz2
/gcc-7.1.1-20170503.tar.bz2
/gcc-7.1.1-20170526.tar.bz2
/gcc-7.1.1-20170622.tar.bz2
/gcc-7.1.1-20170708.tar.bz2
/gcc-7.1.1-20170711.tar.bz2
/gcc-7.1.1-20170718.tar.bz2
/gcc-7.1.1-20170802.tar.bz2
/gcc-7.2.1-20170829.tar.bz2
/gcc-7.2.1-20170915.tar.bz2
/gcc-7.2.1-20180101.tar.bz2
/gcc-7.2.1-20180104.tar.bz2
/gcc-7.2.1-20180117.tar.bz2
/gcc-7.3.1-20180125.tar.bz2
/gcc-7.3.1-20180130.tar.bz2

367
gcc.spec
View File

@ -1,16 +1,20 @@
%global DATE 20170309 %global DATE 20180130
%global SVNREV 246007 %global SVNREV 257180
%global gcc_version 7.0.1 %global gcc_version 7.3.1
%global gcc_major 7 %global gcc_major 7
# Note, gcc_release must be integer, if you want to add suffixes to # Note, gcc_release must be integer, if you want to add suffixes to
# %{release}, append them after %{gcc_release} on Release: line. # %{release}, append them after %{gcc_release} on Release: line.
%global gcc_release 0.12 %global gcc_release 2
%global nvptx_tools_gitrev c28050f60193b3b95a18866a96f03334e874e78f %global nvptx_tools_gitrev c28050f60193b3b95a18866a96f03334e874e78f
%global nvptx_newlib_gitrev aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24 %global nvptx_newlib_gitrev aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24
%global _unpackaged_files_terminate_build 0 %global _unpackaged_files_terminate_build 0
%global _performance_build 1 %global _performance_build 1
# Hardening slows the compiler way too much. # Hardening slows the compiler way too much.
%undefine _hardened_build %undefine _hardened_build
%if 0%{?fedora} > 27
# Until annobin is fixed (#1519165).
%undefine _annotated_build
%endif
%global multilib_64_archs sparc64 ppc64 ppc64p7 s390x x86_64 %global multilib_64_archs sparc64 ppc64 ppc64p7 s390x x86_64
%ifarch %{ix86} x86_64 ia64 ppc %{power64} alpha s390x %{arm} aarch64 %ifarch %{ix86} x86_64 ia64 ppc %{power64} alpha s390x %{arm} aarch64
%global build_ada 1 %global build_ada 1
@ -74,7 +78,7 @@
%else %else
%global attr_ifunc 0 %global attr_ifunc 0
%endif %endif
%ifarch x86_64 %ifarch x86_64 ppc64le
%global build_offload_nvptx 1 %global build_offload_nvptx 1
%else %else
%global build_offload_nvptx 0 %global build_offload_nvptx 0
@ -91,7 +95,7 @@
%ifarch x86_64 %ifarch x86_64
%global multilib_32_arch i686 %global multilib_32_arch i686
%endif %endif
Summary: Various compilers (C, C++, Objective-C, Java, ...) Summary: Various compilers (C, C++, Objective-C, ...)
Name: gcc Name: gcc
Version: %{gcc_version} Version: %{gcc_version}
Release: %{gcc_release}%{?dist} Release: %{gcc_release}%{?dist}
@ -101,7 +105,7 @@ License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2
Group: Development/Languages Group: Development/Languages
# The source for this package was pulled from upstream's vcs. Use the # The source for this package was pulled from upstream's vcs. Use the
# following commands to generate the tarball: # following commands to generate the tarball:
# svn export svn://gcc.gnu.org/svn/gcc/branches/redhat/gcc-6-branch@%{SVNREV} gcc-%{version}-%{DATE} # svn export svn://gcc.gnu.org/svn/gcc/branches/redhat/gcc-7-branch@%{SVNREV} gcc-%{version}-%{DATE}
# tar cf - gcc-%{version}-%{DATE} | bzip2 -9 > gcc-%{version}-%{DATE}.tar.bz2 # tar cf - gcc-%{version}-%{DATE} | bzip2 -9 > gcc-%{version}-%{DATE}.tar.bz2
Source0: gcc-%{version}-%{DATE}.tar.bz2 Source0: gcc-%{version}-%{DATE}.tar.bz2
# The source for nvptx-tools package was pulled from upstream's vcs. Use the # The source for nvptx-tools package was pulled from upstream's vcs. Use the
@ -221,7 +225,6 @@ Provides: bundled(libiberty)
Provides: gcc(major) = %{gcc_major} Provides: gcc(major) = %{gcc_major}
Patch0: gcc7-hack.patch Patch0: gcc7-hack.patch
Patch1: gcc7-ppc32-retaddr.patch
Patch2: gcc7-i386-libgomp.patch Patch2: gcc7-i386-libgomp.patch
Patch3: gcc7-sparc-config-detection.patch Patch3: gcc7-sparc-config-detection.patch
Patch4: gcc7-libgomp-omp_h-multilib.patch Patch4: gcc7-libgomp-omp_h-multilib.patch
@ -232,12 +235,14 @@ Patch8: gcc7-no-add-needed.patch
Patch9: gcc7-aarch64-async-unw-tables.patch Patch9: gcc7-aarch64-async-unw-tables.patch
Patch10: gcc7-foffload-default.patch Patch10: gcc7-foffload-default.patch
Patch11: gcc7-Wno-format-security.patch Patch11: gcc7-Wno-format-security.patch
Patch12: gcc7-pr79941.patch Patch12: gcc7-aarch64-sanitizer-fix.patch
Patch13: gcc7-pr79969.patch Patch13: gcc7-rh1512529-aarch64.patch
Patch14: gcc7-pr79972.patch Patch14: gcc7-pr84064.patch
Patch1000: nvptx-tools-no-ptxas.patch Patch1000: nvptx-tools-no-ptxas.patch
Patch1001: nvptx-tools-build.patch Patch1001: nvptx-tools-build.patch
Patch1002: nvptx-tools-glibc.patch
# On ARM EABI systems, we do want -gnueabi to be part of the # On ARM EABI systems, we do want -gnueabi to be part of the
# target triple. # target triple.
@ -770,6 +775,7 @@ NVidia PTX. OpenMP and OpenACC programs linked with -fopenmp will
by default add PTX code into the binaries, which can be offloaded by default add PTX code into the binaries, which can be offloaded
to NVidia PTX capable devices if available. to NVidia PTX capable devices if available.
%if 0%{?fedora} < 27
%if 0%{?_enable_debug_packages} %if 0%{?_enable_debug_packages}
%define debug_package %{nil} %define debug_package %{nil}
%global __debug_package 1 %global __debug_package 1
@ -804,11 +810,11 @@ package or when debugging this package.
%files base-debuginfo -f debugfiles-base.list %files base-debuginfo -f debugfiles-base.list
%endif %endif
%endif
%prep %prep
%setup -q -n gcc-%{version}-%{DATE} -a 1 -a 2 %setup -q -n gcc-%{version}-%{DATE} -a 1 -a 2
%patch0 -p0 -b .hack~ %patch0 -p0 -b .hack~
%patch1 -p0 -b .ppc32-retaddr~
%patch2 -p0 -b .i386-libgomp~ %patch2 -p0 -b .i386-libgomp~
%patch3 -p0 -b .sparc-config-detection~ %patch3 -p0 -b .sparc-config-detection~
%patch4 -p0 -b .libgomp-omp_h-multilib~ %patch4 -p0 -b .libgomp-omp_h-multilib~
@ -823,15 +829,19 @@ package or when debugging this package.
%patch9 -p0 -b .aarch64-async-unw-tables~ %patch9 -p0 -b .aarch64-async-unw-tables~
%patch10 -p0 -b .foffload-default~ %patch10 -p0 -b .foffload-default~
%patch11 -p0 -b .Wno-format-security~ %patch11 -p0 -b .Wno-format-security~
%patch12 -p0 -b .pr79941~ %if 0%{?fedora} > 27
%patch13 -p0 -b .pr79969~ %patch12 -p0 -b .aarch64-sanitizer-fix~
%patch14 -p0 -b .pr79972~ %endif
%patch13 -p0 -b .rh1512529-aarch64~
%patch14 -p0 -b .pr84064~
cd nvptx-tools-%{nvptx_tools_gitrev} cd nvptx-tools-%{nvptx_tools_gitrev}
%patch1000 -p1 -b .nvptx-tools-no-ptxas~ %patch1000 -p1 -b .nvptx-tools-no-ptxas~
%patch1001 -p1 -b .nvptx-tools-build~ %patch1001 -p1 -b .nvptx-tools-build~
%patch1002 -p1 -b .nvptx-tools-glibc~
cd .. cd ..
%if 0%{?fedora} < 27
%if 0%{?_enable_debug_packages} %if 0%{?_enable_debug_packages}
mkdir dwz-wrapper mkdir dwz-wrapper
if [ -f /usr/bin/dwz ]; then if [ -f /usr/bin/dwz ]; then
@ -932,6 +942,7 @@ fi
EOF EOF
chmod 755 split-debuginfo.sh chmod 755 split-debuginfo.sh
%endif %endif
%endif
echo 'Red Hat %{version}-%{gcc_release}' > gcc/DEV-PHASE echo 'Red Hat %{version}-%{gcc_release}' > gcc/DEV-PHASE
@ -1940,7 +1951,15 @@ chmod 755 %{buildroot}%{_prefix}/%{_lib}/libtsan.so.0.*
chmod 755 %{buildroot}%{_prefix}/%{_lib}/liblsan.so.0.* chmod 755 %{buildroot}%{_prefix}/%{_lib}/liblsan.so.0.*
%endif %endif
%if %{build_go} %if %{build_go}
%if 0%{?fedora} < 27
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgo.so.11.* chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgo.so.11.*
%else
# Avoid stripping these libraries and binaries.
chmod 644 %{buildroot}%{_prefix}/%{_lib}/libgo.so.11.*
chmod 644 %{buildroot}%{_prefix}/bin/go.gcc
chmod 644 %{buildroot}%{_prefix}/bin/gofmt.gcc
chmod 644 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cgo
%endif
%endif %endif
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libobjc.so.4.* chmod 755 %{buildroot}%{_prefix}/%{_lib}/libobjc.so.4.*
@ -3095,10 +3114,10 @@ fi
%if %{build_go} %if %{build_go}
%files go %files go
%ghost %{_prefix}/bin/go %ghost %{_prefix}/bin/go
%{_prefix}/bin/go.gcc %attr(755,root,root) %{_prefix}/bin/go.gcc
%{_prefix}/bin/gccgo %{_prefix}/bin/gccgo
%ghost %{_prefix}/bin/gofmt %ghost %{_prefix}/bin/gofmt
%{_prefix}/bin/gofmt.gcc %attr(755,root,root) %{_prefix}/bin/gofmt.gcc
%{_mandir}/man1/gccgo.1* %{_mandir}/man1/gccgo.1*
%{_mandir}/man1/go.1* %{_mandir}/man1/go.1*
%{_mandir}/man1/gofmt.1* %{_mandir}/man1/gofmt.1*
@ -3109,7 +3128,7 @@ fi
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform} %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/go1 %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/go1
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cgo %attr(755,root,root) %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cgo
%ifarch sparcv9 ppc %ifarch sparcv9 ppc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgo.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgo.so
@ -3135,7 +3154,7 @@ fi
%doc rpm.doc/go/* %doc rpm.doc/go/*
%files -n libgo %files -n libgo
%{_prefix}/%{_lib}/libgo.so.11* %attr(755,root,root) %{_prefix}/%{_lib}/libgo.so.11*
%doc rpm.doc/libgo/* %doc rpm.doc/libgo/*
%files -n libgo-devel %files -n libgo-devel
@ -3242,6 +3261,316 @@ fi
%endif %endif
%changelog %changelog
* Tue Jan 30 2018 Jakub Jelinek <jakub@redhat.com> 7.3.1-2
- update from the 7 branch
- PRs c++/82461, c++/82878, libstdc++/81076, libstdc++/83658,
libstdc++/83830, libstdc++/83833, rtl-optimization/83985, target/68467,
target/81763, target/83399, target/83862, target/83905, target/84033
- fix -fstack-clash-protection ICE with -mtune=i686 (#1538648, PR target/84064)
* Thu Jan 25 2018 Jakub Jelinek <jakub@redhat.com> 7.3.1-1
- update from the 7 branch
- 7.3 release
- PRs c++/81843, c++/82331, c++/82760, fortran/80768, fortran/83864,
fortran/83874, fortran/83900, ipa/82352, ipa/83549, libstdc++/83834,
middle-end/81782, rtl-optimization/81443, target/80870, target/83687,
target/83946, tree-optimization/81877, tree-optimization/83552
* Wed Jan 24 2018 Jeff Law <law@redhat.com> 7.2.1-8
- fix -fstack-clash-protection codegen issue on 32 bit x86 (#1536555)
* Wed Jan 17 2018 Jakub Jelinek <jakub@redhat.com> 7.2.1-7
- update from the 7 branch
- PRs fortran/78814, fortran/82367, fortran/82841, fortran/83093,
fortran/83679, libgfortran/83811, libstdc++/79283, libstdc++/83279,
libstdc++/83598, libstdc++/83600, libstdc++/83626, middle-end/83713,
preprocessor/83492, rtl-optimization/83424, rtl-optimization/83565,
target/81481, target/81819, target/81821, target/82975, target/83330,
target/83628, target/83629, target/83677, target/83839,
testsuite/77734
- x86 retpoline support
- comment out gcc-debuginfo/gcc-base-debuginfo splitting hacks for f27 and
later (#1517259)
* Thu Jan 4 2018 Jakub Jelinek <jakub@redhat.com> 7.2.1-6
- update from the 7 branch
- PRs c++/83556, fortran/83650, libgfortran/83649
- backport fixes for two -fstack-clash-protection bugs from the trunk
(PRs middle-end/83654, target/83641)
- commit -fstack-clash-protection patches except aarch64 to
redhat/gcc-7-branch instead of applying them as patches in the spec file
* Mon Jan 1 2018 Jakub Jelinek <jakub@redhat.com> 7.2.1-5
- update from the 7 branch
- PRs ada/82393, bootstrap/83439, c++/70029, c++/79650, c++/80259,
c++/80767, c++/80935, c++/81197, c++/81212, c++/81236, c++/81525,
c++/81671, c++/81675, c++/81702, c++/81888, c++/82030, c++/82085,
c++/82159, c++/82299, c++/82373, c++/82406, c++/82560, c++/82781,
c++/83059, c++/83116, c++/83205, c++/83217, c++/83553, c/81875,
c/82234, c/82340, c/83448, debug/83084, driver/81829, fortran/52832,
fortran/67543, fortran/69739, fortran/78152, fortran/78512,
fortran/78619, fortran/78641, fortran/78686, fortran/79072,
fortran/79795, fortran/80118, fortran/80120, fortran/80554,
fortran/80850, fortran/81048, fortran/81304, fortran/81735,
fortran/81758, fortran/81841, fortran/81903, fortran/82121,
fortran/82312, fortran/82796, fortran/82934, fortran/83021,
fortran/83191, fortran/83436, fortran/83548, gcov-profile/82457,
gcov-profile/82633, go/80914, ipa/82801, ipa/82808, ipa/83346,
libfortran/82233, libgcc/82635, libgfortran/78387, libgfortran/78549,
libgfortran/81937, libgfortran/81938, libgfortran/83168,
libgfortran/83191, libgfortran/83225, libgfortran/83613,
libstdc++/59568, libstdc++/79433, libstdc++/81395, libstdc++/82254,
libstdc++/82262, libstdc++/82481, libstdc++/82522, libstdc++/82685,
libstdc++/83134, libstdc++/83226, libstdc++/83395, libstdc++/83427,
lto/82027, middle-end/60580, middle-end/80295, middle-end/82128,
middle-end/82253, middle-end/82556, middle-end/82765,
middle-end/83471, middle-end/83608, middle-end/83609,
middle-end/83623, rtl-optimization/64682, rtl-optimization/69567,
rtl-optimization/69737, rtl-optimization/80747,
rtl-optimization/81553, rtl-optimization/81803,
rtl-optimization/82044, rtl-optimization/82192,
rtl-optimization/82602, rtl-optimization/82621,
rtl-optimization/82683, rtl-optimization/83512, sanitizer/81715,
sanitizer/82379, sanitizer/82545, sanitizer/82595, sanitizer/82792,
sanitizer/82869, sanitizer/83014, target/39570, target/66488,
target/71727, target/71951, target/77480, target/77687, target/78643,
target/80583, target/80600, target/80819, target/81288, target/81906,
target/81959, target/81996, target/82274, target/82445, target/82524,
target/82703, target/82717, target/82772, target/82880, target/82941,
target/82942, target/82990, target/83111, target/83387, target/83467,
tree-optimization/80631, tree-optimization/81790,
tree-optimization/82042, tree-optimization/82060,
tree-optimization/82084, tree-optimization/82102,
tree-optimization/82108, tree-optimization/82244,
tree-optimization/82276, tree-optimization/82285,
tree-optimization/82291, tree-optimization/82337,
tree-optimization/82402, tree-optimization/82436,
tree-optimization/82549, tree-optimization/82603,
tree-optimization/82697, tree-optimization/82726,
tree-optimization/82902, tree-optimization/82985,
tree-optimization/83198, tree-optimization/83269,
tree-optimization/83521, tree-optimization/83523
- fix debuginfo for forward declared C structs (#1500862, PR debug/83550)
- fix sccvn ICE (#1506809, PR tree-optimization/82264)
- fix ICE in dwarf2out force_type_die (#1516576, #1516577, PR debug/82155)
- fix power6 ICE in store_data_bypass_p (#1522675, PR target/80101)
- fix replace_placeholders (PR c++/83556)
* Wed Nov 29 2017 Jeff Law <law@redhat.com> 7.2.1-4
- fix problem with large outgoing args and -fstack-clash-protection
on aarch64 (#1518823)
* Tue Nov 28 2017 Jeff Law <law@redhat.com> 7.2.1-3
- backport -fstack-clash-protection from development trunk (#1512529)
* Fri Sep 15 2017 Jakub Jelinek <jakub@redhat.com> 7.2.1-2
- update from the 7 branch
- PRs ada/62235, ada/79441, ada/79542, bootstrap/81926, c++/81355,
c++/81852, c++/82039, c++/82040, c/45784, c/81687, driver/81650,
fortran/81770, inline-asm/82001, ipa/81128, libstdc++/70483,
libstdc++/81338, libstdc++/81468, libstdc++/81599, libstdc++/81835,
libstdc++/81891, libstdc++/81912, middle-end/81052, middle-end/81768,
other/39851, sanitizer/63361, sanitizer/81923, target/80695,
target/81504, target/81593, target/81621, target/81833, target/81988,
target/82181, testsuite/82114, testsuite/82120, tree-opt/81696,
tree-optimization/81503, tree-optimization/81987
- fix OpenMP implicit firstprivate handling of references (PR c++/81314)
- fix -fcompare-debug failures with PowerPC atomics (PR target/81325)
- fix compile time hog in C++ replace_placeholders (PR sanitizer/81929)
- fix __atomic* and PowerPC vec_ld/vec_st handling of array arguments
(PR target/82112)
* Tue Aug 29 2017 Jakub Jelinek <jakub@redhat.com> 7.2.1-1
- update from the 7 branch
- 7.2 release
- PRs c++/67054, c++/81607, debug/81993, driver/81523, fortran/80164,
fortran/81296, ipa/77732, libstdc++/53984, libstdc++/79820,
libstdc++/81751, middle-end/81065, middle-end/81088, middle-end/81766,
middle-end/81884, sanitizer/80932, target/67712, target/72804,
target/78460, target/80210, target/81170, target/81295, target/81861,
target/81894, target/81910, target/81921, testsuite/81056,
tree-optimization/81181, tree-optimization/81354,
tree-optimization/81723, tree-optimization/81977
* Wed Aug 2 2017 Jakub Jelinek <jakub@redhat.com> 7.1.1-7
- update from the 7 branch
- 7.2-rc1
- PRs c++/71570, gcov-profile/81561, libgcc/61152, libquadmath/65757,
libstdc++/80553, libstdc++/80721, libstdc++/80737, libstdc++/80939,
libstdc++/81017, lto/81487, middle-end/79499, middle-end/81505,
rtl-optimization/75964, sanitize/81186, sanitizer/81021,
sanitizer/81224, sanitizer/81302, sanitizer/81604, target/79041,
target/80569, target/81069, target/81175, target/81193, target/81407,
target/81414, target/81471, target/81473, target/81534, target/81622,
target/81641, tree-optimization/71752, tree-optimization/80769,
tree-optimization/81162, tree-optimization/81388,
tree-optimization/81410, tree-optimization/81455,
tree-optimization/81555, tree-optimization/81556,
tree-optimization/81588, tree-optimization/81633,
tree-optimization/81655
* Tue Jul 18 2017 Jakub Jelinek <jakub@redhat.com> 7.1.1-6
- update from the 7 branch
- PRs ada/81446, c++/81258, middle-end/80929, rtl-optimization/81424,
target/79883, target/81225, tree-optimization/81365,
tree-optimization/81428
- fix bootstrap on s390{,x} in libgo (PR go/81393)
- rebuilt against hopefully fixed glibc to reenable TLS support on ppc64le
in libstdc++ (#1470692)
* Tue Jul 11 2017 Jakub Jelinek <jakub@redhat.com> 7.1.1-5
- update from the 7 branch
- PRs libstdc++/80316, target/81375
- fix libsanitizer build against recent glibc (PR sanitizer/81066)
* Sun Jul 9 2017 Jakub Jelinek <jakub@redhat.com> 7.1.1-4
- update from the 7 branch
- PRs c++/54769, c++/61022, c++/72801, c++/79056, c++/81164, c++/81180,
c++/81187, c++/81188, c++/81204, c++/81215, c++/81257, driver/31468,
driver/56469, gcov-profile/53915, gcov-profile/81080, ipa/79849,
ipa/79850, ipa/80663, ipa/81112, libfortran/81195, libgfortran/53029,
libstdc++/81221, middle-end/80692, middle-end/80902, middle-end/81007,
middle-end/81207, other/80589, other/80909, sanitizer/80879,
sanitizer/81209, target/79155, target/79799, target/80618,
target/80966, target/81294, target/81300, target/81305, target/81348,
tree-optimization/80612, tree-optimization/81083,
tree-optimization/81192
- fix ppc* float128 ifunc (#1467526)
* Thu Jun 22 2017 Jakub Jelinek <jakub@redhat.com> 7.1.1-3
- update from the 7 branch
- PRs ada/80921, ada/81070, ada/81105, c++/60063, c++/66297, c++/70844,
c++/71747, c++/80179, c++/80384, c++/80465, c++/80562, c++/80593,
c++/80605, c++/80614, c++/80639, c++/80829, c++/80831, c++/80840,
c++/80856, c++/80972, c++/80973, c++/80984, c++/81011, c++/81045,
c++/81073, c++/81074, c++/81102, c++/81130, c++/81154, c/80919,
c/81006, fortran/70601, fortran/80766, fortran/80904, fortran/80918,
fortran/80975, libgcc/80037, libgomp/80822, libstdc++/80675,
libstdc++/80940, libstdc++/81002, libstdc++/81092,
rtl-optimization/80474, rtl-optimization/80903, sanitizer/81111,
sanitizer/81125, target/59874, target/71607, target/71778,
target/80718, target/80968, target/80970, target/81015, target/81121,
target/81151, tree-optimization/80293, tree-optimization/80549,
tree-optimization/80705, tree-optimization/80842,
tree-optimization/80906
* Fri May 26 2017 Jakub Jelinek <jakub@redhat.com> 7.1.1-2
- update from the 7 branch
- PRs ada/80626, ada/80784, documentation/50642, fortran/78659,
fortran/80121, fortran/80333, fortran/80392, fortran/80484,
fortran/80741, fortran/80752, go/64238, libgfortran/80333,
libgfortran/80727, libgfortran/80741, libstdc++/78939, libstdc++/80478,
libstdc++/80761, libstdc++/80796, middle-end/80539, middle-end/80809,
middle-end/80853, rtl-optimization/80754, sanitizer/80659,
sanitizer/80875, target/68163, target/79027, target/79202,
target/79203, target/80090, target/80510, target/80671, target/80706,
target/80799, tree-optimization/80453, tree-optimization/80492
- fix s390 indirect_jump reloading (#1450353, PR target/80725)
* Wed May 3 2017 Jakub Jelinek <jakub@redhat.com> 7.1.1-1
- update from the 7 branch
- GCC 7.1 release
- PRs bootstrap/80531, c++/80534, c/80468, target/68491, target/79430,
target/80530, tree-optimization/80591
* Tue Apr 25 2017 Jakub Jelinek <jakub@redhat.com> 7.0.1-0.16
- update from the 7 branch
- ABI change on ARM and AArch64 (PR target/77728)
- PRs middle-end/79931, rtl-optimization/80500, rtl-optimization/80501,
target/79895, target/80080, target/80464, target/80482,
tree-optimization/80497
* Fri Apr 21 2017 Jakub Jelinek <jakub@redhat.com> 7.0.1-0.15
- update from the trunk and 7 branch
- PRs bootstrap/77661, c++/80176, c++/80241, c++/80244, c++/80287,
c++/80294, c++/80363, c++/80370, c++/80415, c++/80459, c++/80473,
c/80163, debug/80263, debug/80436, debug/80461, fortran/80046,
fortran/80361, fortran/80440, gcov-profile/78783, gcov-profile/80413,
gcov-profile/80435, ipa/65972, libgomp/80394, libstdc++/80446,
libstdc++/80448, lto/50345, lto/69953, middle-end/79671,
middle-end/79788, middle-end/80100, middle-end/80364,
middle-end/80375, middle-end/80422, middle-end/80423,
rtl-optimization/80343, rtl-optimization/80357,
rtl-optimization/80385, rtl-optimization/80429, sanitizer/70878,
sanitizer/80349, sanitizer/80403, sanitizer/80404, sanitizer/80405,
sanitizer/80414, sanitizer/80444, target/74563, target/79453,
target/80057, target/80098, target/80099, target/80108, target/80315,
target/80376, target/80381, target/80382, target/80389, target/80462,
testsuite/79867, testsuite/80221, testsuite/80416,
tree-optimization/80153, tree-optimization/80359,
tree-optimization/80374, tree-optimization/80426,
tree-optimization/80443
- reenable {gcc,libgomp}-offload-nvptx on ppc64le
* Mon Apr 10 2017 Jakub Jelinek <jakub@redhat.com> 7.0.1-0.14
- update from the trunk
- PRs ada/80117, ada/80146, c++/60992, c++/69487, c++/79572, c++/80095,
c++/80267, c++/80296, c++/80297, c++/80309, c++/80356, c/79730,
debug/79255, debug/80025, debug/80234, documentation/78732,
fortran/78661, fortran/80254, gcov-profile/80224, go/80226, ipa/77333,
ipa/79776, ipa/80104, ipa/80205, ipa/80212, libgfortran/78670,
libgomp/79876, libstdc++/79141, libstdc++/80137, libstdc++/80229,
libstdc++/80251, middle-end/80162, middle-end/80163, middle-end/80173,
middle-end/80222, middle-end/80281, middle-end/80341,
middle-end/80344, middle-end/80362, rtl-optimization/60818,
rtl-optimization/70478, rtl-optimization/70703,
rtl-optimization/79405, rtl-optimization/80193,
rtl-optimization/80233, sanitizer/79993, sanitizer/80067,
sanitizer/80166, sanitizer/80308, sanitizer/80348, sanitizer/80350,
target/45053, target/53383, target/78002, target/78543, target/79733,
target/79889, target/79890, target/79905, target/80102, target/80103,
target/80107, target/80206, target/80246, target/80250, target/80286,
target/80298, target/80307, target/80310, target/80322, target/80323,
target/80324, target/80325, target/80326, target/80358,
testsuite/43496, translation/80189, tree-optimization/49498,
tree-optimization/77498, tree-optimization/78644,
tree-optimization/79390, tree-optimization/80181,
tree-optimization/80216, tree-optimization/80218,
tree-optimization/80262, tree-optimization/80275,
tree-optimization/80304, tree-optimization/80334
- fix dwarf ICE with nested function self-inlining (PR debug/80321)
* Mon Mar 27 2017 Jakub Jelinek <jakub@redhat.com> 7.0.1-0.13
- update from the trunk
- PRs bootstrap/79771, bootstrap/79952, c++/35878, c++/52477, c++/77339,
c++/77563, c++/77752, c++/78345, c++/79393, c++/79519, c++/79548,
c++/79640, c++/79687, c++/79896, c++/79899, c++/79960, c++/79962,
c++/79967, c++/79984, c++/80029, c++/80043, c++/80059, c++/80073,
c++/80077, c++/80084, c++/80096, c++/80119, c++/80129, c++/80141,
c++/80150, c/67338, c/78165, c/79921, c/79936, c/80097, driver/79875,
fortran/33271, fortran/39239, fortran/69498, fortran/71838,
fortran/79602, fortran/79676, fortran/79838, fortran/79844,
fortran/79853, fortran/79859, fortran/79860, fortran/79886,
fortran/80010, fortran/80011, fortran/80142, fortran/80156,
gcov-profile/80081, libfortran/79956, libgfortran/78854,
libgfortran/78881, libstdc++/62045, libstdc++/67440, libstdc++/79162,
libstdc++/79511, libstdc++/79980, libstdc++/80034, libstdc++/80041,
libstdc++/80064, libstdc++/80183, middle-end/78339, middle-end/79753,
middle-end/79831, middle-end/80020, middle-end/80050,
middle-end/80075, middle-end/80171, other/79991, plugins/80094,
rtl-optimization/63191, rtl-optimization/78911,
rtl-optimization/79150, rtl-optimization/79728,
rtl-optimization/79909, rtl-optimization/79910,
rtl-optimization/80112, rtl-optimization/80159,
rtl-optimization/80160, sanitizer/78158, sanitizer/79757,
sanitizer/80063, sanitizer/80110, sanitizer/80168, target/71294,
target/71436, target/78857, target/79769, target/79770, target/79892,
target/79893, target/79906, target/79907, target/79911, target/79912,
target/79925, target/79941, target/79947, target/79951, target/79963,
target/80017, target/80019, target/80052, target/80082, target/80083,
target/80123, target/80125, target/80148, target/80180,
testsuite/79356, testsuite/80092, translation/79848,
translation/79923, translation/80001, tree-optimization/71437,
tree-optimization/77975, tree-optimization/79800,
tree-optimization/79908, tree-optimization/79981,
tree-optimization/80030, tree-optimization/80032,
tree-optimization/80048, tree-optimization/80054,
tree-optimization/80072, tree-optimization/80079,
tree-optimization/80109, tree-optimization/80113,
tree-optimization/80122, tree-optimization/80136,
tree-optimization/80158, tree-optimization/80167,
tree-optimization/80170
* Thu Mar 9 2017 Jakub Jelinek <jakub@redhat.com> 7.0.1-0.12 * Thu Mar 9 2017 Jakub Jelinek <jakub@redhat.com> 7.0.1-0.12
- update from the trunk - update from the trunk
- PRs c++/71966, c++/79672, c++/79797, c++/79900, ipa/79761, ipa/79764, - PRs c++/71966, c++/79672, c++/79797, c++/79900, ipa/79761, ipa/79764,

View File

@ -0,0 +1,11 @@
--- libsanitizer/sanitizer_common/sanitizer_linux.cc
+++ libsanitizer/sanitizer_common/sanitizer_linux.cc
@@ -1262,7 +1262,7 @@ struct __sanitizer_esr_context {
static bool Aarch64GetESR(ucontext_t *ucontext, u64 *esr) {
static const u32 kEsrMagic = 0x45535201;
- u8 *aux = ucontext->uc_mcontext.__reserved;
+ u8 *aux = ucontext->uc_mcontext.__glibc_reserved1;
while (true) {
_aarch64_ctx *ctx = (_aarch64_ctx *)aux;
if (ctx->size == 0) break;

View File

@ -4,7 +4,7 @@
<a class="link" href="http://www.fsf.org/" target="_top">FSF <a class="link" href="http://www.fsf.org/" target="_top">FSF
</a> </a>
</p><p> </p><p>
+ Release 7.0.1 + Release 7.3.1
+ </p><p> + </p><p>
Permission is granted to copy, distribute and/or modify this Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation document under the terms of the GNU Free Documentation
@ -17,7 +17,7 @@
</p><p> </p><p>
- The API documentation, rendered into HTML, can be viewed online - The API documentation, rendered into HTML, can be viewed online
+ The API documentation, rendered into HTML, can be viewed locally + The API documentation, rendered into HTML, can be viewed locally
+ <a class="link" href="api/index.html" target="_top">for the 7.0.1 release</a>, + <a class="link" href="api/index.html" target="_top">for the 7.3.1 release</a>,
+ online + online
<a class="link" href="http://gcc.gnu.org/onlinedocs/" target="_top">for each GCC release</a> <a class="link" href="http://gcc.gnu.org/onlinedocs/" target="_top">for each GCC release</a>
and and

View File

@ -1,87 +0,0 @@
2005-11-28 Jakub Jelinek <jakub@redhat.com>
* config/rs6000/rs6000.c (rs6000_return_addr): If COUNT == 0,
read word RETURN_ADDRESS_OFFSET bytes above arg_pointer_rtx
instead of doing an extran indirection from frame_pointer_rtx.
* gcc.dg/20051128-1.c: New test.
--- gcc/config/rs6000/rs6000.c.jj 2005-11-26 14:38:01.000000000 +0100
+++ gcc/config/rs6000/rs6000.c 2005-11-28 20:32:18.000000000 +0100
@@ -20970,18 +20970,22 @@ rs6000_return_addr (int count, rtx frame
if (count != 0
|| ((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_DARWIN) && flag_pic))
{
+ rtx x;
cfun->machine->ra_needs_full_frame = 1;
- return
- gen_rtx_MEM
- (Pmode,
- memory_address
- (Pmode,
- plus_constant (Pmode,
- copy_to_reg
- (gen_rtx_MEM (Pmode,
- memory_address (Pmode, frame))),
- RETURN_ADDRESS_OFFSET)));
+ if (count == 0)
+ {
+ gcc_assert (frame == frame_pointer_rtx);
+ x = arg_pointer_rtx;
+ }
+ else
+ {
+ x = memory_address (Pmode, frame);
+ x = copy_to_reg (gen_rtx_MEM (Pmode, x));
+ }
+
+ x = plus_constant (Pmode, x, RETURN_ADDRESS_OFFSET);
+ return gen_rtx_MEM (Pmode, memory_address (Pmode, x));
}
cfun->machine->ra_need_lr = 1;
--- gcc/testsuite/gcc.dg/20051128-1.c.jj 2005-10-10 11:21:41.096999000 +0200
+++ gcc/testsuite/gcc.dg/20051128-1.c 2005-11-28 12:30:57.000000000 +0100
@@ -0,0 +1,41 @@
+/* { dg-do run } */
+/* { dg-options "-O2 -fpic" } */
+
+extern void exit (int);
+extern void abort (void);
+
+int b;
+
+struct A
+{
+ void *pad[147];
+ void *ra, *h;
+ long o;
+};
+
+void
+__attribute__((noinline))
+foo (struct A *a, void *x)
+{
+ __builtin_memset (a, 0, sizeof (a));
+ if (!b)
+ exit (0);
+}
+
+void
+__attribute__((noinline))
+bar (void)
+{
+ struct A a;
+
+ __builtin_unwind_init ();
+ foo (&a, __builtin_return_address (0));
+}
+
+int
+main (void)
+{
+ bar ();
+ abort ();
+ return 0;
+}

View File

@ -1,92 +0,0 @@
2017-03-07 Will Schmidt <will_schmidt@vnet.ibm.com>
PR middle-end/79941
* config/rs6000/rs6000.c (gimplify_init_constructor): Remove multiply
even and multiply odd unsigned (vmule/vmulo) intrinsics from the
multiply folding sequence.
* gcc.target/powerpc/fold-vec-mult-even_odd_misc.c: New test.
--- gcc/config/rs6000/rs6000.c 2017-03-03 20:31:01.000000000 +0100
+++ gcc/config/rs6000/rs6000.c 2017-03-08 18:52:48.409967121 +0100
@@ -16855,9 +16855,6 @@ rs6000_gimple_fold_builtin (gimple_stmt_
/* Even element flavors of vec_mul (signed). */
case ALTIVEC_BUILTIN_VMULESB:
case ALTIVEC_BUILTIN_VMULESH:
- /* Even element flavors of vec_mul (unsigned). */
- case ALTIVEC_BUILTIN_VMULEUB:
- case ALTIVEC_BUILTIN_VMULEUH:
{
arg0 = gimple_call_arg (stmt, 0);
arg1 = gimple_call_arg (stmt, 1);
@@ -16870,9 +16867,6 @@ rs6000_gimple_fold_builtin (gimple_stmt_
/* Odd element flavors of vec_mul (signed). */
case ALTIVEC_BUILTIN_VMULOSB:
case ALTIVEC_BUILTIN_VMULOSH:
- /* Odd element flavors of vec_mul (unsigned). */
- case ALTIVEC_BUILTIN_VMULOUB:
- case ALTIVEC_BUILTIN_VMULOUH:
{
arg0 = gimple_call_arg (stmt, 0);
arg1 = gimple_call_arg (stmt, 1);
--- gcc/testsuite/gcc.target/powerpc/fold-vec-mult-even_odd_misc.c
+++ gcc/testsuite/gcc.target/powerpc/fold-vec-mult-even_odd_misc.c
@@ -0,0 +1,58 @@
+
+/* { dg-do run } */
+/* { dg-require-effective-target powerpc_vsx_ok } */
+/* { dg-options "-maltivec -mvsx -O2 -save-temps" } */
+
+#include <altivec.h>
+
+__attribute__((noinline)) void
+test_eub_char ()
+{
+ vector unsigned char v0 = {1, 0, 0, 0, 0, 0, 0, 0};
+ vector unsigned char v1 = {0xff, 0, 0, 0, 0, 0, 0, 0};
+ vector unsigned short res = vec_vmuleub (v0, v1);
+ if (res[0] != (unsigned short)v0[0] * (unsigned short)v1[0])
+ __builtin_abort ();
+}
+__attribute__((noinline)) void
+test_oub_char ()
+{
+ vector unsigned char v0 = {0, 1, 0, 0, 0, 0, 0, 0};
+ vector unsigned char v1 = {0, 0xff, 0, 0, 0, 0, 0, 0};
+ vector unsigned short res = vec_vmuloub (v0, v1);
+ if (res[0] != (unsigned short)v0[1] * (unsigned short)v1[1])
+ __builtin_abort ();
+}
+
+__attribute__((noinline)) void
+test_euh_short ()
+{
+ vector unsigned short v0 = {1, 0, 0, 0};
+ vector unsigned short v1 = {0xff, 0, 0, 0};
+ vector unsigned int res = vec_vmuleuh (v0, v1);
+ if (res[0] != (unsigned int)v0[0] * (unsigned int)v1[0])
+ __builtin_abort ();
+}
+__attribute__((noinline)) void
+test_ouh_short ()
+{
+ vector unsigned short v0 = {0, 1, 0, 0};
+ vector unsigned short v1 = {0, 0xff, 0, 0};
+ vector unsigned int res = vec_vmulouh (v0, v1);
+ if (res[0] != (unsigned int)v0[1] * (unsigned int)v1[1])
+ __builtin_abort ();
+}
+
+int main ()
+{
+ test_eub_char();
+ test_oub_char();
+ test_euh_short();
+ test_ouh_short();
+}
+
+/* { dg-final { scan-assembler-times "vmuleub" 1 } } */
+/* { dg-final { scan-assembler-times "vmuloub" 1 } } */
+/* { dg-final { scan-assembler-times "vmuleuh" 1 } } */
+/* { dg-final { scan-assembler-times "vmulouh" 1 } } */
+

View File

@ -1,43 +0,0 @@
2017-03-09 Jakub Jelinek <jakub@redhat.com>
PR c/79969
* c-decl.c (start_enum): Adjust DECL_SOURCE_LOCATION of
TYPE_STUB_DECL.
* gcc.dg/debug/dwarf2/enum-loc1.c: New test.
--- gcc/c/c-decl.c.jj 2017-03-05 22:39:45.000000000 +0100
+++ gcc/c/c-decl.c 2017-03-09 08:19:33.100042166 +0100
@@ -8201,6 +8201,10 @@ start_enum (location_t loc, struct c_enu
enumtype = make_node (ENUMERAL_TYPE);
pushtag (loc, name, enumtype);
}
+ /* Update type location to the one of the definition, instead of e.g.
+ a forward declaration. */
+ else if (TYPE_STUB_DECL (enumtype))
+ DECL_SOURCE_LOCATION (TYPE_STUB_DECL (enumtype)) = loc;
if (C_TYPE_BEING_DEFINED (enumtype))
error_at (loc, "nested redefinition of %<enum %E%>", name);
--- gcc/testsuite/gcc.dg/debug/dwarf2/enum-loc1.c.jj 2017-03-09 08:09:30.742037844 +0100
+++ gcc/testsuite/gcc.dg/debug/dwarf2/enum-loc1.c 2017-03-09 08:16:45.202268438 +0100
@@ -0,0 +1,19 @@
+/* PR c/79969 */
+/* { dg-do compile } */
+/* { dg-options "-gdwarf -dA -fno-merge-debug-strings" } */
+
+enum ENUMTAG;
+
+enum ENUMTAG
+{
+ B = 1,
+ C = 2
+};
+
+void
+bar (void)
+{
+ enum ENUMTAG a = C;
+}
+
+/* { dg-final { scan-assembler "DW_TAG_enumeration_type\[^\\r\\n\]*\[\\r\\n\]+\[^\\r\\n\]*\"ENUMTAG\[^\\r\\n\]*DW_AT_name(\[^\\r\\n\]*\[\\r\\n\]+\[^\\r\\n\]*DW_AT_)*\[^\\r\\n\]*\[\\r\\n\]+\[^\\r\\n\]*\[^0-9a-fA-FxX](0x)?7\[^0-9a-fA-FxX]\[^\\r\\n\]*DW_AT_decl_line" } } */

View File

@ -1,58 +0,0 @@
2017-03-09 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/79972
* gimple-ssa-warn-alloca.c (alloca_call_type): Only call
get_range_info on SSA_NAMEs. Formatting fixes.
* gcc.dg/pr79972.c: New test.
--- gcc/gimple-ssa-warn-alloca.c.jj 2017-03-07 20:04:52.000000000 +0100
+++ gcc/gimple-ssa-warn-alloca.c 2017-03-09 12:11:41.943934314 +0100
@@ -300,8 +300,9 @@ alloca_call_type (gimple *stmt, bool is_
ret = alloca_type_and_limit (ALLOCA_OK);
}
// Check the range info if available.
- else if (value_range_type range_type = get_range_info (len, &min, &max))
+ else if (TREE_CODE (len) == SSA_NAME)
{
+ value_range_type range_type = get_range_info (len, &min, &max);
if (range_type == VR_RANGE)
{
if (wi::leu_p (max, max_size))
@@ -328,7 +329,6 @@ alloca_call_type (gimple *stmt, bool is_
gimple *def = SSA_NAME_DEF_STMT (len);
if (gimple_assign_cast_p (def)
&& TYPE_UNSIGNED (TREE_TYPE (gimple_assign_rhs1 (def))))
-
{
len_casted = gimple_assign_rhs1 (def);
range_type = get_range_info (len_casted, &min, &max);
@@ -344,8 +344,7 @@ alloca_call_type (gimple *stmt, bool is_
else if (range_type == VR_ANTI_RANGE)
return alloca_type_and_limit (ALLOCA_UNBOUNDED);
else if (range_type != VR_VARYING)
- return
- alloca_type_and_limit (ALLOCA_BOUND_MAYBE_LARGE, max);
+ return alloca_type_and_limit (ALLOCA_BOUND_MAYBE_LARGE, max);
}
}
else if (range_type == VR_ANTI_RANGE)
--- gcc/testsuite/gcc.dg/pr79972.c.jj 2017-03-09 12:14:24.188800592 +0100
+++ gcc/testsuite/gcc.dg/pr79972.c 2017-03-09 12:13:38.000000000 +0100
@@ -0,0 +1,16 @@
+/* PR tree-optimization/79972 */
+/* { dg-do compile } */
+/* { dg-require-effective-target alloca } */
+/* { dg-options "-Walloca -Wvla-larger-than=10000" } */
+
+int
+f (int dim, int *b, int *c)
+{
+ int newcentroid[3][dim]; /* { dg-warning "unbounded use of variable-length array" } */
+ int *a = newcentroid[2];
+ int i, dist = 0;
+ __builtin_memcpy (newcentroid, c, sizeof (newcentroid));
+ for (i = 0; i < dim; i++)
+ dist += (a[i] - b[i]) * (a[i] - b[i]);
+ return dist;
+}

175
gcc7-pr84064.patch Normal file
View File

@ -0,0 +1,175 @@
2018-01-30 Jeff Law <law@redhat.com>
PR target/84064
* i386.c (ix86_adjust_stack_and_probe_stack_clash): New argument
INT_REGISTERS_SAVED. Check it prior to calling
get_scratch_register_on_entry.
(ix86_adjust_stack_and_probe): Similarly.
(ix86_emit_probe_stack_range): Similarly.
(ix86_expand_prologue): Corresponding changes.
* gcc.target/i386/pr84064: New test.
--- gcc/config/i386/i386.c
+++ gcc/config/i386/i386.c
@@ -12591,10 +12591,14 @@ release_scratch_register_on_entry (struct scratch_reg *sr)
This differs from the next routine in that it tries hard to prevent
attacks that jump the stack guard. Thus it is never allowed to allocate
more than PROBE_INTERVAL bytes of stack space without a suitable
- probe. */
+ probe.
+
+ INT_REGISTERS_SAVED is true if integer registers have already been
+ pushed on the stack. */
static void
-ix86_adjust_stack_and_probe_stack_clash (const HOST_WIDE_INT size)
+ix86_adjust_stack_and_probe_stack_clash (const HOST_WIDE_INT size,
+ const bool int_registers_saved)
{
struct machine_function *m = cfun->machine;
@@ -12700,6 +12704,12 @@ ix86_adjust_stack_and_probe_stack_clash (const HOST_WIDE_INT size)
}
else
{
+ /* We expect the GP registers to be saved when probes are used
+ as the probing sequences might need a scratch register and
+ the routine to allocate one assumes the integer registers
+ have already been saved. */
+ gcc_assert (int_registers_saved);
+
struct scratch_reg sr;
get_scratch_register_on_entry (&sr);
@@ -12758,10 +12768,14 @@ ix86_adjust_stack_and_probe_stack_clash (const HOST_WIDE_INT size)
emit_insn (gen_blockage ());
}
-/* Emit code to adjust the stack pointer by SIZE bytes while probing it. */
+/* Emit code to adjust the stack pointer by SIZE bytes while probing it.
+
+ INT_REGISTERS_SAVED is true if integer registers have already been
+ pushed on the stack. */
static void
-ix86_adjust_stack_and_probe (const HOST_WIDE_INT size)
+ix86_adjust_stack_and_probe (const HOST_WIDE_INT size,
+ const bool int_registers_saved)
{
/* We skip the probe for the first interval + a small dope of 4 words and
probe that many bytes past the specified size to maintain a protection
@@ -12822,6 +12836,12 @@ ix86_adjust_stack_and_probe (const HOST_WIDE_INT size)
equality test for the loop condition. */
else
{
+ /* We expect the GP registers to be saved when probes are used
+ as the probing sequences might need a scratch register and
+ the routine to allocate one assumes the integer registers
+ have already been saved. */
+ gcc_assert (int_registers_saved);
+
HOST_WIDE_INT rounded_size;
struct scratch_reg sr;
@@ -12949,10 +12969,14 @@ output_adjust_stack_and_probe (rtx reg)
}
/* Emit code to probe a range of stack addresses from FIRST to FIRST+SIZE,
- inclusive. These are offsets from the current stack pointer. */
+ inclusive. These are offsets from the current stack pointer.
+
+ INT_REGISTERS_SAVED is true if integer registers have already been
+ pushed on the stack. */
static void
-ix86_emit_probe_stack_range (HOST_WIDE_INT first, HOST_WIDE_INT size)
+ix86_emit_probe_stack_range (HOST_WIDE_INT first, HOST_WIDE_INT size,
+ const bool int_registers_saved)
{
/* See if we have a constant small number of probes to generate. If so,
that's the easy case. The run-time loop is made up of 6 insns in the
@@ -12980,6 +13004,12 @@ ix86_emit_probe_stack_range (HOST_WIDE_INT first, HOST_WIDE_INT size)
equality test for the loop condition. */
else
{
+ /* We expect the GP registers to be saved when probes are used
+ as the probing sequences might need a scratch register and
+ the routine to allocate one assumes the integer registers
+ have already been saved. */
+ gcc_assert (int_registers_saved);
+
HOST_WIDE_INT rounded_size, last;
struct scratch_reg sr;
@@ -13733,15 +13763,10 @@ ix86_expand_prologue (void)
&& (flag_stack_check == STATIC_BUILTIN_STACK_CHECK
|| flag_stack_clash_protection))
{
- /* We expect the GP registers to be saved when probes are used
- as the probing sequences might need a scratch register and
- the routine to allocate one assumes the integer registers
- have already been saved. */
- gcc_assert (int_registers_saved);
-
if (flag_stack_clash_protection)
{
- ix86_adjust_stack_and_probe_stack_clash (allocate);
+ ix86_adjust_stack_and_probe_stack_clash (allocate,
+ int_registers_saved);
allocate = 0;
}
else if (STACK_CHECK_MOVING_SP)
@@ -13749,7 +13774,7 @@ ix86_expand_prologue (void)
if (!(crtl->is_leaf && !cfun->calls_alloca
&& allocate <= get_probe_interval ()))
{
- ix86_adjust_stack_and_probe (allocate);
+ ix86_adjust_stack_and_probe (allocate, int_registers_saved);
allocate = 0;
}
}
@@ -13765,11 +13790,12 @@ ix86_expand_prologue (void)
if (crtl->is_leaf && !cfun->calls_alloca)
{
if (size > get_probe_interval ())
- ix86_emit_probe_stack_range (0, size);
+ ix86_emit_probe_stack_range (0, size, int_registers_saved);
}
else
ix86_emit_probe_stack_range (0,
- size + get_stack_check_protect ());
+ size + get_stack_check_protect (),
+ int_registers_saved);
}
else
{
@@ -13778,10 +13804,13 @@ ix86_expand_prologue (void)
if (size > get_probe_interval ()
&& size > get_stack_check_protect ())
ix86_emit_probe_stack_range (get_stack_check_protect (),
- size - get_stack_check_protect ());
+ (size
+ - get_stack_check_protect ()),
+ int_registers_saved);
}
else
- ix86_emit_probe_stack_range (get_stack_check_protect (), size);
+ ix86_emit_probe_stack_range (get_stack_check_protect (), size,
+ int_registers_saved);
}
}
}
--- gcc/testsuite/gcc.target/i386/pr84064.c
+++ gcc/testsuite/gcc.target/i386/pr84064.c
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -march=i686 -fstack-clash-protection" } */
+/* { dg-require-effective-target ia32 } */
+
+void
+f (void *p1, void *p2)
+{
+ __builtin_memcpy (p1, p2, 1000);
+}
+

2477
gcc7-rh1512529-aarch64.patch Normal file

File diff suppressed because it is too large Load Diff

32
nvptx-tools-glibc.patch Normal file
View File

@ -0,0 +1,32 @@
--- nvptx-tools/configure.ac.jj 2017-01-13 12:48:31.000000000 +0100
+++ nvptx-tools/configure.ac 2017-05-03 10:26:57.076092259 +0200
@@ -66,6 +66,8 @@ CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+AC_CHECK_DECLS(getopt)
+
AC_CONFIG_SUBDIRS([libiberty])
AC_CONFIG_FILES([Makefile dejagnu.exp])
AC_OUTPUT
--- nvptx-tools/configure.jj 2017-01-13 12:48:54.000000000 +0100
+++ nvptx-tools/configure 2017-05-03 10:27:13.503876809 +0200
@@ -3963,6 +3963,18 @@ CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+ac_fn_c_check_decl "$LINENO" "getopt" "ac_cv_have_decl_getopt" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getopt" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETOPT $ac_have_decl
+_ACEOF
+
+
subdirs="$subdirs libiberty"

View File

@ -1,3 +1,3 @@
SHA512 (gcc-7.0.1-20170309.tar.bz2) = d65c12060cfbe6aa685a1d8f768be6ec2dde733cb7c82ed3ac8cba839b33cfd16174f61f9fb7da3cec6ac967c0bcc9b664d71129a609e924e544edec4d7024ff SHA512 (gcc-7.3.1-20180130.tar.bz2) = 2a2fb771ac99f4630db61c4ca77fb4d7d52ca357a1721bf5967e6296035f1806f58ad3836834bcccc172771bd0eaa5b7b0f2da8cacf4671a8640fe67fd8e29fd
SHA512 (nvptx-newlib-aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24.tar.bz2) = 38f97c9297ad108568352a4d28277455a3c01fd8b7864e798037e5006b6f757022e874bbf3f165775fe3b873781bc108137bbeb42dd5ed3c7d3e6747746fa918 SHA512 (nvptx-newlib-aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24.tar.bz2) = 38f97c9297ad108568352a4d28277455a3c01fd8b7864e798037e5006b6f757022e874bbf3f165775fe3b873781bc108137bbeb42dd5ed3c7d3e6747746fa918
SHA512 (nvptx-tools-c28050f60193b3b95a18866a96f03334e874e78f.tar.bz2) = 95b577a06a93bb044dbc8033e550cb36bcf2ab2687da030a7318cdc90e7467ed49665e247dcafb5ff4a7e92cdc264291d19728bd17fab902fb64b22491269330 SHA512 (nvptx-tools-c28050f60193b3b95a18866a96f03334e874e78f.tar.bz2) = 95b577a06a93bb044dbc8033e550cb36bcf2ab2687da030a7318cdc90e7467ed49665e247dcafb5ff4a7e92cdc264291d19728bd17fab902fb64b22491269330